|
DiFfRG
|
A linear interpolator for 1D data, using texture memory on the GPU and floating point arithmetic on the CPU. More...
#include <tex_linear_interpolation_1D_stack.hh>
Public Types | |
| using | ReturnType = typename internal::__TLITypes<NT>::ReturnType |
Public Member Functions | |
| TexLinearInterpolator1DStack (const std::vector< NT > &data, const Coordinates &coordinates) | |
| Construct a TexLinearInterpolator1D object from a vector of data and a coordinate system. | |
| TexLinearInterpolator1DStack (const NT *data, const Coordinates &coordinates) | |
| Construct a TexLinearInterpolator1D object from a pointer to data and a coordinate system. | |
| TexLinearInterpolator1DStack (const Coordinates &coordinates) | |
| Construct a TexLinearInterpolator1D with internal, zeroed data and a coordinate system. | |
| template<typename Coordinates2 > | |
| TexLinearInterpolator1DStack (const Coordinates2 &coordinates, const uint m_start, const uint m_end, const double T) | |
| TexLinearInterpolator1DStack (const TexLinearInterpolator1DStack &other) | |
| Construct a copy of a TexLinearInterpolator1D object. | |
| ~TexLinearInterpolator1DStack () | |
| template<typename NT2 > | |
| void | update (const NT2 *data) |
| void | update () |
| float * | data (const uint i) const |
| float * | data_AD (const uint i) const |
| __device__ __host__ ReturnType | operator() (const float m, const float p) const |
| Interpolate the data at a given point. | |
| ReturnType & | operator[] (const uint i) |
| const ReturnType & | operator[] (const uint i) const |
| const Coordinates & | get_coordinates () const |
| Get the coordinate system of the data. | |
Private Attributes | |
| const uint | stack_size |
| const uint | p_size |
| const Coordinates | coordinates |
| std::vector< std::shared_ptr< float[]> > | m_data |
| std::vector< cudaArray_t > | device_array |
| cudaTextureObject_t | texture [max_stack_size] |
| std::vector< std::shared_ptr< float[]> > | m_data_AD |
| std::vector< cudaArray_t > | device_array_AD |
| cudaTextureObject_t | texture_AD [max_stack_size] |
| const bool | owner |
A linear interpolator for 1D data, using texture memory on the GPU and floating point arithmetic on the CPU.
| NT | input data type |
| Coordinates | coordinate system of the input data |
| using DiFfRG::TexLinearInterpolator1DStack< NT, Coordinates, max_stack_size >::ReturnType = typename internal::__TLITypes<NT>::ReturnType |
| DiFfRG::TexLinearInterpolator1DStack< NT, Coordinates, max_stack_size >::TexLinearInterpolator1DStack | ( | const std::vector< NT > & | data, |
| const Coordinates & | coordinates ) |
Construct a TexLinearInterpolator1D object from a vector of data and a coordinate system.
| data | vector containing the data |
| coordinates | coordinate system of the data |
| DiFfRG::TexLinearInterpolator1DStack< NT, Coordinates, max_stack_size >::TexLinearInterpolator1DStack | ( | const NT * | data, |
| const Coordinates & | coordinates ) |
Construct a TexLinearInterpolator1D object from a pointer to data and a coordinate system.
| data | pointer to the data |
| coordinates | coordinate system of the data |
| DiFfRG::TexLinearInterpolator1DStack< NT, Coordinates, max_stack_size >::TexLinearInterpolator1DStack | ( | const Coordinates & | coordinates | ) |
Construct a TexLinearInterpolator1D with internal, zeroed data and a coordinate system.
| coordinates | coordinate system of the data |
|
inline |
| DiFfRG::TexLinearInterpolator1DStack< NT, Coordinates, max_stack_size >::TexLinearInterpolator1DStack | ( | const TexLinearInterpolator1DStack< NT, Coordinates, max_stack_size > & | other | ) |
Construct a copy of a TexLinearInterpolator1D object.
| other | the object to copy |
| DiFfRG::TexLinearInterpolator1DStack< NT, Coordinates, max_stack_size >::~TexLinearInterpolator1DStack | ( | ) |
| float * DiFfRG::TexLinearInterpolator1DStack< NT, Coordinates, max_stack_size >::data | ( | const uint | i | ) | const |
| float * DiFfRG::TexLinearInterpolator1DStack< NT, Coordinates, max_stack_size >::data_AD | ( | const uint | i | ) | const |
|
inline |
Get the coordinate system of the data.
|
inline |
Interpolate the data at a given point.
| x | the point at which to interpolate |
| ReturnType & DiFfRG::TexLinearInterpolator1DStack< NT, Coordinates, max_stack_size >::operator[] | ( | const uint | i | ) |
| const ReturnType & DiFfRG::TexLinearInterpolator1DStack< NT, Coordinates, max_stack_size >::operator[] | ( | const uint | i | ) | const |
| void DiFfRG::TexLinearInterpolator1DStack< NT, Coordinates, max_stack_size >::update | ( | ) |
|
inline |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |