SplineInterpolator1DStack< NT, Coordinates, DefaultMemorySpace > Class Template Reference#
|
DiFfRG
|
Public Types |
Public Member Functions |
Static Public Attributes |
Private Types |
Private Member Functions |
Private Attributes |
Friends |
List of all members
DiFfRG::SplineInterpolator1DStack< NT, Coordinates, DefaultMemorySpace > Class Template Reference
A linear interpolator for 1D data, using texture memory on the GPU and floating point arithmetic on the CPU. More...
#include <spline_interpolator_1d_stack.hh>
Public Types | |
| using | memory_space = DefaultMemorySpace |
| using | other_memory_space = other_memory_space_t<DefaultMemorySpace> |
| using | ctype = typename Coordinates::ctype |
| using | value_type = NT |
Public Member Functions | |
| SplineInterpolator1DStack (const Coordinates &coordinates) | |
| Construct a SplineInterpolator1DStack with zeroed data and a coordinate system. | |
| KOKKOS_FUNCTION | SplineInterpolator1DStack (const SplineInterpolator1DStack &other) |
| Copy constructor for SplineInterpolator1DStack. This is ONLY for usage inside Kokkos parallel loops. | |
| KOKKOS_FUNCTION | ~SplineInterpolator1DStack () |
| template<typename NT2 > | |
| void | update (const NT2 *in_data, const ctype lower_y1=std::numeric_limits< ctype >::max(), const ctype upper_y1=std::numeric_limits< ctype >::max()) |
| template<typename View > requires (Kokkos::is_view<View>::value && View::rank == 2) | |
| void | update (const View &view, const ctype lower_y1=std::numeric_limits< ctype >::max(), const ctype upper_y1=std::numeric_limits< ctype >::max()) |
| NT KOKKOS_FUNCTION | operator() (const typename Coordinates::ctype s, const typename Coordinates::ctype x) const |
| Interpolate the data at a given point. | |
| NT | operator[] (size_t i) const |
| auto & | CPU () const |
| auto & | GPU () const |
| template<typename MemorySpace > | |
| auto & | get_on () const |
| const Coordinates & | get_coordinates () const |
| Get the coordinate system of the data. | |
| NT * | data () |
Static Public Attributes | |
| static constexpr size_t | dim = 2 |
Private Types | |
| using | ValueViewType = Kokkos::View<NT **, DefaultMemorySpace, Kokkos::MemoryTraits<Kokkos::RandomAccess>> |
| using | CoeffViewType = Kokkos::View<NT **, DefaultMemorySpace, Kokkos::MemoryTraits<Kokkos::RandomAccess>> |
| using | HostValueViewType = typename ValueViewType::host_mirror_type |
| using | HostCoeffViewType = typename CoeffViewType::host_mirror_type |
Private Member Functions | |
| void | build_y2 (const size_t sidx, const ctype lower_y1, const ctype upper_y1) |
Private Attributes | |
| const Coordinates | coordinates |
| const device::array< size_t, 2 > | sizes |
| ValueViewType | device_values |
| CoeffViewType | device_coeffs |
| HostValueViewType | host_values |
| HostCoeffViewType | host_coeffs |
| SplineInterpolator1DStack< NT, Coordinates, other_memory_space > * | other_instance = nullptr |
| bool | owns_other_instance = false |
Friends | |
| class | SplineInterpolator1DStack< NT, Coordinates, other_memory_space > |
Detailed Description
template<typename NT, typename Coordinates, typename DefaultMemorySpace = CPU_memory>
class DiFfRG::SplineInterpolator1DStack< NT, Coordinates, DefaultMemorySpace >
class DiFfRG::SplineInterpolator1DStack< NT, Coordinates, DefaultMemorySpace >
A linear interpolator for 1D data, using texture memory on the GPU and floating point arithmetic on the CPU.
- Template Parameters
-
NT input data type Coordinates coordinate system of the input data
Member Typedef Documentation
◆ CoeffViewType
template<typename NT , typename Coordinates , typename DefaultMemorySpace = CPU_memory>
|
private |
◆ ctype
template<typename NT , typename Coordinates , typename DefaultMemorySpace = CPU_memory>
| using DiFfRG::SplineInterpolator1DStack< NT, Coordinates, DefaultMemorySpace >::ctype = typename Coordinates::ctype |
◆ HostCoeffViewType
template<typename NT , typename Coordinates , typename DefaultMemorySpace = CPU_memory>
|
private |
◆ HostValueViewType
template<typename NT , typename Coordinates , typename DefaultMemorySpace = CPU_memory>
|
private |
◆ memory_space
template<typename NT , typename Coordinates , typename DefaultMemorySpace = CPU_memory>
| using DiFfRG::SplineInterpolator1DStack< NT, Coordinates, DefaultMemorySpace >::memory_space = DefaultMemorySpace |
◆ other_memory_space
template<typename NT , typename Coordinates , typename DefaultMemorySpace = CPU_memory>
| using DiFfRG::SplineInterpolator1DStack< NT, Coordinates, DefaultMemorySpace >::other_memory_space = other_memory_space_t<DefaultMemorySpace> |
◆ value_type
template<typename NT , typename Coordinates , typename DefaultMemorySpace = CPU_memory>
| using DiFfRG::SplineInterpolator1DStack< NT, Coordinates, DefaultMemorySpace >::value_type = NT |
◆ ValueViewType
template<typename NT , typename Coordinates , typename DefaultMemorySpace = CPU_memory>
|
private |
Constructor & Destructor Documentation
◆ SplineInterpolator1DStack() [1/2]
template<typename NT , typename Coordinates , typename DefaultMemorySpace = CPU_memory>
|
inline |
Construct a SplineInterpolator1DStack with zeroed data and a coordinate system.
- Parameters
-
coordinates coordinate system of the data
◆ SplineInterpolator1DStack() [2/2]
template<typename NT , typename Coordinates , typename DefaultMemorySpace = CPU_memory>
|
inline |
Copy constructor for SplineInterpolator1DStack. This is ONLY for usage inside Kokkos parallel loops.
◆ ~SplineInterpolator1DStack()
template<typename NT , typename Coordinates , typename DefaultMemorySpace = CPU_memory>
|
inline |
Member Function Documentation
◆ build_y2()
template<typename NT , typename Coordinates , typename DefaultMemorySpace = CPU_memory>
|
inlineprivate |
◆ CPU()
template<typename NT , typename Coordinates , typename DefaultMemorySpace = CPU_memory>
|
inline |
◆ data()
template<typename NT , typename Coordinates , typename DefaultMemorySpace = CPU_memory>
|
inline |
◆ get_coordinates()
template<typename NT , typename Coordinates , typename DefaultMemorySpace = CPU_memory>
|
inline |
Get the coordinate system of the data.
- Returns
- const Coordinates& the coordinate system
◆ get_on()
template<typename NT , typename Coordinates , typename DefaultMemorySpace = CPU_memory>
template<typename MemorySpace >
|
inline |
◆ GPU()
template<typename NT , typename Coordinates , typename DefaultMemorySpace = CPU_memory>
|
inline |
◆ operator()()
template<typename NT , typename Coordinates , typename DefaultMemorySpace = CPU_memory>
|
inline |
Interpolate the data at a given point.
- Parameters
-
x the point at which to interpolate
- Returns
- NT the interpolated value
◆ operator[]()
template<typename NT , typename Coordinates , typename DefaultMemorySpace = CPU_memory>
|
inline |
◆ update() [1/2]
template<typename NT , typename Coordinates , typename DefaultMemorySpace = CPU_memory>
template<typename NT2 >
|
inline |
◆ update() [2/2]
template<typename NT , typename Coordinates , typename DefaultMemorySpace = CPU_memory>
template<typename View >
requires (Kokkos::is_view<View>::value && View::rank == 2)
requires (Kokkos::is_view<View>::value && View::rank == 2)
|
inline |
Friends And Related Symbol Documentation
◆ SplineInterpolator1DStack< NT, Coordinates, other_memory_space >
template<typename NT , typename Coordinates , typename DefaultMemorySpace = CPU_memory>
|
friend |
Member Data Documentation
◆ coordinates
template<typename NT , typename Coordinates , typename DefaultMemorySpace = CPU_memory>
|
private |
◆ device_coeffs
template<typename NT , typename Coordinates , typename DefaultMemorySpace = CPU_memory>
|
private |
◆ device_values
template<typename NT , typename Coordinates , typename DefaultMemorySpace = CPU_memory>
|
private |
◆ dim
template<typename NT , typename Coordinates , typename DefaultMemorySpace = CPU_memory>
|
staticconstexpr |
◆ host_coeffs
template<typename NT , typename Coordinates , typename DefaultMemorySpace = CPU_memory>
|
private |
◆ host_values
template<typename NT , typename Coordinates , typename DefaultMemorySpace = CPU_memory>
|
private |
◆ other_instance
template<typename NT , typename Coordinates , typename DefaultMemorySpace = CPU_memory>
|
mutableprivate |
◆ owns_other_instance
template<typename NT , typename Coordinates , typename DefaultMemorySpace = CPU_memory>
|
mutableprivate |
◆ sizes
template<typename NT , typename Coordinates , typename DefaultMemorySpace = CPU_memory>
|
private |
The documentation for this class was generated from the following file:
- /home/runner/work/DiFfRG_current/DiFfRG_current/DiFfRG/include/DiFfRG/physics/interpolation/spline_interpolator_1d_stack.hh
Generated by