sigma  1.0.0
Loading...
Searching...
No Matches
error_and_gamma.ipp
1#pragma once
3#include <cmath>
4
5namespace sigma {
6
7// -- Definitions --------------------------------------------------------------
8template<typename T>
10 T mean = std::erf(a.mean());
11 T dcda = std::exp(-std::pow(a.mean(), 2)) * (2 / std::sqrt(detail_::pi));
12 return detail_::unary_result(a, mean, dcda);
13}
14
15template<typename T>
17 T mean = std::erfc(a.mean());
18 T dcda = -std::exp(-std::pow(a.mean(), 2)) * (2 / std::sqrt(detail_::pi));
19 return detail_::unary_result(a, mean, dcda);
20}
21
22template<typename T>
24 auto func = [](decltype(a.mean()) x) { return std::tgamma(x); };
25 T mean = std::tgamma(a.mean());
26 T dcda = detail_::numeric_derivative(func, a.mean());
27 return detail_::unary_result(a, mean, dcda);
28}
29
30template<typename T>
32 auto func = [](decltype(a.mean()) x) { return std::lgamma(x); };
33 T mean = std::lgamma(a.mean());
34 T dcda = detail_::numeric_derivative(func, a.mean());
35 return detail_::unary_result(a, mean, dcda);
36}
37
38} // namespace sigma
Models an unceratin variable.
Definition uncertain.hpp:34
value_t mean() const
Get the mean value of the variable.
Definition uncertain.hpp:71
constexpr double pi
Value of Pi.
Definition operation_common.hpp:12
Uncertain< T > unary_result(const Uncertain< T > &a, T mean, T dcda)
Generalized Unary Changes.
Definition operation_common.hpp:43
NumericType numeric_derivative(FunctionType f, NumericType a)
Compute the numeric derivative of a function.
Definition operation_common.hpp:81
The primary namespace for the sigma library.
Definition affine.hpp:12
Uncertain< T > lgamma(const Uncertain< T > &a)
Gamma function Natural Logarithm.
Definition error_and_gamma.ipp:31
Uncertain< T > tgamma(const Uncertain< T > &a)
Gamma function.
Definition error_and_gamma.ipp:23
Uncertain< T > erfc(const Uncertain< T > &a)
Complementary error function.
Definition error_and_gamma.ipp:16
Uncertain< T > erf(const Uncertain< T > &a)
Error function.
Definition error_and_gamma.ipp:9
Common implementation details for operations.