casacore
|
Bit vectors of any size. More...
#include <BitVector.h>
Public Member Functions | |
BitVector () | |
Create a bit vector of length 0. More... | |
BitVector (uInt length, Bool state) | |
Create a bit vector with length bits and set all bits to to the specified state. More... | |
BitVector (const BitVector &that) | |
Copy constructor (copy semantics). More... | |
~BitVector () | |
Delete the bit vector. More... | |
BitVector & | operator= (const BitVector &that) |
Assignment (copy semantics). More... | |
BitVector & | operator= (Bool state) |
Set all bits to the given state. More... | |
uInt | nbits () const |
Return the number of bits in the bitvector. More... | |
void | setBit (uInt pos) |
Set a bit at the given position (0-relative). More... | |
void | clearBit (uInt pos) |
Clear a bit at the given position (0-relative). More... | |
Bool | toggleBit (uInt pos) |
Toggle a bit at the given position (0-relative). More... | |
Bool | getBit (uInt pos) const |
Get a bit at the given position (0-relative). More... | |
void | putBit (uInt pos, Bool state) |
Set a bit at the given position (0-relative) to the given state. More... | |
Bool | operator[] (uInt pos) const |
Index operator to access the specified bit. More... | |
BitVectorHelper | operator[] (uInt pos) |
BitVector | operator& (const BitVector &that) const |
Logical operations on whole bit vectors. More... | |
BitVector | operator| (const BitVector &that) const |
BitVector | operator^ (const BitVector &that) const |
BitVector | operator~ () const |
void | operator&= (const BitVector &that) |
Logical in-place operations on whole bit vectors. More... | |
void | operator|= (const BitVector &that) |
void | operator^= (const BitVector &that) |
void | reverse () |
Bool | operator== (const BitVector &that) const |
Returns True if all bits are equal. More... | |
Bool | operator!= (const BitVector &that) const |
Returns True if a bit differs. More... | |
void | resize (uInt length, Bool state=False, Bool copy=True) |
Resize the bit vector to the new length. More... | |
void | set (Bool state) |
Set all bits of the bit vector to the specified state. More... | |
void | set (uInt start, uInt length, Bool state) |
Set length bits starting at the start position (0-relative) to the given state. More... | |
void | copy (uInt thisStart, uInt length, const BitVector &that, uInt thatStart) |
Copy length bits starting at thatStart in the other BitVector to this BitVector starting at thisStart. More... | |
Private Attributes | |
uInt | size_p |
Number of bits in the BitVector object. More... | |
Block< uInt > | bits_p |
Pointer to the actual bit vector, stored as a contiguous sequence of one or more unsigned integers. More... | |
Friends | |
class | BitVectorHelper |
BitVectorHelper is a helper class. More... | |
ostream & | operator<< (ostream &, const BitVector &vector) |
Write a representation of the bit vector (a list of zeros and ones enclosed in square parentheses) to ostream. More... | |
Bit vectors of any size.
Public interface
A variable utilized as a discrete collection of bits is referred to as a bit vector.
Bit vectors are an efficent method of keeping True/False information on a set of items or conditions. Class BitVector provides functions to manipulate individual bits in the vector and to perform logical operations on whole bit vectors.
Definition at line 112 of file BitVector.h.
casacore::BitVector::BitVector | ( | ) |
Create a bit vector of length 0.
Create a bit vector with length
bits and set all bits to to the specified state.
casacore::BitVector::BitVector | ( | const BitVector & | that | ) |
Copy constructor (copy semantics).
casacore::BitVector::~BitVector | ( | ) |
Delete the bit vector.
|
inline |
Clear a bit at the given position (0-relative).
In debug-mode an exception is thrown when the position is invalid.
Definition at line 290 of file BitVector.h.
References bits_p, DebugAssert, size_p, and casacore::WORDSIZE.
Get a bit at the given position (0-relative).
In debug-mode an exception is thrown when the position is invalid.
Referenced by operator[]().
|
inline |
Return the number of bits in the bitvector.
Definition at line 302 of file BitVector.h.
References size_p.
Returns True if a bit differs.
An exception is thrown if the lengths of the vectors differ.
Logical operations on whole bit vectors.
The binary operators &
(bitwise AND), |
(bitwise OR) and ^
(bitwise XOR), and the unary operator ~
(bitwise NOT) are provided. An exception is thrown if the lengths of the vectors differ.
void casacore::BitVector::operator&= | ( | const BitVector & | that | ) |
Logical in-place operations on whole bit vectors.
The binary operators &
(bitwise AND), |
(bitwise OR) and ^
(bitwise XOR), and the unary operator reverse
(bitwise NOT) are provided. An exception is thrown if the lengths of the vectors differ.
Returns True if all bits are equal.
An exception is thrown if the lengths of the vectors differ.
Index operator to access the specified bit.
In debug-mode an exception is thrown when the position is invalid.
Definition at line 297 of file BitVector.h.
References getBit().
|
inline |
Definition at line 313 of file BitVector.h.
References BitVectorHelper.
void casacore::BitVector::operator^= | ( | const BitVector & | that | ) |
void casacore::BitVector::operator|= | ( | const BitVector & | that | ) |
BitVector casacore::BitVector::operator~ | ( | ) | const |
Set a bit at the given position (0-relative) to the given state.
In debug-mode an exception is thrown when the position is invalid.
Referenced by casacore::BitVectorHelper::operator=().
Resize the bit vector to the new length.
By default the original bits are copied. The remaining bits (or all bits in case of no copy) are set the the given state.
void casacore::BitVector::reverse | ( | ) |
void casacore::BitVector::set | ( | Bool | state | ) |
Set all bits of the bit vector to the specified state.
Set length
bits starting at the start position (0-relative) to the given state.
An exception is thrown if start+length exceeds the length of the vector.
|
inline |
Set a bit at the given position (0-relative).
In debug-mode an exception is thrown when the position is invalid.
Definition at line 283 of file BitVector.h.
References bits_p, DebugAssert, size_p, and casacore::WORDSIZE.
Toggle a bit at the given position (0-relative).
It returns the original state. In debug-mode an exception is thrown when the position is invalid.
|
friend |
BitVectorHelper is a helper class.
Definition at line 116 of file BitVector.h.
Referenced by operator[]().
|
friend |
Write a representation of the bit vector (a list of zeros and ones enclosed in square parentheses) to ostream.
Pointer to the actual bit vector, stored as a contiguous sequence of one or more unsigned integers.
Definition at line 231 of file BitVector.h.
Referenced by clearBit(), and setBit().
|
private |
Number of bits in the BitVector object.
Definition at line 227 of file BitVector.h.
Referenced by clearBit(), nbits(), and setBit().