6.6 KiB
[numbers]
29 Numerics library [numerics]
29.8 Numbers [numbers]
29.8.1 Header synopsis [numbers.syn]
namespace std::numbers {template constexpr T e_v = unspecified; template constexpr T log2e_v = unspecified; template constexpr T log10e_v = unspecified; template constexpr T pi_v = unspecified; template constexpr T inv_pi_v = unspecified; template constexpr T inv_sqrtpi_v = unspecified; template constexpr T ln2_v = unspecified; template constexpr T ln10_v = unspecified; template constexpr T sqrt2_v = unspecified; template constexpr T sqrt3_v = unspecified; template constexpr T inv_sqrt3_v = unspecified; template constexpr T egamma_v = unspecified; template constexpr T phi_v = unspecified; template<floating_point T> constexpr T e_v = see below; template<floating_point T> constexpr T log2e_v = see below; template<floating_point T> constexpr T log10e_v = see below; template<floating_point T> constexpr T pi_v = see below; template<floating_point T> constexpr T inv_pi_v = see below; template<floating_point T> constexpr T inv_sqrtpi_v = see below; template<floating_point T> constexpr T ln2_v = see below; template<floating_point T> constexpr T ln10_v = see below; template<floating_point T> constexpr T sqrt2_v = see below; template<floating_point T> constexpr T sqrt3_v = see below; template<floating_point T> constexpr T inv_sqrt3_v = see below; template<floating_point T> constexpr T egamma_v = see below; template<floating_point T> constexpr T phi_v = see below; inline constexpr double e = e_v; inline constexpr double log2e = log2e_v; inline constexpr double log10e = log10e_v; inline constexpr double pi = pi_v; inline constexpr double inv_pi = inv_pi_v; inline constexpr double inv_sqrtpi = inv_sqrtpi_v; inline constexpr double ln2 = ln2_v; inline constexpr double ln10 = ln10_v; inline constexpr double sqrt2 = sqrt2_v; inline constexpr double sqrt3 = sqrt3_v; inline constexpr double inv_sqrt3 = inv_sqrt3_v; inline constexpr double egamma = egamma_v; inline constexpr double phi = phi_v;}
29.8.2 Mathematical constants [math.constants]
The library-defined partial specializations of mathematical constant variable templates are initialized with the nearest representable values ofe,log2e,log10e,Ï,1Ï,1âÏ,ln2,ln10,â2,â3,1â3, the Euler-Mascheroni γ constant, and the golden ratio Ï constant 1+â52, respectively.
Pursuant to [namespace.std], a program may partially or explicitly specialize a mathematical constant variable template provided that the specialization depends on a program-defined type.
A program that instantiates a primary template of a mathematical constant variable template is ill-formed.