BALL
1.4.2
|
#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. More... | |
bool | operator!= (const BitVector &bit_vector) const |
Inequality operator. More... | |
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 |
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. 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 |
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 |
VectorType& BALL::BitVector::getBitSet | ( | ) |
Return a muteable pointer to the values of this instance.
const VectorType& BALL::BitVector::getBitSet | ( | ) | const |
Return a constant 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 |
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 |
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 |
Assignment from an other BitVector instance.
Exception::OutOfMemory | if a BitVector with the appropriate size could not be allocated |
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 |
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 |
Constant random access to the components. If the given index is greater than the size of this instance an exception is thrown.
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 |
Read the values of of type bool from an istream.
Exception::OutOfMemory | if a BitVector with the appropriate size could not be allocated |
|
virtual |
Storable read method.
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 |
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 |
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 |
|
protected |
|
protected |
|
virtual |
Write the values of of type bool to an ostream.
|
virtual |
Storable write method.
|
friend |
Output operator. Writes the values of type bool to an ostream.
|
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 |
|
private |
Definition at line 588 of file bitVector.h.
|
static |
Definition at line 192 of file bitVector.h.
|
private |
Definition at line 587 of file bitVector.h.