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

#include <integrator_gpu.hh>

Classes

struct  functor
 Custom functor for the thrust::transform_reduce function. More...
 

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

 IntegratorGPU (QuadratureProvider &quadrature_provider, const std::array< uint, 1 > grid_size, const ctype x_extent, const uint max_block_size=256)
 
 IntegratorGPU (QuadratureProvider &quadrature_provider, const std::array< uint, 1 > grid_size, const ctype x_extent, const JSONValue &json)
 
 IntegratorGPU (QuadratureProvider &quadrature_provider, const uint grid_size, const ctype x_extent, const uint max_block_size=256)
 
 IntegratorGPU (const IntegratorGPU &other)
 
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

const uint grid_size
 
const ctypeptr_x_quadrature_p
 
const ctypeptr_x_quadrature_w
 
const ctype x_extent
 

Member Typedef Documentation

◆ ctype

template<int d, typename NT , typename KERNEL >
using DiFfRG::IntegratorGPU< d, 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

◆ IntegratorGPU() [1/4]

template<int d, typename NT , typename KERNEL >
DiFfRG::IntegratorGPU< d, NT, KERNEL >::IntegratorGPU ( QuadratureProvider & quadrature_provider,
const std::array< uint, 1 > grid_size,
const ctype x_extent,
const uint max_block_size = 256 )
inline

◆ IntegratorGPU() [2/4]

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

◆ IntegratorGPU() [3/4]

template<int d, typename NT , typename KERNEL >
DiFfRG::IntegratorGPU< d, NT, KERNEL >::IntegratorGPU ( QuadratureProvider & quadrature_provider,
const uint grid_size,
const ctype x_extent,
const uint max_block_size = 256 )
inline

◆ IntegratorGPU() [4/4]

template<int d, typename NT , typename KERNEL >
DiFfRG::IntegratorGPU< d, NT, KERNEL >::IntegratorGPU ( const IntegratorGPU< d, NT, KERNEL > & other)
inline

Member Function Documentation

◆ get()

template<int d, typename NT , typename KERNEL >
template<typename... T>
NT DiFfRG::IntegratorGPU< d, 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<int d, typename NT , typename KERNEL >
template<typename... T>
std::future< NT > DiFfRG::IntegratorGPU< d, 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

◆ grid_size

template<int d, typename NT , typename KERNEL >
const uint DiFfRG::IntegratorGPU< d, NT, KERNEL >::grid_size
private

◆ ptr_x_quadrature_p

template<int d, typename NT , typename KERNEL >
const ctype* DiFfRG::IntegratorGPU< d, NT, KERNEL >::ptr_x_quadrature_p
private

◆ ptr_x_quadrature_w

template<int d, typename NT , typename KERNEL >
const ctype* DiFfRG::IntegratorGPU< d, NT, KERNEL >::ptr_x_quadrature_w
private

◆ x_extent

template<int d, typename NT , typename KERNEL >
const ctype DiFfRG::IntegratorGPU< d, NT, KERNEL >::x_extent
private

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