14#include <OpenMEEGConfigure.h>
21 struct OPENMEEGMATHS_EXPORT MathsIO;
38 typedef maths::MathsIO*
IO;
40 typedef enum { FULL, SYMMETRIC,
BLOCK, BLOCK_SYMMETRIC, SPARSE } StorageType;
44 num_lines(m),num_cols(n),storage(
st),dim(
d) { }
68 IO DefaultIO =
nullptr;
80 virtual size_t size()
const = 0;
81 virtual void info()
const = 0;
87 typedef std::shared_ptr<double[]>
base;
96 bool empty()
const {
return static_cast<bool>(*this); }
unsigned dimension() const
StorageType storageType() const
virtual Dimension ncol() const
LinOpInfo(const Dimension m, const Dimension n, const StorageType st, const unsigned d)
StorageType & storageType()
LinOp(const Dimension m, const Dimension n, const StorageType st, const unsigned d)
virtual size_t size() const =0
virtual void info() const =0
BLAS_INT sizet_to_int(const unsigned &num)
std::shared_ptr< double[]> base
LinOpValue(const size_t n, const LinOpValue &v)
LinOpValue(const size_t n)
LinOpValue(const size_t n, const double *initval)