Files
cppdraft_translate/cppdraft/numbers.md
2025-10-25 03:02:53 +03:00

6.6 KiB
Raw Permalink Blame History

[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]

1

#

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.

2

#

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.

3

#

A program that instantiates a primary template of a mathematical constant variable template is ill-formed.