Elm
1.0
ELM is a library providing generic data structures, OS-independent interface, plugins and XML.
|
#include <elm/util/WAHVector.h>
Classes | |
class | Bit |
Public Types | |
typedef t::uint32 | word_t |
Public Member Functions | |
WAHVector (void) | |
WAHVector (int _size, bool init=false) | |
WAHVector (const WAHVector &v) | |
~WAHVector (void) | |
bool | bit (int index) const |
bool | isEmpty (void) const |
bool | isFull (void) const |
bool | equals (const WAHVector &vec) const |
bool | includes (const WAHVector &vec) const |
bool | includesStrictly (const WAHVector &vec) const |
int | size (void) const |
int | countBits (void) const |
int | countOnes (void) const |
int | countZeroes (void) const |
void | set (int index, bool value) |
void | set (int index) |
void | clear (int index) |
void | set (void) |
void | clear (void) |
void | copy (const WAHVector &v) |
void | applyAnd (const WAHVector &v) |
WAHVector | makeAnd (const WAHVector &v) const |
void | applyOr (const WAHVector &v) |
WAHVector | makeOr (const WAHVector &v) const |
void | applyReset (const WAHVector &v) |
WAHVector | makeReset (const WAHVector &v) const |
void | applyNot (void) |
WAHVector | makeNot (void) const |
bool | operator[] (int i) const |
Bit | operator[] (int i) |
WAHVector | operator~ (void) const |
WAHVector | operator| (const WAHVector &vec) const |
WAHVector | operator& (const WAHVector &vec) const |
WAHVector | operator+ (const WAHVector &vec) const |
WAHVector | operator* (const WAHVector &vec) const |
WAHVector | operator- (const WAHVector &vec) const |
WAHVector & | operator= (const WAHVector &vec) |
WAHVector & | operator|= (const WAHVector &vec) |
WAHVector & | operator&= (const WAHVector &vec) |
WAHVector & | operator+= (const WAHVector &vec) |
WAHVector & | operator*= (const WAHVector &vec) |
WAHVector & | operator-= (const WAHVector &vec) |
bool | operator== (const WAHVector &v) |
bool | operator!= (const WAHVector &v) |
bool | operator< (const WAHVector &vec) const |
bool | operator<= (const WAHVector &vec) const |
bool | operator> (const WAHVector &vec) const |
bool | operator>= (const WAHVector &vec) const |
void | __dump (io::Output &out) const |
int | __size (void) const |
WAHVector is an implementation of bit vector (like elm::BitVector) whose tradeoff has been moved towards a more compact internal representation. Algorithms of WAHVector are a C++ adaptation of:
Wu, K., Otoo, E. J., & Shoshani, A. (2002). Compressing bitmap indexes for faster search operations. Proceedings. 14th International Conference on Scientific and Statistical Database Management (pp. 99-108), IEEE, 2002.
typedef t::uint32 elm::WAHVector::word_t |
elm::WAHVector::WAHVector | ( | void | ) |
Referenced by __size().
elm::WAHVector::WAHVector | ( | int | size, |
bool | init = false |
||
) |
Build a bit of the given size bits.
size | Size in bits of the vector. |
init | Initial value. |
References elm::div(), and elm::fill().
elm::WAHVector::WAHVector | ( | const WAHVector & | v | ) |
Build a WAHVector by cloning the given one.
v | Vector to clone. |
References elm::array::copy().
elm::WAHVector::~WAHVector | ( | void | ) |
void elm::WAHVector::__dump | ( | io::Output & | out | ) | const |
References elm::io::hex().
Referenced by elm::operator<<().
int elm::WAHVector::__size | ( | void | ) | const |
References WAHVector().
void elm::WAHVector::applyAnd | ( | const WAHVector & | v | ) |
Referenced by operator&=(), and operator*=().
void elm::WAHVector::applyNot | ( | void | ) |
void elm::WAHVector::applyOr | ( | const WAHVector & | v | ) |
Referenced by operator+=(), and operator|=().
void elm::WAHVector::applyReset | ( | const WAHVector & | v | ) |
Referenced by operator-=().
bool elm::WAHVector::bit | ( | int | index | ) | const |
Test if a bit has for value one.
index | Index of the tested bit. |
References elm::mod().
Referenced by elm::WAHVector::Bit::operator bool(), and operator[]().
void elm::WAHVector::clear | ( | int | index | ) |
Clear a bit.
index | Index of the bit. |
References elm::div(), elm::fill(), elm::lite(), and elm::mod().
void elm::WAHVector::clear | ( | void | ) |
void elm::WAHVector::copy | ( | const WAHVector & | v | ) |
Copy the given vector into the current one.
v | Vector to copy. |
References elm::array::copy().
Referenced by operator=().
int elm::WAHVector::countBits | ( | void | ) | const |
Same as countBits().
References countOnes().
int elm::WAHVector::countOnes | ( | void | ) | const |
Count the number of bits to 1.
References elm::mask(), elm::ones(), and elm::times().
Referenced by countBits(), and countZeroes().
int elm::WAHVector::countZeroes | ( | void | ) | const |
References countOnes(), and size().
bool elm::WAHVector::equals | ( | const WAHVector & | vec | ) | const |
Test if both vectors are equal.
v | Vector to compare with. |
Referenced by includesStrictly(), operator!=(), and operator==().
bool elm::WAHVector::includes | ( | const WAHVector & | vec | ) | const |
Test if the current vector includes the given one.
vec | Vector to include. |
References elm::min().
Referenced by includesStrictly(), operator<=(), and operator>=().
bool elm::WAHVector::includesStrictly | ( | const WAHVector & | vec | ) | const |
Test if the current vector includes strictly the given one.
vec | Vector to include. |
References equals(), and includes().
Referenced by operator<(), and operator>().
bool elm::WAHVector::isEmpty | ( | void | ) | const |
bool elm::WAHVector::isFull | ( | void | ) | const |
Referenced by operator&(), and operator*().
WAHVector elm::WAHVector::makeNot | ( | void | ) | const |
Referenced by operator~().
Referenced by operator+(), and operator|().
Referenced by operator-().
References applyAnd().
References applyAnd().
References makeReset().
References applyReset().
bool elm::WAHVector::operator< | ( | const WAHVector & | vec | ) | const |
References includesStrictly().
bool elm::WAHVector::operator<= | ( | const WAHVector & | vec | ) | const |
References includes().
bool elm::WAHVector::operator> | ( | const WAHVector & | vec | ) | const |
References includesStrictly().
bool elm::WAHVector::operator>= | ( | const WAHVector & | vec | ) | const |
References includes().
bool elm::WAHVector::operator[] | ( | int | i | ) | const |
References bit().
Bit elm::WAHVector::operator[] | ( | int | i | ) |
void elm::WAHVector::set | ( | int | index, |
bool | value | ||
) |
References clear(), and set().
Referenced by elm::WAHVector::Bit::operator=(), and set().
void elm::WAHVector::set | ( | int | index | ) |
int WAHVector::countZeroes(void) const; Count the number of zeroes in the bit vector.
index | Index of the bit. |
References elm::div(), elm::fill(), elm::lite(), and elm::mod().
void elm::WAHVector::set | ( | void | ) |
Set all vector bits to 1.
References elm::div(), and elm::fill().
int elm::WAHVector::size | ( | void | ) | const |
Compute the number of bits in the vector.
References elm::times().
Referenced by countZeroes().