6#ifndef clusterCebysevK_hh
7#define clusterCebysevK_hh
22 typedef typename K::F Fkrnl;
34 template <
class K = bem::Laplace,
class Fspc = concepts::Real>
38 typedef typename Traits::Fkrnl Fkrnl;
59 inline int index_(
int ix,
int iy,
int iz)
const;
71 uint
blksz(uint
m)
const {
return (
m * (
m * (
m + 3) + 2)) / 6;}
72 uint
m()
const {
return m_;}
90 const Fspc src[], Fspc dst[])
const;
92 const Fspc src[], Fspc dst[])
const;
95 template <
class K,
class Fspc>
98 return (((m+3)*m+2)*m + ((3-ix)*3*ix)) / 6 + m*ix + iy;
101 template <
class K,
class Fspc>
106 Fkrnl* F = fexp->value();
107 fit(m, z, F); ceby2poly(m, z, F);
115 template <
class K,
class Fspc>
118 Fkrnl* F = Fexp->value();
119 fit(m, z, F); ceby2poly(m, z, F);
122 template <
class K,
class Fspc>
124 const Fspc src[], Fspc dst[])
const {
126 if (fexp) {apply(m, fexp, src, dst);
return;}
#define conceptsException(exc)
void fit(uint m, const concepts::Real3d &z, Fkrnl F[]) const
Interpolation.
CebysevKF(K &krnl, uint m, concepts::Real eta)
uint m() const
Order of the expansion.
virtual FColF< Fkrnl > * getCol(uint blksz) const
Allocates memory for the expansion coefficients.
void evaluate(uint m, const concepts::Real3d &z, FColExp *Fexp) const
void apply(uint m, const FColExp *Fexp, const Fspc src[], Fspc dst[]) const
void ceby2poly(uint m, const concepts::Real3d &z, Fkrnl F[]) const
Conversion from Cebysev to monomial basis of interpolation polynom.