RDKit
Open-source cheminformatics and machine learning.
Loading...
Searching...
No Matches
RDNumeric::Vector< TYPE > Class Template Reference

A class to represent vectors of numbers. More...

#include <Vector.h>

Public Types

typedef boost::shared_array< TYPE > DATA_SPTR
 

Public Member Functions

 Vector (unsigned int N)
 Initialize with only a size.
 
 Vector (unsigned int N, TYPE val)
 Initialize with a size and default value.
 
 Vector (unsigned int N, DATA_SPTR data)
 Initialize from a smart pointer.
 
 Vector (const Vector &other)
 copy constructor
 
 ~Vector ()=default
 
unsigned int size () const
 return the size (dimension) of the vector
 
TYPE getVal (unsigned int i) const
 returns the value at a particular index
 
void setVal (unsigned int i, TYPE val)
 sets the index at a particular value
 
TYPE operator[] (unsigned int i) const
 
TYPE & operator[] (unsigned int i)
 
TYPE * getData ()
 returns a pointer to our data array
 
const TYPE * getData () const
 returns a const pointer to our data array
 
Vector< TYPE > & assign (const Vector< TYPE > &other)
 Copy operator.
 
Vector< TYPE > & operator+= (const Vector< TYPE > &other)
 elementwise addition, vectors must be the same size.
 
Vector< TYPE > & operator-= (const Vector< TYPE > &other)
 elementwise subtraction, vectors must be the same size.
 
Vector< TYPE > & operator*= (TYPE scale)
 multiplication by a scalar
 
Vector< TYPE > & operator/= (TYPE scale)
 division by a scalar
 
TYPE normL2Sq () const
 L2 norm squared.
 
TYPE normL2 () const
 L2 norm.
 
TYPE normL1 () const
 L1 norm.
 
TYPE normLinfinity () const
 L-infinity norm.
 
unsigned int largestAbsValId () const
 Gets the ID of the entry that has the largest absolute value i.e. the entry being used for the L-infinity norm.
 
unsigned int largestValId () const
 Gets the ID of the entry that has the largest value.
 
unsigned int smallestValId () const
 Gets the ID of the entry that has the smallest value.
 
TYPE dotProduct (const Vector< TYPE > other) const
 returns the dot product between two Vectors
 
void normalize ()
 Normalize the vector using the L2 norm.
 
void setToRandom (unsigned int seed=0)
 Set to a random unit vector.
 

Detailed Description

template<class TYPE>
class RDNumeric::Vector< TYPE >

A class to represent vectors of numbers.

Definition at line 31 of file Vector.h.

Member Typedef Documentation

◆ DATA_SPTR

template<class TYPE >
typedef boost::shared_array<TYPE> RDNumeric::Vector< TYPE >::DATA_SPTR

Definition at line 33 of file Vector.h.

Constructor & Destructor Documentation

◆ Vector() [1/4]

template<class TYPE >
RDNumeric::Vector< TYPE >::Vector ( unsigned int  N)
inlineexplicit

Initialize with only a size.

Definition at line 36 of file Vector.h.

◆ Vector() [2/4]

template<class TYPE >
RDNumeric::Vector< TYPE >::Vector ( unsigned int  N,
TYPE  val 
)
inline

Initialize with a size and default value.

Definition at line 44 of file Vector.h.

◆ Vector() [3/4]

template<class TYPE >
RDNumeric::Vector< TYPE >::Vector ( unsigned int  N,
DATA_SPTR  data 
)
inline

Initialize from a smart pointer.

NOTE: the data is not copied in this case

Definition at line 59 of file Vector.h.

◆ Vector() [4/4]

template<class TYPE >
RDNumeric::Vector< TYPE >::Vector ( const Vector< TYPE > &  other)
inline

copy constructor

We make a copy of the other vector's data.

Definition at line 67 of file Vector.h.

References RDNumeric::Vector< TYPE >::getData(), and RDNumeric::Vector< TYPE >::size().

◆ ~Vector()

template<class TYPE >
RDNumeric::Vector< TYPE >::~Vector ( )
default

Member Function Documentation

◆ assign()

template<class TYPE >
Vector< TYPE > & RDNumeric::Vector< TYPE >::assign ( const Vector< TYPE > &  other)
inline

Copy operator.

We make a copy of the other Vector's data.

Definition at line 117 of file Vector.h.

References RDNumeric::Vector< TYPE >::getData(), PRECONDITION, and RDNumeric::Vector< TYPE >::size().

◆ dotProduct()

template<class TYPE >
TYPE RDNumeric::Vector< TYPE >::dotProduct ( const Vector< TYPE >  other) const
inline

returns the dot product between two Vectors

Definition at line 249 of file Vector.h.

References RDNumeric::Vector< TYPE >::getData(), PRECONDITION, and RDNumeric::Vector< TYPE >::size().

Referenced by RDNumeric::TanimotoSimilarity().

