20 template <
class Fspc = concepts::Real>
25 class FColCebyLpl :
public FColExp {
30 inline ~FColCebyLpl() {
delete[] val;}
32 uint memory(uint
blksz)
const {
35 void info(std::ostream& os, uint
blksz)
const {
36 for(uint i = 0; i <
blksz-1; i++) os << val[i] <<
", ";
37 os << val[
blksz-1] <<
")";
58 inline int index_(
int ix,
int iy,
int iz)
const;
69 uint
blksz(uint
m)
const {
return (
m * (
m * (
m + 3) + 2)) / 6;}
70 uint
m()
const {
return m_;}
88 inline void apply(uint
m,
const FColExp* Fexp,
const Fspc src[],
97 return (((m+3)*m+2)*m + ((3-ix)*3*ix)) / 6 + m*ix + iy;
100 template <
class Fspc>
107 fit(m, z, F); ceby2poly(m, z, F);
115 template <
class Fspc>
120 fit(m, z, F); ceby2poly(m, z, F);
124 template <
class Fspc>
126 const Fspc src[], Fspc dst[])
const {
128 if (fexp) {apply(m, fexp, src, dst);
return;}
#define conceptsException(exc)
CebysevLaplaceF(uint m, concepts::Real eta)
virtual FColReal * getCol(uint blksz) const
Allocates memory for the expansion coefficients.
uint m() const
Order of the expansion.
void ceby2poly(uint m, const concepts::Real3d &z, concepts::Real F[]) const
Conversion from Cebysev to monomial basis of interpolation polynom.
void fit(uint m, const concepts::Real3d &z, concepts::Real F[]) const
Interpolation.
void apply(uint m, const FColExp *Fexp, const Fspc src[], Fspc dst[]) const
void evaluate(uint m, const concepts::Real3d &z, FColExp *Fexp) const