#include <limits.h>


Go to the source code of this file.
Defines | |
| #define | bit_scan_forward(l) bit_scan_forward32((l)) |
| #define | bit_scan_forward32(i) bit_scan_forward_debruijn32(i) |
| #define | bit_scan_forward64(i) bit_scan_forward_debruijn64(i) |
| #define | bit_scan_forward_debruijn32(x) ( _debruijn_hash32[DEBRUIJN_HASH32((x) & (-(x)))]) |
| #define | bit_scan_forward_debruijn64(x) ( _debruijn_hash64[DEBRUIJN_HASH64((x) & (-(x)))]) |
| #define | bit_scan_reverse(l) bit_scan_reverse32((l)) |
| #define | bit_scan_reverse32(i) bit_scan_reverse_br32(i) |
| #define | bit_scan_reverse64(i) bit_scan_reverse_br64(i) |
| #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)) |
Functions | |
| static int | bit_scan_forward_br32 (unsigned int v) |
| static int | bit_scan_forward_br64 (unsigned long long v) |
| static int | bit_scan_reverse_br32 (unsigned int v) |
| static int | bit_scan_reverse_br64 (unsigned long long v) |
| static int | bit_scan_reverse_debruijn32 (unsigned int v) |
| static int | bit_scan_reverse_debruijn64 (unsigned long long v) |
Variables | |
| unsigned char | _debruijn_hash32 [32] |
| unsigned char | _debruijn_hash64 [64] |
| #define bit_scan_forward | ( | l | ) | bit_scan_forward32((l)) |
Definition at line 139 of file bit_scan.h.
| #define bit_scan_forward32 | ( | i | ) | bit_scan_forward_debruijn32(i) |
Definition at line 122 of file bit_scan.h.
| #define bit_scan_forward64 | ( | i | ) | bit_scan_forward_debruijn64(i) |
Definition at line 123 of file bit_scan.h.
| #define bit_scan_forward_debruijn32 | ( | x | ) | ( _debruijn_hash32[DEBRUIJN_HASH32((x) & (-(x)))]) |
Definition at line 170 of file bit_scan.h.
| #define bit_scan_forward_debruijn64 | ( | x | ) | ( _debruijn_hash64[DEBRUIJN_HASH64((x) & (-(x)))]) |
Definition at line 173 of file bit_scan.h.
| #define bit_scan_reverse | ( | l | ) | bit_scan_reverse32((l)) |
Definition at line 140 of file bit_scan.h.
| #define bit_scan_reverse32 | ( | i | ) | bit_scan_reverse_br32(i) |
Definition at line 124 of file bit_scan.h.
| #define bit_scan_reverse64 | ( | i | ) | bit_scan_reverse_br64(i) |
Definition at line 125 of file bit_scan.h.
| #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 | ) | (((x)*DEBRUIJN_CT32)>>(sizeof(x)*8-5)) |
| #define DEBRUIJN_HASH64 | ( | x | ) | (((x)*DEBRUIJN_CT64)>>(sizeof(x)*8-6)) |
| static int bit_scan_forward_br32 | ( | unsigned int | v | ) | [inline, static] |
Definition at line 247 of file bit_scan.h.
| static int bit_scan_forward_br64 | ( | unsigned long long | v | ) | [inline, static] |
Definition at line 301 of file bit_scan.h.
| static int bit_scan_reverse_br32 | ( | unsigned int | v | ) | [inline, static] |
Definition at line 275 of file bit_scan.h.
| static int bit_scan_reverse_br64 | ( | unsigned long long | v | ) | [inline, static] |
Definition at line 333 of file bit_scan.h.
| static int bit_scan_reverse_debruijn32 | ( | unsigned int | v | ) | [inline, static] |
| static int bit_scan_reverse_debruijn64 | ( | unsigned long long | v | ) | [inline, static] |
| unsigned char _debruijn_hash32[32] |
| unsigned char _debruijn_hash64[64] |
1.5.6