Gecode::Int::Extensional::BitSet< IndexType > Class Template Reference

Bit-set. More...

`#include <extensional.hh>`

## Public Member Functions

| BitSet (Space &home, unsigned int n)
| Initialize bit set for a number of words n.
template<class OldIndexType>
| BitSet (Space &home, const BitSet< OldIndexType > &bs)
| Initialize during cloning.
| BitSet (Space &home, const TinyBitSet< 1U > &tbs)
| Initialize during cloning (unused).
| BitSet (Space &home, const TinyBitSet< 2U > &tbs)
| Initialize during cloning (unused).
| BitSet (Space &home, const TinyBitSet< 3U > &tbs)
| Initialize during cloning (unused).
| BitSet (Space &home, const TinyBitSet< 4U > &tbs)
| Initialize during cloning (unused).
unsigned int | limit (void) const
| Get the limit.
bool | empty (void) const
| Check whether the set is empty.
void | flush (void)
| Make the set empty.
unsigned int | width (void) const
| Return the highest active index.
void | clear_mask (BitSetData *mask) const
| Clear the first limit words in mask.
void | add_to_mask (const BitSetData *b, BitSetData *mask) const
| Add to mask.
template<bool sparse>
void | intersect_with_mask (const BitSetData *mask)
| Intersect with mask, sparse mask if sparse is true.
void | intersect_with_masks (const BitSetData *a, const BitSetData *b)
| Intersect with the "or" of and b.
bool | intersects (const BitSetData *b) const
| Check if has a non-empty intersection with the set.
void | nand_with_mask (const BitSetData *b)
| Perform "nand" with b.
unsigned long long int | ones (void) const
| Return the number of ones.
unsigned long long int | ones (const BitSetData *b) const
| Return the number of ones after intersection with b.
unsigned long long int | bits (void) const
| Return an upper bound on the number of bits.
unsigned int | words (void) const
| Return the number of required bit set words.
unsigned int | size (void) const
| Return the number of required bit set words.

## Protected Member Functions

void | replace_and_decrease (IndexType i, BitSetData w)
| Replace the i th word with w, decrease limit if w is zero.

## Protected Attributes

IndexType | _limit
| Limit.
IndexType * | _index
| Indices.
BitSetData * | _bits
| Words.

## Detailed Description

template<class IndexType>
class Gecode::Int::Extensional::BitSet< IndexType >

Bit-set.

Definition at line 235 of file extensional.hh.

## Constructor & Destructor Documentation

## BitSet() [1/6]

template<class IndexType>

Gecode::Int::Extensional::BitSet< IndexType >::BitSet | ( | Space & | home,
|  | unsigned int | n )

inline

Initialize bit set for a number of words n.

Definition at line 77 of file bit-set.hpp.

## BitSet() [2/6]

template<class IndexType>
template<class OldIndexType>

Gecode::Int::Extensional::BitSet< IndexType >::BitSet | ( | Space & | home,
|  | const BitSet< OldIndexType > & | bs )

inline

Initialize during cloning.

Definition at line 91 of file bit-set.hpp.

## BitSet() [3/6]

template<class IndexType>

Gecode::Int::Extensional::BitSet< IndexType >::BitSet | ( | Space & | home,
|  | const TinyBitSet< 1U > & | tbs )

inline

Initialize during cloning (unused).

Definition at line 112 of file bit-set.hpp.

## BitSet() [4/6]

template<class IndexType>

Gecode::Int::Extensional::BitSet< IndexType >::BitSet | ( | Space & | home,
|  | const TinyBitSet< 2U > & | tbs )

inline

Initialize during cloning (unused).

Definition at line 117 of file bit-set.hpp.

## BitSet() [5/6]

template<class IndexType>

Gecode::Int::Extensional::BitSet< IndexType >::BitSet | ( | Space & | home,
|  | const TinyBitSet< 3U > & | tbs )

inline

Initialize during cloning (unused).

Definition at line 122 of file bit-set.hpp.

## BitSet() [6/6]

template<class IndexType>

Gecode::Int::Extensional::BitSet< IndexType >::BitSet | ( | Space & | home,
|  | const TinyBitSet< 4U > & | tbs )

inline

Initialize during cloning (unused).

Definition at line 127 of file bit-set.hpp.

## Member Function Documentation

## replace_and_decrease()

template<class IndexType>

void Gecode::Int::Extensional::BitSet< IndexType >::replace_and_decrease | ( | IndexType | i,
|  | BitSetData | w )

inline protected

Replace the i th word with w, decrease limit if w is zero.

