30#include "../containers/C2DContainer.hpp"
45 void CalcInv(
bool is_spd);
46 void CholeskyDecompose();
59 inline passivedouble Get(
int i,
int j)
const {
return mat(std::min(i, j), std::max(i, j)); }
61 inline void Set(
int i,
int j,
passivedouble val) { mat(std::min(i, j), std::max(i, j)) = val; }
67 template <
class ForwardIt>
68 void MatVecMult(ForwardIt vec_in, ForwardIt vec_out)
const {
69 for (
int i = 0; i <
Size(); ++i) {
72 for (
int k = 0; k <
Size(); ++k) *vec_out += *(vec++) *
Get(i, k);
79 void Invert(
bool is_spd =
false);
A templated matrix/vector-like object.
Definition C2DContainer.hpp:374
static constexpr bool IsRowMajor
Definition C2DContainer.hpp:391
Index_t rows() const noexcept
Definition C2DContainer.hpp:222
The matrix is symmetric but full storage is used as that gives much better performance for some BLAS ...
Definition CSymmetricMatrix.hpp:38
void MatVecMult(ForwardIt vec_in, ForwardIt vec_out) const
Definition CSymmetricMatrix.hpp:68
CSymmetricMatrix()=default
void Invert(bool is_spd=false)
Definition CSymmetricMatrix.cpp:160
passivedouble Get(int i, int j) const
Definition CSymmetricMatrix.hpp:59
const passivedouble & operator()(int i, int j) const
Definition CSymmetricMatrix.hpp:65
void Set(int i, int j, passivedouble val)
Definition CSymmetricMatrix.hpp:61
su2passivematrix StealData()
Definition CSymmetricMatrix.cpp:214
void Initialize(int N)
Definition CSymmetricMatrix.cpp:63
void MatMatMult(const char side, const su2passivematrix &mat_in, su2passivematrix &mat_out) const
Definition CSymmetricMatrix.cpp:171
passivedouble & operator()(int i, int j)
Definition CSymmetricMatrix.hpp:63
int Size() const
Definition CSymmetricMatrix.hpp:57
CSymmetricMatrix(int N)
Definition CSymmetricMatrix.hpp:53
double passivedouble
Definition code_config.hpp:129