3 #include <funcy/concepts.h> 4 #include <funcy/util/chainer.h> 20 struct Exp : Chainer< Exp >
23 explicit Exp(
double x = 0. ) noexcept
35 [[nodiscard]]
double d0() const noexcept
41 [[nodiscard]]
double d1(
double dx = 1. ) const noexcept
47 [[nodiscard]]
double d2(
double dx = 1.,
double dy = 1. ) const noexcept
53 [[nodiscard]]
double d3(
double dx = 1.,
double dy = 1.,
double dz = 1. ) const noexcept
55 return e_x * dx * dy * dz;
69 struct Exp2 : Chainer< Exp2 >
72 explicit Exp2(
double x = 0. ) noexcept
84 [[nodiscard]]
double d0() const noexcept
90 [[nodiscard]]
double d1(
double dx = 1. ) const noexcept
92 return value * ln2 * dx;
96 [[nodiscard]]
double d2(
double dx = 1.,
double dy = 1. ) const noexcept
98 return value * ln2 * ln2 * dx * dy;
102 [[nodiscard]]
double d3(
double dx = 1.,
double dy = 1.,
double dz = 1. ) const noexcept
104 return value * ln2 * ln2 * ln2 * dx * dy * dz;
108 double value = 1., ln2 = log( 2. );
116 template < Function F >
117 [[nodiscard]]
auto exp(
const F& f )
127 template < Function F >
128 [[nodiscard]]
auto exp2(
const F& f )
auto exp2(const F &f)
Generate .
Definition: exp.h:128
double d0() const noexcept
Function value.
Definition: exp.h:84
void update(double x) noexcept
Set point of evaluation.
Definition: exp.h:29
double d2(double dx=1., double dy=1.) const noexcept
Second (directional) derivative.
Definition: exp.h:96
auto exp(const F &f)
Generate .
Definition: exp.h:117
double d3(double dx=1., double dy=1., double dz=1.) const noexcept
Third (directional) derivative.
Definition: exp.h:102
double d1(double dx=1.) const noexcept
First (directional) derivative.
Definition: exp.h:90
Main namespace of the funcy library.
double d2(double dx=1., double dy=1.) const noexcept
Function value.
Definition: exp.h:47
Function .
Definition: exp.h:69
Exp2(double x=0.) noexcept
Constructor.
Definition: exp.h:72
double d3(double dx=1., double dy=1., double dz=1.) const noexcept
Function value.
Definition: exp.h:53
double d0() const noexcept
Function value.
Definition: exp.h:35
void update(double x) noexcept
Set point of evaluation.
Definition: exp.h:78
Exp(double x=0.) noexcept
Function value.
Definition: exp.h:23
Exponential function.
Definition: exp.h:20
double d1(double dx=1.) const noexcept
Function value.
Definition: exp.h:41