Lines Matching defs:MurmurHash3

135 struct MurmurHash3(uint size /* 32 or 128 */ , uint opt = size_t.sizeof == 8 ? 64 : 32)  struct
137 enum blockSize = size; // Number of bits of the hashed value.
138 size_t element_count; // The number of full elements pushed, this is used for finalization.
142 private enum uint c1 = 0xcc9e2d51;
143 private enum uint c2 = 0x1b873593;
144 private uint h1;
145 alias Element = uint; /// The element type for 32-bit implementation.
147 this(uint seed) in this()
155 void putElement(uint block) pure nothrow @nogc in this()
161 void putRemainder(scope const(ubyte[]) data...) pure nothrow @nogc in this()
184 void finalize() pure nothrow @nogc in this()
191 Element get() pure nothrow @nogc in this()
197 ubyte[4] getBytes() pure nothrow @nogc in this()
204 private enum uint c1 = 0x239b961b; in this()
205 private enum uint c2 = 0xab0e9789; in this()
206 private enum uint c3 = 0x38b34ae5; in this()
207 private enum uint c4 = 0xa1e38b93; in this()
208 private uint h4, h3, h2, h1; in this()
210 alias Element = uint[4]; /// The element type for 128-bit implementation. in this()
212 this(uint seed4, uint seed3, uint seed2, uint seed1) pure nothrow @nogc in this()
220 this(uint seed) pure nothrow @nogc in this()
229 void putElement(Element block) pure nothrow @nogc in this()
238 void putRemainder(scope const(ubyte[]) data...) pure nothrow @nogc in this()
304 void finalize() pure nothrow @nogc in this()
332 Element get() pure nothrow @nogc in this()
338 ubyte[16] getBytes() pure nothrow @nogc in this()
345 private enum ulong c1 = 0x87c37b91114253d5; in this()
346 private enum ulong c2 = 0x4cf5ad432745937f; in this()
347 private ulong h2, h1; in this()
349 alias Element = ulong[2]; /// The element type for 128-bit implementation. in this()
351 this(ulong seed) pure nothrow @nogc in this()
356 this(ulong seed2, ulong seed1) pure nothrow @nogc in this()
366 void putElement(Element block) pure nothrow @nogc in this()
373 void putRemainder(scope const(ubyte[]) data...) pure nothrow @nogc in this()
434 void finalize() pure nothrow @nogc in this()
462 …static assert(false, "MurmurHash3(" ~ size.stringof ~ ", " ~ opt.stringof ~ ") is not implemented"… in this() argument
469 void putElements(scope const(Element[]) elements...) pure nothrow @nogc in this()
482 private union BufferUnion in this()
488 private BufferUnion buffer; in this()
489 private size_t bufferSize; in this()
494 void start() in this()
503 void put(scope const(ubyte)[] data...) pure nothrow in this()
602 // MurmurHash3 utils argument
605 private T rotl(T)(T x, uint y) in rotl()
618 private T shuffle(T)(T k, T c1, T c2, ubyte r1) in shuffle()
629 private T update(T)(ref T h, T k, T mixWith, T c1, T c2, ubyte r1, ubyte r2, T n) in update()
640 private uint fmix(uint h) pure nothrow @nogc in fmix()
665 ubyte[4] hashed = digest!(MurmurHash3!32)([1, 2, 3, 4]); argument