Module: MurmurRedux::Native32
- Defined in:
- ext/murmur_native/murmur_native.c
Instance Method Summary collapse
-
#murmur3_32_fmix(integer) ⇒ Object
end of MurmurHash3 algorithm.
- #murmur3_32_int32_hash(*args) ⇒ Object
- #murmur3_32_int64_hash(*args) ⇒ Object
- #murmur3_32_str_hash(*args) ⇒ Object
Instance Method Details
#murmur3_32_fmix(integer) ⇒ Object
end of MurmurHash3 algorithm
281 282 283 284 285 286 |
# File 'ext/murmur_native/murmur_native.c', line 281
static VALUE
rb_fmix32(VALUE self, VALUE integer)
{
uint32_t _int = NUM2UINT(integer);
return UINT2NUM(fmix32(_int));
}
|
#murmur3_32_int32_hash(*args) ⇒ Object
317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 |
# File 'ext/murmur_native/murmur_native.c', line 317
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) ⇒ Object
334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 |
# File 'ext/murmur_native/murmur_native.c', line 334
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) ⇒ Object
300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 |
# File 'ext/murmur_native/murmur_native.c', line 300
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);
}
|