// -*- C++ -*- //===----------------------------------------------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// #ifndef _LIBCPP_NUMBERS #define _LIBCPP_NUMBERS /* numbers synopsis namespace std::numbers { template<class T> inline constexpr T e_v = unspecified; template<class T> inline constexpr T log2e_v = unspecified; template<class T> inline constexpr T log10e_v = unspecified; template<class T> inline constexpr T pi_v = unspecified; template<class T> inline constexpr T inv_pi_v = unspecified; template<class T> inline constexpr T inv_sqrtpi_v = unspecified; template<class T> inline constexpr T ln2_v = unspecified; template<class T> inline constexpr T ln10_v = unspecified; template<class T> inline constexpr T sqrt2_v = unspecified; template<class T> inline constexpr T sqrt3_v = unspecified; template<class T> inline constexpr T inv_sqrt3_v = unspecified; template<class T> inline constexpr T egamma_v = unspecified; template<class T> inline constexpr T phi_v = unspecified; template<floating_point T> inline constexpr T e_v<T> = see below; template<floating_point T> inline constexpr T log2e_v<T> = see below; template<floating_point T> inline constexpr T log10e_v<T> = see below; template<floating_point T> inline constexpr T pi_v<T> = see below; template<floating_point T> inline constexpr T inv_pi_v<T> = see below; template<floating_point T> inline constexpr T inv_sqrtpi_v<T> = see below; template<floating_point T> inline constexpr T ln2_v<T> = see below; template<floating_point T> inline constexpr T ln10_v<T> = see below; template<floating_point T> inline constexpr T sqrt2_v<T> = see below; template<floating_point T> inline constexpr T sqrt3_v<T> = see below; template<floating_point T> inline constexpr T inv_sqrt3_v<T> = see below; template<floating_point T> inline constexpr T egamma_v<T> = see below; template<floating_point T> inline constexpr T phi_v<T> = see below; inline constexpr double e = e_v<double>; inline constexpr double log2e = log2e_v<double>; inline constexpr double log10e = log10e_v<double>; inline constexpr double pi = pi_v<double>; inline constexpr double inv_pi = inv_pi_v<double>; inline constexpr double inv_sqrtpi = inv_sqrtpi_v<double>; inline constexpr double ln2 = ln2_v<double>; inline constexpr double ln10 = ln10_v<double>; inline constexpr double sqrt2 = sqrt2_v<double>; inline constexpr double sqrt3 = sqrt3_v<double>; inline constexpr double inv_sqrt3 = inv_sqrt3_v<double>; inline constexpr double egamma = egamma_v<double>; inline constexpr double phi = phi_v<double>; } */ #include <__concepts/arithmetic.h> #include <__config> #include <version> #if _LIBCPP_STD_VER >= 20 # if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header # endif _LIBCPP_BEGIN_NAMESPACE_STD namespace numbers { __false; template <class _Tp> struct __illformed { … }; e_v; log2e_v; log10e_v; pi_v; inv_pi_v; inv_sqrtpi_v; ln2_v; ln10_v; sqrt2_v; sqrt3_v; inv_sqrt3_v; egamma_v; phi_v; e_v; log2e_v; log10e_v; pi_v; inv_pi_v; inv_sqrtpi_v; ln2_v; ln10_v; sqrt2_v; sqrt3_v; inv_sqrt3_v; egamma_v; phi_v; inline constexpr double e = …; inline constexpr double log2e = …; inline constexpr double log10e = …; inline constexpr double pi = …; inline constexpr double inv_pi = …; inline constexpr double inv_sqrtpi = …; inline constexpr double ln2 = …; inline constexpr double ln10 = …; inline constexpr double sqrt2 = …; inline constexpr double sqrt3 = …; inline constexpr double inv_sqrt3 = …; inline constexpr double egamma = …; inline constexpr double phi = …; } // namespace numbers _LIBCPP_END_NAMESPACE_STD #endif // _LIBCPP_STD_VER >= 20 #if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 # include <concepts> # include <type_traits> #endif #endif // _LIBCPP_NUMBERS