RDKit: SparseBitVect Class Reference

| RDKit Open-source cheminformatics and machine learning.

Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
SparseBitVect Class Reference

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

`#include <SparseBitVect.h>`

Inheritance diagram for SparseBitVect:

## Public Member Functions
| SparseBitVect ()
| SparseBitVect (unsigned int size)
| initialize with a particular size;
| SparseBitVect (const SparseBitVect &other)
| copy constructor
| SparseBitVect (const std::string &pkl)
| construct from a string pickle
| SparseBitVect (const char *data, const unsigned int dataLen)
| construct from a text pickle
SparseBitVect & | operator= (const SparseBitVect &)
| ~SparseBitVect () override
bool | operator[] (const unsigned int which) const override
SparseBitVect | operator| (const SparseBitVect &) const
SparseBitVect | operator& (const SparseBitVect &) const
SparseBitVect | operator^ (const SparseBitVect &) const
SparseBitVect | operator~ () const
const IntSet * | getBitSet () const
| returns a (const) pointer to our raw storage
unsigned int | getNumBits () const override
| returns the number of bits (the length of the BitVect)
bool | setBit (const unsigned int which) override
| sets a particular bit and returns its original value
bool | setBit (const IntSetIter which)
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
bool | getBit (const IntVectIter which) const
bool | getBit (const IntSetIter which) const
unsigned int | getNumOnBits () const override
| returns the number of on bits
unsigned int | getNumOffBits () const override
| returns the number of off bits
std::string | toString () const override
| returns a serialized (pickled) version of this BitVect
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
bool | operator== (const SparseBitVect &o) const
bool | operator!= (const SparseBitVect &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
IntSet * | dp_bits
| our raw data, exposed for the sake of efficiency

## Detailed Description

a class for bit vectors that are sparsely occupied.

SparseBitVect objects store only their on bits, in an std::set.

They are, as you might expect, quite memory efficient for sparsely populated vectors but become rather a nightmare if they need to be negated.

Definition at line 35 of file SparseBitVect.h.

## Constructor & Destructor Documentation

## ◆ SparseBitVect() [1/5]

SparseBitVect::SparseBitVect | ( |  | ) |
| inline

Definition at line 37 of file SparseBitVect.h.

Referenced by operator!=(), operator&(), operator=(), operator==(), operator^(), operator|(), operator~(), and SparseBitVect().

## ◆ SparseBitVect() [2/5]

SparseBitVect::SparseBitVect | ( | unsigned int | size | ) |
| inlineexplicit

initialize with a particular size;

Definition at line 39 of file SparseBitVect.h.

References dp_bits, and BitVect::size().

## ◆ SparseBitVect() [3/5]

SparseBitVect::SparseBitVect | ( | const SparseBitVect & | other | ) |
| inline

copy constructor

Definition at line 44 of file SparseBitVect.h.

References dp_bits, getNumBits(), and SparseBitVect().

## ◆ SparseBitVect() [4/5]

SparseBitVect::SparseBitVect | ( | const std::string & | pkl | ) |

construct from a string pickle

## ◆ SparseBitVect() [5/5]

SparseBitVect::SparseBitVect | ( | const char * | data,
|  | const unsigned int | dataLen )

construct from a text pickle

## ◆ ~SparseBitVect()

SparseBitVect::~SparseBitVect | ( |  | ) |
| inlineoverride

Definition at line 57 of file SparseBitVect.h.

References dp_bits.

## Member Function Documentation

## ◆ clearBits()

void SparseBitVect::clearBits | ( |  | ) |
| inlineoverridevirtual

clears (sets to off) all of our bits

Implements BitVect.

Definition at line 86 of file SparseBitVect.h.

References dp_bits.

## ◆ getBit() [1/3]

bool SparseBitVect::getBit | ( | const IntSetIter | which | ) | const

## ◆ getBit() [2/3]

bool SparseBitVect::getBit | ( | const IntVectIter | which | ) | const

## ◆ getBit() [3/3]

bool SparseBitVect::getBit | ( | const unsigned int | which | ) | const
| overridevirtual

returns the value of a particular bit

Implements BitVect.

## ◆ getBitSet()

const IntSet * SparseBitVect::getBitSet | ( |  | ) | const
| inline

returns a (const) pointer to our raw storage

Definition at line 66 of file SparseBitVect.h.

References dp_bits.

## ◆ getNumBits()

unsigned int SparseBitVect::getNumBits | ( |  | ) | const
| inlineoverridevirtual

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

Implements BitVect.

Definition at line 68 of file SparseBitVect.h.

Referenced by SparseBitVect().

## ◆ getNumOffBits()

unsigned int SparseBitVect::getNumOffBits | ( |  | ) | const
| inlineoverridevirtual

returns the number of off bits

Implements BitVect.

Definition at line 79 of file SparseBitVect.h.

References dp_bits.

## ◆ getNumOnBits()

unsigned int SparseBitVect::getNumOnBits | ( |  | ) | const
| inlineoverridevirtual

returns the number of on bits

Implements BitVect.

Definition at line 76 of file SparseBitVect.h.

References dp_bits.

## ◆ getOnBits()

void SparseBitVect::getOnBits | ( | IntVect & | v | ) | const
| overridevirtual

replaces the contents of `v` with indices of our on bits

Implements BitVect.

## ◆ operator!=()

bool SparseBitVect::operator!= | ( | const SparseBitVect & | o | ) | const
| inline

Definition at line 93 of file SparseBitVect.h.

References dp_bits, and SparseBitVect().

## ◆ operator&()

SparseBitVect SparseBitVect::operator& | ( | const SparseBitVect & |  | ) | const

References SparseBitVect().

## ◆ operator=()

SparseBitVect & SparseBitVect::operator= | ( | const SparseBitVect & |  | ) |

References SparseBitVect().

## ◆ operator==()

bool SparseBitVect::operator== | ( | const SparseBitVect & | o | ) | const
| inline

Definition at line 90 of file SparseBitVect.h.

References dp_bits, and SparseBitVect().

## ◆ operator[]()

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

Implements BitVect.

## ◆ operator^()

SparseBitVect SparseBitVect::operator^ | ( | const SparseBitVect & |  | ) | const

References SparseBitVect().

## ◆ operator|()

SparseBitVect SparseBitVect::operator| | ( | const SparseBitVect & |  | ) | const

References SparseBitVect().

## ◆ operator~()

SparseBitVect SparseBitVect::operator~ | ( |  | ) | const

References SparseBitVect().

## ◆ setBit() [1/2]

bool SparseBitVect::setBit | ( | const IntSetIter | which | ) |

## ◆ setBit() [2/2]

bool SparseBitVect::setBit | ( | const unsigned int | which | ) |
| overridevirtual

sets a particular bit and returns its original value

Implements BitVect.

## ◆ toString()

std::string SparseBitVect::toString | ( |  | ) | const
| overridevirtual

returns a serialized (pickled) version of this BitVect

Implements BitVect.

## ◆ unsetBit()

bool SparseBitVect::unsetBit | ( | const unsigned int | which | ) |
| overridevirtual

unsets a particular bit and returns its original value

Implements BitVect.

## Member Data Documentation

## ◆ dp_bits

IntSet* SparseBitVect::dp_bits

Initial value:
{
nullptr}

our raw data, exposed for the sake of efficiency

Definition at line 87 of file SparseBitVect.h.

Referenced by clearBits(), getBitSet(), getNumOffBits(), getNumOnBits(), operator!=(), operator==(), SparseBitVect(), SparseBitVect(), and ~SparseBitVect().

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

- SparseBitVect.h