Digest-MurmurHash3

 view release on metacpan or  search on metacpan

src/perl-murmurhash3.xs  view on Meta::CPAN


#include "EXTERN.h"
#include "perl.h"
#include "XSUB.h"

/* #include "ppport.h" */
#include "xshelper.h"
#include "MurmurHash3.h"

MODULE = Digest::MurmurHash3  PACKAGE = Digest::MurmurHash3 

PROTOTYPES: DISABLED

void
murmur32( char *key, UV seed = 0, IV length(key) )
    PREINIT:
        uint32_t out;
    PPCODE:
        MurmurHash3_x86_32( key, STRLEN_length_of_key, seed, &out );
        EXTEND(SP, 1);
        mXPUSHu( out );

void
murmur128_x86 ( char *key, UV seed = 0, IV length(key) )
    PREINIT:
        uint32_t out[4];
    PPCODE:
        MurmurHash3_x86_128( key, STRLEN_length_of_key, seed, &out );
        EXTEND(SP, 4);
        mXPUSHu( out[0] );
        mXPUSHu( out[1] );
        mXPUSHu( out[2] );
        mXPUSHu( out[3] );

#ifdef HAVE_64BITINT

void
murmur128_x64 ( char *key, UV seed = 0, IV length(key) )
    PREINIT:
        uint64_t out[2];
    PPCODE:
        MurmurHash3_x64_128( key, STRLEN_length_of_key, seed, &out );
        EXTEND(SP, 2);
        mXPUSHu( out[0] );
        mXPUSHu( out[1] );

#endif



( run in 2.696 seconds using v1.01-cache-2.11-cpan-71847e10f99 )