Back to home page

EIC code displayed by LXR

 
 

    


Warning, /include/c++/v1/numbers is written in an unsupported language. File is not indexed.

0001 // -*- C++ -*-
0002 //===----------------------------------------------------------------------===//
0003 //
0004 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
0005 // See https://llvm.org/LICENSE.txt for license information.
0006 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
0007 //
0008 //===----------------------------------------------------------------------===//
0009 
0010 #ifndef _LIBCPP_NUMBERS
0011 #define _LIBCPP_NUMBERS
0012 
0013 /*
0014     numbers synopsis
0015 
0016 namespace std::numbers {
0017   template<class T> inline constexpr T e_v          = unspecified;
0018   template<class T> inline constexpr T log2e_v      = unspecified;
0019   template<class T> inline constexpr T log10e_v     = unspecified;
0020   template<class T> inline constexpr T pi_v         = unspecified;
0021   template<class T> inline constexpr T inv_pi_v     = unspecified;
0022   template<class T> inline constexpr T inv_sqrtpi_v = unspecified;
0023   template<class T> inline constexpr T ln2_v        = unspecified;
0024   template<class T> inline constexpr T ln10_v       = unspecified;
0025   template<class T> inline constexpr T sqrt2_v      = unspecified;
0026   template<class T> inline constexpr T sqrt3_v      = unspecified;
0027   template<class T> inline constexpr T inv_sqrt3_v  = unspecified;
0028   template<class T> inline constexpr T egamma_v     = unspecified;
0029   template<class T> inline constexpr T phi_v        = unspecified;
0030 
0031   template<floating_point T> inline constexpr T e_v<T>          = see below;
0032   template<floating_point T> inline constexpr T log2e_v<T>      = see below;
0033   template<floating_point T> inline constexpr T log10e_v<T>     = see below;
0034   template<floating_point T> inline constexpr T pi_v<T>         = see below;
0035   template<floating_point T> inline constexpr T inv_pi_v<T>     = see below;
0036   template<floating_point T> inline constexpr T inv_sqrtpi_v<T> = see below;
0037   template<floating_point T> inline constexpr T ln2_v<T>        = see below;
0038   template<floating_point T> inline constexpr T ln10_v<T>       = see below;
0039   template<floating_point T> inline constexpr T sqrt2_v<T>      = see below;
0040   template<floating_point T> inline constexpr T sqrt3_v<T>      = see below;
0041   template<floating_point T> inline constexpr T inv_sqrt3_v<T>  = see below;
0042   template<floating_point T> inline constexpr T egamma_v<T>     = see below;
0043   template<floating_point T> inline constexpr T phi_v<T>        = see below;
0044 
0045   inline constexpr double e          = e_v<double>;
0046   inline constexpr double log2e      = log2e_v<double>;
0047   inline constexpr double log10e     = log10e_v<double>;
0048   inline constexpr double pi         = pi_v<double>;
0049   inline constexpr double inv_pi     = inv_pi_v<double>;
0050   inline constexpr double inv_sqrtpi = inv_sqrtpi_v<double>;
0051   inline constexpr double ln2        = ln2_v<double>;
0052   inline constexpr double ln10       = ln10_v<double>;
0053   inline constexpr double sqrt2      = sqrt2_v<double>;
0054   inline constexpr double sqrt3      = sqrt3_v<double>;
0055   inline constexpr double inv_sqrt3  = inv_sqrt3_v<double>;
0056   inline constexpr double egamma     = egamma_v<double>;
0057   inline constexpr double phi        = phi_v<double>;
0058 }
0059 */
0060 
0061 #if __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS)
0062 #  include <__cxx03/numbers>
0063 #else
0064 #  include <__concepts/arithmetic.h>
0065 #  include <__config>
0066 #  include <version>
0067 
0068 #  if _LIBCPP_STD_VER >= 20
0069 
0070 #    if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
0071 #      pragma GCC system_header
0072 #    endif
0073 
0074 _LIBCPP_BEGIN_NAMESPACE_STD
0075 
0076 namespace numbers {
0077 
0078 template <class _Tp>
0079 inline constexpr bool __false = false;
0080 
0081 template <class _Tp>
0082 struct __illformed {
0083   static_assert(
0084       __false<_Tp>,
0085       "A program that instantiates a primary template of a mathematical constant variable template is ill-formed.");
0086 };
0087 
0088 template <class _Tp>
0089 inline constexpr _Tp e_v = __illformed<_Tp>{};
0090 template <class _Tp>
0091 inline constexpr _Tp log2e_v = __illformed<_Tp>{};
0092 template <class _Tp>
0093 inline constexpr _Tp log10e_v = __illformed<_Tp>{};
0094 template <class _Tp>
0095 inline constexpr _Tp pi_v = __illformed<_Tp>{};
0096 template <class _Tp>
0097 inline constexpr _Tp inv_pi_v = __illformed<_Tp>{};
0098 template <class _Tp>
0099 inline constexpr _Tp inv_sqrtpi_v = __illformed<_Tp>{};
0100 template <class _Tp>
0101 inline constexpr _Tp ln2_v = __illformed<_Tp>{};
0102 template <class _Tp>
0103 inline constexpr _Tp ln10_v = __illformed<_Tp>{};
0104 template <class _Tp>
0105 inline constexpr _Tp sqrt2_v = __illformed<_Tp>{};
0106 template <class _Tp>
0107 inline constexpr _Tp sqrt3_v = __illformed<_Tp>{};
0108 template <class _Tp>
0109 inline constexpr _Tp inv_sqrt3_v = __illformed<_Tp>{};
0110 template <class _Tp>
0111 inline constexpr _Tp egamma_v = __illformed<_Tp>{};
0112 template <class _Tp>
0113 inline constexpr _Tp phi_v = __illformed<_Tp>{};
0114 
0115 template <floating_point _Tp>
0116 inline constexpr _Tp e_v<_Tp> = 2.718281828459045235360287471352662;
0117 template <floating_point _Tp>
0118 inline constexpr _Tp log2e_v<_Tp> = 1.442695040888963407359924681001892;
0119 template <floating_point _Tp>
0120 inline constexpr _Tp log10e_v<_Tp> = 0.434294481903251827651128918916605;
0121 template <floating_point _Tp>
0122 inline constexpr _Tp pi_v<_Tp> = 3.141592653589793238462643383279502;
0123 template <floating_point _Tp>
0124 inline constexpr _Tp inv_pi_v<_Tp> = 0.318309886183790671537767526745028;
0125 template <floating_point _Tp>
0126 inline constexpr _Tp inv_sqrtpi_v<_Tp> = 0.564189583547756286948079451560772;
0127 template <floating_point _Tp>
0128 inline constexpr _Tp ln2_v<_Tp> = 0.693147180559945309417232121458176;
0129 template <floating_point _Tp>
0130 inline constexpr _Tp ln10_v<_Tp> = 2.302585092994045684017991454684364;
0131 template <floating_point _Tp>
0132 inline constexpr _Tp sqrt2_v<_Tp> = 1.414213562373095048801688724209698;
0133 template <floating_point _Tp>
0134 inline constexpr _Tp sqrt3_v<_Tp> = 1.732050807568877293527446341505872;
0135 template <floating_point _Tp>
0136 inline constexpr _Tp inv_sqrt3_v<_Tp> = 0.577350269189625764509148780501957;
0137 template <floating_point _Tp>
0138 inline constexpr _Tp egamma_v<_Tp> = 0.577215664901532860606512090082402;
0139 template <floating_point _Tp>
0140 inline constexpr _Tp phi_v<_Tp> = 1.618033988749894848204586834365638;
0141 
0142 inline constexpr double e          = e_v<double>;
0143 inline constexpr double log2e      = log2e_v<double>;
0144 inline constexpr double log10e     = log10e_v<double>;
0145 inline constexpr double pi         = pi_v<double>;
0146 inline constexpr double inv_pi     = inv_pi_v<double>;
0147 inline constexpr double inv_sqrtpi = inv_sqrtpi_v<double>;
0148 inline constexpr double ln2        = ln2_v<double>;
0149 inline constexpr double ln10       = ln10_v<double>;
0150 inline constexpr double sqrt2      = sqrt2_v<double>;
0151 inline constexpr double sqrt3      = sqrt3_v<double>;
0152 inline constexpr double inv_sqrt3  = inv_sqrt3_v<double>;
0153 inline constexpr double egamma     = egamma_v<double>;
0154 inline constexpr double phi        = phi_v<double>;
0155 
0156 } // namespace numbers
0157 
0158 _LIBCPP_END_NAMESPACE_STD
0159 
0160 #  endif // _LIBCPP_STD_VER >= 20
0161 
0162 #  if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
0163 #    include <concepts>
0164 #    include <cstddef>
0165 #    include <type_traits>
0166 #  endif
0167 #endif // __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS)
0168 
0169 #endif // _LIBCPP_NUMBERS