35#ifndef NEKTAR_LIB_UTILITIES_LINEAR_ALGEBRA_MATRIX_BASE_HPP
36#define NEKTAR_LIB_UTILITIES_LINEAR_ALGEBRA_MATRIX_BASE_HPP
60 operator()(
unsigned int row,
unsigned int column)
const;
81 char transpose)
const;
91 unsigned int numRows,
unsigned int numColumns,
92 const char transpose =
'N',
unsigned int numSubDiags = 0,
93 unsigned int numSuperDiags = 0);
97 unsigned int subDiags = 0,
unsigned int superDiags = 0);
121 virtual typename boost::call_traits<DataType>::value_type
v_GetValue(
122 unsigned int row,
unsigned int column)
const = 0;
139 unsigned int row,
unsigned int column,
140 typename boost::call_traits<DataType>::const_reference
d);
158 unsigned int row,
unsigned int column,
159 typename boost::call_traits<DataType>::const_reference
d) = 0;
#define LIB_UTILITIES_EXPORT
void SetTransposeFlag(char newValue)
MatrixStorage GetType() const
MatrixStorage GetStorageType() const
ConstMatrix< DataType > & operator=(const ConstMatrix< DataType > &rhs)
boost::call_traits< DataType >::value_type operator()(unsigned int row, unsigned int column) const
unsigned int GetStorageSize() const
ConstMatrix(unsigned int rows, unsigned int columns, MatrixStorage policy=eFULL)
static unsigned int CalculateIndex(MatrixStorage type, unsigned int row, unsigned int col, unsigned int numRows, unsigned int numColumns, const char transpose='N', unsigned int numSubDiags=0, unsigned int numSuperDiags=0)
virtual unsigned int v_GetStorageSize() const =0
unsigned int GetTransposedColumns(char transpose) const
virtual ~ConstMatrix()=default
virtual char v_GetTransposeFlag() const
unsigned int GetRows() const
virtual boost::call_traits< DataType >::value_type v_GetValue(unsigned int row, unsigned int column) const =0
virtual void v_Transpose()
MatrixStorage m_storageType
unsigned int GetTransposedRows(char transpose) const
void Resize(unsigned int rows, unsigned int columns)
Resets the rows and columns in the array. This method does not update the data storage to match the n...
char GetRawTransposeFlag() const
static unsigned int GetRequiredStorageSize(MatrixStorage type, unsigned int rows, unsigned int columns, unsigned int subDiags=0, unsigned int superDiags=0)
char GetTransposeFlag() const
unsigned int GetColumns() const
const unsigned int * GetSize() const
void SetValue(unsigned int row, unsigned int column, typename boost::call_traits< DataType >::const_reference d)
Matrix< DataType > & operator=(const Matrix< DataType > &rhs)
Matrix(unsigned int rows, unsigned int columns, MatrixStorage policy=eFULL)
virtual void v_SetValue(unsigned int row, unsigned int column, typename boost::call_traits< DataType >::const_reference d)=0
std::vector< double > d(NPUPPER *NPUPPER)