PARTONS/NumA++  
Numerical Analysis C++ routines
Classes | Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | List of all members
NumA::GaussKronrodAdaptive Class Reference
Inheritance diagram for NumA::GaussKronrodAdaptive:
NumA::Integrator1D

Classes

struct  extrapolation_table
 
struct  gsl_integration_workspace
 

Public Types

enum  {
  GSL_SUCCESS = 0 , GSL_FAILURE = -1 , GSL_CONTINUE = -2 , GSL_EDOM = 1 ,
  GSL_ERANGE = 2 , GSL_EFAULT = 3 , GSL_EINVAL = 4 , GSL_EFAILED = 5 ,
  GSL_EFACTOR = 6 , GSL_ESANITY = 7 , GSL_ENOMEM = 8 , GSL_EBADFUNC = 9 ,
  GSL_ERUNAWAY = 10 , GSL_EMAXITER = 11 , GSL_EZERODIV = 12 , GSL_EBADTOL = 13 ,
  GSL_ETOL = 14 , GSL_EUNDRFLW = 15 , GSL_EOVRFLW = 16 , GSL_ELOSS = 17 ,
  GSL_EROUND = 18 , GSL_EBADLEN = 19 , GSL_ENOTSQR = 20 , GSL_ESING = 21 ,
  GSL_EDIVERGE = 22 , GSL_EUNSUP = 23 , GSL_EUNIMPL = 24 , GSL_ECACHE = 25 ,
  GSL_ETABLE = 26 , GSL_ENOPROG = 27 , GSL_ENOPROGJ = 28 , GSL_ETOLF = 29 ,
  GSL_ETOLX = 30 , GSL_ETOLG = 31 , GSL_EOF = 32
}
 

Public Member Functions

void gsl_error (const char *reason, const char *file, int line, int gsl_errno)
 
 GaussKronrodAdaptive ()
 
virtual ~GaussKronrodAdaptive ()
 
virtual void configure ()
 
double integrate (FunctionType1D *pFunction, double a, double b, std::vector< double > &parameters)
 Integration routine. More...
 
int compute (FunctionType1D *pFunction, const double a, const double b, std::vector< double > &parameters, double &result, gsl_integration_workspace *workspace, const double limit)
 
gsl_integration_workspacegsl_integration_workspace_alloc (const size_t n)
 
void gsl_integration_workspace_free (gsl_integration_workspace *w)
 
void initialise (gsl_integration_workspace *workspace, double a, double b)
 
void retrieve (const gsl_integration_workspace *workspace, double *a, double *b, double *r, double *e)
 
void update (gsl_integration_workspace *workspace, double a1, double b1, double area1, double error1, double a2, double b2, double area2, double error2)
 
void qpsrt (gsl_integration_workspace *workspace)
 
int increase_nrmax (gsl_integration_workspace *workspace)
 
void reset_nrmax (gsl_integration_workspace *workspace)
 
double sum_results (const gsl_integration_workspace *workspace)
 
int large_interval (gsl_integration_workspace *workspace)
 
void set_initial_result (gsl_integration_workspace *workspace, double result, double error)
 
void initialise_table (struct extrapolation_table *table)
 
void append_table (struct extrapolation_table *table, double y)
 
void qelg (struct extrapolation_table *table, double &result, double &abserr)
 
int test_positivity (double result, double resabs)
 
int subinterval_too_small (double a1, double a2, double b2)
 
double GSL_MAX_DBL (double a, double b)
 
void gsl_integration_21qk (FunctionType1D *pFunction, double a, double b, double &result, double &abserr, double &resabs, double &resasc, std::vector< double > &parameters)
 
double rescale_error (double err, const double result_abs, const double result_asc)
 
double GSL_MAX (double a, double b)
 
virtual GaussKronrodAdaptiveclone () const
 
- Public Member Functions inherited from NumA::Integrator1D
 Integrator1D ()
 Default constructor. More...
 
virtual ~Integrator1D ()
 Default destructor. More...
 
virtual void configure (const ElemUtils::Parameters &parameters)
 Provides a generic method to configure all types of integrations by passing a Parameters object. More...
 
const TolerancesgetTolerances () const
 
void setTolerances (const Tolerances &tolerances)
 
