Chi-Tech
chi_math::DynamicMatrix< NumberFormat > Class Template Reference

#include <dynamic_matrix.h>

Public Member Functions

 DynamicMatrix ()
 
 DynamicMatrix (size_t Nrows, size_t Ncols)
 
 DynamicMatrix (size_t Nrows, size_t Ncols, NumberFormat value)
 
 DynamicMatrix (const DynamicMatrix &other)
 
DynamicMatrixoperator= (const DynamicMatrix &other)
 
 DynamicMatrix (DynamicMatrix &&other) noexcept
 
DynamicMatrixoperator= (DynamicMatrix &&other) noexcept
 
 DynamicMatrix (const std::vector< std::vector< double > > &in)
 
DynamicMatrixoperator= (const std::vector< std::vector< double > > &in)
 
 DynamicMatrix (std::initializer_list< std::initializer_list< NumberFormat > > in)
 
DynamicMatrixoperator= (std::initializer_list< std::initializer_list< NumberFormat > > in)
 
std::vector< NumberFormat > & operator[] (size_t i)
 
std::vector< NumberFormat > & at (size_t i)
 
std::vector< NumberFormat > & back ()
 
std::vector< NumberFormat > & front ()
 
std::vector< NumberFormat > * data ()
 
void clear ()
 
void resize (size_t Nrows, size_t Ncols)
 
void resize (size_t Nrows, size_t Ncols, const NumberFormat &val)
 
void reserve (size_t Nrows)
 
void push_back (const std::vector< NumberFormat > &val)
 
void pop_back ()
 
bool empty () const noexcept
 
std::vector< std::vector< NumberFormat > >::iterator begin ()
 
std::vector< std::vector< NumberFormat > >::iterator end ()
 
size_t size () const
 
MatDim Dimensions () const
 
DynamicMatrix operator+ (const DynamicMatrix &rhs) const
 
DynamicMatrixoperator+= (const DynamicMatrix &rhs)
 
DynamicMatrix operator- (const DynamicMatrix &rhs) const
 
DynamicMatrixoperator-= (const DynamicMatrix &rhs)
 
DynamicMatrix operator* (const NumberFormat value) const
 
DynamicMatrixoperator*= (const NumberFormat value)
 
DynamicMatrix operator* (const DynamicMatrix &rhs)
 
DynamicVector< NumberFormat > operator* (const DynamicVector< NumberFormat > &V)
 
DynamicMatrix operator/ (const NumberFormat value) const
 
DynamicMatrixoperator/= (const NumberFormat value)
 
DynamicMatrix Inverse () const
 
void SetDiagonal (DynamicVector< NumberFormat > &V)
 
void SetDiagonal (NumberFormat val)
 
std::string PrintStr () const
 

Data Fields

std::vector< std::vector< NumberFormat > > elements_
 

Private Types

typedef std::pair< size_t, size_t > MatDim
 

Static Private Member Functions

static void bounds_check_rows_cols (const MatDim a, const MatDim b)
 
static void bounds_check_colsA_rowsB (const MatDim a, const MatDim b)
 

Detailed Description

template<class NumberFormat>
class chi_math::DynamicMatrix< NumberFormat >

General dynamic matrix utility.

Definition at line 21 of file dynamic_matrix.h.

Member Typedef Documentation

◆ MatDim

template<class NumberFormat >
typedef std::pair<size_t,size_t> chi_math::DynamicMatrix< NumberFormat >::MatDim
private

Definition at line 23 of file dynamic_matrix.h.

Constructor & Destructor Documentation

◆ DynamicMatrix() [1/7]

template<class NumberFormat >
chi_math::DynamicMatrix< NumberFormat >::DynamicMatrix ( )
inline

Default constructor. Does nothing.

Definition at line 28 of file dynamic_matrix.h.

◆ DynamicMatrix() [2/7]

