GNU PROLOG with UTF8 support
Macros | Functions
hash_fct.c File Reference
#include <stdlib.h>
#include <stdint.h>
#include <string.h>
#include <math.h>
#include <sys/types.h>
#include "engine_pl.h"
#include "hash_fct.h"
#include "hash_fct1.c"
Include dependency graph for hash_fct.c:

Macros

#define HASH_FCT_INITIAL_SEED   1688943522 /* any number is OK */
 
#define FORCE_INLINE
 
#define HASH_BUFFER_FCT   Hash_Buffer_Aligned
 
#define HASH_BUFFER_FCT   Hash_Buffer_Unaligned
 
#define USE_32BITS_ALIGNMENT
 
#define DBL_MAX_EXP   1024
 
#define DBL_MANT_DIG   53
 
#define UINT64_MAX   ((uint64_t) -1)
 
#define MULT   ((uint64_t) 1 << 63)
 

Functions

static FORCE_INLINE uint32_t ROTL32 (uint32_t x, int8_t r)
 
static FORCE_INLINE uint64_t ROTL64 (uint64_t x, int8_t r)
 
static FORCE_INLINE uint32_t Hash_Initialize (void)
 
static FORCE_INLINE uint32_t Hash_Block (uint32_t k1, uint32_t h1)
 
static FORCE_INLINE uint32_t Hash_Finalize (uint32_t h, int len)
 
uint32_t Hash_Buffer (const void *key, int len, uint32_t seed)
 
uint32_t bswap_32 (uint32_t x)
 
static uint32_t htole32 (uint32_t x)
 
uint32_t Pl_Hash_Buffer (const void *data, int len)
 
void Pl_Hash_Incr_Init (HashIncrInfo *hi)
 
void Pl_Hash_Incr_Buffer (HashIncrInfo *hi, const void *data, int len)
 
void Pl_Hash_Incr_Int32 (HashIncrInfo *hi, uint32_t x)
 
void Pl_Hash_Incr_Int64 (HashIncrInfo *hi, uint64_t x)
 
void Pl_Hash_Incr_Double (HashIncrInfo *hi, double x)
 
uint32_t Pl_Hash_Incr_Term (HashIncrInfo *hi)
 

Macro Definition Documentation

#define DBL_MANT_DIG   53
#define DBL_MAX_EXP   1024
#define FORCE_INLINE
#define HASH_BUFFER_FCT   Hash_Buffer_Aligned
#define HASH_BUFFER_FCT   Hash_Buffer_Unaligned
#define HASH_FCT_INITIAL_SEED   1688943522 /* any number is OK */
#define MULT   ((uint64_t) 1 << 63)
#define UINT64_MAX   ((uint64_t) -1)
#define USE_32BITS_ALIGNMENT

Function Documentation

uint32_t bswap_32 ( uint32_t  x)

Here is the caller graph for this function:

static FORCE_INLINE uint32_t Hash_Block ( uint32_t  k1,
uint32_t  h1 
)
static

Here is the call graph for this function:

Here is the caller graph for this function:

uint32_t Hash_Buffer ( const void *  key,
int  len,
uint32_t  seed 
)

Here is the caller graph for this function:

static FORCE_INLINE uint32_t Hash_Finalize ( uint32_t  h,
int  len 
)
static

Here is the caller graph for this function:

static FORCE_INLINE uint32_t Hash_Initialize ( void  )
static

Here is the caller graph for this function:

static uint32_t htole32 ( uint32_t  x)
static

Here is the call graph for this function:

Here is the caller graph for this function:

uint32_t Pl_Hash_Buffer ( const void *  data,
int  len 
)

Here is the call graph for this function:

Here is the caller graph for this function:

void Pl_Hash_Incr_Buffer ( HashIncrInfo hi,
const void *  data,
int  len 
)

Here is the call graph for this function:

void Pl_Hash_Incr_Double ( HashIncrInfo hi,
double  x 
)

Here is the call graph for this function:

Here is the caller graph for this function:

void Pl_Hash_Incr_Init ( HashIncrInfo hi)

Here is the call graph for this function:

Here is the caller graph for this function:

void Pl_Hash_Incr_Int32 ( HashIncrInfo hi,
uint32_t  x 
)

Here is the call graph for this function:

Here is the caller graph for this function:

void Pl_Hash_Incr_Int64 ( HashIncrInfo hi,
uint64_t  x 
)

Here is the call graph for this function:

Here is the caller graph for this function:

uint32_t Pl_Hash_Incr_Term ( HashIncrInfo hi)

Here is the call graph for this function:

Here is the caller graph for this function:

static FORCE_INLINE uint32_t ROTL32 ( uint32_t  x,
int8_t  r 
)
static

Here is the caller graph for this function:

static FORCE_INLINE uint64_t ROTL64 ( uint64_t  x,
int8_t  r 
)
static