3 #include <funcy/concepts.h> 4 #include <funcy/util/chainer.h> 20 struct Erf : Chainer< Erf >
23 explicit Erf(
double x = 0. ) noexcept
33 firstDerivative = scale *
std::exp( -x_ * x_ );
37 [[nodiscard]]
double d0() const noexcept
43 [[nodiscard]]
double d1(
double dx = 1. ) const noexcept
45 return firstDerivative * dx;
49 [[nodiscard]]
double d2(
double dx = 1.,
double dy = 1. ) const noexcept
51 return -2 * x_ *
d1( dx ) * dy;
55 [[nodiscard]]
double d3(
double dx = 1.,
double dy = 1.,
double dz = 1. ) const noexcept
57 return ( 4 * x_ * x_ - 2 ) *
d1( dx ) * dy * dz;
63 double firstDerivative = 1.;
72 template < Function F >
73 [[nodiscard]]
auto erf(
const F& f )
75 return Erf( f() )( f );
auto erf(const F &f)
Generate .
Definition: erf.h:73
double d1(double dx=1.) const noexcept
First (directional) derivative.
Definition: erf.h:43
auto sqrt(const F &f)
Generate .
Definition: pow.h:404
auto exp(const F &f)
Generate .
Definition: exp.h:117
double d2(double dx=1., double dy=1.) const noexcept
Second (directional) derivative.
Definition: erf.h:49
Main namespace of the funcy library.
Erf(double x=0.) noexcept
Constructor.
Definition: erf.h:23
double d0() const noexcept
Function value.
Definition: erf.h:37
Error function.
Definition: erf.h:20
void update(double x) noexcept
Set point of evaluation.
Definition: erf.h:29
double d3(double dx=1., double dy=1., double dz=1.) const noexcept
Third (directional) derivative.
Definition: erf.h:55