◆ getData() [1/2]

◆ getData() [2/2]

template<class TYPE >
const TYPE * RDNumeric::Vector< TYPE >::getData ( ) const
inline

returns a const pointer to our data array

Definition at line 108 of file Vector.h.

◆ getVal()

template<class TYPE >
TYPE RDNumeric::Vector< TYPE >::getVal ( unsigned int  i) const
inline

returns the value at a particular index

Definition at line 83 of file Vector.h.

References PRECONDITION.

Referenced by operator<<().

◆ largestAbsValId()

template<class TYPE >
unsigned int RDNumeric::Vector< TYPE >::largestAbsValId ( ) const
inline

Gets the ID of the entry that has the largest absolute value i.e. the entry being used for the L-infinity norm.

Definition at line 207 of file Vector.h.

◆ largestValId()

template<class TYPE >
unsigned int RDNumeric::Vector< TYPE >::largestValId ( ) const
inline

Gets the ID of the entry that has the largest value.

Definition at line 221 of file Vector.h.

◆ normalize()

template<class TYPE >
void RDNumeric::Vector< TYPE >::normalize ( )
inline

Normalize the vector using the L2 norm.

Definition at line 263 of file Vector.h.

References RDNumeric::Vector< TYPE >::normL2(), and zero_tolerance.

Referenced by RDNumeric::Vector< TYPE >::setToRandom().

◆ normL1()

template<class TYPE >
TYPE RDNumeric::Vector< TYPE >::normL1 ( ) const
inline

L1 norm.

Definition at line 182 of file Vector.h.

◆ normL2()

template<class TYPE >
TYPE RDNumeric::Vector< TYPE >::normL2 ( ) const
inline

L2 norm.

Definition at line 179 of file Vector.h.

References RDNumeric::Vector< TYPE >::normL2Sq().

Referenced by RDNumeric::Vector< TYPE >::normalize().

◆ normL2Sq()

template<class TYPE >
TYPE RDNumeric::Vector< TYPE >::normL2Sq ( ) const
inline

L2 norm squared.

Definition at line 168 of file Vector.h.

Referenced by RDNumeric::Vector< TYPE >::normL2(), and RDNumeric::TanimotoSimilarity().

◆ normLinfinity()

template<class TYPE >
TYPE RDNumeric::Vector< TYPE >::normLinfinity ( ) const
inline

L-infinity norm.

Definition at line 193 of file Vector.h.

◆ operator*=()

template<class TYPE >
Vector< TYPE > & RDNumeric::Vector< TYPE >::operator*= ( TYPE  scale)
inline

multiplication by a scalar

Definition at line 150 of file Vector.h.

◆ operator+=()

template<class TYPE >
Vector< TYPE > & RDNumeric::Vector< TYPE >::operator+= ( const Vector< TYPE > &  other)
inline

elementwise addition, vectors must be the same size.

Definition at line 126 of file Vector.h.

References RDNumeric::Vector< TYPE >::getData(), PRECONDITION, and RDNumeric::Vector< TYPE >::size().

◆ operator-=()

template<class TYPE >
Vector< TYPE > & RDNumeric::Vector< TYPE >::operator-= ( const Vector< TYPE > &  other)
inline

elementwise subtraction, vectors must be the same size.

Definition at line 138 of file Vector.h.

References RDNumeric::Vector< TYPE >::getData(), PRECONDITION, and RDNumeric::Vector< TYPE >::size().

◆ operator/=()

template<class TYPE >
Vector< TYPE > & RDNumeric::Vector< TYPE >::operator/= ( TYPE  scale)
inline

division by a scalar

Definition at line 159 of file Vector.h.

◆ operator[]() [1/2]

template<class TYPE >
TYPE & RDNumeric::Vector< TYPE >::operator[] ( unsigned int  i)
inline

Definition at line 99 of file Vector.h.

References PRECONDITION.

◆ operator[]() [2/2]

template<class TYPE >
TYPE RDNumeric::Vector< TYPE >::operator[] ( unsigned int  i) const
inline

Definition at line 94 of file Vector.h.

References PRECONDITION.

◆ setToRandom()

template<class TYPE >
void RDNumeric::Vector< TYPE >::setToRandom ( unsigned int  seed = 0)
inline

Set to a random unit vector.

Definition at line 272 of file Vector.h.

References RDNumeric::Vector< TYPE >::normalize().

◆ setVal()

template<class TYPE >
void RDNumeric::Vector< TYPE >::setVal ( unsigned int  i,
TYPE  val 
)
inline

sets the index at a particular value

Definition at line 89 of file Vector.h.

References PRECONDITION.

◆ size()

◆ smallestValId()

template<class TYPE >
unsigned int RDNumeric::Vector< TYPE >::smallestValId ( ) const
inline

Gets the ID of the entry that has the smallest value.

Definition at line 235 of file Vector.h.


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