const ErrorsgetErrors () const
 
void setErrors (const Errors &errors)
 

Static Public Member Functions

static const std::vector< double > make_xgk_21 ()
 
static const std::vector< double > make_wg_21 ()
 
static const std::vector< double > make_wgk_21 ()
 
- Static Public Member Functions inherited from NumA::Integrator1D
template<typename PointerToObj , typename PointerToMemFn >
static Functor1D< PointerToObj, PointerToMemFn > * newIntegrationFunctor (PointerToObj *object, PointerToMemFn function)
 Use FunctorUtils::newFunctor1D instead. More...
 
static Integrator1DnewIntegrator (const IntegratorType1D::Type &oneDimIntegratorType)
 Instantiates an Integrator object. More...
 

Static Public Attributes

static const std::vector< double > xgk = make_xgk_21()
 
static const std::vector< double > wg = make_wg_21()
 
static const std::vector< double > wgk = make_wgk_21()
 
- Static Public Attributes inherited from NumA::Integrator1D
static const std::string PARAM_NAME_ABSOLUTE_TOLERANCE
 Parameter used in the configure() to set the absolute tolerance. More...
 
static const std::string PARAM_NAME_RELATIVE_TOLERANCE
 Parameter used in the configure() to set the relative tolerance. More...
 

Protected Member Functions

 GaussKronrodAdaptive (const GaussKronrodAdaptive &other)
 
- Protected Member Functions inherited from NumA::Integrator1D
 Integrator1D (const Integrator1D &other)
 Copy constructor. More...
 

Additional Inherited Members

- Protected Attributes inherited from NumA::Integrator1D
Tolerances m_tolerances
 Absolute and relative tolerances. More...
 
Errors m_errors
 Absolute and relative errors estimations. More...
 

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
GSL_SUCCESS 
GSL_FAILURE 
GSL_CONTINUE 
GSL_EDOM 
GSL_ERANGE 
GSL_EFAULT 
GSL_EINVAL 
GSL_EFAILED 
GSL_EFACTOR 
GSL_ESANITY 
GSL_ENOMEM 
GSL_EBADFUNC 
GSL_ERUNAWAY 
GSL_EMAXITER 
GSL_EZERODIV 
GSL_EBADTOL 
GSL_ETOL 
GSL_EUNDRFLW 
GSL_EOVRFLW 
GSL_ELOSS 
GSL_EROUND 
GSL_EBADLEN 
GSL_ENOTSQR 
GSL_ESING 
GSL_EDIVERGE 
GSL_EUNSUP 
GSL_EUNIMPL 
GSL_ECACHE 
GSL_ETABLE 
GSL_ENOPROG 
GSL_ENOPROGJ 
GSL_ETOLF 
GSL_ETOLX 
GSL_ETOLG 
GSL_EOF 

Constructor & Destructor Documentation

◆ GaussKronrodAdaptive() [1/2]

NumA::GaussKronrodAdaptive::GaussKronrodAdaptive ( )
inline

◆ ~GaussKronrodAdaptive()

virtual NumA::GaussKronrodAdaptive::~GaussKronrodAdaptive ( )
inlinevirtual

◆ GaussKronrodAdaptive() [2/2]

NumA::GaussKronrodAdaptive::GaussKronrodAdaptive ( const GaussKronrodAdaptive other)
inlineprotected

Member Function Documentation

◆ append_table()

void NumA::GaussKronrodAdaptive::append_table ( struct extrapolation_table table,
double  y 
)
inline

◆ clone()

virtual GaussKronrodAdaptive* NumA::GaussKronrodAdaptive::clone ( ) const
inlinevirtual

Implements NumA::Integrator1D.

◆ compute()

int NumA::GaussKronrodAdaptive::compute ( FunctionType1D pFunction,
const double  a,
const double  b,
std::vector< double > &  parameters,
double &  result,
gsl_integration_workspace workspace,
const double  limit 
)
inline

◆ configure()

virtual void NumA::GaussKronrodAdaptive::configure ( )
inlinevirtual

◆ gsl_error()

void NumA::GaussKronrodAdaptive::gsl_error ( const char *  reason,
const char *  file,
int  line,
int  gsl_errno 
)
inline

◆ gsl_integration_21qk()