template<class NumberFormat >
chi_math::DynamicMatrix< NumberFormat >::DynamicMatrix ( size_t  Nrows,
size_t  Ncols 
)
inline

Constructor with number of entries. Value defaults.

Definition at line 36 of file dynamic_matrix.h.

◆ DynamicMatrix() [3/7]

template<class NumberFormat >
chi_math::DynamicMatrix< NumberFormat >::DynamicMatrix ( size_t  Nrows,
size_t  Ncols,
NumberFormat  value 
)
inline

Constructor with number of entries and default value.

Definition at line 45 of file dynamic_matrix.h.

◆ DynamicMatrix() [4/7]

template<class NumberFormat >
chi_math::DynamicMatrix< NumberFormat >::DynamicMatrix ( const DynamicMatrix< NumberFormat > &  other)
inline

Copy constructor.

Definition at line 54 of file dynamic_matrix.h.

◆ DynamicMatrix() [5/7]

template<class NumberFormat >
chi_math::DynamicMatrix< NumberFormat >::DynamicMatrix ( DynamicMatrix< NumberFormat > &&  other)
inlinenoexcept

Move constructor.

Definition at line 64 of file dynamic_matrix.h.

◆ DynamicMatrix() [6/7]

template<class NumberFormat >
chi_math::DynamicMatrix< NumberFormat >::DynamicMatrix ( const std::vector< std::vector< double > > &  in)
inlineexplicit

Constructor with vector.

Definition at line 76 of file dynamic_matrix.h.

◆ DynamicMatrix() [7/7]

template<class NumberFormat >
chi_math::DynamicMatrix< NumberFormat >::DynamicMatrix ( std::initializer_list< std::initializer_list< NumberFormat > >  in)
inline

Constructor with vector.

Definition at line 86 of file dynamic_matrix.h.

Member Function Documentation

◆ at()

template<class NumberFormat >
std::vector< NumberFormat > & chi_math::DynamicMatrix< NumberFormat >::at ( size_t  i)
inline

Definition at line 105 of file dynamic_matrix.h.

◆ back()

template<class NumberFormat >
std::vector< NumberFormat > & chi_math::DynamicMatrix< NumberFormat >::back ( )
inline

Definition at line 107 of file dynamic_matrix.h.

◆ begin()

template<class NumberFormat >
std::vector< std::vector< NumberFormat > >::iterator chi_math::DynamicMatrix< NumberFormat >::begin ( )
inline

Definition at line 146 of file dynamic_matrix.h.

◆ bounds_check_colsA_rowsB()

template<class NumberFormat >
static void chi_math::DynamicMatrix< NumberFormat >::bounds_check_colsA_rowsB ( const MatDim  a,
const MatDim  b 
)
inlinestaticprivate

Definition at line 168 of file dynamic_matrix.h.

◆ bounds_check_rows_cols()

template<class NumberFormat >
static void chi_math::DynamicMatrix< NumberFormat >::bounds_check_rows_cols ( const MatDim  a,
const MatDim  b 
)
inlinestaticprivate

Definition at line 162 of file dynamic_matrix.h.

◆ clear()

template<class NumberFormat >
void chi_math::DynamicMatrix< NumberFormat >::clear ( )
inline

Definition at line 113 of file dynamic_matrix.h.

◆ data()

template<class NumberFormat >
std::vector< NumberFormat > * chi_math::DynamicMatrix< NumberFormat >::data ( )
inline

Definition at line 111 of file dynamic_matrix.h.

◆ Dimensions()

template<class NumberFormat >
MatDim chi_math::DynamicMatrix< NumberFormat >::Dimensions ( ) const
inline

Definition at line 153 of file dynamic_matrix.h.

◆ empty()

template<class NumberFormat >
bool chi_math::DynamicMatrix< NumberFormat >::empty ( ) const
inlinenoexcept

Definition at line 142 of file dynamic_matrix.h.

◆ end()

