RDKit
Open-source cheminformatics and machine learning.
Loading...
Searching...
No Matches
ExplicitBitVect Class Reference

a class for bit vectors that are densely occupied More...

#include <ExplicitBitVect.h>

Inheritance diagram for ExplicitBitVect:
BitVect

Public Member Functions

 ExplicitBitVect ()
 
 ExplicitBitVect (unsigned int size)
 initialize with a particular size;
 
 ExplicitBitVect (unsigned int size, bool bitsSet)
 initialize with a particular size and all bits set
 
 ExplicitBitVect (const ExplicitBitVect &other)
 
 ExplicitBitVect (ExplicitBitVect &&other) noexcept
 
 ExplicitBitVect (const std::string &pkl)
 construct from a string pickle
 
 ExplicitBitVect (const char *, const unsigned int)
 construct from a text pickle
 
 ExplicitBitVect (boost::dynamic_bitset<> *bits)
 
 ~ExplicitBitVect () override
 
ExplicitBitVectoperator= (const ExplicitBitVect &other)
 
ExplicitBitVectoperator= (ExplicitBitVect &&other) noexcept
 
bool operator[] (const unsigned int which) const override
 
bool setBit (const unsigned int which) override
 sets a particular bit and returns its original value
 
bool unsetBit (const unsigned int which) override
 unsets a particular bit and returns its original value
 
bool getBit (const unsigned int which) const override
 returns the value of a particular bit
 
ExplicitBitVect operator^ (const ExplicitBitVect &other) const
 
ExplicitBitVect operator& (const ExplicitBitVect &other) const
 
ExplicitBitVect operator| (const ExplicitBitVect &other) const
 
ExplicitBitVect operator~ () const
 
ExplicitBitVect operator+ (const ExplicitBitVect &other) const
 
ExplicitBitVectoperator^= (const ExplicitBitVect &other)
 
ExplicitBitVectoperator&= (const ExplicitBitVect &other)
 
ExplicitBitVectoperator|= (const ExplicitBitVect &other)
 
ExplicitBitVectoperator+= (const ExplicitBitVect &other)
 
unsigned int getNumBits () const override
 returns the number of bits (the length of the BitVect)
 
unsigned int getNumOnBits () const override
 returns the number of on bits
 
unsigned int getNumOffBits () const override
 returns the number of off bits
 
void getOnBits (IntVect &v) const override
 replaces the contents of v with indices of our on bits
 
void clearBits () override
 clears (sets to off) all of our bits
 
std::string toString () const override
 returns a serialized (pickled) version of this BitVect
 
bool operator== (const ExplicitBitVect &o) const
 
bool operator!= (const ExplicitBitVect &o) const
 
- Public Member Functions inherited from BitVect
virtual ~BitVect ()=0
 
void initFromText (const char *data, const unsigned int dataLen, bool isBase64=false, bool allowOldFormat=false)
 initializes this BitVect from a pickle
 
unsigned int size () const
 

Public Attributes

std::unique_ptr< boost::dynamic_bitset<> > dp_bits
 our raw storage
 

Detailed Description

a class for bit vectors that are densely occupied

ExplicitBitVect objects store all of their bits using a boost::dynamic_bitset

These are very fast, but can require large amounts of memory for large, sparsely occupied vectors.

Definition at line 29 of file ExplicitBitVect.h.

Constructor & Destructor Documentation

◆ ExplicitBitVect() [1/8]

ExplicitBitVect::ExplicitBitVect ( )
inline

Definition at line 31 of file ExplicitBitVect.h.

◆ ExplicitBitVect() [2/8]

ExplicitBitVect::ExplicitBitVect ( unsigned int  size)
inlineexplicit

initialize with a particular size;

Definition at line 33 of file ExplicitBitVect.h.

◆ ExplicitBitVect() [3/8]

ExplicitBitVect::ExplicitBitVect ( unsigned int  size,
bool  bitsSet 
)

initialize with a particular size and all bits set

◆ ExplicitBitVect() [4/8]

ExplicitBitVect::ExplicitBitVect ( const ExplicitBitVect other)

◆ ExplicitBitVect() [5/8]

ExplicitBitVect::ExplicitBitVect ( ExplicitBitVect &&  other)
noexcept

◆ ExplicitBitVect() [6/8]

ExplicitBitVect::ExplicitBitVect ( const std::string &  pkl)

