include/bitvec.h File Reference

An implementation of bit vectors. More...

#include <sphinxbase_export.h>
#include <sphinx_config.h>
#include <prim_type.h>
#include <ckd_alloc.h>

Go to the source code of this file.

Defines

#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.
#define bitvec_realloc(v, n)   ckd_realloc(v, bitvec_size(n) * sizeof(bitvec_t))
 Resize a bit vector.
#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.
#define bitvec_clear(v, b)   (v[(b)/BITVEC_BITS] &= ~(1UL << ((b) & (BITVEC_BITS-1))))
 Clear the b-th bit of bit vector v.
#define bitvec_clear_all(v, n)
 Clear all n bits in bit vector v.
#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.
#define bitvec_is_clear(v, b)   (! (bitvec_is_set(v,b)))
 Check whether the b-th bit is cleared in vector v.

Typedefs

typedef uint32 bitvec_t

Functions

SPHINXBASE_EXPORT size_t bitvec_count_set (bitvec_t *vec, size_t len)
 Return the number of bits set in the given bitvector.

Detailed Description

An implementation of bit vectors.

Implementation of basic operations of bit vectors.

Definition in file bitvec.h.


Define Documentation

#define bitvec_clear ( v,
 )     (v[(b)/BITVEC_BITS] &= ~(1UL << ((b) & (BITVEC_BITS-1))))

Clear the b-th bit of bit vector v.

Parameters:
v is a vector
b is the bit which will be set

Definition at line 100 of file bitvec.h.

#define bitvec_clear_all ( v,
 ) 
Value:
memset(v, 0, (((n)+BITVEC_BITS-1)/BITVEC_BITS) * \
                                       sizeof(bitvec_t))

Clear all n bits in bit vector v.

Parameters:
v is a vector
n is the number of bits

Definition at line 108 of file bitvec.h.

#define bitvec_is_clear ( v,
 )     (! (bitvec_is_set(v,b)))

Check whether the b-th bit is cleared in vector v.

Parameters:
v is a vector
b is the bit which will be checked

Definition at line 125 of file bitvec.h.

#define bitvec_is_set ( v,
 )     (v[(b)/BITVEC_BITS] & (1UL << ((b) & (BITVEC_BITS-1))))

Check whether the b-th bit is set in vector v.

Parameters:
v is a vector
b is the bit which will be checked

Definition at line 117 of file bitvec.h.

#define bitvec_set ( v,
 )     (v[(b)/BITVEC_BITS] |= (1UL << ((b) & (BITVEC_BITS-1))))

Set the b-th bit of bit vector v.

Parameters:
v is a vector
b is the bit which will be set

Definition at line 92 of file bitvec.h.


Function Documentation

SPHINXBASE_EXPORT size_t bitvec_count_set ( bitvec_t *  vec,
size_t  len 
)

Return the number of bits set in the given bitvector.

Parameters:
vec is the bit vector
len is the length of bit vector vec
Returns:
the number of bits being set in vector vec

Definition at line 64 of file bitvec.c.

References bitvec_count_set().

Referenced by bitvec_count_set().


Generated on 20 Nov 2009 for SphinxBase by  doxygen 1.6.1