Inheritence diagram for xlifepp::FilonIMT:
digraph {
graph [bgcolor="#00000000"]
node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
edge [color="#1414CE"]
"4" [label="xlifepp::FilonIMT< complex_t >" tooltip="xlifepp::FilonIMT< complex_t >"]
"1" [label="xlifepp::FilonIMT< T >" tooltip="xlifepp::FilonIMT< T >" fillcolor="#BFBFBF"]
"3" [label="xlifepp::IntegrationMethod" tooltip="xlifepp::IntegrationMethod"]
"2" [label="xlifepp::SingleIM" tooltip="xlifepp::SingleIM"]
"4" -> "1" [dir=forward tooltip="template-instance"]
"1" -> "2" [dir=forward tooltip="public-inheritance"]
"2" -> "3" [dir=forward tooltip="public-inheritance"]
}
Collaboration diagram for xlifepp::FilonIMT:
digraph {
graph [bgcolor="#00000000"]
node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
edge [color="#1414CE"]
"4" [label="xlifepp::Vector< real_t >" tooltip="xlifepp::Vector< real_t >"]
"6" [label="std::vector< T >" tooltip="std::vector< T >"]
"8" [label="std::vector< K >" tooltip="std::vector< K >"]
"5" [label="std::vector< real_t >" tooltip="std::vector< real_t >"]
"1" [label="xlifepp::FilonIMT< T >" tooltip="xlifepp::FilonIMT< T >" fillcolor="#BFBFBF"]
"3" [label="xlifepp::IntegrationMethod" tooltip="xlifepp::IntegrationMethod"]
"2" [label="xlifepp::SingleIM" tooltip="xlifepp::SingleIM"]
"7" [label="xlifepp::Vector< K >" tooltip="xlifepp::Vector< K >"]
"4" -> "5" [dir=forward tooltip="public-inheritance"]
"4" -> "7" [dir=forward tooltip="template-instance"]
"8" -> "6" [dir=forward tooltip="template-instance"]
"5" -> "6" [dir=forward tooltip="template-instance"]
"1" -> "2" [dir=forward tooltip="public-inheritance"]
"1" -> "4" [dir=forward tooltip="usage"]
"2" -> "3" [dir=forward tooltip="public-inheritance"]
"7" -> "8" [dir=forward tooltip="public-inheritance"]
}
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_.
template < typename S > complex_t compute ( const S & x ) const
compute I(x)
void init ( number_t N , funT f , funT df )
initialize f values
void init ( number_t N , funTP f , funTP df , Parameters & pars )
initialize f values
template < typename S > inline complex_t operator () ( const S & x ) const
< compute I(x)
inline virtual void print ( PrintStream & os ) const
print FilonIMT on stream
virtual void print ( std :: ostream & os ) const
print IntegrationMethod on stream
inline number_t size ( ) const
grid size