|
SphinxBase
0.6
|
An implementation of bit vectors. More...
#include <string.h>#include <sphinxbase/sphinxbase_export.h>#include <sphinxbase/prim_type.h>#include <sphinxbase/ckd_alloc.h>Go to the source code of this file.
Macros | |
| #define | BITVEC_BITS 32 |
| #define | bitvec_size(n) (((n)+BITVEC_BITS-1)/BITVEC_BITS) |
| Number of bitvec_t in a bit vector. | |
| #define | bitvec_alloc(n) ckd_calloc(bitvec_size(n), sizeof(bitvec_t)) |
| Allocate a bit vector, all bits are clear. | |
| #define | bitvec_free(v) ckd_free(v) |
| Free a bit vector. | |
| #define | bitvec_set(v, b) (v[(b)/BITVEC_BITS] |= (1UL << ((b) & (BITVEC_BITS-1)))) |
| Set the b-th bit of bit vector v. More... | |
| #define | bitvec_set_all(v, n) |
| Set all n bits in bit vector v. More... | |
| #define | bitvec_clear(v, b) (v[(b)/BITVEC_BITS] &= ~(1UL << ((b) & (BITVEC_BITS-1)))) |
| Clear the b-th bit of bit vector v. More... | |
| #define | bitvec_clear_all(v, n) |
| Clear all n bits in bit vector v. More... | |
| #define | bitvec_is_set(v, b) (v[(b)/BITVEC_BITS] & (1UL << ((b) & (BITVEC_BITS-1)))) |
| Check whether the b-th bit is set in vector v. More... | |
| #define | bitvec_is_clear(v, b) (! (bitvec_is_set(v,b))) |
| Check whether the b-th bit is cleared in vector v. More... | |
Typedefs | |
| typedef uint32 | bitvec_t |
Functions | |
| SPHINXBASE_EXPORT bitvec_t * | bitvec_realloc (bitvec_t *vec, size_t old_len, size_t new_len) |
| Resize a bit vector, clear the remaining bits. | |
| SPHINXBASE_EXPORT size_t | bitvec_count_set (bitvec_t *vec, size_t len) |
| Return the number of bits set in the given bitvector. More... | |
An implementation of bit vectors.
Implementation of basic operations of bit vectors.
Definition in file bitvec.h.
| #define bitvec_clear | ( | v, | |
| b | |||
| ) | (v[(b)/BITVEC_BITS] &= ~(1UL << ((b) & (BITVEC_BITS-1)))) |
| #define bitvec_clear_all | ( | v, | |
| n | |||
| ) |
| #define bitvec_is_clear | ( | v, | |
| b | |||
| ) | (! (bitvec_is_set(v,b))) |
| #define bitvec_is_set | ( | v, | |
| b | |||
| ) | (v[(b)/BITVEC_BITS] & (1UL << ((b) & (BITVEC_BITS-1)))) |
| #define bitvec_set | ( | v, | |
| b | |||
| ) | (v[(b)/BITVEC_BITS] |= (1UL << ((b) & (BITVEC_BITS-1)))) |
| #define bitvec_set_all | ( | v, | |
| n | |||
| ) |