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

A matrix class for general, non-square matrices. More...

#include <Matrix.h>

Inheritance diagram for RDNumeric::Matrix< TYPE >:
RDNumeric::SquareMatrix< TYPE >

Public Types

typedef boost::shared_array< TYPE > DATA_SPTR

Public Member Functions

 Matrix (unsigned int nRows, unsigned int nCols)
 Initialize with a size.
 Matrix (unsigned int nRows, unsigned int nCols, TYPE val)
 Initialize with a size and default value.
 Matrix (unsigned int nRows, unsigned int nCols, DATA_SPTR data)
 Initialize from a pointer.
 Matrix (const Matrix< TYPE > &other)
 copy constructor
 Matrix (Matrix< TYPE > &&other)=default
virtual ~Matrix ()
Matrix< TYPE > & operator= (const Matrix< TYPE > &other)
Matrix< TYPE > & operator= (Matrix< TYPE > &&other)=default
unsigned int numRows () const
 returns the number of rows
unsigned int numCols () const
 returns the number of columns
unsigned int getDataSize () const
virtual TYPE getVal (unsigned int i, unsigned int j) const
 returns a particular element of the matrix
virtual void setVal (unsigned int i, unsigned int j, TYPE val)
 sets a particular element of the matrix
virtual TYPE getValUnchecked (unsigned int i, unsigned int j) const
 returns a particular element of the matrix
virtual void setValUnchecked (unsigned int i, unsigned int j, TYPE val)
 sets a particular element of the matrix
virtual void getRow (unsigned int i, Vector< TYPE > &row) const
 returns a copy of a row of the matrix
virtual void getCol (unsigned int i, Vector< TYPE > &col) const
 returns a copy of a column of the matrix
TYPE * getData ()
 returns a pointer to our data array
const TYPE * getData () const
 returns a const pointer to our data array
Matrix< TYPE > & assign (const Matrix< TYPE > &other)
 Copy operator.
virtual Matrix< TYPE > & operator+= (const Matrix< TYPE > &other)
 Matrix addition.
virtual Matrix< TYPE > & operator-= (const Matrix< TYPE > &other)
 Matrix subtraction.
virtual Matrix< TYPE > & operator*= (TYPE scale)
 Multiplication by a scalar.
virtual Matrix< TYPE > & operator/= (TYPE scale)
 division by a scalar
virtual Matrix< TYPE > & transpose (Matrix< TYPE > &transpose) const
 copies the transpose of this Matrix into another, returns the result

Protected Member Functions

 Matrix ()

Protected Attributes

unsigned int d_nRows {0}
unsigned int d_nCols {0}
unsigned int d_dataSize {0}
DATA_SPTR d_data

Detailed Description

template<class TYPE>
class RDNumeric::Matrix< TYPE >

A matrix class for general, non-square matrices.

Definition at line 28 of file Matrix.h.

Member Typedef Documentation

◆ DATA_SPTR

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

Definition at line 30 of file Matrix.h.

Constructor & Destructor Documentation

◆ Matrix() [1/6]

template<class TYPE>
RDNumeric::Matrix< TYPE >::Matrix ( unsigned int nRows,
unsigned int nCols )
inline

Initialize with a size.

Definition at line 33 of file Matrix.h.

◆ Matrix() [2/6]

template<class TYPE>
RDNumeric::Matrix< TYPE >::Matrix ( unsigned int nRows,
unsigned int nCols,
TYPE val )
inline

Initialize with a size and default value.

Definition at line 41 of file Matrix.h.

◆ Matrix() [3/6]

template<class TYPE>
RDNumeric::Matrix< TYPE >::Matrix ( unsigned int nRows,
unsigned int nCols,
DATA_SPTR data )
inline

Initialize from a pointer.

NOTE: this does not take ownership of the data, if you delete the data externally, this Matrix will be sad.

Definition at line 56 of file Matrix.h.

◆ Matrix() [4/6]

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

copy constructor

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

Definition at line 64 of file Matrix.h.

◆ Matrix() [5/6]

template<class TYPE>
RDNumeric::Matrix< TYPE >::Matrix ( Matrix< TYPE > && other)
default

◆ ~Matrix()

template<class TYPE>
virtual RDNumeric::Matrix< TYPE >::~Matrix ( )
inlinevirtual

Definition at line 75 of file Matrix.h.

◆ Matrix() [6/6]

template<class TYPE>
RDNumeric::Matrix< TYPE >::Matrix ( )
inlineprotected

Definition at line 252 of file Matrix.h.

Member Function Documentation

◆ assign()

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

Copy operator.

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

Definition at line 157 of file Matrix.h.

Referenced by RDNumeric::Matrix< double >::operator=().

◆ getCol()

