Object
static VALUE rb_fmix64(VALUE self, VALUE integer) { #if SIZEOF_LONG == 8 uint64_t _int = NUM2ULONG(integer); return ULONG2NUM(fmix64(_int)); #else uint64_t _int = NUM2ULL(integer); return ULL2NUM(fmix64(_int)); #endif }
static VALUE rb_murmur3_128_int32_hash(int argc, VALUE* argv, VALUE self) { VALUE ar_result; uint32_t result[4], _int; if (argc == 0 || argc > 2) { rb_raise(rb_eArgError, "accept 1 or 2 arguments: (int32[, seed])"); } _int = NUM2UINT(argv[0]); MurmurHash3_x64_128(&_int, 4, argc == 1 ? 0 : NUM2UINT(argv[1]), result); #if WORDS_BIGENDIAN SWAP_128_BIT(); #endif RETURN_128_BIT(); }
static VALUE rb_murmur3_128_int64_hash(int argc, VALUE* argv, VALUE self) { VALUE ar_result; uint32_t result[4]; uint64_t _int; 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 MurmurHash3_x64_128(&_int, 8, argc == 1 ? 0 : NUM2UINT(argv[1]), result); #if WORDS_BIGENDIAN SWAP_128_BIT(); #endif RETURN_128_BIT(); }
static VALUE rb_murmur3_128_str_hash(int argc, VALUE* argv, VALUE self) { VALUE rstr, ar_result; uint32_t result[4]; if (argc == 0 || argc > 2) { rb_raise(rb_eArgError, "accept 1 or 2 arguments: (string[, seed])"); } rstr = argv[0]; StringValue(rstr); MurmurHash3_x64_128(RSTRING_PTR(rstr), RSTRING_LEN(rstr), argc == 1 ? 0 : NUM2UINT(argv[1]), result); #if WORDS_BIGENDIAN SWAP_128_BIT(); #endif RETURN_128_BIT(); }
Generated with the Darkfish Rdoc Generator 2.