SpECTRE  2021.08.02
MathFunction< 1, Fr > Class Template Referenceabstract

#include <MathFunction.hpp>

Public Types

using frame = Fr
 

Public Member Functions

 WRAPPED_PUPable_abstract (MathFunction)
 
 MathFunction (const MathFunction &)=delete
 
MathFunctionoperator= (const MathFunction &)=delete
 
 MathFunction (MathFunction &&) noexcept=default
 
MathFunctionoperator= (MathFunction &&) noexcept=default
 
virtual double operator() (const double &x) const noexcept=0
 Returns the function value at the coordinate 'x'. More...
 
virtual DataVector operator() (const DataVector &x) const noexcept=0
 
Scalar< double > operator() (const tnsr::I< double, 1, Fr > &x) const noexcept
 
Scalar< DataVectoroperator() (const tnsr::I< DataVector, 1, Fr > &x) const noexcept
 
virtual double first_deriv (const double &x) const noexcept=0
 Returns the first derivative at 'x'. More...
 
virtual DataVector first_deriv (const DataVector &x) const noexcept=0
 
tnsr::i< double, 1, Fr > first_deriv (const tnsr::I< double, 1, Fr > &x) const noexcept
 
tnsr::i< DataVector, 1, Fr > first_deriv (const tnsr::I< DataVector, 1, Fr > &x) const noexcept
 
virtual double second_deriv (const double &x) const noexcept=0
 Returns the second derivative at 'x'. More...
 
virtual DataVector second_deriv (const DataVector &x) const noexcept=0
 
tnsr::ii< double, 1, Fr > second_deriv (const tnsr::I< double, 1, Fr > &x) const noexcept
 
tnsr::ii< DataVector, 1, Fr > second_deriv (const tnsr::I< DataVector, 1, Fr > &x) const noexcept
 
virtual double third_deriv (const double &x) const noexcept=0
 Returns the third derivative at 'x'. More...
 
virtual DataVector third_deriv (const DataVector &x) const noexcept=0
 
tnsr::iii< double, 1, Fr > third_deriv (const tnsr::I< double, 1, Fr > &x) const noexcept
 
tnsr::iii< DataVector, 1, Fr > third_deriv (const tnsr::I< DataVector, 1, Fr > &x) const noexcept
 

Static Public Attributes

constexpr static size_t volume_dim = 1
 

Detailed Description

template<typename Fr>
class MathFunction< 1, Fr >

Partial template specialization of MathFunction which encodes a function \(R \to R\). In this 1D specialization, the input and output can be Tensors, doubles, or DataVectors.

Member Function Documentation

◆ first_deriv()

template<typename Fr >
virtual double MathFunction< 1, Fr >::first_deriv ( const double &  x) const
pure virtualnoexcept

Returns the first derivative at 'x'.

Implemented in MathFunctions::Gaussian< 1, Fr >, MathFunctions::PowX< 1, Fr >, and MathFunctions::Sinusoid< 1, Fr >.

◆ operator()()

template<typename Fr >
virtual double MathFunction< 1, Fr >::operator() ( const double &  x) const
pure virtualnoexcept

Returns the function value at the coordinate 'x'.

Implemented in MathFunctions::Gaussian< 1, Fr >, MathFunctions::PowX< 1, Fr >, and MathFunctions::Sinusoid< 1, Fr >.

◆ second_deriv()

template<typename Fr >
virtual double MathFunction< 1, Fr >::second_deriv ( const double &  x) const
pure virtualnoexcept

Returns the second derivative at 'x'.

Implemented in MathFunctions::Gaussian< 1, Fr >, MathFunctions::PowX< 1, Fr >, and MathFunctions::Sinusoid< 1, Fr >.

◆ third_deriv()

template<typename Fr >
virtual double MathFunction< 1, Fr >::third_deriv ( const double &  x) const
pure virtualnoexcept

Returns the third derivative at 'x'.

Implemented in MathFunctions::Gaussian< 1, Fr >, MathFunctions::PowX< 1, Fr >, and MathFunctions::Sinusoid< 1, Fr >.