CLHEP 2.4.6.4
C++ Class Library for High Energy Physics
Loading...
Searching...
No Matches
Genfun::DefiniteIntegral::Clockwork::TrapezoidQuadratureRule Class Reference
+ Inheritance diagram for Genfun::DefiniteIntegral::Clockwork::TrapezoidQuadratureRule:

Public Member Functions

 TrapezoidQuadratureRule ()
 
 ~TrapezoidQuadratureRule ()
 
virtual double integrate (const AbsFunction &function, double a, double b, unsigned int j) const
 
virtual unsigned int stepMultiplier () const
 
virtual unsigned int numFunctionCalls () const
 
- Public Member Functions inherited from Genfun::DefiniteIntegral::Clockwork::QuadratureRule
 QuadratureRule ()
 
virtual ~QuadratureRule ()
 
virtual double integrate (const AbsFunction &function, double a, double b, unsigned int j) const =0
 
virtual unsigned int stepMultiplier () const =0
 
virtual unsigned int numFunctionCalls () const =0
 

Detailed Description

Definition at line 48 of file DefiniteIntegral.cc.

Constructor & Destructor Documentation

◆ TrapezoidQuadratureRule()

Genfun::DefiniteIntegral::Clockwork::TrapezoidQuadratureRule::TrapezoidQuadratureRule ( )
inline

Definition at line 53 of file DefiniteIntegral.cc.

53:retVal(0),nFunctionCalls(0) {};

◆ ~TrapezoidQuadratureRule()

Genfun::DefiniteIntegral::Clockwork::TrapezoidQuadratureRule::~TrapezoidQuadratureRule ( )
inline

Definition at line 56 of file DefiniteIntegral.cc.

56{};

Member Function Documentation

◆ integrate()

double Genfun::DefiniteIntegral::Clockwork::TrapezoidQuadratureRule::integrate ( const AbsFunction function,
double  a,
double  b,
unsigned int  j 
) const
virtual

Implements Genfun::DefiniteIntegral::Clockwork::QuadratureRule.

Definition at line 224 of file DefiniteIntegral.cc.

224 {
225 unsigned int it, j;
226 if (n==1) {
227 retVal = 0.5*(bb-aa)*(function(aa)+function(bb));
228 nFunctionCalls+=2;
229 }
230 else {
231 for (it=1,j=1;j<n-1;j++) it <<=1;
232 double tnm=it;
233 double del = (bb-aa)/tnm;
234 double x=aa+0.5*del;
235 double sum;
236 for (sum=0.0,j=1;j<=it;j++,x+=del) {
237 sum +=function(x);
238 nFunctionCalls++;
239 }
240 retVal = 0.5*(retVal+(bb-aa)*sum/tnm);
241 }
242 return retVal;
243 }

◆ numFunctionCalls()

virtual unsigned int Genfun::DefiniteIntegral::Clockwork::TrapezoidQuadratureRule::numFunctionCalls ( ) const
inlinevirtual

Implements Genfun::DefiniteIntegral::Clockwork::QuadratureRule.

Definition at line 68 of file DefiniteIntegral.cc.

68{return nFunctionCalls;};

◆ stepMultiplier()

virtual unsigned int Genfun::DefiniteIntegral::Clockwork::TrapezoidQuadratureRule::stepMultiplier ( ) const
inlinevirtual

Implements Genfun::DefiniteIntegral::Clockwork::QuadratureRule.

Definition at line 65 of file DefiniteIntegral.cc.

65{return 2;}

The documentation for this class was generated from the following file: