module MurmurRedux::V32
Public Instance Methods
murmur3_32_fmix(p1)
click to toggle source
end of MurmurHash3 algorithm
static VALUE rb_fmix32(VALUE self, VALUE integer) { uint32_t _int = NUM2UINT(integer); return UINT2NUM(fmix32(_int)); }
murmur3_32_int32_hash(*args)
click to toggle source
static VALUE rb_murmur3_32_int32_hash(int argc, VALUE* argv, VALUE self) { /* VALUE rint; */ uint32_t _int; uint32_t result; if (argc == 0 || argc > 2) { rb_raise(rb_eArgError, "accept 1 or 2 arguments: (int32[, seed])"); } _int = NUM2UINT(argv[0]); result = MurmurHash3_x86_32(&_int, 4, argc == 1 ? 0 : NUM2UINT(argv[1])); return UINT2NUM(result); }
murmur3_32_int64_hash(*args)
click to toggle source
static VALUE rb_murmur3_32_int64_hash(int argc, VALUE* argv, VALUE self) { /* VALUE rint; */ uint64_t _int; uint32_t result; if (argc == 0 || argc > 2) { rb_raise(rb_eArgError, "accept 1 or 2 arguments: (int64[, seed])"); } #if SIZEOF_LONG == 8 _int = NUM2ULONG(argv[0]); #else _int = NUM2ULL(argv[0]); #endif result = MurmurHash3_x86_32(&_int, 8, argc == 1 ? 0 : NUM2UINT(argv[1])); return UINT2NUM(result); }
murmur3_32_str_hash(*args)
click to toggle source
static VALUE rb_murmur3_32_str_hash(int argc, VALUE* argv, VALUE self) { VALUE rstr; uint32_t result; if (argc == 0 || argc > 2) { rb_raise(rb_eArgError, "accept 1 or 2 arguments: (string[, seed])"); } rstr = argv[0]; StringValue(rstr); result = MurmurHash3_x86_32(RSTRING_PTR(rstr), RSTRING_LEN(rstr), argc == 1 ? 0 : NUM2UINT(argv[1])); return UINT2NUM(result); }