Class xlifepp::FilonIMT#
-
template<typename T = complex_t>
class FilonIMT : public xlifepp::SingleIM#
-
compute I(x)=intg_0_T f(t)*exp(-ixt)dt using Filon method ~ dt sum_j=1,p Cj(x) sum_n=1,N f(t_n-1)exp(-ixt_n-1) with Cj(x)= intg_0,1 w_j(s) exp(-ixsdt)ds and wj polynomial basis functions order 0 : P0 Lagrange basis w1(s)=1 order 1 : P1 Lagrange basis w1(s)=1-s, w2(s)=s order 2 : P3 Hermite basis w1(s)=(2s+1)(s-1)^2, w2(s)=s(s-1)^2, w3(s)=(3-2s)s^2, w4(s)=(s-1)s^2
main functions are init() : computes f(t_n) and f’(t_n) if order 2 coef(x,j) : computes Cj(x) compute(x) : evaluates I(x) operator (): calls compute(x) print() : outputs some informations
Public Functions
-
inline FilonIMT()#
-
constructors
-
void clear()#
-
clear object
-
template<typename S>
complex_t coef(const S &x, number_t j) const#
-
Filon’s coefficients regarding order_.
-
void init(number_t N, funTP f, funTP df, Parameters &pars)#
-
initialize f values
-
inline virtual void print(PrintStream &os) const#
-
print FilonIMT on stream
-
virtual void print(std::ostream &os) const#
-
print IntegrationMethod on stream
-
inline FilonIMT()#