Elm  1.0
ELM is a library providing generic data structures, OS-independent interface, plugins and XML.
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
elm::WAHVector Class Reference

#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
 
WAHVectoroperator= (const WAHVector &vec)
 
WAHVectoroperator|= (const WAHVector &vec)
 
WAHVectoroperator&= (const WAHVector &vec)
 
WAHVectoroperator+= (const WAHVector &vec)
 
WAHVectoroperator*= (const WAHVector &vec)
 
WAHVectoroperator-= (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
 

Detailed Description

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.

Member Typedef Documentation

Constructor & Destructor Documentation

elm::WAHVector::WAHVector ( void  )

Referenced by __size().

elm::WAHVector::WAHVector ( int  size,
bool  init = false 
)

Build a bit of the given size bits.

Parameters
sizeSize in bits of the vector.
initInitial value.

References elm::div(), and elm::fill().

elm::WAHVector::WAHVector ( const WAHVector v)

Build a WAHVector by cloning the given one.

Parameters
vVector to clone.

References elm::array::copy().

elm::WAHVector::~WAHVector ( void  )

Member Function Documentation

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.

Parameters
indexIndex of the tested bit.
Returns
Value of the bit.

References elm::mod().

Referenced by elm::WAHVector::Bit::operator bool(), and operator[]().

void elm::WAHVector::clear ( int  index)

Clear a bit.

Parameters
indexIndex of the bit.

References elm::div(), elm::fill(), elm::lite(), and elm::mod().

void elm::WAHVector::clear ( void  )

Set all vector bits to 0.

References elm::div(), and elm::fill().

Referenced by set().

void elm::WAHVector::copy ( const WAHVector v)

Copy the given vector into the current one.

Parameters
vVector 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.

Returns
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.

Parameters
vVector to compare with.
Returns
True if both vectors are equal, false else.

Referenced by includesStrictly(), operator!=(), and operator==().

bool elm::WAHVector::includes ( const WAHVector vec) const

Test if the current vector includes the given one.

Parameters
vecVector to include.
Returns
True if the current vector includes the given one.

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.

Parameters
vecVector to include.
Returns
True if the current vector includes the given one.

References equals(), and includes().

Referenced by operator<(), and operator>().

bool elm::WAHVector::isEmpty ( void  ) const

Test if all bits are at 0

Returns
True if all bits are at 0, false else.

References elm::isZeroes().

bool elm::WAHVector::isFull ( void  ) const

Test if all bits are at 1

Returns
True if all bits are at 1, false else.

References elm::isOnes().

WAHVector elm::WAHVector::makeAnd ( const WAHVector v) const

Referenced by operator&(), and operator*().

WAHVector elm::WAHVector::makeNot ( void  ) const

Referenced by operator~().

WAHVector elm::WAHVector::makeOr ( const WAHVector v) const

Referenced by operator+(), and operator|().

WAHVector elm::WAHVector::makeReset ( const WAHVector v) const

Referenced by operator-().

bool elm::WAHVector::operator!= ( const WAHVector v)

References equals().

WAHVector elm::WAHVector::operator& ( const WAHVector vec) const

References makeAnd().

WAHVector& elm::WAHVector::operator&= ( const WAHVector vec)

References applyAnd().

WAHVector elm::WAHVector::operator* ( const WAHVector vec) const

References makeAnd().

WAHVector& elm::WAHVector::operator*= ( const WAHVector vec)

References applyAnd().

WAHVector elm::WAHVector::operator+ ( const WAHVector vec) const

References makeOr().

WAHVector& elm::WAHVector::operator+= ( const WAHVector vec)

References applyOr().

WAHVector elm::WAHVector::operator- ( const WAHVector vec) const

References makeReset().

WAHVector& elm::WAHVector::operator-= ( const WAHVector vec)

References applyReset().

bool elm::WAHVector::operator< ( const WAHVector vec) const

References includesStrictly().

bool elm::WAHVector::operator<= ( const WAHVector vec) const

References includes().

WAHVector& elm::WAHVector::operator= ( const WAHVector vec)

References copy().

bool elm::WAHVector::operator== ( const WAHVector v)

References equals().

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)
WAHVector elm::WAHVector::operator| ( const WAHVector vec) const

References makeOr().

WAHVector& elm::WAHVector::operator|= ( const WAHVector vec)

References applyOr().

WAHVector elm::WAHVector::operator~ ( void  ) const

References makeNot().

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.

Returns
Number of zeroes. Set a bit.
Parameters
indexIndex 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.

Returns
Number of bits.

References elm::times().

Referenced by countZeroes().


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