DiFfRG
Loading...
Searching...
No Matches
DiFfRG::Integrator4DQMC< NT, KERNEL > Class Template Reference

GPU integrator for the integration of a 4D function with three angles with quasi-Monte-Carlo. Calculates. More...

#include <integrator_4D_qmc.hh>

Classes

class  Functor
 

Public Types

using ctype = typename get_type::ctype<NT>
 Numerical type to be used for integration tasks e.g. the argument or possible jacobians.
 

Public Member Functions

 Integrator4DQMC (QuadratureProvider &quadrature_provider, const std::array< uint, 4 > grid_size, const ctype x_extent, const JSONValue &json)
 
 Integrator4DQMC (const ctype x_extent, const double rel_tol=1e-3, const double abs_tol=1e-14, const uint maxeval=100000)
 
 Integrator4DQMC (const ctype x_extent, const JSONValue &json)
 
template<typename... T>
NT get (const ctype k, const T &...t) const
 Get the integral of the kernel.
 
template<typename... T>
std::future< NT > request (const ctype k, const T &...t) const
 Request a future for the integral of the kernel.
 

Private Attributes

BS::thread_pool< BS::tp::none > pool
 
integrators::Qmc< NT, ctype, 4, integrators::transforms::None::typeintegrator
 
const ctype x_extent
 

Detailed Description

template<typename NT, typename KERNEL>
class DiFfRG::Integrator4DQMC< NT, KERNEL >

GPU integrator for the integration of a 4D function with three angles with quasi-Monte-Carlo. Calculates.

\[ \int dp\, d\text{cos}_1\, d\text{cos}_2\, d\phi\, \frac{1}{(2\pi)^4} \sqrt{1-\text{cos}_1^2} f(p, \text{cos}_1, \text{cos}_2, \phi, ...) + c \]

with \( p^2 \) bounded by \( \text{x_extent} * k^2 \).

Template Parameters
NTThe numerical type of the result.
KERNELThe kernel to integrate.

Member Typedef Documentation

◆ ctype

template<typename NT , typename KERNEL >
using DiFfRG::Integrator4DQMC< NT, KERNEL >::ctype = typename get_type::ctype<NT>

Numerical type to be used for integration tasks e.g. the argument or possible jacobians.

Constructor & Destructor Documentation

◆ Integrator4DQMC() [1/3]

template<typename NT , typename KERNEL >
DiFfRG::Integrator4DQMC< NT, KERNEL >::Integrator4DQMC ( QuadratureProvider & quadrature_provider,
const std::array< uint, 4 > grid_size,
const ctype x_extent,
const JSONValue & json )
inline

◆ Integrator4DQMC() [2/3]

template<typename NT , typename KERNEL >
DiFfRG::Integrator4DQMC< NT, KERNEL >::Integrator4DQMC ( const ctype x_extent,
const double rel_tol = 1e-3,
const double abs_tol = 1e-14,
const uint maxeval = 100000 )
inline

◆ Integrator4DQMC() [3/3]

template<typename NT , typename KERNEL >
DiFfRG::Integrator4DQMC< NT, KERNEL >::Integrator4DQMC ( const ctype x_extent,
const JSONValue & json )
inline

Member Function Documentation

◆ get()

template<typename NT , typename KERNEL >
template<typename... T>
NT DiFfRG::Integrator4DQMC< NT, KERNEL >::get ( const ctype k,
const T &... t ) const
inline

Get the integral of the kernel.

Template Parameters
TTypes of the parameters for the kernel.
Parameters
kRG-scale.
tParameters forwarded to the kernel.
Returns
NT Integral of the kernel plus the constant part.

◆ request()

template<typename NT , typename KERNEL >
template<typename... T>
std::future< NT > DiFfRG::Integrator4DQMC< NT, KERNEL >::request ( const ctype k,
const T &... t ) const
inline

Request a future for the integral of the kernel.

Template Parameters
TTypes of the parameters for the kernel.
Parameters
kRG-scale.
tParameters forwarded to the kernel.
Returns
std::future<NT> future holding the integral of the kernel plus the constant part.

Member Data Documentation

◆ integrator

template<typename NT , typename KERNEL >
integrators::Qmc<NT, ctype, 4, integrators::transforms::None::type> DiFfRG::Integrator4DQMC< NT, KERNEL >::integrator
mutableprivate

◆ pool

template<typename NT , typename KERNEL >
BS::thread_pool<BS::tp::none> DiFfRG::Integrator4DQMC< NT, KERNEL >::pool
mutableprivate

◆ x_extent

template<typename NT , typename KERNEL >
const ctype DiFfRG::Integrator4DQMC< NT, KERNEL >::x_extent
private

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