14 #include <OpenMEEGConfigure.h>
21 struct OPENMEEGMATHS_EXPORT MathsIO;
27 const BLAS_INT num_out =
static_cast<BLAS_INT
>(num);
28 om_assert(num_out>=0);
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;
86 struct OPENMEEGMATHS_EXPORT
LinOpValue:
public std::shared_ptr<double[]> {
87 typedef std::shared_ptr<double[]>
base;
91 LinOpValue(
const size_t n,
const double* initval):
LinOpValue(n) { std::copy(initval,initval+n,&(*
this)[0]); }
96 bool empty()
const {
return static_cast<bool>(*this); }
unsigned dimension() const
StorageType & storageType()
StorageType storageType() const
virtual Dimension ncol() const
LinOpInfo(const Dimension m, const Dimension n, const StorageType st, const unsigned d)
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)