 |
RDKit
Open-source cheminformatics and machine learning.
|
Go to the documentation of this file.
11 #ifndef __RD_DISCRETE_VALUE_VECT_20050124__
12 #define __RD_DISCRETE_VALUE_VECT_20050124__
14 #include <boost/smart_ptr.hpp>
26 typedef boost::shared_array<std::uint32_t>
DATA_SPTR;
39 : d_type(valType), d_length(length) {
40 d_bitsPerVal = (1 <<
static_cast<unsigned int>(valType));
42 d_numInts = (length + d_valsPerInt - 1) / d_valsPerInt;
43 d_mask = ((1 << d_bitsPerVal) - 1);
44 std::uint32_t *data =
new std::uint32_t[d_numInts];
45 memset(
static_cast<void *
>(data), 0, d_numInts *
sizeof(std::uint32_t));
54 initFromText(pkl.c_str(),
static_cast<unsigned int>(pkl.size()));
58 initFromText(pkl, len);
64 unsigned int getVal(
unsigned int i)
const;
67 int operator[](
unsigned int idx)
const {
return getVal(idx); };
74 void setVal(
unsigned int i,
unsigned int val);
82 unsigned int size()
const {
return getLength(); };
125 unsigned int d_bitsPerVal;
126 unsigned int d_valsPerInt;
127 unsigned int d_numInts;
128 unsigned int d_length;
132 void initFromText(
const char *pkl,
const unsigned int len);
DiscreteValueType
used to define the possible range of the values
boost::shared_array< std::uint32_t > DATA_SPTR
DiscreteValueType getValueType() const
return the type of value being stored
DiscreteValueVect & operator+=(const DiscreteValueVect &other)
RDKIT_DATASTRUCTS_EXPORT DiscreteValueVect operator+(const DiscreteValueVect &p1, const DiscreteValueVect &p2)
unsigned int size() const
returns the length
unsigned int getLength() const
returns the length
int operator[](unsigned int idx) const
support indexing using []
RDKIT_DATASTRUCTS_EXPORT unsigned int computeL1Norm(const DiscreteValueVect &v1, const DiscreteValueVect &v2)
const unsigned int BITS_PER_INT
#define RDKIT_DATASTRUCTS_EXPORT
a class for efficiently storing vectors of discrete values
DiscreteValueVect & operator-=(const DiscreteValueVect &other)
unsigned int getNumInts() const
returns the size of our storage
RDKIT_DATASTRUCTS_EXPORT DiscreteValueVect operator-(const DiscreteValueVect &p1, const DiscreteValueVect &p2)
unsigned int getVal(unsigned int i) const
return the value at an index
unsigned int getTotalVal() const
returns the sum of all the elements in the vect
const std::uint32_t * getData() const
return a pointer to our raw data storage
DiscreteValueVect operator&(const DiscreteValueVect &other) const
support dvv3 = dvv1&dvv2
std::string toString() const
returns a binary string representation (pickle)
DiscreteValueVect(DiscreteValueType valType, unsigned int length)
initialize with a particular type and size
DiscreteValueVect(const std::string &pkl)
constructor from a pickle
DiscreteValueVect operator|(const DiscreteValueVect &other) const
support dvv3 = dvv1|dvv2
unsigned int getNumBitsPerVal() const
return the number of bits used to store each value
void setVal(unsigned int i, unsigned int val)
set the value at an index
DiscreteValueVect(const DiscreteValueVect &other)
Copy constructor.
DiscreteValueVect(const char *pkl, const unsigned int len)
constructor from a pickle