Hydra  4.0.1
A header-only templated C++ framework to perform data analysis on massively parallel platforms.
hydra::GaussKronrodAdaptiveQuadrature< NRULE, NBIN, hydra::detail::BackendPolicy< BACKEND > > Class Template Reference

#include <GaussKronrodAdaptiveQuadrature.h>

Inheritance diagram for hydra::GaussKronrodAdaptiveQuadrature< NRULE, NBIN, hydra::detail::BackendPolicy< BACKEND > >:
Collaboration diagram for hydra::GaussKronrodAdaptiveQuadrature< NRULE, NBIN, hydra::detail::BackendPolicy< BACKEND > >:

Public Member Functions

 GaussKronrodAdaptiveQuadrature ()=delete
 Deleted constructor for Self-adaptive Gauss-Kronrod quadrature. More...
 
 GaussKronrodAdaptiveQuadrature (GReal_t xlower, GReal_t xupper, GReal_t tolerance=1e-15)
 Self-adaptive Gauss-Kronrod quadrature constructor. More...
 
 GaussKronrodAdaptiveQuadrature (GaussKronrodAdaptiveQuadrature< NRULE, NBIN, hydra::detail::BackendPolicy< BACKEND >> const &other)
 Copy constructor. More...
 
template<hydra::detail::Backend BACKEND2>
 GaussKronrodAdaptiveQuadrature (GaussKronrodAdaptiveQuadrature< NRULE, NBIN, hydra::detail::BackendPolicy< BACKEND2 >> const &other)
 Copy constructor. More...
 
GReal_t GetMaxRelativeError () const
 
const GaussKronrodRule< NRULE > & GetRule () const
 
GReal_t GetXLower () const
 
GReal_t GetXUpper () const
 
template<typename FUNCTOR >
std::pair< GReal_t, GReal_tIntegrate (FUNCTOR const &functor)
 Integrate method. More...
 
GaussKronrodAdaptiveQuadratureoperator= (GaussKronrodAdaptiveQuadrature< NRULE, NBIN, hydra::detail::BackendPolicy< BACKEND >> const &other)
 Assignment operator. More...
 
template<hydra::detail::Backend BACKEND2>
GaussKronrodAdaptiveQuadratureoperator= (GaussKronrodAdaptiveQuadrature< NRULE, NBIN, hydra::detail::BackendPolicy< BACKEND2 >> const &other)
 Assignment operator. More...
 
void Print ()
 Print integration limits, list of nodes ... More...
 
void SetMaxRelativeError (GReal_t maxRelativeError)
 
void SetXLower (GReal_t xLower)
 
void SetXUpper (GReal_t xUpper)
 
- Public Member Functions inherited from hydra::Integral< GaussKronrodAdaptiveQuadrature< NRULE, NBIN, hydra::detail::BackendPolicy< BACKEND > > >
std::pair< GReal_t, GReal_toperator() (Functor const &functor)
 
std::pair< GReal_t, GReal_toperator() (Functor const &functor, double(&min)[N], double(&max)[N])
 

Additional Inherited Members

- Public Types inherited from hydra::Integral< GaussKronrodAdaptiveQuadrature< NRULE, NBIN, hydra::detail::BackendPolicy< BACKEND > > >
typedef void hydra_integrator_type
 

Detailed Description

template<size_t NRULE, size_t NBIN, hydra::detail::Backend BACKEND>
class hydra::GaussKronrodAdaptiveQuadrature< NRULE, NBIN, hydra::detail::BackendPolicy< BACKEND > >

Constructor & Destructor Documentation

◆ GaussKronrodAdaptiveQuadrature() [1/4]

template<size_t NRULE, size_t NBIN, hydra::detail::Backend BACKEND>
hydra::GaussKronrodAdaptiveQuadrature< NRULE, NBIN, hydra::detail::BackendPolicy< BACKEND > >::GaussKronrodAdaptiveQuadrature ( )
delete

Deleted constructor for Self-adaptive Gauss-Kronrod quadrature.

◆ GaussKronrodAdaptiveQuadrature() [2/4]

template<size_t NRULE, size_t NBIN, hydra::detail::Backend BACKEND>
hydra::GaussKronrodAdaptiveQuadrature< NRULE, NBIN, hydra::detail::BackendPolicy< BACKEND > >::GaussKronrodAdaptiveQuadrature ( GReal_t  xlower,
GReal_t  xupper,
GReal_t  tolerance = 1e-15 
)
inline

Self-adaptive Gauss-Kronrod quadrature constructor.

Self-adaptive Gauss-Kronrod quadrature constructor taking the integration region and the tolerance as parameters.

Parameters
xlower- lower range limit
xupper- upper range limit
tolerance- maximum absolute error

◆ GaussKronrodAdaptiveQuadrature() [3/4]

template<size_t NRULE, size_t NBIN, hydra::detail::Backend BACKEND>
hydra::GaussKronrodAdaptiveQuadrature< NRULE, NBIN, hydra::detail::BackendPolicy< BACKEND > >::GaussKronrodAdaptiveQuadrature ( GaussKronrodAdaptiveQuadrature< NRULE, NBIN, hydra::detail::BackendPolicy< BACKEND >> const &  other)
inline

