18#define PermutationAppl_D 0
20#define trivExtRestrConstr_D 0
21#define trivExtRestrAppl_D 0
27 class TrivExtendRestrict;
44 typedef typename Realtype<F>::type
r_type;
46 typedef typename Cmplxtype<F>::type
c_type;
48 typedef typename std::conditional<std::is_same<typename Realtype<F>::type, F>::value ,
49 typename Realtype<F>::type,
typename Cmplxtype<F>::type >
::type d_type;
95 virtual std::ostream&
info(std::ostream&
os)
const;
124 <<
", dimX = " << this->
dimX() <<
", dimY = " << this->
dimY());
138 <<
", dimX = " << this->
dimX() <<
", dimY = " << this->
dimY());
158 virtual std::ostream&
info(std::ostream&
os)
const;
169 const uint diff = this->dimX() > this->dimY() ?
170 this->dimX() - this->dimY() : this->dimY() - this->dimX();
171 DEBUGL(trivExtRestrAppl_D,
"diff = " <<
diff <<
", extend = " << extend_);
virtual const uint dimY() const
F type
Type of data, e.g. matrix entries.
virtual const uint dimX() const
int operator[](const uint i) const
Returns the permutation of index i.
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
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.
void composeRestr(const TrivExtendRestrict< F > &restr, Matrix< F > &dest) const
Permutation(const Permutation< F > &perm, bool transpose=false)
virtual void operator()(const Function< c_type > &fncY, Function< c_type > &fncX)
virtual void transpMult(const Vector< r_type > &fncY, Vector< F > &fncX)
Computes fncX = AT fncY where A is this matrix.
Cmplxtype< F >::type c_type
Complex type of data type.
virtual void operator()(const Function< r_type > &fncY, Function< F > &fncX)
Computes fncX = A(fncY) where A is this matrix.
Realtype< F >::type r_type
Real type of data type.
Permutation(const Space< G > &space, const Array< int > &perm, bool transpose=false)
void convertToMatrix(Matrix< F > &dest) const
virtual F operator()(const uint i, const uint j) const
Returns entry with indices i and j.
virtual F & operator()(const uint i, const uint j)
Returns and allows access to entry with indices i and j.
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
TrivExtendRestrict(const concepts::Space< G > &spcX, const concepts::Space< G > &spcY, bool extend=false)
virtual void operator()(const concepts::Function< F > &fncY, concepts::Function< F > &fncX)
void convertToMatrix(Matrix< F > &dest) const
bool extend() const
Returns the extension flag.
#define conceptsAssert(cond, exc)
#define DEBUGL(doit, msg)
Set< F > makeSet(uint n, const F &first,...)