40#ifndef MAT_VECTORHIERARCHICBASE
41#define MAT_VECTORHIERARCHICBASE
50 template<
class Treal,
class Telement = Treal>
56 {
return rows.getNScalars();}
58 inline const int&
n() const
59 {
return rows.getNBlocks();}
90 return rows.is_empty();
119 inline void assert_alloc() {
120 if (this->cap < this->nel) {
122 this->cap = this->nel;
124 for (
int ind = 0; ind < this->cap; ind++)
125 this->elements[ind] = 0;
136 template<
class Treal,
class Telement>
142 elements = allocateElements<Telement>(n());
143 for (int i = 0; i < n(); i++)
144 elements[i] = vec.elements[i];
149 template<
class Treal,
class Telement>
164 for (
int i = 0; i <
n(); i++)
170 template<
class Treal,
class Telement>
Describes dimensions of matrix and its blocks on all levels.
Definition SizesAndBlocks.h:45
Base class for Vector and Vector specialization.
Definition VectorHierarchicBase.h:51
const int & n() const
Definition VectorHierarchicBase.h:58
VectorHierarchicBase(SizesAndBlocks const &rowsInp)
Definition VectorHierarchicBase.h:96
SizesAndBlocks rows
Definition VectorHierarchicBase.h:105
void resetRows(SizesAndBlocks const &newRows)
Definition VectorHierarchicBase.h:77
const Telement & operator()(int ind) const
Definition VectorHierarchicBase.h:68
virtual ~VectorHierarchicBase()
Definition VectorHierarchicBase.h:172
bool is_empty() const
Check if vector is empty Empty is different from zero, a zero matrix contains information about block...
Definition VectorHierarchicBase.h:89
const int & nScalars() const
Definition VectorHierarchicBase.h:55
Telement * elements
Definition VectorHierarchicBase.h:108
bool is_zero() const
Definition VectorHierarchicBase.h:75
VectorHierarchicBase()
Definition VectorHierarchicBase.h:93
Telement & operator()(int ind)
Definition VectorHierarchicBase.h:61
VectorHierarchicBase< Treal, Telement > & operator=(const VectorHierarchicBase< Treal, Telement > &vec)
Definition VectorHierarchicBase.h:152
VectorHierarchicBase(const VectorHierarchicBase< Treal, Telement > &vec)
Definition VectorHierarchicBase.h:139
Copyright(c) Emanuel Rubensson 2006.
Definition allocate.cc:39
void freeElements(float *ptr)
Definition allocate.cc:49
T * allocateElements(int n)
Definition allocate.h:42