AMCAX Kernel 1.0.0.0
Loading...
Searching...
No Matches
Constants.hpp File Reference

Commonly used mathematical constants. More...

#include <type_traits>
+ Include dependency graph for Constants.hpp:
+ This graph shows which files directly or indirectly include this file:

Namespaces

namespace  AMCAX
 Namespace of all interface in the AMCAX kernel.
 
namespace  AMCAX::Constants
 Namespace of mathematical constants.
 

Variables

template<typename T>
constexpr T  AMCAX::Constants::e_v = static_cast<std::enable_if_t<std::is_floating_point_v<T>, T>>(2.718281828459045235360287471352662498L)
 Base of natural logarithm (also known as Napier's constant / Euler's number)
 
constexpr double  AMCAX::Constants::e = e_v<double>
 Base of natural logarithm (also known as Napier's constant / Euler's number)
 
template<typename T>
constexpr T  AMCAX::Constants::log2e_v = static_cast<std::enable_if_t<std::is_floating_point_v<T>, T>>(1.442695040888963407359924681001892137L)
 log2(e)
 
constexpr double  AMCAX::Constants::log2e = log2e_v<double>
 log2(e)
 
template<typename T>
constexpr T  AMCAX::Constants::log10e_v = static_cast<std::enable_if_t<std::is_floating_point_v<T>, T>>(0.434294481903251827651128918916605082L)
 log10(e)
 
constexpr double  AMCAX::Constants::log10e = log10e_v<double>
 log10(e)
 
template<typename T>
constexpr T  AMCAX::Constants::pi_v = static_cast<std::enable_if_t<std::is_floating_point_v<T>, T>>(3.141592653589793238462643383279502884L)
 Mathematical constant Pi, ratio of a circle's circumference to its diameter.
 
constexpr double  AMCAX::Constants::pi = pi_v<double>
 Mathematical constant Pi, ratio of a circle's circumference to its diameter.
 
template<typename T>
constexpr T  AMCAX::Constants::half_pi_v = static_cast<std::enable_if_t<std::is_floating_point_v<T>, T>>(1.570796326794896619231321691639751442L)
 pi/2
 
constexpr double  AMCAX::Constants::half_pi = half_pi_v<double>
 pi/2
 
template<typename T>
constexpr T  AMCAX::Constants::quarter_pi_v = static_cast<std::enable_if_t<std::is_floating_point_v<T>, T>>(0.785398163397448309615660845819875721L)
 pi/4
 
constexpr double  AMCAX::Constants::quarter_pi = quarter_pi_v<double>
 pi/4
 
template<typename T>
constexpr T  AMCAX::Constants::two_pi_v = static_cast<std::enable_if_t<std::is_floating_point_v<T>, T>>(6.283185307179586476925286766559005768L)
 2pi
 
constexpr double  AMCAX::Constants::two_pi = two_pi_v<double>
 2pi
 
template<typename T>
constexpr T  AMCAX::Constants::inv_pi_v = static_cast<std::enable_if_t<std::is_floating_point_v<T>, T>>(0.318309886183790671537767526745028724L)
 1/pi
 
constexpr double  AMCAX::Constants::inv_pi = inv_pi_v<double>
 1/pi
 
template<typename T>
constexpr T  AMCAX::Constants::two_inv_pi_v = static_cast<std::enable_if_t<std::is_floating_point_v<T>, T>>(0.636619772367581343075535053490057448L)
 2/pi
 
constexpr double  AMCAX::Constants::two_inv_pi = two_inv_pi_v<double>
 2/pi
 
template<typename T>
constexpr T  AMCAX::Constants::inv_sqrtpi_v = static_cast<std::enable_if_t<std::is_floating_point_v<T>, T>>(0.564189583547756286948079451560772586L)
 1/sqrt(pi)
 
constexpr double  AMCAX::Constants::inv_sqrtpi = inv_sqrtpi_v<double>
 1/sqrt(pi)
 
template<typename T>
constexpr T  AMCAX::Constants::two_inv_sqrtpi_v = static_cast<std::enable_if_t<std::is_floating_point_v<T>, T>>(1.128379167095512573896158903121545172L)
 2/sqrt(pi)
 
constexpr double  AMCAX::Constants::two_inv_sqrtpi = two_inv_sqrtpi_v<double>
 2/sqrt(pi)
 
template<typename T>
constexpr T  AMCAX::Constants::ln2_v = static_cast<std::enable_if_t<std::is_floating_point_v<T>, T>>(0.693147180559945309417232121458176568L)
 ln(2)
 
constexpr double  AMCAX::Constants::ln2 = ln2_v<double>
 ln(2)
 
template<typename T>
constexpr T  AMCAX::Constants::ln10_v = static_cast<std::enable_if_t<std::is_floating_point_v<T>, T>>(2.302585092994045684017991454684364208L)
 ln(10)
 
constexpr double  AMCAX::Constants::ln10 = ln10_v<double>
 ln(10)
 
template<typename T>
constexpr T  AMCAX::Constants::sqrt2_v = static_cast<std::enable_if_t<std::is_floating_point_v<T>, T>>(1.414213562373095048801688724209698079L)
 sqrt(2)
 
constexpr double  AMCAX::Constants::sqrt2 = sqrt2_v<double>
 sqrt(2)
 
template<typename T>
constexpr T  AMCAX::Constants::half_sqrt2_v = static_cast<std::enable_if_t<std::is_floating_point_v<T>, T>>(0.707106781186547524400844362104849039L)
 sqrt(2)/2
 
constexpr double  AMCAX::Constants::half_sqrt2 = half_sqrt2_v<double>
 sqrt(2)/2
 
template<typename T>
constexpr T  AMCAX::Constants::inv_sqrt2_v = static_cast<std::enable_if_t<std::is_floating_point_v<T>, T>>(0.707106781186547524400844362104849039L)
 1/sqrt(2), same as half_sqrt2_v
 
constexpr double  AMCAX::Constants::inv_sqrt2 = inv_sqrt2_v<double>
 1/sqrt(2), same as half_sqrt2
 
template<typename T>
constexpr T  AMCAX::Constants::sqrt3_v = static_cast<std::enable_if_t<std::is_floating_point_v<T>, T>>(1.732050807568877293527446341505872367L)
 sqrt(3)
 
constexpr double  AMCAX::Constants::sqrt3 = sqrt3_v<double>
 sqrt(3)
 
template<typename T>
constexpr T  AMCAX::Constants::inv_sqrt3_v = static_cast<std::enable_if_t<std::is_floating_point_v<T>, T>>(0.577350269189625764509148780501957456L)
 1/sqrt(3)
 
constexpr double  AMCAX::Constants::inv_sqrt3 = inv_sqrt3_v<double>
 1/sqrt(3)
 
template<typename T>
constexpr T  AMCAX::Constants::egamma_v = static_cast<std::enable_if_t<std::is_floating_point_v<T>, T>>(0.577215664901532860606512090082402431L)
 Euler-Mascheroni constant.
 
constexpr double  AMCAX::Constants::egamma = egamma_v<double>
 Euler-Mascheroni constant.
 
template<typename T>
constexpr T  AMCAX::Constants::phi_v = static_cast<std::enable_if_t<std::is_floating_point_v<T>, T>>(1.618033988749894848204586834365638118L)
 Golden ratio.
 
constexpr double  AMCAX::Constants::phi = phi_v<double>
 Golden ratio.
 

Detailed Description

Commonly used mathematical constants.

This file is part of AMCAX kernel.