38template <
class T,
unsigned int D>
class SVector;
52template <
class T,
unsigned int D1,
unsigned int D2 = D1>
68 SMatrix(
const T& rhs,
const bool diagonal=
false);
77 SMatrix(
const T1*
a,
const bool triang=
false,
const unsigned int len=D1*D2);
86 static const unsigned int rows = D1;
88 static const unsigned int cols = D2;
90 static const unsigned int size = D1*D2;
168 template <
unsigned int D>
170 const unsigned int row,
171 const unsigned int col);
173 template <
class A,
unsigned int D>
175 const unsigned int row,
176 const unsigned int col);
178 template <
unsigned int D>
180 const unsigned int row,
181 const unsigned int col);
183 template <
class A,
unsigned int D>
185 const unsigned int row,
186 const unsigned int col);
188 template <
unsigned int D3,
unsigned int D4>
190 const unsigned int row,
191 const unsigned int col);
193 template <
class A,
unsigned int D3,
unsigned int D4>
195 const unsigned int row,
196 const unsigned int col);
202 std::ostream&
print(std::ostream& os)
const;
211template <
class T,
unsigned int D1,
unsigned int D2>
213 return rhs.
print(os);
216#include "SMatrix.icc"
std::ostream & operator<<(std::ostream &os, const SMatrix< T, D1, D2 > &rhs)
Definition: SMatrix.hh:212
void a()
Definition: check_aligned.C:59
Definition: Expression.hh:43
Definition: SMatrix.hh:53
SMatrix< T, D1, D2 > & operator*=(const Expr< A, T, D1, D2 > &rhs)
SMatrix< T, D1, D2 > & operator+=(const SMatrix< T, D1, D2 > &rhs)
SMatrix< T, D1, D2 > & place_in_row(const Expr< A, T, D > &rhs, const unsigned int row, const unsigned int col)
place a vector expression in a Matrix row
SMatrix(const SVector< T, D1 > &rhs)
constructor via dyadic product
SMatrix(const Expr< A, T, D1, D2 > &rhs)
SMatrix< T, D1, D2 > & operator-=(const SMatrix< T, D1, D2 > &rhs)
SMatrix< T, D1, D2 > & place_at(const SMatrix< T, D3, D4 > &rhs, const unsigned int row, const unsigned int col)
place a matrix in this matrix
static const unsigned int size
return no of elements: rows*columns
Definition: SMatrix.hh:90
SMatrix< T, D1, D2 > & operator=(const Expr< A, T, D1, D2 > &rhs)
const T * Array() const
return read-only pointer to internal array
bool invert()
invert square Matrix via Dinv
SMatrix(const T1 *a, const bool triang=false, const unsigned int len=D1 *D2)
std::ostream & print(std::ostream &os) const
used by operator<<()
bool operator>(const T &rhs) const
element wise comparison
SMatrix< T, D1, D2 > & place_in_col(const Expr< A, T, D > &rhs, const unsigned int row, const unsigned int col)
place a vector expression in a Matrix column
bool operator>(const SMatrix< T, D1, D2 > &rhs) const
element wise comparison
SMatrix< T, D1, D2 > & operator=(const T &rhs)
SMatrix< T, D1, D2 > & operator/=(const SMatrix< T, D1, D2 > &rhs)
SMatrix(const Expr< A, T, D1 > &rhs)
constructor via dyadic product
T array[D1 *D2]
Definition: SMatrix.hh:205
T apply(unsigned int i) const
access the parse tree
SMatrix< T, D1, D2 > & operator+=(const Expr< A, T, D1, D2 > &rhs)
bool operator!=(const T &rhs) const
element wise comparison
bool operator>(const Expr< A, T, D1, D2 > &rhs) const
element wise comparison
SVector< T, D2 > row(const unsigned int therow) const
return a Matrix row as a vector
SMatrix(const T &rhs, const bool diagonal=false)
2nd arg: set only diagonal?
SMatrix< T, D1, D2 > & place_at(const Expr< A, T, D3, D4 > &rhs, const unsigned int row, const unsigned int col)
place a matrix expression in this matrix
bool operator!=(const SMatrix< T, D1, D2 > &rhs) const
element wise comparison
bool sinvert()
invert symmetric, pos. def. Matrix via Dsinv
bool operator==(const T &rhs) const
element wise comparison
bool operator<(const SMatrix< T, D1, D2 > &rhs) const
element wise comparison
bool operator<(const T &rhs) const
element wise comparison
bool operator==(const Expr< A, T, D1, D2 > &rhs) const
element wise comparison
T value_type
Definition: SMatrix.hh:57
SMatrix< T, D1, D2 > & place_in_col(const SVector< T, D > &rhs, const unsigned int row, const unsigned int col)
place a vector in a Matrix column
static const unsigned int rows
return no. of matrix rows
Definition: SMatrix.hh:86
SMatrix< T, D1, D2 > & operator-=(const Expr< A, T, D1, D2 > &rhs)
bool operator<(const Expr< A, T, D1, D2 > &rhs) const
element wise comparison
const T & operator()(unsigned int i, unsigned int j) const
read-only access
SMatrix< T, D1, D2 > & place_in_row(const SVector< T, D > &rhs, const unsigned int row, const unsigned int col)
place a vector in a Matrix row
SMatrix< T, D1, D2 > & operator*=(const SMatrix< T, D1, D2 > &rhs)
bool operator==(const SMatrix< T, D1, D2 > &rhs) const
element wise comparison
SMatrix< T, D1, D2 > & operator/=(const Expr< A, T, D1, D2 > &rhs)
SMatrix(const SMatrix< T, D1, D2 > &rhs)
static const unsigned int cols
return no. of matrix columns
Definition: SMatrix.hh:88
SVector< T, D1 > col(const unsigned int thecol) const
return a Matrix column as a vector
bool operator!=(const Expr< A, T, D1, D2 > &rhs) const
element wise comparison
T & operator()(unsigned int i, unsigned int j)
read/write access
T * Array()
return pointer to internal array
Definition: SVector.hh:51