template<class NumberFormat >
std::vector< std::vector< NumberFormat > >::iterator chi_math::DynamicMatrix< NumberFormat >::end ( )
inline

Definition at line 149 of file dynamic_matrix.h.

◆ front()

template<class NumberFormat >
std::vector< NumberFormat > & chi_math::DynamicMatrix< NumberFormat >::front ( )
inline

Definition at line 109 of file dynamic_matrix.h.

◆ Inverse()

template<class NumberFormat >
DynamicMatrix chi_math::DynamicMatrix< NumberFormat >::Inverse ( ) const
inline

Obtains the inverse with Gauss-Elimination.

Definition at line 337 of file dynamic_matrix.h.

◆ operator*() [1/3]

template<class NumberFormat >
DynamicMatrix chi_math::DynamicMatrix< NumberFormat >::operator* ( const DynamicMatrix< NumberFormat > &  rhs)
inline

Matrix-Matrix multiplication

Definition at line 258 of file dynamic_matrix.h.

◆ operator*() [2/3]

template<class NumberFormat >
DynamicVector< NumberFormat > chi_math::DynamicMatrix< NumberFormat >::operator* ( const DynamicVector< NumberFormat > &  V)
inline

Matrix-Vector multiplication

Definition at line 286 of file dynamic_matrix.h.

◆ operator*() [3/3]

template<class NumberFormat >
DynamicMatrix chi_math::DynamicMatrix< NumberFormat >::operator* ( const NumberFormat  value) const
inline

Vector component-wise multiplication by scalar. $ \vec{w} = \vec{x} \alpha $

Definition at line 234 of file dynamic_matrix.h.

◆ operator*=()

template<class NumberFormat >
DynamicMatrix & chi_math::DynamicMatrix< NumberFormat >::operator*= ( const NumberFormat  value)
inline

Vector in-place component-wise multiplication by scalar. $ \vec{x} = \vec{x} \alpha $

Definition at line 247 of file dynamic_matrix.h.

◆ operator+()

template<class NumberFormat >
DynamicMatrix chi_math::DynamicMatrix< NumberFormat >::operator+ ( const DynamicMatrix< NumberFormat > &  rhs) const
inline

Component-wise addition of two matrices. $ \vec{w} = \vec{x} + \vec{y} $

Definition at line 178 of file dynamic_matrix.h.

◆ operator+=()

template<class NumberFormat >
DynamicMatrix & chi_math::DynamicMatrix< NumberFormat >::operator+= ( const DynamicMatrix< NumberFormat > &  rhs)
inline

In-place component-wise addition of two vectors. $ \vec{x} = \vec{x} + \vec{y} $

Definition at line 192 of file dynamic_matrix.h.

◆ operator-()

template<class NumberFormat >
DynamicMatrix chi_math::DynamicMatrix< NumberFormat >::operator- ( const DynamicMatrix< NumberFormat > &  rhs) const
inline

Component-wise subtraction. $ \vec{w} = \vec{x} - \vec{y} $

Definition at line 206 of file dynamic_matrix.h.

◆ operator-=()

template<class NumberFormat >
DynamicMatrix & chi_math::DynamicMatrix< NumberFormat >::operator-= ( const DynamicMatrix< NumberFormat > &  rhs)
inline

In-place component-wise subtraction. $ \vec{x} = \vec{x} - \vec{y} $

Definition at line 220 of file dynamic_matrix.h.

◆ operator/()

template<class NumberFormat >
DynamicMatrix chi_math::DynamicMatrix< NumberFormat >::operator/ ( const NumberFormat  value) const
inline

Vector component-wise division by scalar. $ w_i = \frac{x_i}{\alpha} $

Definition at line 312 of file dynamic_matrix.h.

◆ operator/=()

template<class NumberFormat >
DynamicMatrix & chi_math::DynamicMatrix< NumberFormat >::operator/= ( const NumberFormat  value)
inline

Vector in-place component-wise division by scalar. $ x_i = \frac{x_i}{\alpha} $

