Hydra  4.0.1
A header-only templated C++ framework to perform data analysis on massively parallel platforms.
hydra::CubicSpiline< N, ArgIndex > Class Template Reference



A simple method for a one—dimensional interpolation on a given set of data points (xi, yi). More...

#include <CubicSpiline.h>

Inheritance diagram for hydra::CubicSpiline< N, ArgIndex >:
Collaboration diagram for hydra::CubicSpiline< N, ArgIndex >:

Public Member Functions

 CubicSpiline ()=default
 
template<typename Iterator1 , typename Iterator2 >
 CubicSpiline (Iterator1 xbegin, Iterator2 ybegin)
 
__hydra_host__ __hydra_device__ CubicSpiline (CubicSpiline< N, ArgIndex > const &other)
 
template<typename T >
__hydra_host__ __hydra_device__ double Evaluate (unsigned int n, T *x) const
 
template<typename T >
__hydra_host__ __hydra_device__ double Evaluate (T x) const
 
__hydra_host__ __hydra_device__ const GReal_tGetD () const
 
__hydra_host__ __hydra_device__ const GReal_tGetX () const
 
__hydra_host__ __hydra_device__ CubicSpiline< N > & operator= (CubicSpiline< N, ArgIndex > const &other)
 
__hydra_host__ __hydra_device__ void SetD (unsigned int i, GReal_t value)
 
__hydra_host__ __hydra_device__ void SetX (unsigned int i, GReal_t value)
 
- Public Member Functions inherited from hydra::BaseFunctor< CubicSpiline< N, ArgIndex >, GReal_t, 0 >
__hydra_host__ __hydra_device__ BaseFunctor ()
 Default constructor. More...
 
 BaseFunctor (std::initializer_list< Parameter > init_parameters)
 Constructor taking a list of parameters. More...
 
 BaseFunctor (std::array< Parameter, NPARAM > const &init_parameters)
 Constructor taking std::array of parameters. More...
 
__hydra_host__ __hydra_device__ BaseFunctor (BaseFunctor< CubicSpiline< N, ArgIndex >, GReal_t, NPARAM > const &other)
 Copy constructor. More...
 
__hydra_host__ __hydra_device__ CubicSpiline< N, ArgIndex > & GetFunctor ()
 
__hydra_host__ __hydra_device__ GReal_t GetNorm () const
 
__hydra_host__ __hydra_device__ std::enable_if<(!detail::is_valid_type_pack< argument_type, T... >::value), return_type >::type operator() (T...x) const
 
__hydra_host__ __hydra_device__ std::enable_if< detail::is_valid_type_pack< argument_type, T... >::value, return_type >::type operator() (T...x) const
 Function call operator overload taking a pack of parameters convertible to the lambda signature. More...
 
__hydra_host__ __hydra_device__ std::enable_if<(detail::is_tuple_type< typename std::decay< T >::type >::value) &&(!detail::is_tuple_of_function_arguments< typename std::decay< T >::type >::value) &&(hydra::thrust::detail::is_convertible< typename std::decay< T >::type, argument_type >::value), return_type >::type operator() (T x) const
 Unary function call operator overload taking a tuple containing the lambda arguments in any other. More...
 
__hydra_host__ __hydra_device__ std::enable_if<(detail::is_tuple_type< typename std::decay< T >::type >::value) &&(detail::is_tuple_of_function_arguments< typename std::decay< T >::type >::value), return_type >::type operator() (T x) const
 Unary function call operator overload taking a tuple containing the lambda arguments in any other. More...
 
__hydra_host__ __hydra_device__ std::enable_if<(detail::is_tuple_type< typename std::decay< T1 >::type >::value) &&(detail::is_tuple_of_function_arguments< typename std::decay< T1 >::type >::value) &&(detail::is_tuple_type< typename std::decay< T2 >::type >::value) &&(detail::is_tuple_of_function_arguments< typename std::decay< T2 >::type >::value), return_type >::type operator() (T1 x, T2 y) const
 Binary function call operator overload taking two tuples containing the lambda arguments in any other. More...
 
__hydra_host__ __hydra_device__ std::enable_if<(!detail::is_tuple_type< typename std::decay< T1 >::type >::value) &&(detail::is_function_argument< typename std::decay< T1 >::type >::value) &&(detail::is_tuple_type< typename std::decay< T2 >::type >::value) &&(detail::is_tuple_of_function_arguments< typename std::decay< T2 >::type >::value), return_type >::type operator() (T1 x, T2 y) const
 Binary function call operator overload taking one tuple and a non-tuple, that containing put together would contain the lambda arguments in any order. More...
 
__hydra_host__ __hydra_device__ std::enable_if<(!detail::is_tuple_type< typename std::decay< T1 >::type >::value) &&(detail::is_function_argument< typename std::decay< T1 >::type >::value) &&(detail::is_tuple_type< typename std::decay< T2 >::type >::value) &&(detail::is_tuple_of_function_arguments< typename std::decay< T2 >::type >::value), return_type >::type operator() (T2 y, T1 x) const
 Binary function call operator overload taking one tuple and a non-tuple, that containing put together would contain the lambda arguments in any other. More...
 
__hydra_host__ __hydra_device__ BaseFunctor< CubicSpiline< N, ArgIndex >, GReal_t, NPARAM > & operator= (BaseFunctor< CubicSpiline< N, ArgIndex >, GReal_t, NPARAM > const &other)
 Assignment operator. More...
 
void PrintRegisteredParameters ()
 Print registered parameters. More...
 
__hydra_host__ __hydra_device__ void SetNorm (GReal_t norm)
 
- Public Member Functions inherited from hydra::detail::Parameters< NPARAM >
 Parameters ()=default
 
 Parameters (std::initializer_list< hydra::Parameter > init_parameters)
 
 Parameters (std::array< hydra::Parameter, N > const &init_parameters)
 
