3 #include <funcy/concepts.h> 4 #include <funcy/util/chainer.h> 34 value_ = 0.5 * ( 1 +
std::erf( x_ * div_sqrt2 ) );
39 [[nodiscard]]
double d0() const noexcept
45 [[nodiscard]]
double d1(
double dx = 1. ) const noexcept
47 return div_sqrt2pi * d1_ * dx;
51 [[nodiscard]]
double d2(
double dx = 1.,
double dy = 1. ) const noexcept
53 return -div_sqrt2pi * x_ * d1_ * dx * dy;
57 [[nodiscard]]
double d3(
double dx = 1.,
double dy = 1.,
double dz = 1. ) const noexcept
59 return div_sqrt2pi * ( -d1_ + x_ * x_ * d1_ ) * dx * dy * dz;
63 static const double div_sqrt2;
64 static const double div_sqrt2pi;
70 inline const double CumulativeNormalDistribution::div_sqrt2 = 1 /
std::sqrt( 2 );
71 inline const double CumulativeNormalDistribution::div_sqrt2pi = 1 /
std::sqrt( 2 * M_PI );
73 [[nodiscard]]
inline auto cnd(
double x )
84 template < Function F >
85 [[nodiscard]]
auto cnd(
const F& f )
void update(double x) noexcept
Set point of evaluation.
Definition: cnd.h:31
double d0() const noexcept
Function value.
Definition: cnd.h:39
auto erf(const F &f)
Generate .
Definition: erf.h:73
double d3(double dx=1., double dy=1., double dz=1.) const noexcept
Third (directional) derivative.
Definition: cnd.h:57
CumulativeNormalDistribution(double x=0.) noexcept
Constructor.
Definition: cnd.h:25
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: cnd.h:51
Main namespace of the funcy library.
double d1(double dx=1.) const noexcept
First (directional) derivative.
Definition: cnd.h:45
Cumulative standard normal distribution.
Definition: cnd.h:19