Go to the documentation of this file.
6 #ifndef aglowavOperator_hh
7 #define aglowavOperator_hh
28 template<
class F = concepts::Real>
50 std::ostream&
info(std::ostream& os)
const;
60 :
concepts::Operator<F>(wav.dim(), cnst.dim()), wav_(wav), cnst_(cnst)
71 template<
class F = concepts::Real>
94 std::ostream&
info(std::ostream& os)
const;
104 :
concepts::Operator<F>(wav.dim(), cnst.dim()), cnst_(cnst), wav_(wav)
117 template<
class F = concepts::Real>
140 std::ostream&
info(std::ostream& os)
const;
161 template<
class F = concepts::Real>
184 std::ostream&
info(std::ostream& os)
const;
206 template<
class F = concepts::Real>
225 std::ostream&
info(std::ostream& os)
const;
232 std::vector<concepts::Real>
val_;
241 template<
class F = concepts::Real>
262 std::ostream&
info(std::ostream& os)
const;
270 ops_ = concepts::newField<concepts::Operator<F>*>(
n_);
271 for(uint i = 0; i <
n_; i++)
ops_[i] = ops[i];
272 f_ = concepts::newField<concepts::Vector<F>*>(
n_-1);
273 for(uint j = 0; j <
n_-1; j++)
279 for(uint i = 0; i < n_-1; i++)
delete f_[i];
291 ops_[n_-1]->operator()(fncY, *f_[n_-2]);
292 for(uint i = n_-1; --i;) ops_[i]->
operator()(*f_[i], *f_[i-1]);
293 ops_[0]->operator()(*f_[0], fncX);
298 return os <<
"aglowav::ComposeN -- (op1 * ... * op" << n_ <<
")";
303 #endif // aglowavOperator_hh
uint n_
Number of operators to compose.
const BiHaar3d< F > & spaceX() const
Spaces of the transformation.
void operator()(const concepts::Function< F > &fncY, concepts::Function< F > &fncX)
Matrix vector multiplication.
const concepts::Space< F > & cnst_
const BiHaar3d< F > & spaceY() const
Transformation operator from the adaptive constant space to the agglomerated wavelet space without sc...
std::ostream & info(std::ostream &os) const
Information about the operator.
Abstract class for a space.
concepts::Real ** idx_
n entries, each entry points to the appropriate entry in val_
const Haar3d< F > & spaceX() const
Spaces of the transformation.
const Haar3d< F > & spaceY() const
const Haar3d< F > & spc_
Spaces of the transformation.
void operator()(const concepts::Vector< F > &fncY, concepts::Vector< F > &fncX)
Abstract class for a function.
Weighted diagonal preconditioner for the binary Wavelets.
Inverse weighted diagonal preconditioner for the binary Wavelets (inverse of C2_tl2).
std::ostream & info(std::ostream &os) const
Information about the operator.
std::ostream & info(std::ostream &os) const
concepts::Real * val_
Values of the diagonal entries (only one entry per level)
Agglomerated binary wavelet space.
#define conceptsAssert(cond, exc)
Assert that a certain condition is fulfilled.
virtual void operator()()
Application operator without argument.
const concepts::Space< F > & spaceX() const
Spaces of the transformation.
const concepts::Space< F > & cnst_
Spaces of the transformation.
concepts::Real * val_
Values of the diagonal entries (only one entry per level)
void operator()(const concepts::Function< F > &fncC, concepts::Function< F > &fncW)
Transformation from fncC to fncW.
Exception class for assertions.
void operator()(const concepts::Vector< F > &fncW, concepts::Vector< F > &fncC)
Transformation operator from the agglomerated wavelet space to the adaptive constant space without sc...
const BiHaar3d< F > & spaceY() const
const BiHaar3d< F > & spaceX() const
Spaces of the transformation.
Abstract class for an operator.
void operator()(const concepts::Function< F > &fncW, concepts::Function< F > &fncC)
const Haar3d< F > & wav_
Spaces of the transformation.
void operator()(const concepts::Vector< F > &fncY, concepts::Vector< F > &fncX)
std::ostream & info(std::ostream &os) const
Information about the operator.
Agglomerated wavelet space.
const concepts::Space< F > & spaceY() const
void operator()(const concepts::Vector< F > &fncC, concepts::Vector< F > &fncW)
void operator()(const concepts::Function< F > &fncY, concepts::Function< F > &fncX)
Matrix vector multiplication.
Weighted diagonal preconditioner for the binary Wavelets.
ComposeN(concepts::Operator< F > **ops, uint n)
Constructor.
std::ostream & info(std::ostream &os) const
Information about the operator.
uint dim() const
Returns the dimension of the function.
C2W(const concepts::Space< F > &cnst, const Haar3d< F > &wav)
Constructor.
Composes more than 2 operators.
W2C(const Haar3d< F > &wav, const concepts::Space< F > &cnst)
Constructor.
const BiHaar3d< F > & spc_
Spaces of the transformation.
const Haar3d< F > & spaceX() const
Spaces of the transformation.
C2tl2(const BiHaar3d< F > &spc, concepts::Real t)
Constructor.
std::ostream & info(std::ostream &os) const
Information about the operator.
C2_tl2(const BiHaar3d< F > &spc, concepts::Real t)
Constructor.
const Haar3d< F > & spaceY() const
CGt2(const Haar3d< F > &spc, concepts::Real t)
Constructor.
virtual const uint dimY() const
Returns the size of the source space of the operator (number of columns of the corresponding matrix)
Used for the aglowav classes for the boundary element method.
void operator()(const concepts::Function< F > &fncY, concepts::Function< F > &fncX)
Matrix vector multiplication.
std::vector< concepts::Real > val_
Values of the diagonal entries.
void operator()(const concepts::Vector< F > &fncY, concepts::Vector< F > &fncX)
concepts::Vector< F > ** f_
Auxiliary vectors.
double Real
Type normally used for a floating point number.
concepts::Real ** idx_
n entries, each entry points to the appropriate entry in val_
concepts::Operator< F > ** ops_
Operators to compose.
Basic namespace for Concepts-2.
const BiHaar3d< F > & spc_
Spaces of the transformation.