Definition at line 325 of file dynamic_matrix.h.

◆ operator=() [1/4]

template<class NumberFormat >
DynamicMatrix & chi_math::DynamicMatrix< NumberFormat >::operator= ( const DynamicMatrix< NumberFormat > &  other)
inline

Assignment operator.

Definition at line 57 of file dynamic_matrix.h.

◆ operator=() [2/4]

template<class NumberFormat >
DynamicMatrix & chi_math::DynamicMatrix< NumberFormat >::operator= ( const std::vector< std::vector< double > > &  in)
inline

Copy constructor with vector.

Definition at line 79 of file dynamic_matrix.h.

◆ operator=() [3/4]

template<class NumberFormat >
DynamicMatrix & chi_math::DynamicMatrix< NumberFormat >::operator= ( DynamicMatrix< NumberFormat > &&  other)
inlinenoexcept

Move assignment operator.

Definition at line 68 of file dynamic_matrix.h.

◆ operator=() [4/4]

template<class NumberFormat >
DynamicMatrix & chi_math::DynamicMatrix< NumberFormat >::operator= ( std::initializer_list< std::initializer_list< NumberFormat > >  in)
inline

Copy constructor with vector.

Definition at line 94 of file dynamic_matrix.h.

◆ operator[]()

template<class NumberFormat >
std::vector< NumberFormat > & chi_math::DynamicMatrix< NumberFormat >::operator[] ( size_t  i)
inline

Definition at line 103 of file dynamic_matrix.h.

◆ pop_back()

template<class NumberFormat >
void chi_math::DynamicMatrix< NumberFormat >::pop_back ( )
inline

Definition at line 140 of file dynamic_matrix.h.

◆ PrintStr()

template<class NumberFormat >
std::string chi_math::DynamicMatrix< NumberFormat >::PrintStr ( ) const
inline

Prints the matrix to a string and then returns the string.

Definition at line 370 of file dynamic_matrix.h.

◆ push_back()

template<class NumberFormat >
void chi_math::DynamicMatrix< NumberFormat >::push_back ( const std::vector< NumberFormat > &  val)
inline

Definition at line 138 of file dynamic_matrix.h.

◆ reserve()

template<class NumberFormat >
void chi_math::DynamicMatrix< NumberFormat >::reserve ( size_t  Nrows)
inline

Definition at line 133 of file dynamic_matrix.h.

◆ resize() [1/2]

template<class NumberFormat >
void chi_math::DynamicMatrix< NumberFormat >::resize ( size_t  Nrows,
size_t  Ncols 
)
inline

Definition at line 115 of file dynamic_matrix.h.

◆ resize() [2/2]

template<class NumberFormat >
void chi_math::DynamicMatrix< NumberFormat >::resize ( size_t  Nrows,
size_t  Ncols,
const NumberFormat &  val 
)
inline

Definition at line 122 of file dynamic_matrix.h.

◆ SetDiagonal() [1/2]

template<class NumberFormat >
void chi_math::DynamicMatrix< NumberFormat >::SetDiagonal ( DynamicVector< NumberFormat > &  V)
inline

Set the diagonal using a vector.

Definition at line 345 of file dynamic_matrix.h.

◆ SetDiagonal() [2/2]

template<class NumberFormat >
void chi_math::DynamicMatrix< NumberFormat >::SetDiagonal ( NumberFormat  val)
inline

Set the diagonal using value.

Definition at line 361 of file dynamic_matrix.h.

◆ size()

template<class NumberFormat >
size_t chi_math::DynamicMatrix< NumberFormat >::size ( ) const
inline

Definition at line 151 of file dynamic_matrix.h.

Field Documentation

◆ elements_

template<class NumberFormat >
std::vector<std::vector<NumberFormat> > chi_math::DynamicMatrix< NumberFormat >::elements_

Definition at line 25 of file dynamic_matrix.h.


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