template<class TYPE>
virtual void RDNumeric::Matrix< TYPE >::getCol ( unsigned int i,
Vector< TYPE > & col ) const
inlinevirtual

returns a copy of a column of the matrix

Definition at line 135 of file Matrix.h.

◆ getData() [1/2]

◆ getData() [2/2]

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

returns a const pointer to our data array

Definition at line 151 of file Matrix.h.

◆ getDataSize()

template<class TYPE>
unsigned int RDNumeric::Matrix< TYPE >::getDataSize ( ) const
inline

Definition at line 91 of file Matrix.h.

◆ getRow()

template<class TYPE>
virtual void RDNumeric::Matrix< TYPE >::getRow ( unsigned int i,
Vector< TYPE > & row ) const
inlinevirtual

returns a copy of a row of the matrix

Definition at line 124 of file Matrix.h.

◆ getVal()

template<class TYPE>
virtual TYPE RDNumeric::Matrix< TYPE >::getVal ( unsigned int i,
unsigned int j ) const
inlinevirtual

returns a particular element of the matrix

Definition at line 94 of file Matrix.h.

Referenced by operator<<().

◆ getValUnchecked()

template<class TYPE>
virtual TYPE RDNumeric::Matrix< TYPE >::getValUnchecked ( unsigned int i,
unsigned int j ) const
inlinevirtual

returns a particular element of the matrix

Definition at line 111 of file Matrix.h.

◆ numCols()

template<class TYPE>
unsigned int RDNumeric::Matrix< TYPE >::numCols ( ) const
inline

◆ numRows()

◆ operator*=()

template<class TYPE>
virtual Matrix< TYPE > & RDNumeric::Matrix< TYPE >::operator*= ( TYPE scale)
inlinevirtual

Multiplication by a scalar.

Reimplemented in RDNumeric::SquareMatrix< TYPE >, and RDNumeric::SquareMatrix< double >.

Definition at line 204 of file Matrix.h.

Referenced by RDNumeric::SquareMatrix< double >::operator*=().

◆ operator+=()

template<class TYPE>
virtual Matrix< TYPE > & RDNumeric::Matrix< TYPE >::operator+= ( const Matrix< TYPE > & other)
inlinevirtual

Matrix addition.

Perform an element by element addition of other Matrix to this Matrix

Definition at line 172 of file Matrix.h.

◆ operator-=()

template<class TYPE>
virtual Matrix< TYPE > & RDNumeric::Matrix< TYPE >::operator-= ( const Matrix< TYPE > & other)
inlinevirtual

Matrix subtraction.

Perform a element by element subtraction of other Matrix from this Matrix

Definition at line 189 of file Matrix.h.

◆ operator/=()

template<class TYPE>
virtual Matrix< TYPE > & RDNumeric::Matrix< TYPE >::operator/= ( TYPE scale)
inlinevirtual

division by a scalar

Definition at line 214 of file Matrix.h.

◆ operator=() [1/2]

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

Definition at line 77 of file Matrix.h.

◆ operator=() [2/2]

template<class TYPE>
Matrix< TYPE > & RDNumeric::Matrix< TYPE >::operator= ( Matrix< TYPE > && other)
default

◆ setVal()

template<class TYPE>
virtual void RDNumeric::Matrix< TYPE >::setVal ( unsigned int i,
unsigned int j,
TYPE val )
inlinevirtual

sets a particular element of the matrix

Definition at line 102 of file Matrix.h.

◆ setValUnchecked()

template<class TYPE>
virtual void RDNumeric::Matrix< TYPE >::setValUnchecked ( unsigned int i,
unsigned int j,
TYPE val )
inlinevirtual

sets a particular element of the matrix

Definition at line 117 of file Matrix.h.

◆ transpose()

template<class TYPE>
virtual Matrix< TYPE > & RDNumeric::Matrix< TYPE >::transpose ( Matrix< TYPE > & transpose) const
inlinevirtual

copies the transpose of this Matrix into another, returns the result

Parameters
transposethe Matrix to store the results
Returns
the transpose of this matrix. This is just a reference to the argument.

Definition at line 231 of file Matrix.h.

Member Data Documentation

◆ d_data

template<class TYPE>
DATA_SPTR RDNumeric::Matrix< TYPE >::d_data
protected

Definition at line 256 of file Matrix.h.

◆ d_dataSize

template<class TYPE>
unsigned int RDNumeric::Matrix< TYPE >::d_dataSize {0}
protected

Definition at line 255 of file Matrix.h.

◆ d_nCols

template<class TYPE>
unsigned int RDNumeric::Matrix< TYPE >::d_nCols {0}
protected

Definition at line 254 of file Matrix.h.

◆ d_nRows

template<class TYPE>
unsigned int RDNumeric::Matrix< TYPE >::d_nRows {0}
protected

Definition at line 253 of file Matrix.h.


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