Go to the documentation of this file.
40 #ifndef MAT_MATRIXHIERARCHICBASE
41 #define MAT_MATRIXHIERARCHICBASE
51 template<
class Treal,
class Telement = Treal>
59 throw Failure(
"Matrix::operator== only implemented for k == 0");
84 (
int row,
int col)
const {
93 inline Telement&
operator[]
100 inline Telement
const &
operator[]
171 inline void assert_alloc() {
172 if (this->cap < this->nel) {
174 this->cap = this->nel;
175 this->elements = allocateElements<Telement>(this->cap);
176 for (
int ind = 0; ind < this->cap; ind++)
177 this->elements[ind] = 0;
187 template<
class Treal,
class Telement>
191 if (!
mat.is_zero()) {
199 template<
class Treal,
class Telement>
210 if (is_zero() || (nElements() !=
mat.nElements())) {
212 elements = allocateElements<Telement>(
mat.nElements());
216 for (
int i = 0; i < nElements(); i++)
217 elements[i] =
mat.elements[i];
221 template<
class Treal,
class Telement>
225 assert(
A.rows ==
B.rows &&
A.cols ==
B.cols);
226 Telement* elementsTmp =
A.elements;
227 A.elements =
B.elements;
228 B.elements = elementsTmp;
232 template<
class Treal,
class Telement>
const int & ncols() const
Definition: MatrixHierarchicBase.h:71
bool is_empty() const
Definition: SizesAndBlocks.h:71
return elements[row+col *nrows()]
Definition: MatrixHierarchicBase.h:81
void getRows(SizesAndBlocks &rowsCopy) const
Definition: MatrixHierarchicBase.h:125
void resetRows(SizesAndBlocks const &newRows)
Definition: MatrixHierarchicBase.h:114
int const & getNBlocks() const
Definition: SizesAndBlocks.h:72
void resetCols(SizesAndBlocks const &newCols)
Definition: MatrixHierarchicBase.h:119
const int & nScalarsCols() const
Definition: MatrixHierarchicBase.h:65
virtual ~MatrixHierarchicBase()
Definition: MatrixHierarchicBase.h:233
MatrixHierarchicBase(SizesAndBlocks const &rowsInp, SizesAndBlocks const &colsInp)
Definition: MatrixHierarchicBase.h:151
Code for memory allocation/deallocation routines used by matrix library.
mat::SizesAndBlocks rows
Definition: test.cc:51
MatrixHierarchicBase< Treal, Telement > & operator=(const MatrixHierarchicBase< Treal, Telement > &mat)
Definition: MatrixHierarchicBase.h:202
bool highestLevel() const
Definition: MatrixHierarchicBase.h:133
Telement int col
Definition: MatrixHierarchicBase.h:75
Telement & operator()(int row
static void swap(MatrixHierarchicBase< Treal, Telement > &A, MatrixHierarchicBase< Treal, Telement > &B)
Definition: MatrixHierarchicBase.h:223
const int & nScalarsRows() const
Definition: MatrixHierarchicBase.h:63
Telement * elements
Definition: MatrixHierarchicBase.h:166
const int & nrows() const
Definition: MatrixHierarchicBase.h:69
const Telement int col const
Definition: MatrixHierarchicBase.h:84
void getCols(SizesAndBlocks &colsCopy) const
Definition: MatrixHierarchicBase.h:128
mat::SizesAndBlocks cols
Definition: test.cc:52
Definition: allocate.cc:39
int const & getNScalars() const
Definition: SizesAndBlocks.h:73
bool is_empty() const
Check if matrix is empty Empty is different from zero, a zero matrix contains information about block...
Definition: MatrixHierarchicBase.h:143
MatrixHierarchicBase(const MatrixHierarchicBase< Treal, Telement > &mat)
Definition: MatrixHierarchicBase.h:189
SizesAndBlocks rows
Definition: MatrixHierarchicBase.h:164
int nElements() const
Definition: MatrixHierarchicBase.h:110
MatrixHierarchicBase()
Definition: MatrixHierarchicBase.h:149
Describes dimensions of matrix and its blocks on all levels.
Definition: SizesAndBlocks.h:45
bool is_zero() const
Definition: MatrixHierarchicBase.h:108
bool operator==(int k) const
Definition: MatrixHierarchicBase.h:55
const Telement & operator()(int row
void freeElements(float *ptr)
Definition: allocate.cc:49
int getNTotalScalars() const
Definition: SizesAndBlocks.h:84
SizesAndBlocks cols
Definition: MatrixHierarchicBase.h:165
Base class for Matrix and Matrix specialization.
Definition: MatrixHierarchicBase.h:52