ATLAS Offline Software
|
Class to perform a generic recursive Gauss-Legendre Integration, see http://en.wikipedia.org/wiki/Gaussian_quadrature#Gauss.E2.80.93Legendre_quadrature Templated in the type of the integrand. More...
#include <eflowCellIntegrator.h>
Public Member Functions | |
eflowRecursiveGaussLegendreIntegrator (IntegrandType *integrand, double error) | |
virtual | ~eflowRecursiveGaussLegendreIntegrator () |
virtual double | integrate (const eflowRange &range) |
double | getError () const |
Private Member Functions | |
double | DoGaussLegendreIntegration (const eflowRange &range, int nOrder) |
double | RecurseIntegration (const eflowRange &range, int nSubRanges) |
Private Attributes | |
IntegrandType * | m_integrand |
double | m_error |
int | m_depth |
Class to perform a generic recursive Gauss-Legendre Integration, see http://en.wikipedia.org/wiki/Gaussian_quadrature#Gauss.E2.80.93Legendre_quadrature Templated in the type of the integrand.
All the integrand class needs to have, is an evaluate() method, that takes a double as a parameter and returns a double. Templates are used instead of polymorphism here due to the better CPU performance.
Definition at line 34 of file eflowCellIntegrator.h.
|
inline |
Definition at line 36 of file eflowCellIntegrator.h.
|
inlinevirtual |
Definition at line 40 of file eflowCellIntegrator.h.
|
inlineprivate |
Definition at line 61 of file eflowCellIntegrator.h.
|
inline |
Definition at line 57 of file eflowCellIntegrator.h.
|
inlinevirtual |
Definition at line 42 of file eflowCellIntegrator.h.
|
inlineprivate |
Definition at line 89 of file eflowCellIntegrator.h.
|
private |
Definition at line 108 of file eflowCellIntegrator.h.
|
private |
Definition at line 107 of file eflowCellIntegrator.h.
|
private |
Definition at line 106 of file eflowCellIntegrator.h.