36 #ifndef NEKTAR_LIB_UTILITIES_LINEAR_ALGEBRA_MATRIX_BASE_HPP
37 #define NEKTAR_LIB_UTILITIES_LINEAR_ALGEBRA_MATRIX_BASE_HPP
48 #include <boost/lexical_cast.hpp>
56 template<
typename DataType>
84 unsigned int row,
unsigned int col,
85 unsigned int numRows,
unsigned int numColumns,
const char transpose =
'N',
86 unsigned int numSubDiags = 0,
unsigned int numSuperDiags = 0) ;
89 unsigned int columns,
unsigned int subDiags = 0,
unsigned int superDiags = 0);
110 virtual typename boost::call_traits<DataType>::value_type
v_GetValue(
unsigned int row,
unsigned int column)
const = 0;
119 template<
typename DataType>
139 LIB_UTILITIES_EXPORT virtual void v_SetValue(
unsigned int row,
unsigned int column,
typename boost::call_traits<DataType>::const_reference d) = 0;
145 #endif //NEKTAR_LIB_UTILITIES_LINEAR_ALGEBRA_MATRIX_BASE_HPP
virtual boost::call_traits< DataType >::value_type v_GetValue(unsigned int row, unsigned int column) const =0
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...
const unsigned int * GetSize() const
virtual MatrixStorage v_GetStorageType() const =0
virtual unsigned int v_GetStorageSize() const =0
char GetTransposeFlag() const
virtual void v_Transpose()
virtual void v_SetValue(unsigned int row, unsigned int column, typename boost::call_traits< DataType >::const_reference d)=0
unsigned int GetColumns() const
unsigned int GetStorageSize() const
Matrix< DataType > & operator=(const Matrix< DataType > &rhs)
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)
#define LIB_UTILITIES_EXPORT
virtual char v_GetTransposeFlag() const
MatrixStorage GetStorageType() const
char GetRawTransposeFlag() const
unsigned int GetTransposedColumns(char transpose) const
ConstMatrix(unsigned int rows, unsigned int columns)
void SetTransposeFlag(char newValue)
Matrix(unsigned int rows, unsigned int columns)
unsigned int GetRows() const
ConstMatrix< DataType > & operator=(const ConstMatrix< DataType > &rhs)
static unsigned int GetRequiredStorageSize(MatrixStorage type, unsigned int rows, unsigned int columns, unsigned int subDiags=0, unsigned int superDiags=0)
void SetValue(unsigned int row, unsigned int column, typename boost::call_traits< DataType >::const_reference d)
boost::call_traits< DataType >::value_type operator()(unsigned int row, unsigned int column) const
unsigned int GetTransposedRows(char transpose) const