construct from a string pickle

◆ ExplicitBitVect() [7/8]

ExplicitBitVect::ExplicitBitVect ( const char *  ,
const unsigned int   
)

construct from a text pickle

◆ ExplicitBitVect() [8/8]

ExplicitBitVect::ExplicitBitVect ( boost::dynamic_bitset<> *  bits)
inline

construct directly from a dynamic_bitset pointer takes ownership of the pointer

Definition at line 47 of file ExplicitBitVect.h.

◆ ~ExplicitBitVect()

ExplicitBitVect::~ExplicitBitVect ( )
override

Member Function Documentation

◆ clearBits()

void ExplicitBitVect::clearBits ( )
inlineoverridevirtual

clears (sets to off) all of our bits

Implements BitVect.

Definition at line 80 of file ExplicitBitVect.h.

◆ getBit()

bool ExplicitBitVect::getBit ( const unsigned int  which) const
overridevirtual

returns the value of a particular bit

Implements BitVect.

◆ getNumBits()

unsigned int ExplicitBitVect::getNumBits ( ) const
overridevirtual

returns the number of bits (the length of the BitVect)

Implements BitVect.

◆ getNumOffBits()

unsigned int ExplicitBitVect::getNumOffBits ( ) const
overridevirtual

returns the number of off bits

Implements BitVect.

◆ getNumOnBits()

unsigned int ExplicitBitVect::getNumOnBits ( ) const
overridevirtual

returns the number of on bits

Implements BitVect.

◆ getOnBits()

void ExplicitBitVect::getOnBits ( IntVect v) const
overridevirtual

replaces the contents of v with indices of our on bits

Implements BitVect.

◆ operator!=()

bool ExplicitBitVect::operator!= ( const ExplicitBitVect o) const
inline

Definition at line 89 of file ExplicitBitVect.h.

References dp_bits.

◆ operator&()

ExplicitBitVect ExplicitBitVect::operator& ( const ExplicitBitVect other) const

◆ operator&=()

ExplicitBitVect & ExplicitBitVect::operator&= ( const ExplicitBitVect other)

◆ operator+()

ExplicitBitVect ExplicitBitVect::operator+ ( const ExplicitBitVect other) const

◆ operator+=()

ExplicitBitVect & ExplicitBitVect::operator+= ( const ExplicitBitVect other)

◆ operator=() [1/2]

ExplicitBitVect & ExplicitBitVect::operator= ( const ExplicitBitVect other)

◆ operator=() [2/2]

ExplicitBitVect & ExplicitBitVect::operator= ( ExplicitBitVect &&  other)
noexcept

◆ operator==()

bool ExplicitBitVect::operator== ( const ExplicitBitVect o) const
inline

Definition at line 86 of file ExplicitBitVect.h.

References dp_bits.

◆ operator[]()

bool ExplicitBitVect::operator[] ( const unsigned int  which) const
overridevirtual

Implements BitVect.

◆ operator^()

ExplicitBitVect ExplicitBitVect::operator^ ( const ExplicitBitVect other) const

◆ operator^=()

ExplicitBitVect & ExplicitBitVect::operator^= ( const ExplicitBitVect other)

◆ operator|()

ExplicitBitVect ExplicitBitVect::operator| ( const ExplicitBitVect other) const

◆ operator|=()

ExplicitBitVect & ExplicitBitVect::operator|= ( const ExplicitBitVect other)

◆ operator~()

ExplicitBitVect ExplicitBitVect::operator~ ( ) const

◆ setBit()

bool ExplicitBitVect::setBit ( const unsigned int  which)
overridevirtual

sets a particular bit and returns its original value

Implements BitVect.

Referenced by RDInfoTheory::BitCorrMatGenerator::collectVotes().

◆ toString()

std::string ExplicitBitVect::toString ( ) const
overridevirtual

returns a serialized (pickled) version of this BitVect

Implements BitVect.

◆ unsetBit()

bool ExplicitBitVect::unsetBit ( const unsigned int  which)
overridevirtual

unsets a particular bit and returns its original value

Implements BitVect.

Member Data Documentation

◆ dp_bits

std::unique_ptr<boost::dynamic_bitset<> > ExplicitBitVect::dp_bits
Initial value:
{
nullptr}

our raw storage

Definition at line 83 of file ExplicitBitVect.h.

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


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