void NumA::GaussKronrodAdaptive::gsl_integration_21qk ( FunctionType1D pFunction,
double  a,
double  b,
double &  result,
double &  abserr,
double &  resabs,
double &  resasc,
std::vector< double > &  parameters 
)
inline

◆ gsl_integration_workspace_alloc()

gsl_integration_workspace* NumA::GaussKronrodAdaptive::gsl_integration_workspace_alloc ( const size_t  n)
inline

◆ gsl_integration_workspace_free()

void NumA::GaussKronrodAdaptive::gsl_integration_workspace_free ( gsl_integration_workspace w)
inline

◆ GSL_MAX()

double NumA::GaussKronrodAdaptive::GSL_MAX ( double  a,
double  b 
)
inline

◆ GSL_MAX_DBL()

double NumA::GaussKronrodAdaptive::GSL_MAX_DBL ( double  a,
double  b 
)
inline

◆ increase_nrmax()

int NumA::GaussKronrodAdaptive::increase_nrmax ( gsl_integration_workspace workspace)
inline

◆ initialise()

void NumA::GaussKronrodAdaptive::initialise ( gsl_integration_workspace workspace,
double  a,
double  b 
)
inline

◆ initialise_table()

void NumA::GaussKronrodAdaptive::initialise_table ( struct extrapolation_table table)
inline

◆ integrate()

double NumA::GaussKronrodAdaptive::integrate ( FunctionType1D pFunction,
double  a,
double  b,
std::vector< double > &  parameters 
)
inlinevirtual

Integration routine.

Parameters
pFunctionFunctor representing the one-dimensional function to integrate.
aLower bound.
bUpper bound.
parametersParameters that can be passed to the function.
Returns
Integral.

Implements NumA::Integrator1D.

◆ large_interval()

int NumA::GaussKronrodAdaptive::large_interval ( gsl_integration_workspace workspace)
inline

◆ make_wg_21()

const std::vector< double > NumA::GaussKronrodAdaptive::make_wg_21 ( )
static

◆ make_wgk_21()

const std::vector< double > NumA::GaussKronrodAdaptive::make_wgk_21 ( )
static

◆ make_xgk_21()

const std::vector< double > NumA::GaussKronrodAdaptive::make_xgk_21 ( )
static

◆ qelg()

void NumA::GaussKronrodAdaptive::qelg ( struct extrapolation_table table,
double &  result,
double &  abserr 
)
inline

◆ qpsrt()

void NumA::GaussKronrodAdaptive::qpsrt ( gsl_integration_workspace workspace)
inline

◆ rescale_error()

double NumA::GaussKronrodAdaptive::rescale_error ( double  err,
const double  result_abs,
const double  result_asc 
)
inline

◆ reset_nrmax()

void NumA::GaussKronrodAdaptive::reset_nrmax ( gsl_integration_workspace workspace)
inline

◆ retrieve()

void NumA::GaussKronrodAdaptive::retrieve ( const gsl_integration_workspace workspace,
double *  a,
double *  b,
double *  r,
double *  e 
)
inline

◆ set_initial_result()

void NumA::GaussKronrodAdaptive::set_initial_result ( gsl_integration_workspace workspace,
double  result,
double  error 
)
inline

◆ subinterval_too_small()

int NumA::GaussKronrodAdaptive::subinterval_too_small ( double  a1,
double  a2,
double  b2 
)
inline

◆ sum_results()

double NumA::GaussKronrodAdaptive::sum_results ( const gsl_integration_workspace workspace)
inline

◆ test_positivity()

int NumA::GaussKronrodAdaptive::test_positivity ( double  result,
double  resabs 
)
inline

◆ update()

void NumA::GaussKronrodAdaptive::update ( gsl_integration_workspace workspace,
double  a1,
double  b1,
double  area1,
double  error1,
double  a2,
double  b2,
double  area2,
double  error2 
)
inline

Member Data Documentation

◆ wg

const std::vector< double > NumA::GaussKronrodAdaptive::wg = make_wg_21()
static

◆ wgk

const std::vector< double > NumA::GaussKronrodAdaptive::wgk = make_wgk_21()
static

◆ xgk

const std::vector< double > NumA::GaussKronrodAdaptive::xgk = make_xgk_21()
static

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