19 template<
class F = concepts::Real>
34 inline const Haar3d0<F>& space()
const {
return spc_;}
65 for(uint i = 0; i < spc_.nelm(); i++)
delete elmptr_[i];
72 return sizeof(
XY00<F>) + spc_.nelm()*
sizeof(elmptr_[0]) + xy_->memory();
80 template<
class F = concepts::Real>
99 :
XY00<F>(spc, exp, 0) {}
111 template<
class F = concepts::Real>
135 :
XY00<F>(spc, exp, &shftExp) {}
144 this->exp_.apply(x, src, dst);
152 template<
class F = concepts::Real>
164 ~F00() {
delete foo_;
delete[] fee_;}
166 inline const Haar3d0<F>& space()
const {
return X_.space();}
180 uint dx, uint dy, uint nx, uint ny);
191 void operator()(uint idxX, uint idxY, F* valXY, F* valYX, uint dx, uint dy,
213 : X_(X), Y_(Y), exp_(exp), m_(exp.m()), eta_(eta) {
215 if (&X_.space() != &Y_.space())
217 MissingFeature(
"Different spaces not supported"));
219 fee_ =
new F[exp.
blksz(m_)];
#define conceptsException(exc)
void operator()(uint idxX, uint idxY, F *valXY, F *valYX, uint dx, uint dy, uint nx, uint ny)
bool admissible(const Haar3dXXX< F > &elmX, const Haar3dXXX< F > &elmY)
Admissibility condition (true if elmX and elmY in the far field)
F00(const X00< F > &X, const Y00< F > &Y, const cluster::ExpansionF< F > &exp, concepts::Real eta)
void operator()(uint idxX, uint idxY, F *valXY, uint dx, uint dy, uint nx, uint ny)
concepts::Real radius() const
Radius of the element.
const concepts::Real3d & center() const
Center of the element.
uint memory() const
Memory used.
X00(const cluster::ExpansionXY< F > &exp, const cluster::ExpansionXY< F > &shftExp, const Haar3d0< F > &spc)
cluster::XYColExpPtr * operator[](uint i) const
Pointer to the far field values of element i.
const Haar3d0< F > & space() const
Agglomerated wavelet space.
void apply(cluster::XYColExpPtr *x, const F *src, F *dst) const
Application of the expansion.
XY00(const Haar3d0< F > &spc, const cluster::ExpansionXY< F > &exp, const cluster::ExpansionXY< F > *shftExp=0)
virtual ~XY00()
Destructor.
const cluster::ExpansionXY< F > & exp_
Expansion used for evaluation and application.
cluster::XYColExpPtr * operator[](uint i) const
Pointer to the far field values of element i.
uint memory() const
Memory used.
Y00(const cluster::ExpansionXY< F > &exp, const Haar3d0< F > &spc)
cluster::XYColExpPtr * operator[](uint i) const
Pointer to the far field values of element i.
uint memory() const
Memory used.
const Haar3d0< F > & space() const
Agglomerated wavelet space.
virtual uint blksz(uint m) const =0
virtual FColExp * getCol(uint blksz) const =0