CBMC
irep_hash.h File Reference

irep hash functions More...

#include <climits>
#include <cstddef>
#include <stdint.h>
+ Include dependency graph for irep_hash.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define IREP_HASH_BASIC
 
#define FORCE_INLINE   inline __attribute__((always_inline))
 
#define BIG_CONSTANT(x)   (x##LLU)
 
#define hash_combine(h1, h2)    basic_hash_combine<sizeof(std::size_t) * CHAR_BIT>(h1, h2)
 
#define hash_finalize(h1, len)   basic_hash_finalize(h1, len)
 

Functions

static __attribute__ ((always_inline)) uint32_t ROTL32(uint32_t x
 
template<int >
std::size_t basic_hash_combine (std::size_t h1, std::size_t h2)
 
template<>
std::size_t basic_hash_combine< 32 > (std::size_t h1, std::size_t h2)
 
template<>
std::size_t basic_hash_combine< 64 > (std::size_t h1, std::size_t h2)
 
std::size_t basic_hash_finalize (std::size_t h1, std::size_t len)
 

Variables

static int8_t r
 

Detailed Description

irep hash functions

Definition in file irep_hash.h.

Macro Definition Documentation

◆ BIG_CONSTANT

#define BIG_CONSTANT (   x)    (x##LLU)

Definition at line 69 of file irep_hash.h.

◆ FORCE_INLINE

#define FORCE_INLINE   inline __attribute__((always_inline))

Definition at line 55 of file irep_hash.h.

◆ hash_combine

#define hash_combine (   h1,
  h2 
)     basic_hash_combine<sizeof(std::size_t) * CHAR_BIT>(h1, h2)

Definition at line 121 of file irep_hash.h.

◆ hash_finalize

#define hash_finalize (   h1,
  len 
)    basic_hash_finalize(h1, len)

Definition at line 123 of file irep_hash.h.

◆ IREP_HASH_BASIC

#define IREP_HASH_BASIC

Definition at line 17 of file irep_hash.h.

Function Documentation

◆ __attribute__()

static __attribute__ ( (always_inline)  )
inlinestatic

◆ basic_hash_combine()

template<int >
std::size_t basic_hash_combine ( std::size_t  h1,
std::size_t  h2 
)

◆ basic_hash_combine< 32 >()

template<>
std::size_t basic_hash_combine< 32 > ( std::size_t  h1,
std::size_t  h2 
)
inline

Definition at line 82 of file irep_hash.h.

◆ basic_hash_combine< 64 >()

template<>
std::size_t basic_hash_combine< 64 > ( std::size_t  h1,
std::size_t  h2 
)
inline

Definition at line 90 of file irep_hash.h.

◆ basic_hash_finalize()

std::size_t basic_hash_finalize ( std::size_t  h1,
std::size_t  len 
)
inline

Definition at line 110 of file irep_hash.h.

Variable Documentation

◆ r

static int8_t r
Initial value:
{
return (x << r) | (x >> (32-r))
static int8_t r
Definition: irep_hash.h:60

Definition at line 59 of file irep_hash.h.