__hydra_host__ __hydra_device__ Parameters (hydra::Parameter(&init_parameters)[N])
 
__hydra_host__ __hydra_device__ Parameters (Parameters< N > const &other)
 
void AddUserParameters (std::vector< hydra::Parameter * > &user_parameters)
 
__hydra_host__ __hydra_device__ size_t GetNumberOfParameters () const
 
__hydra_host__ __hydra_device__ const hydra::ParameterGetParameter (Int i) const
 
__hydra_host__ const hydra::ParameterGetParameter (const char *name) const
 
__hydra_host__ __hydra_device__ const hydra::ParameterGetParameters () const
 
size_t GetParametersKey ()
 
__hydra_host__ __hydra_device__ Parameters< N > & operator= (Parameters< N > const &other)
 
__hydra_host__ __hydra_device__ GReal_t operator[] (Int i) const
 
__hydra_host__ __hydra_device__ hydra::ParameterParameter (Int i)
 
__hydra_host__ hydra::ParameterParameter (const char *name)
 
void PrintParameters ()
 Print registered parameters. More...
 
__hydra_host__ __hydra_device__ void SetParameter (Int i, hydra::Parameter const &value)
 
__hydra_host__ __hydra_device__ void SetParameter (Int i, double value)
 
__hydra_host__ void SetParameter (const char *name, hydra::Parameter const &value)
 
__hydra_host__ void SetParameter (const char *name, double value)
 
__hydra_host__ void SetParameters (const std::vector< double > &parameters)
 Set parameters. More...
 
virtual void Update (void)
 This method offers an opportunity to redo calculations and update values that depends only on the functor parameters. More...
 

Additional Inherited Members

- Public Types inherited from hydra::BaseFunctor< CubicSpiline< N, ArgIndex >, GReal_t, 0 >
enum  
 
typedef detail::signature_traits< GReal_t >::argument_type argument_type
 
typedef void hydra_functor_type
 
typedef detail::signature_traits< GReal_t >::return_type return_type
 
- Static Public Attributes inherited from hydra::detail::Parameters< NPARAM >
static const size_t parameter_count
 
- Protected Attributes inherited from hydra::BaseFunctor< CubicSpiline< N, ArgIndex >, GReal_t, 0 >
BaseFunctor< CubicSpiline< N, ArgIndex >, GReal_t, NPARAM > & _par
 

Detailed Description

template<size_t N, unsigned int ArgIndex = 0>
class hydra::CubicSpiline< N, ArgIndex >



A simple method for a one—dimensional interpolation on a given set of data points (xi, yi).

In each interval (xi,x,-+1) the interpolation function is assumed to be a third- order polynomial passing through the data points. The slope at each grid point is determined in such a way as to guarantee a monotonic behavior of the interpolating function. The result is a smooth curve with continuous first-order derivatives that passes through any given set of data points without spurious oscillations. Local extrema can occur only at grid points where they are given by the data, but not in between two adjacent grid points. The method gives exact results if the data points correspond to a second-order polynomial.

Reference: M. Steffen, Astron. Astrophys. 239, 443—450 (1990).

Constructor & Destructor Documentation

◆ CubicSpiline() [1/3]

template<size_t N, unsigned int ArgIndex = 0>
hydra::CubicSpiline< N, ArgIndex >::CubicSpiline ( )
default

◆ CubicSpiline() [2/3]

template<size_t N, unsigned int ArgIndex = 0>
template<typename Iterator1 , typename Iterator2 >
hydra::CubicSpiline< N, ArgIndex >::CubicSpiline ( Iterator1  xbegin,
Iterator2  ybegin 
)
inline

◆ CubicSpiline() [3/3]

template<size_t N, unsigned int ArgIndex = 0>
__hydra_host__ __hydra_device__ hydra::CubicSpiline< N, ArgIndex >::CubicSpiline ( CubicSpiline< N, ArgIndex > const &  other)
inline

Member Function Documentation

◆ Evaluate() [1/2]

template<size_t N, unsigned int ArgIndex = 0>
template<typename T >
__hydra_host__ __hydra_device__ double hydra::CubicSpiline< N, ArgIndex >::Evaluate ( unsigned int  n,
T *  x 
) const
inline

◆ Evaluate() [2/2]

template<size_t N, unsigned int ArgIndex = 0>
template<typename T >
__hydra_host__ __hydra_device__ double hydra::CubicSpiline< N, ArgIndex >::Evaluate ( x) const
inline

◆ GetD()

template<size_t N, unsigned int ArgIndex = 0>
__hydra_host__ __hydra_device__ const GReal_t* hydra::CubicSpiline< N, ArgIndex >::GetD ( ) const
inline

◆ GetX()

template<size_t N, unsigned int ArgIndex = 0>
__hydra_host__ __hydra_device__ const GReal_t* hydra::CubicSpiline< N, ArgIndex >::GetX ( ) const
inline

◆ operator=()

template<size_t N, unsigned int ArgIndex = 0>
__hydra_host__ __hydra_device__ CubicSpiline<N>& hydra::CubicSpiline< N, ArgIndex >::operator= ( CubicSpiline< N, ArgIndex > const &  other)
inline

◆ SetD()

template<size_t N, unsigned int ArgIndex = 0>
__hydra_host__ __hydra_device__ void hydra::CubicSpiline< N, ArgIndex >::SetD ( unsigned int  i,
GReal_t  value 
)
inline

◆ SetX()

template<size_t N, unsigned int ArgIndex = 0>
__hydra_host__ __hydra_device__ void hydra::CubicSpiline< N, ArgIndex >::SetX ( unsigned int  i,
GReal_t  value 
)
inline

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