Definition at line 133 of file bit-set.hpp.

## limit()

template<class IndexType>

unsigned int Gecode::Int::Extensional::BitSet< IndexType >::limit | ( | void |  | ) | const

inline

Get the limit.

Definition at line 42 of file bit-set.hpp.

## empty()

template<class IndexType>

bool Gecode::Int::Extensional::BitSet< IndexType >::empty | ( | void |  | ) | const

inline

Check whether the set is empty.

Definition at line 48 of file bit-set.hpp.

## flush()

template<class IndexType>

void Gecode::Int::Extensional::BitSet< IndexType >::flush | ( | void |  | ) |

inline

Make the set empty.

Definition at line 105 of file bit-set.hpp.

## width()

template<class IndexType>

unsigned int Gecode::Int::Extensional::BitSet< IndexType >::width | ( | void |  | ) | const

inline

Return the highest active index.

Definition at line 66 of file bit-set.hpp.

## clear_mask()

template<class IndexType>

void Gecode::Int::Extensional::BitSet< IndexType >::clear_mask | ( | BitSetData * | mask | ) | const

inline

Clear the first limit words in mask.

Definition at line 149 of file bit-set.hpp.

## add_to_mask()

template<class IndexType>

void Gecode::Int::Extensional::BitSet< IndexType >::add_to_mask | ( | const BitSetData * | b,
|  | BitSetData * | mask ) const

inline

Add to mask.

Definition at line 159 of file bit-set.hpp.

## intersect_with_mask()

template<class IndexType>
template<bool sparse>

void Gecode::Int::Extensional::BitSet< IndexType >::intersect_with_mask | ( | const BitSetData * | mask | ) |

inline

Intersect with mask, sparse mask if sparse is true.

Definition at line 168 of file bit-set.hpp.

## intersect_with_masks()

template<class IndexType>

void Gecode::Int::Extensional::BitSet< IndexType >::intersect_with_masks | ( | const BitSetData * | a,
|  | const BitSetData * | b )

inline

Intersect with the "or" of and b.

Definition at line 191 of file bit-set.hpp.

## intersects()

template<class IndexType>

bool Gecode::Int::Extensional::BitSet< IndexType >::intersects | ( | const BitSetData * | b | ) | const

inline

Check if has a non-empty intersection with the set.

Definition at line 219 of file bit-set.hpp.

## nand_with_mask()

template<class IndexType>

void Gecode::Int::Extensional::BitSet< IndexType >::nand_with_mask | ( | const BitSetData * | b | ) |

inline

Perform "nand" with b.

Definition at line 207 of file bit-set.hpp.

## ones() [1/2]

template<class IndexType>

unsigned long long int Gecode::Int::Extensional::BitSet< IndexType >::ones | ( | void |  | ) | const

inline

Return the number of ones.

Definition at line 238 of file bit-set.hpp.

## ones() [2/2]

template<class IndexType>

unsigned long long int Gecode::Int::Extensional::BitSet< IndexType >::ones | ( | const BitSetData * | b | ) | const

inline

Return the number of ones after intersection with b.

Definition at line 228 of file bit-set.hpp.

## bits()

template<class IndexType>

unsigned long long int Gecode::Int::Extensional::BitSet< IndexType >::bits | ( | void |  | ) | const

inline

Return an upper bound on the number of bits.

Definition at line 247 of file bit-set.hpp.

## words()

template<class IndexType>

unsigned int Gecode::Int::Extensional::BitSet< IndexType >::words | ( | void |  | ) | const

inline

Return the number of required bit set words.

Definition at line 54 of file bit-set.hpp.

## size()

template<class IndexType>

unsigned int Gecode::Int::Extensional::BitSet< IndexType >::size | ( | void |  | ) | const

inline

Return the number of required bit set words.

Definition at line 60 of file bit-set.hpp.

## Member Data Documentation

## _limit

template<class IndexType>

IndexType Gecode::Int::Extensional::BitSet< IndexType >::_limit

protected

Limit.

Definition at line 240 of file extensional.hh.

## _index

template<class IndexType>

IndexType* Gecode::Int::Extensional::BitSet< IndexType >::_index

protected

Indices.

Definition at line 242 of file extensional.hh.

## _bits

template<class IndexType>

BitSetData* Gecode::Int::Extensional::BitSet< IndexType >::_bits

protected

Words.

Definition at line 244 of file extensional.hh.

The documentation for this class was generated from the following files:

- gecode/int/extensional.hh
- gecode/int/extensional/bit-set.hpp