17#define ApplyMatrix_D 0
22 template<
typename F,
typename G>
25 class InOutParameters;
43 typedef typename Realtype<F>::type
r_type;
45 typedef typename Cmplxtype<F>::type
c_type;
47 typedef typename std::conditional<std::is_same<typename Realtype<F>::type, F>::value ,
48 typename Realtype<F>::type,
typename Cmplxtype<F>::type >
::type d_type;
186 for(
uint i=0; i<rows; i++)
187 for(
uint j=0; j<cols; j++)
236 static uint timeCntr_;
242 uint getNumberofRows(F& m) {
return m.nofRows(); }
255 template<
class F,
class H,
class I>
271 for (
uint c = 0; c <
mX.dimY(); ++c) {
274 for (
uint r = 0; r < n; ++r)
283 for (
uint r = 0; r < n; ++r)
284 if ((f =
fncY(r)) != 0.0)
286 DEBUGL(ApplyMatrix_D,
"finished column " << c);
virtual void add(const uint i, const uint j, const F value, const bool use_threshold=false, const Real threshold_value=1e-8)
const_iterator end() const
Constant iterator, standing behind last element.
static void assembly(Matrix< F > &dest, const Space< G > &spcX, const Space< G > &spcY, const BilinearForm< F, G > &bf, const Real threshold=0.0, const bool single=false)
static void assembly(Matrix< F > &dest, const BilinearForm< F, G > &bf, const ElementPairList< G > &pairs)
virtual F operator()(const uint i, const uint j) const =0
Returns entry with indices i and j.
virtual F & operator()(const uint i, const uint j)=0
Returns and allows access to entry with indices i and j.
Cmplxtype< F >::type c_type
Complex type of data type.
static void assembly(Matrix< F > &dest, const Sequence< ElementWithCell< G > * > seq, const BilinearForm< F, G > &bf, const Real threshold=0.0)
virtual void set(const uint i, const uint j, const F value, const bool use_threshold=false, const Real threshold_value=1e-8)
iterator end()
Iterator, standing behind last element.
static void assembly(Matrix< F > &dest, const Space< G > &spc, const Sequence< bool > &seq, const BilinearForm< F, G > &bf, const Real threshold=0.0)
static void setTimings(InOutParameters *timings)
static void assembly(Matrix< F > &dest, const Space< G > &spc, const BilinearForm< F, G > &bf, const Real threshold=0.0)
static void assembly(Matrix< F > &dest, Scan< Element< G > > *sc, const BilinearForm< F, G > &bf, const Real threshold=0.0)
static void assembly(Matrix< F > &dest, const Sequence< ElementWithCell< G > * > seqX, const Space< G > &spcY, const BilinearForm< F, G > &bf, const Real threshold=0.0)
virtual void operator()(const Function< c_type > &fncY, Function< c_type > &fncX)=0
const uint nofCols() const
Number of columns.
std::conditional< std::is_same< typenameRealtype< F >::type, F >::value, typenameRealtype< F >::type, typenameCmplxtype< F >::type >::type d_type
Data type, depending if F is real or complex.
const uint nofRows() const
Number of rows.
Realtype< F >::type r_type
Real type of data type.
static void assembly(Matrix< F > &dest, const Space< G > &spcX, const Space< G > &spcY, const Sequence< bool > &seq, const BilinearForm< F, G > &bf, const Real threshold=0.0, const bool single=false)
virtual void operator()(const Function< r_type > &fncY, Function< F > &fncX)=0
Computes fncX = A(fncY) where A is this matrix.
virtual void transpMult(const Vector< r_type > &fncY, Vector< F > &fncX)=0
Computes fncX = AT fncY where A is this matrix.
const_iterator begin(uint r=0) const
virtual const uint dimY() const
F type
Type of data, e.g. matrix entries.
virtual const uint dimX() const
#define conceptsAssert(cond, exc)
#define DEBUGL(doit, msg)
Set< F > makeSet(uint n, const F &first,...)
void apply(Operator< F > &op, const Matrix< H > &mX, Matrix< I > &mY)