Main Page | Modules | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals | Related Pages

bit_scan.h File Reference

#include <limits.h>

Go to the source code of this file.

Defines

#define bit_scan_forward32(i)   bit_scan_forward_debruijn32(i)
#define bit_scan_forward64(i)   bit_scan_forward_debruijn64(i)
#define bit_scan_reverse32(i)   bit_scan_reverse_br32(i)
#define bit_scan_reverse64(i)   bit_scan_reverse_br64(i)
#define bit_scan_forward(l)   bit_scan_forward32((l))
#define bit_scan_reverse(l)   bit_scan_reverse32((l))
#define DEBRUIJN_CT32   0x04653ADFU
#define DEBRUIJN_CT64   0x0218A392CD3D5DBFULL
#define DEBRUIJN_HASH32(x)   (((x)*DEBRUIJN_CT32)>>(sizeof(x)*8-5))
#define DEBRUIJN_HASH64(x)   (((x)*DEBRUIJN_CT64)>>(sizeof(x)*8-6))
#define bit_scan_forward_debruijn32(x)   ( _debruijn_hash32[DEBRUIJN_HASH32((x) & (-(x)))])
#define bit_scan_forward_debruijn64(x)   ( _debruijn_hash64[DEBRUIJN_HASH64((x) & (-(x)))])

Functions

int bit_scan_reverse_debruijn32 (unsigned int v)
int bit_scan_reverse_debruijn64 (unsigned long long v)
int bit_scan_forward_br32 (unsigned int v)
int bit_scan_reverse_br32 (unsigned int v)
int bit_scan_forward_br64 (unsigned long long v)
int bit_scan_reverse_br64 (unsigned long long v)

Variables

unsigned char _debruijn_hash32 [32]
unsigned char _debruijn_hash64 [64]


Define Documentation

#define bit_scan_forward  )     bit_scan_forward32((l))
 

Definition at line 139 of file bit_scan.h.

Referenced by main().

#define bit_scan_forward32  )     bit_scan_forward_debruijn32(i)
 

Definition at line 122 of file bit_scan.h.

Referenced by main().

#define bit_scan_forward64  )     bit_scan_forward_debruijn64(i)
 

Definition at line 123 of file bit_scan.h.

Referenced by main().

#define bit_scan_forward_debruijn32  )     ( _debruijn_hash32[DEBRUIJN_HASH32((x) & (-(x)))])
 

Definition at line 170 of file bit_scan.h.

Referenced by main().

#define bit_scan_forward_debruijn64  )     ( _debruijn_hash64[DEBRUIJN_HASH64((x) & (-(x)))])
 

Definition at line 173 of file bit_scan.h.

Referenced by main().

#define bit_scan_reverse  )     bit_scan_reverse32((l))
 

Definition at line 140 of file bit_scan.h.

Referenced by main().

#define bit_scan_reverse32  )     bit_scan_reverse_br32(i)
 

Definition at line 124 of file bit_scan.h.

Referenced by main().

#define bit_scan_reverse64  )     bit_scan_reverse_br64(i)
 

Definition at line 125 of file bit_scan.h.

Referenced by main().

#define DEBRUIJN_CT32   0x04653ADFU
 

Definition at line 161 of file bit_scan.h.

#define DEBRUIJN_CT64   0x0218A392CD3D5DBFULL
 

Definition at line 162 of file bit_scan.h.

#define DEBRUIJN_HASH32  )     (((x)*DEBRUIJN_CT32)>>(sizeof(x)*8-5))
 

Definition at line 164 of file bit_scan.h.

Referenced by bit_scan_reverse_debruijn32().

#define DEBRUIJN_HASH64  )     (((x)*DEBRUIJN_CT64)>>(sizeof(x)*8-6))
 

Definition at line 167 of file bit_scan.h.

Referenced by bit_scan_reverse_debruijn64().


Function Documentation

int bit_scan_forward_br32 unsigned int  v  )  [inline, static]
 

Definition at line 247 of file bit_scan.h.

int bit_scan_forward_br64 unsigned long long  v  )  [inline, static]
 

Definition at line 301 of file bit_scan.h.

int bit_scan_reverse_br32 unsigned int  v  )  [inline, static]
 

Definition at line 275 of file bit_scan.h.

int bit_scan_reverse_br64 unsigned long long  v  )  [inline, static]
 

Definition at line 333 of file bit_scan.h.

int bit_scan_reverse_debruijn32 unsigned int  v  )  [inline, static]
 

Definition at line 177 of file bit_scan.h.

References _debruijn_hash32, and DEBRUIJN_HASH32.

int bit_scan_reverse_debruijn64 unsigned long long  v  )  [inline, static]
 

Definition at line 189 of file bit_scan.h.

References _debruijn_hash64, and DEBRUIJN_HASH64.


Variable Documentation

unsigned char _debruijn_hash32[32]
 

Definition at line 29 of file bit_scan.c.

Referenced by bit_scan_reverse_debruijn32().

unsigned char _debruijn_hash64[64]
 

Definition at line 32 of file bit_scan.c.

Referenced by bit_scan_reverse_debruijn64().


Generated on Wed Jan 7 04:10:17 2009 for SIPExpressRouter by  doxygen 1.3.9.1