lsst.afw g401a67a369+49cb0b2ce6
Classes | Functions
lsst::afw::math::details Namespace Reference

Classes

struct  AuxFunc1
 Auxiliary struct 1. More...
 
struct  AuxFunc2
 
class  binder2_1
 
class  binder3_1
 
class  Int2DAuxType
 
class  Int3DAuxType
 

Functions

template<class T >
norm (const T &x)
 
template<class T >
real (const T &x)
 
template<class T >
Epsilon ()
 
template<class T >
MinRep ()
 
template<class T >
rescale_error (T err, T const &resabs, T const &resasc)
 
template<typename UnaryFunctionT , typename Arg >
bool intGKPNA (UnaryFunctionT func, IntRegion< Arg > &reg, Arg const epsabs, Arg const epsrel, std::map< Arg, Arg > *fxmap=nullptr)
 Non-adaptive integration of the function f over the region 'reg'. More...
 
template<typename UnaryFunctionT , typename Arg >
void intGKP (UnaryFunctionT func, IntRegion< Arg > &reg, Arg const epsabs, Arg const epsrel, std::map< Arg, Arg > *fxmap=nullptr)
 An adaptive integration algorithm which computes the integral of f over the region reg. More...
 
template<class UF >
AuxFunc1< UF > Aux1 (UF uf)
 Auxiliary function 1. More...
 
template<class UF >
AuxFunc2< UF > Aux2 (UF uf)
 Auxiliary function 2. More...
 
template<class BF , class Tp >
binder2_1< BF > bind21 (const BF &oper, const Tp &x)
 
template<class TF , class Tp >
binder3_1< TF > bind31 (const TF &oper, const Tp &x)
 
int gkp_n (int level)
 
template<class T >
const std::vector< T > & gkp_x (int level)
 
template<class T >
const std::vector< T > & gkp_wa (int level)
 
template<class T >
const std::vector< T > & gkp_wb (int level)
 

Function Documentation

◆ Aux1()

template<class UF >
AuxFunc1< UF > lsst::afw::math::details::Aux1 ( UF  uf)
inline

Auxiliary function 1.

Definition at line 587 of file Integrate.h.

◆ Aux2()

template<class UF >
AuxFunc2< UF > lsst::afw::math::details::Aux2 ( UF  uf)
inline

Auxiliary function 2.

Definition at line 608 of file Integrate.h.

◆ bind21()

template<class BF , class Tp >
binder2_1< BF > lsst::afw::math::details::bind21 ( const BF &  oper,
const Tp &  x 
)
inline

Definition at line 628 of file Integrate.h.

◆ bind31()

template<class TF , class Tp >
binder3_1< TF > lsst::afw::math::details::bind31 ( const TF &  oper,
const Tp &  x 
)
inline

Definition at line 671 of file Integrate.h.

◆ Epsilon()

template<class T >
T lsst::afw::math::details::Epsilon ( )
inline

Definition at line 244 of file Integrate.h.

◆ gkp_n()

int lsst::afw::math::details::gkp_n ( int  level)
inline

Definition at line 47 of file IntGKPData10.h.

◆ gkp_wa()

template<class T >
const std::vector< T > & lsst::afw::math::details::gkp_wa ( int  level)
inline

Definition at line 116 of file IntGKPData10.h.

◆ gkp_wb()

template<class T >
const std::vector< T > & lsst::afw::math::details::gkp_wb ( int  level)
inline

Definition at line 171 of file IntGKPData10.h.

◆ gkp_x()

template<class T >
const std::vector< T > & lsst::afw::math::details::gkp_x ( int  level)
inline

Definition at line 54 of file IntGKPData10.h.

◆ intGKP()

template<typename UnaryFunctionT , typename Arg >
void lsst::afw::math::details::intGKP ( UnaryFunctionT  func,
IntRegion< Arg > &  reg,
Arg const  epsabs,
Arg const  epsrel,
std::map< Arg, Arg > *  fxmap = nullptr 
)
inline

An adaptive integration algorithm which computes the integral of f over the region reg.

Note
First the non-adaptive GKP algorithm is tried. If that is not accurate enough (according to the absolute and relative accuracies, epsabs and epsrel), the region is split in half, and each new region is integrated. The routine continues by successively splitting the subregion which gave the largest absolute error until the integral converges.

The area and estimated error are returned as reg.Area() and reg.Err() If desired, *retx and *retf return std::vectors of x,f(x) respectively They only include the evaluations in the non-adaptive pass, so they do not give an accurate estimate of the number of function evaluations.

Definition at line 426 of file Integrate.h.

◆ intGKPNA()

template<typename UnaryFunctionT , typename Arg >
bool lsst::afw::math::details::intGKPNA ( UnaryFunctionT  func,
IntRegion< Arg > &  reg,
Arg const  epsabs,
Arg const  epsrel,
std::map< Arg, Arg > *  fxmap = nullptr 
)
inline

Non-adaptive integration of the function f over the region 'reg'.

Note
The algorithm computes first a Gaussian quadrature value then successive Kronrod/Patterson extensions to this result. The functions terminates when the difference between successive approximations (rescaled according to rescale_error) is less than either epsabs or epsrel * I, where I is the latest estimate of the integral. The order of the Gauss/Kronron/Patterson scheme is determined by which file is included above. Currently schemes starting with order 1 and order 10 are calculated. There seems to be little practical difference in the integration times using the two schemes, so I haven't bothered to calculate any more.

Definition at line 298 of file Integrate.h.

◆ MinRep()

template<class T >
T lsst::afw::math::details::MinRep ( )
inline

Definition at line 248 of file Integrate.h.

◆ norm()

template<class T >
T lsst::afw::math::details::norm ( const T &  x)
inline

Definition at line 160 of file Integrate.h.

◆ real()

template<class T >
T lsst::afw::math::details::real ( const T &  x)
inline

Definition at line 165 of file Integrate.h.

◆ rescale_error()

template<class T >
T lsst::afw::math::details::rescale_error ( err,
T const &  resabs,
T const &  resasc 
)
inline

Definition at line 264 of file Integrate.h.