# bm.h File Reference

`#include <iterator>`
`#include "bmconst.h"`
`#include "bmdef.h"`
`#include "bmsse4.h"`
`#include "bmfwd.h"`
`#include "bmfunc.h"`
`#include "encoding.h"`
`#include "bmalloc.h"`
`#include "bmblocks.h"`
`#include "bmundef.h"`
Include dependency graph for bm.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

## Data Structures

class | bm::bvector< Alloc >
| bitvector with runtime compression of bits. More...
struct | bm::bvector< Alloc >::statistics
| Statistical information about bitset's memory allocation details. More...
class | bm::bvector< Alloc >::reference
| Class reference implements an object for bit assignment. More...
class | bm::bvector< Alloc >::iterator_base
| Base class for all iterators. More...
struct | bm::bvector< Alloc >::iterator_base::bitblock_descr
| Information about current bitblock. More...
struct | bm::bvector< Alloc >::iterator_base::dgap_descr
| Information about current DGAP block. More...
union | bm::bvector< Alloc >::iterator_base::block_descr
class | bm::bvector< Alloc >::insert_iterator
| Output iterator iterator designed to set "ON" bits based on input sequence of integers (bit indeces). More...
class | bm::bvector< Alloc >::enumerator
| Constant input iterator designed to enumerate "ON" bits. More...
class | bm::bvector< Alloc >::counted_enumerator
| Constant input iterator designed to enumerate "ON" bits counted_enumerator keeps bitcount, ie number of ON bits starting from the position 0 in the bit string up to the currently enumerated bit. More...

## Namespaces

namespace | bm

## Defines

#define | BM64_SSE4
#define | BMVECTOPT
#define | BMCOUNT_INC
#define | BMCOUNT_DEC
#define | BMCOUNT_VALID(x)
#define | BMCOUNT_SET(x)
#define | BMCOUNT_ADJ(x)

## Functions

template<class Alloc >
bvector< Alloc > | bm::operator& (const bvector< Alloc > &v1, const bvector< Alloc > &v2)
template<class Alloc >
bvector< Alloc > | bm::operator| (const bvector< Alloc > &v1, const bvector< Alloc > &v2)
template<class Alloc >
bvector< Alloc > | bm::operator^ (const bvector< Alloc > &v1, const bvector< Alloc > &v2)
template<class Alloc >
bvector< Alloc > | bm::operator- (const bvector< Alloc > &v1, const bvector< Alloc > &v2)

## Define Documentation

#define BM64_SSE4

Definition at line 45 of file bm.h.

#define BMCOUNT_ADJ | ( | x |  | ) |

Definition at line 91 of file bm.h.

#define BMCOUNT_DEC

Definition at line 88 of file bm.h.

#define BMCOUNT_INC

Definition at line 87 of file bm.h.

#define BMCOUNT_SET | ( | x |  | ) |

Definition at line 90 of file bm.h.

Referenced by bm::bvector< Alloc >::clear(), and bm::bvector< Alloc >::count().

#define BMCOUNT_VALID | ( | x |  | ) |

Definition at line 89 of file bm.h.

Referenced by bm::bvector< Alloc >::bit_and(), bm::bvector< Alloc >::bit_or(), bm::bvector< Alloc >::bit_sub(), bm::bvector< Alloc >::bit_xor(), bm::bvector< Alloc >::forget_count(), bm::bvector< Alloc >::invert(), bm::bvector< Alloc >::recalc_count(), bm::bvector< Alloc >::set(), bm::bvector< Alloc >::set_range(), and bm::bvector< Alloc >::swap().

#define BMVECTOPT

Definition at line 56 of file bm.h.