Copy constructor.

Parameters
otherobject at same backdend

◆ GaussKronrodAdaptiveQuadrature() [4/4]

template<size_t NRULE, size_t NBIN, hydra::detail::Backend BACKEND>
template<hydra::detail::Backend BACKEND2>
hydra::GaussKronrodAdaptiveQuadrature< NRULE, NBIN, hydra::detail::BackendPolicy< BACKEND > >::GaussKronrodAdaptiveQuadrature ( GaussKronrodAdaptiveQuadrature< NRULE, NBIN, hydra::detail::BackendPolicy< BACKEND2 >> const &  other)
inline

Copy constructor.

Template Parameters
BACKEND2different backdend specification.
Parameters
otherobject at a different backdend.

Member Function Documentation

◆ GetMaxRelativeError()

template<size_t NRULE, size_t NBIN, hydra::detail::Backend BACKEND>
GReal_t hydra::GaussKronrodAdaptiveQuadrature< NRULE, NBIN, hydra::detail::BackendPolicy< BACKEND > >::GetMaxRelativeError ( ) const
inline

◆ GetRule()

template<size_t NRULE, size_t NBIN, hydra::detail::Backend BACKEND>
const GaussKronrodRule<NRULE>& hydra::GaussKronrodAdaptiveQuadrature< NRULE, NBIN, hydra::detail::BackendPolicy< BACKEND > >::GetRule ( ) const
inline

◆ GetXLower()

template<size_t NRULE, size_t NBIN, hydra::detail::Backend BACKEND>
GReal_t hydra::GaussKronrodAdaptiveQuadrature< NRULE, NBIN, hydra::detail::BackendPolicy< BACKEND > >::GetXLower ( ) const
inline

◆ GetXUpper()

template<size_t NRULE, size_t NBIN, hydra::detail::Backend BACKEND>
GReal_t hydra::GaussKronrodAdaptiveQuadrature< NRULE, NBIN, hydra::detail::BackendPolicy< BACKEND > >::GetXUpper ( ) const
inline

◆ Integrate()

template<size_t NRULE, size_t NBIN, hydra::detail::Backend BACKEND>
template<typename FUNCTOR >
std::pair< GReal_t, GReal_t > hydra::GaussKronrodAdaptiveQuadrature< NRULE, NBIN, hydra::detail::BackendPolicy< BACKEND > >::Integrate ( FUNCTOR const &  functor)

Integrate method.

Parameters
functor
Returns
std::pair<GReal_t, GReal_t> with value and error.
Todo:
Re-implement Accumulate() using hydra::thrust::sort + thust::reduce_by_key, maybe not faster but more scalable.

◆ operator=() [1/2]

template<size_t NRULE, size_t NBIN, hydra::detail::Backend BACKEND>
GaussKronrodAdaptiveQuadrature& hydra::GaussKronrodAdaptiveQuadrature< NRULE, NBIN, hydra::detail::BackendPolicy< BACKEND > >::operator= ( GaussKronrodAdaptiveQuadrature< NRULE, NBIN, hydra::detail::BackendPolicy< BACKEND >> const &  other)
inline

Assignment operator.

Parameters
otherobject at same backdend
Returns

◆ operator=() [2/2]

template<size_t NRULE, size_t NBIN, hydra::detail::Backend BACKEND>
template<hydra::detail::Backend BACKEND2>
GaussKronrodAdaptiveQuadrature& hydra::GaussKronrodAdaptiveQuadrature< NRULE, NBIN, hydra::detail::BackendPolicy< BACKEND > >::operator= ( GaussKronrodAdaptiveQuadrature< NRULE, NBIN, hydra::detail::BackendPolicy< BACKEND2 >> const &  other)
inline

Assignment operator.

Template Parameters
BACKEND2different backdend specification.
Parameters
otherobject in a different backdend
Returns

◆ Print()

template<size_t NRULE, size_t NBIN, hydra::detail::Backend BACKEND>
void hydra::GaussKronrodAdaptiveQuadrature< NRULE, NBIN, hydra::detail::BackendPolicy< BACKEND > >::Print ( )
inline

Print integration limits, list of nodes ...

to std::cout.

◆ SetMaxRelativeError()

template<size_t NRULE, size_t NBIN, hydra::detail::Backend BACKEND>
void hydra::GaussKronrodAdaptiveQuadrature< NRULE, NBIN, hydra::detail::BackendPolicy< BACKEND > >::SetMaxRelativeError ( GReal_t  maxRelativeError)
inline

◆ SetXLower()

template<size_t NRULE, size_t NBIN, hydra::detail::Backend BACKEND>
void hydra::GaussKronrodAdaptiveQuadrature< NRULE, NBIN, hydra::detail::BackendPolicy< BACKEND > >::SetXLower ( GReal_t  xLower)
inline

◆ SetXUpper()

template<size_t NRULE, size_t NBIN, hydra::detail::Backend BACKEND>
void hydra::GaussKronrodAdaptiveQuadrature< NRULE, NBIN, hydra::detail::BackendPolicy< BACKEND > >::SetXUpper ( GReal_t  xUpper)
inline

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