#include <BALL/DATATYPE/bitVector.h>
Public Member Functions | |
Constructors and Destructors | |
BitVector () | |
BitVector (Size size) | |
BitVector (const BitVector &bit_vector) | |
BitVector (const char *bit_string) | |
virtual | ~BitVector () |
void | clear () |
Assignment | |
void | set (const BitVector &bit_vector) |
void | set (const char *bit_string) |
BitVector & | operator= (const BitVector &bit_vector) |
BitVector & | operator= (const char *bit_string) |
void | get (BitVector &bitvector) const |
Accessors | |
BitVector | operator() (Index first, Index last) const |
void | setSize (Size size, bool keep=true) |
Size | getSize () const |
Size | countValue (bool value) const |
VectorType & | getBitSet () |
const VectorType & | getBitSet () const |
Bit | operator[] (Index index) |
bool | operator[] (Index index) const |
void | setBit (Index index, bool value=true) |
bool | getBit (Index index) |
bool | getBit (Index index) const |
void | toggleBit (Index index) |
void | fill (bool value=true, Index first=0, Index last=-1) |
void | toggle (Index first=0, Index last=-1) |
void | setUnsignedChar (unsigned char bit_pattern) |
unsigned char | getUnsignedChar () const |
void | setUnsignedShort (unsigned short bit_pattern) |
unsigned short | getUnsignedShort () const |
void | setUnsignedInt (unsigned int bit_pattern) |
unsigned int | getUnsignedInt () const |
void | setUnsignedLong (unsigned long bit_pattern) |
unsigned long | getUnsignedLong () const |
void | bitwiseOr (const BitVector &bit_vector) |
void | bitwiseXor (const BitVector &bit_vector) |
void | bitwiseAnd (const BitVector &bit_vector) |
BitVector | operator| (const BitVector &bit_vector) |
BitVector & | operator|= (const BitVector &bit_vector) |
BitVector | operator& (const BitVector &bit_vector) |
BitVector & | operator&= (const BitVector &bit_vector) |
BitVector | operator^ (const BitVector &bit_vector) |
BitVector & | operator^= (const BitVector &bit_vector) |
BitVector | operator~ () |
Predicates | |
bool | operator== (const BitVector &bit_vector) const |
Equality operator. | |
bool | operator!= (const BitVector &bit_vector) const |
Inequality operator. | |
bool | isAnyBit (bool value, Index first=0, Index last=-1) const |
bool | isEveryBit (bool value, Index first=0, Index last=-1) const |
Debugging and Diagnostics | |
bool | isValid () const |
Protected Member Functions | |
void | validateIndex_ (Index &index) |
void | validateIndex_ (Index &index) const |
void | validateRange_ (Index &first, Index &last) const |
Private Member Functions | |
Index | block_ (Index index) |
Index | block_ (Index index) const |
BlockType | mask_ (Index index) const |
Private Attributes | |
Size | size_ |
VectorType | bitset_ |
Type Definitions and Constants | |
| |
typedef unsigned char | BlockType |
typedef std::vector< BlockType > | VectorType |
static const Size | BlockSize |
Storers | |
| |
virtual void | read (std::istream &s) |
virtual void | write (std::ostream &s) const |
virtual void | write (PersistenceManager &pm) const |
virtual bool | read (PersistenceManager &pm) |
BALL_EXPORT friend std::istream & | operator>> (std::istream &s, BitVector &bit_vector) |
BALL_EXPORT friend std::ostream & | operator<< (std::ostream &s, const BitVector &bit_vector) |
Bit vector class. Indices may be given as negative arguments: start from the end -1 therefore means the last bit. Some functions resize the instance if a index greater than the size of the instance is given. Other functions throw exception in this case.
Definition at line 176 of file bitVector.h.
typedef unsigned char BALL::BitVector::BlockType |
Definition at line 188 of file bitVector.h.
typedef std::vector<BlockType> BALL::BitVector::VectorType |
Definition at line 190 of file bitVector.h.
BALL::BitVector::BitVector | ( | ) |
Default constructor
BALL::BitVector::BitVector | ( | Size | size | ) |
Detailed constructor
Exception::OutOfMemory | if a BitVector with length size could not be allocated |
BALL::BitVector::BitVector | ( | const BitVector & | bit_vector | ) |
Copy constructor
Exception::OutOfMemory | if a BitVector with the appropriate size could not be allocated |
BALL::BitVector::BitVector | ( | const char * | bit_string | ) |
Detailled constructor from an array of char. {Caveat:} the array of char has to be zero-terminated!
Exception::OutOfMemory | if a BitVector with the appropriate size could not be allocated |
virtual BALL::BitVector::~BitVector | ( | ) | [virtual] |
Destructor
void BALL::BitVector::bitwiseAnd | ( | const BitVector & | bit_vector | ) |
Compute {this and bit_vector}. The result is saved in this instance.
Exception::OutOfMemory |
void BALL::BitVector::bitwiseOr | ( | const BitVector & | bit_vector | ) |
Compute {this or bit_vector}. The result is saved in this instance.
Exception::OutOfMemory |
void BALL::BitVector::bitwiseXor | ( | const BitVector & | bit_vector | ) |
Compute {this xor bit_vector}. The result is saved in this instance.
Exception::OutOfMemory |
void BALL::BitVector::clear | ( | ) |
Clear method. This method will set the size of this instance to 0.
Count a given bool value in this instance.
value | the value to be counted |
Fill a part of this instance with a given value. If a given index is greater than the size of this instance an exception is thrown.
value | the value to be set | |
first | the starting position | |
last | the last element to be filled |
Exception::IndexUnderflow | ||
Exception::OutOfMemory |
void BALL::BitVector::get | ( | BitVector & | bitvector | ) | const |
Assignment to an other BitVector.
Exception::OutOfMemory | if a BitVector with the appropriate size could not be allocated |
Get the value of an element (const version). If the given index is greater than the size of this instance an exception is thrown. No resizing is done.
index | the index of the element |
Exception::IndexUnderflow | ||
Exception::IndexOverflow |
Get the value of an element. If the given index is greater than the size of this instance, this BitVector is increased to the given index.
index | the index of the element |
Exception::IndexUnderflow | ||
Exception::IndexOverflow |
const VectorType& BALL::BitVector::getBitSet | ( | ) | const |
Return a constant pointer to the values of this instance.
VectorType& BALL::BitVector::getBitSet | ( | ) |
Return a muteable pointer to the values of this instance.
Size BALL::BitVector::getSize | ( | ) | const |
Return the size of this instance.
unsigned char BALL::BitVector::getUnsignedChar | ( | ) | const |
Get the bit pattern as unsigned char. For example: 00010110 => 22.
unsigned int BALL::BitVector::getUnsignedInt | ( | ) | const |
Get the bit pattern as unsigned int.
unsigned long BALL::BitVector::getUnsignedLong | ( | ) | const |
Get the bit pattern as unsigned long.
unsigned short BALL::BitVector::getUnsignedShort | ( | ) | const |
Get the bit pattern as unsigned short.
Test if any bit in a given range has the given value.
value | the value to look for | |
first | the index to start searching | |
last | the index to stop searching |
Exception::IndexUnderflow | ||
Exception::IndexOverflow |
Test if every bit in a given range has the given value
value | the value to look for | |
first | the index to start searching | |
last | the index to stop searching |
Exception::IndexUnderflow | ||
Exception::IndexOverflow |
bool BALL::BitVector::isValid | ( | ) | const |
Test if this instance is valid.
And Operator. Creates a new BitVector object and fills it with the result of {this and bit_Vector}.
Exception::OutOfMemory |
Compute {this and bit_vector}. The result is saved in this instance.
Exception::OutOfMemory |
Return a sub-BitVector. A new BitVector is created and filled with elements of this instance.
first | the index of the first element to be copied | |
last | the index of the last element to be copied |
Exception::IndexUnderflow | ||
Exception::IndexOverflow |
BitVector& BALL::BitVector::operator= | ( | const char * | bit_string | ) |
Assignment from a char string. If a char is different from '0', it is interpreted as true.
Exception::OutOfMemory | if a BitVector with the appropriate size could not be allocated |
Assignment from an other BitVector instance.
Exception::OutOfMemory | if a BitVector with the appropriate size could not be allocated |
Constant random access to the components. If the given index is greater than the size of this instance an exception is thrown.
Exception::IndexUnderflow | ||
Exception::IndexOverflow |
Random access to the components. If the given index is greater than the size of this instance, this BitVector is increased to the given index.
Exception::OutOfMemory | if the bit could not be allocated |
Xor Operator. Creates a new BitVector object and fills it with the result of {this Xor bit_vector}.
Exception::OutOfMemory |
Compute {this xor bit_vector}. The result is saved in this instance.
Exception::OutOfMemory |
Or Operator. Creates a new BitVector object and fills it with the result of {this or bit_Vector}.
Exception::OutOfMemory |
Compute {this or bit_vector}. The result is saved in this instance.
Exception::OutOfMemory |
BitVector BALL::BitVector::operator~ | ( | ) |
Negate Operator. Creates a new BitVector object and fills it with the negate result of this instance.
Exception::OutOfMemory |
virtual bool BALL::BitVector::read | ( | PersistenceManager & | pm | ) | [virtual] |
Storable read method.
Exception::OutOfMemory | if a BitVector with the appropriate size could not be allocated |
virtual void BALL::BitVector::read | ( | std::istream & | s | ) | [virtual] |
Read the values of of type bool from an istream.
Exception::OutOfMemory | if a BitVector with the appropriate size could not be allocated |
void BALL::BitVector::set | ( | const char * | bit_string | ) |
Assignment from a char string. If a char is different from '0', it is interpreted as true. {Caveat:} the array of char has to be zero-terminated!
Exception::OutOfMemory | if a BitVector with the appropriate size could not be allocated |
void BALL::BitVector::set | ( | const BitVector & | bit_vector | ) |
Assignment from an other BitVector instance.
Exception::OutOfMemory | if a BitVector with the appropriate size could not be allocated |
Set the given Bit. The element at the given position is set to the given value. If the given index is greater than the size of this instance, this BitVector is increased to the given index.
index | the index of the element | |
value | the value to be set |
Exception::IndexUnderflow | ||
Exception::IndexOverflow |
Set the size of this instance.
size | the new size | |
keep | ????? |
Exception::OutOfMemory | if a BitVector with the appropriate size could not be allocated |
void BALL::BitVector::setUnsignedChar | ( | unsigned char | bit_pattern | ) |
Set a unsigned char as the bit pattern. For example: 22 => 00010110.
bit_pattern | the new pattern. |
void BALL::BitVector::setUnsignedInt | ( | unsigned int | bit_pattern | ) |
Set a unsigned int as the bit pattern.
void BALL::BitVector::setUnsignedLong | ( | unsigned long | bit_pattern | ) |
Set a unsigned long as the bit pattern.
void BALL::BitVector::setUnsignedShort | ( | unsigned short | bit_pattern | ) |
Set a unsigned short as the bit pattern.
Toggle the values of a part of this instance. If a given index is greater than the size of this instance an exception is thrown.
value | the value to be set | |
first | the starting position | |
last | the last element to be filled |
Exception::IndexUnderflow | ||
Exception::OutOfMemory |
void BALL::BitVector::toggleBit | ( | Index | index | ) |
Toggle the value of an element. If the given index is greater than the size of this instance an exception is thrown.
index | the index of the element |
Exception::IndexUnderflow | ||
Exception::OutOfMemory |
void BALL::BitVector::validateIndex_ | ( | Index & | index | ) | const [protected] |
void BALL::BitVector::validateIndex_ | ( | Index & | index | ) | [protected] |
virtual void BALL::BitVector::write | ( | PersistenceManager & | pm | ) | const [virtual] |
Storable write method.
virtual void BALL::BitVector::write | ( | std::ostream & | s | ) | const [virtual] |
Write the values of of type bool to an ostream.
BALL_EXPORT friend std::ostream& operator<< | ( | std::ostream & | s, | |
const BitVector & | bit_vector | |||
) | [friend] |
Output operator. Writes the values of type bool to an ostream.
BALL_EXPORT friend std::istream& operator>> | ( | std::istream & | s, | |
BitVector & | bit_vector | |||
) | [friend] |
Input operator. Reads the values of type bool from an istream.
Exception::OutOfMemory | if a BitVector with the appropriate size could not be allocated |
VectorType BALL::BitVector::bitset_ [private] |
Definition at line 588 of file bitVector.h.
const Size BALL::BitVector::BlockSize [static] |
Definition at line 192 of file bitVector.h.
Size BALL::BitVector::size_ [private] |
Definition at line 587 of file bitVector.h.