|
DiFfRG
|
Integration of an arbitrary 1D function from qx_min to qx_max using CUDA. More...
#include <integrator_1D_cartesian_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 | |
| Integrator1DCartesianGPU (QuadratureProvider &quadrature_provider, const std::array< uint, 1 > grid_size, const ctype x_extent=0., const uint max_block_size=0, const ctype qx_min=-M_PI, const ctype qx_max=M_PI) | |
| Construct a new Integrator1DCartesianGPU object. | |
| Integrator1DCartesianGPU (QuadratureProvider &quadrature_provider, const std::array< uint, 1 > grid_size, const JSONValue &json) | |
| Construct a new Integrator1DCartesianGPU object. | |
| Integrator1DCartesianGPU (QuadratureProvider &quadrature_provider, const std::array< uint, 1 > grid_size, const ctype x_extent, const JSONValue &json) | |
| Construct a new Integrator1DCartesianGPU object. | |
| Integrator1DCartesianGPU (QuadratureProvider &quadrature_provider, const uint grid_size, const ctype x_extent=0., const ctype qx_min=-M_PI, const ctype qx_max=M_PI) | |
| Construct a new Integrator1DCartesianGPU object. | |
| Integrator1DCartesianGPU (const Integrator1DCartesianGPU &other) | |
| Construct a copy of an existing Integrator1DCartesianGPU object. | |
| void | set_qx_min (const ctype qx_min) |
| Set the minimum value of the qx integration range. | |
| void | set_qx_max (const ctype qx_max) |
| Set the maximum value of the qx integration range. | |
| template<typename... T> | |
| NT | get (const ctype k, const T &...t) const |
| Get the result of the integration. | |
| template<typename... T> | |
| std::future< NT > | request (const ctype k, const T &...t) const |
| Get the result of the integration asynchronously. | |
Private Attributes | |
| const uint | grid_size |
| ctype | qx_min = -M_PI |
| ctype | qx_extent = 2. * M_PI |
| const ctype * | ptr_x_quadrature_p |
| const ctype * | ptr_x_quadrature_w |
Integration of an arbitrary 1D function from qx_min to qx_max using CUDA.
| NT | The numerical type of the result. |
| KERNEL | The kernel to integrate. |
| using DiFfRG::Integrator1DCartesianGPU< NT, KERNEL >::ctype = typename get_type::ctype<NT> |
Numerical type to be used for integration tasks e.g. the argument or possible jacobians.
|
inline |
Construct a new Integrator1DCartesianGPU object.
| quadrature_provider | The quadrature provider to use. |
| grid_size | The number of grid points to use. |
| x_extent | This argument is not used, but kept for compatibility with flow classes. |
| max_block_size | The maximum block size to use on GPU. |
| qx_min | The minimum value of the qx integration range. |
| qx_max | The maximum value of the qx integration range. |
|
inline |
Construct a new Integrator1DCartesianGPU object.
| quadrature_provider | The quadrature provider to use. |
| grid_size | The number of grid points to use. |
| json | The JSON object to read additional parameters from. |
|
inline |
Construct a new Integrator1DCartesianGPU object.
| quadrature_provider | The quadrature provider to use. |
| grid_size | The number of grid points to use. |
| x_extent | This argument is not used, but kept for compatibility with flow classes. |
| json | The JSON object to read additional parameters from. |
|
inline |
Construct a new Integrator1DCartesianGPU object.
| quadrature_provider | The quadrature provider to use. |
| grid_size | The number of grid points to use. |
| x_extent | This argument is not used, but kept for compatibility with flow classes. |
| qx_min | The minimum value of the qx integration range. |
| qx_max | The maximum value of the qx integration range. |
|
inline |
Construct a copy of an existing Integrator1DCartesianGPU object.
| other | The object to copy. |
|
inline |
Get the result of the integration.
| T | The types of the additional arguments to the kernel. |
| k | The current RG scale. |
| t | The additional arguments of the kernel. |
|
inline |
Get the result of the integration asynchronously.
| T | The types of the additional arguments to the kernel. |
| k | The current RG scale. |
| t | The additional arguments of the kernel. |
|
inline |
Set the maximum value of the qx integration range.
|
inline |
Set the minimum value of the qx integration range.
|
private |
|
private |
|
private |
|
private |
|
private |