3 #include <funcy/concepts.h> 4 #include <funcy/util/chainer.h> 5 #include <funcy/util/exceptions.h> 6 #include <funcy/util/macros.h> 22 struct ACos : Chainer< ACos >
25 explicit ACos(
double x = 0. ) FUNCY_NOEXCEPT
31 void update(
double x ) FUNCY_NOEXCEPT
33 #ifdef FUNCY_ENABLE_EXCEPTIONS 34 if ( x < -1 || x > 1 )
38 firstDerivative = -1 /
::sqrt( 1 - ( x * x ) );
39 firstDerivative3 = firstDerivative * firstDerivative * firstDerivative;
44 [[nodiscard]]
double d0() const noexcept
50 [[nodiscard]]
double d1(
double dx = 1 ) const noexcept
52 return firstDerivative * dx;
56 [[nodiscard]]
double d2(
double dx = 1,
double dy = 1 ) const noexcept
58 return x_ * firstDerivative3 * dx * dy;
62 [[nodiscard]]
double d3(
double dx = 1,
double dy = 1,
double dz = 1 ) const noexcept
64 return firstDerivative3 *
65 ( 1 + ( 3 * x_ * x_ / ( firstDerivative * firstDerivative ) ) ) * dx * dy * dz;
69 double value = 0., firstDerivative = 1., firstDerivative3 = 1., x_ = 0.;
78 template < Function F >
79 [[nodiscard]]
auto acos(
const F& f )
auto acos(const F &f)
Generate .
Definition: arccos.h:79
double d1(double dx=1) const noexcept
First (directional) derivative.
Definition: arccos.h:50
double d3(double dx=1, double dy=1, double dz=1) const noexcept
Third (directional) derivative.
Definition: arccos.h:62
Arc cosine function (based on acos(double) in <cmath>).
Definition: arccos.h:22
double d0() const noexcept
Function value.
Definition: arccos.h:44
Exception for scalar function arguments that are outside the domain of the function.
Definition: exceptions.h:21
double d2(double dx=1, double dy=1) const noexcept
Second (directional) derivative.
Definition: arccos.h:56
auto sqrt(const F &f)
Generate .
Definition: pow.h:404
ACos(double x=0.) FUNCY_NOEXCEPT
Constructor.
Definition: arccos.h:25
void update(double x) FUNCY_NOEXCEPT
Set point of evaluation.
Definition: arccos.h:31
Main namespace of the funcy library.