37 #ifndef _GLIBCXX_NUMERIC_LIMITS 
   38 #define _GLIBCXX_NUMERIC_LIMITS 1 
   40 #pragma GCC system_header 
   79 #ifndef __glibcxx_integral_traps 
   80 # define __glibcxx_integral_traps true 
   88 #ifndef __glibcxx_float_has_denorm_loss 
   89 #  define __glibcxx_float_has_denorm_loss false 
   91 #ifndef __glibcxx_float_traps 
   92 #  define __glibcxx_float_traps false 
   94 #ifndef __glibcxx_float_tinyness_before 
   95 #  define __glibcxx_float_tinyness_before false 
  102 #ifndef __glibcxx_double_has_denorm_loss 
  103 #  define __glibcxx_double_has_denorm_loss false 
  105 #ifndef __glibcxx_double_traps 
  106 #  define __glibcxx_double_traps false 
  108 #ifndef __glibcxx_double_tinyness_before 
  109 #  define __glibcxx_double_tinyness_before false 
  116 #ifndef __glibcxx_long_double_has_denorm_loss 
  117 #  define __glibcxx_long_double_has_denorm_loss false 
  119 #ifndef __glibcxx_long_double_traps 
  120 #  define __glibcxx_long_double_traps false 
  122 #ifndef __glibcxx_long_double_tinyness_before 
  123 #  define __glibcxx_long_double_tinyness_before false 
  128 #define __glibcxx_signed(T) ((T)(-1) < 0) 
  130 #define __glibcxx_min(T) \ 
  131   (__glibcxx_signed (T) ? -__glibcxx_max (T) - 1 : (T)0) 
  133 #define __glibcxx_max(T) \ 
  134   (__glibcxx_signed (T) ? \ 
  135    (((((T)1 << (__glibcxx_digits (T) - 1)) - 1) << 1) + 1) : ~(T)0) 
  137 #define __glibcxx_digits(T) \ 
  138   (sizeof(T) * __CHAR_BIT__ - __glibcxx_signed (T)) 
  141 #define __glibcxx_digits10(T) \ 
  142   (__glibcxx_digits (T) * 643L / 2136) 
  144 #define __glibcxx_max_digits10(T) \ 
  145   (2 + (T) * 643L / 2136) 
  147 namespace std _GLIBCXX_VISIBILITY(default)
 
  149 _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
  158     round_indeterminate       = -1,    
 
  200     static _GLIBCXX_USE_CONSTEXPR 
int digits = 0;
 
  205 #if __cplusplus >= 201103L 
  220     static _GLIBCXX_USE_CONSTEXPR 
bool is_exact = 
false;
 
  224     static _GLIBCXX_USE_CONSTEXPR 
int radix = 0;
 
  280     static _GLIBCXX_USE_CONSTEXPR 
bool traps = 
false;
 
  303   template<
typename _Tp>
 
  308       static _GLIBCXX_CONSTEXPR _Tp
 
  309       min() _GLIBCXX_USE_NOEXCEPT { 
return _Tp(); }
 
  312       static _GLIBCXX_CONSTEXPR _Tp
 
  313       max() _GLIBCXX_USE_NOEXCEPT { 
return _Tp(); }
 
  315 #if __cplusplus >= 201103L 
  324       static _GLIBCXX_CONSTEXPR _Tp
 
  325       epsilon() _GLIBCXX_USE_NOEXCEPT { 
return _Tp(); }
 
  328       static _GLIBCXX_CONSTEXPR _Tp
 
  332       static _GLIBCXX_CONSTEXPR _Tp
 
  337       static _GLIBCXX_CONSTEXPR _Tp
 
  342       static _GLIBCXX_CONSTEXPR _Tp
 
  348       static _GLIBCXX_CONSTEXPR _Tp
 
  352 #if __cplusplus >= 201103L 
  353   template<
typename _Tp>
 
  354     struct numeric_limits<const _Tp>
 
  355     : 
public numeric_limits<_Tp> { };
 
  357   template<
typename _Tp>
 
  358     struct numeric_limits<volatile _Tp>
 
  359     : 
public numeric_limits<_Tp> { };
 
  361   template<
typename _Tp>
 
  362     struct numeric_limits<const volatile _Tp>
 
  363     : 
public numeric_limits<_Tp> { };
 
  375       static _GLIBCXX_CONSTEXPR 
bool  
  376       min() _GLIBCXX_USE_NOEXCEPT { 
return false; }
 
  378       static _GLIBCXX_CONSTEXPR 
bool  
  379       max() _GLIBCXX_USE_NOEXCEPT { 
return true; }
 
  381 #if __cplusplus >= 201103L 
  382       static constexpr 
bool 
  385       static _GLIBCXX_USE_CONSTEXPR 
int digits = 1;
 
  386       static _GLIBCXX_USE_CONSTEXPR 
int digits10 = 0;
 
  387 #if __cplusplus >= 201103L 
  390       static _GLIBCXX_USE_CONSTEXPR 
bool is_signed = 
false;
 
  391       static _GLIBCXX_USE_CONSTEXPR 
bool is_integer = 
true;
 
  392       static _GLIBCXX_USE_CONSTEXPR 
bool is_exact = 
true;
 
  393       static _GLIBCXX_USE_CONSTEXPR 
int radix = 2;
 
  395       static _GLIBCXX_CONSTEXPR 
bool  
  396       epsilon() _GLIBCXX_USE_NOEXCEPT { 
return false; }
 
  398       static _GLIBCXX_CONSTEXPR 
bool  
  399       round_error() _GLIBCXX_USE_NOEXCEPT { 
return false; }
 
  406       static _GLIBCXX_USE_CONSTEXPR 
bool has_infinity = 
false;
 
  413       static _GLIBCXX_CONSTEXPR 
bool  
  414       infinity() _GLIBCXX_USE_NOEXCEPT { 
return false; }
 
  416       static _GLIBCXX_CONSTEXPR 
bool  
  417       quiet_NaN() _GLIBCXX_USE_NOEXCEPT { 
return false; }
 
  419       static _GLIBCXX_CONSTEXPR 
bool  
  422       static _GLIBCXX_CONSTEXPR 
bool  
  423       denorm_min() _GLIBCXX_USE_NOEXCEPT { 
return false; }
 
  425       static _GLIBCXX_USE_CONSTEXPR 
bool is_iec559 = 
false;
 
  426       static _GLIBCXX_USE_CONSTEXPR 
bool is_bounded = 
true;
 
  427       static _GLIBCXX_USE_CONSTEXPR 
bool is_modulo = 
false;
 
  432       static _GLIBCXX_USE_CONSTEXPR 
bool traps = __glibcxx_integral_traps;
 
  444       static _GLIBCXX_CONSTEXPR 
char  
  445       min() _GLIBCXX_USE_NOEXCEPT { 
return __glibcxx_min(
char); }
 
  447       static _GLIBCXX_CONSTEXPR 
char  
  448       max() _GLIBCXX_USE_NOEXCEPT { 
return __glibcxx_max(
char); }
 
  450 #if __cplusplus >= 201103L 
  451       static constexpr 
char  
  455       static _GLIBCXX_USE_CONSTEXPR 
int digits = __glibcxx_digits (
char);
 
  456       static _GLIBCXX_USE_CONSTEXPR 
int digits10 = __glibcxx_digits10 (
char);
 
  457 #if __cplusplus >= 201103L 
  460       static _GLIBCXX_USE_CONSTEXPR 
bool is_signed = __glibcxx_signed (
char);
 
  461       static _GLIBCXX_USE_CONSTEXPR 
bool is_integer = 
true;
 
  462       static _GLIBCXX_USE_CONSTEXPR 
bool is_exact = 
true;
 
  463       static _GLIBCXX_USE_CONSTEXPR 
int radix = 2;
 
  465       static _GLIBCXX_CONSTEXPR 
char  
  466       epsilon() _GLIBCXX_USE_NOEXCEPT { 
return 0; }
 
  468       static _GLIBCXX_CONSTEXPR 
char  
  476       static _GLIBCXX_USE_CONSTEXPR 
bool has_infinity = 
false;
 
  483       static _GLIBCXX_CONSTEXPR 
 
  484       char infinity() _GLIBCXX_USE_NOEXCEPT { 
return char(); }
 
  486       static _GLIBCXX_CONSTEXPR 
char  
  487       quiet_NaN() _GLIBCXX_USE_NOEXCEPT { 
return char(); }
 
  489       static _GLIBCXX_CONSTEXPR 
char  
  492       static _GLIBCXX_CONSTEXPR 
char  
  493       denorm_min() _GLIBCXX_USE_NOEXCEPT { 
return static_cast<char>(0); }
 
  495       static _GLIBCXX_USE_CONSTEXPR 
bool is_iec559 = 
false;
 
  496       static _GLIBCXX_USE_CONSTEXPR 
bool is_bounded = 
true;
 
  499       static _GLIBCXX_USE_CONSTEXPR 
bool traps = __glibcxx_integral_traps;
 
  511       static _GLIBCXX_CONSTEXPR 
signed char  
  512       min() _GLIBCXX_USE_NOEXCEPT { 
return -__SCHAR_MAX__ - 1; }
 
  514       static _GLIBCXX_CONSTEXPR 
signed char  
  515       max() _GLIBCXX_USE_NOEXCEPT { 
return __SCHAR_MAX__; }
 
  517 #if __cplusplus >= 201103L 
  518       static constexpr 
signed char  
  522       static _GLIBCXX_USE_CONSTEXPR 
int digits = __glibcxx_digits (
signed char);
 
  523       static _GLIBCXX_USE_CONSTEXPR 
int digits10  
  524        = __glibcxx_digits10 (
signed char);
 
  525 #if __cplusplus >= 201103L 
  528       static _GLIBCXX_USE_CONSTEXPR 
bool is_signed = 
true;
 
  529       static _GLIBCXX_USE_CONSTEXPR 
bool is_integer = 
true;
 
  530       static _GLIBCXX_USE_CONSTEXPR 
bool is_exact = 
true;
 
  531       static _GLIBCXX_USE_CONSTEXPR 
int radix = 2;
 
  533       static _GLIBCXX_CONSTEXPR 
signed char  
  534       epsilon() _GLIBCXX_USE_NOEXCEPT { 
return 0; }
 
  536       static _GLIBCXX_CONSTEXPR 
signed char  
  544       static _GLIBCXX_USE_CONSTEXPR 
bool has_infinity = 
false;
 
  551       static _GLIBCXX_CONSTEXPR 
signed char  
  552       infinity() _GLIBCXX_USE_NOEXCEPT { 
return static_cast<signed char>(0); }
 
  554       static _GLIBCXX_CONSTEXPR 
signed char  
  555       quiet_NaN() _GLIBCXX_USE_NOEXCEPT { 
return static_cast<signed char>(0); }
 
  557       static _GLIBCXX_CONSTEXPR 
signed char  
  559       { 
return static_cast<signed char>(0); }
 
  561       static _GLIBCXX_CONSTEXPR 
signed char  
  563       { 
return static_cast<signed char>(0); }
 
  565       static _GLIBCXX_USE_CONSTEXPR 
bool is_iec559 = 
false;
 
  566       static _GLIBCXX_USE_CONSTEXPR 
bool is_bounded = 
true;
 
  567       static _GLIBCXX_USE_CONSTEXPR 
bool is_modulo = 
false;
 
  569       static _GLIBCXX_USE_CONSTEXPR 
bool traps = __glibcxx_integral_traps;
 
  581       static _GLIBCXX_CONSTEXPR 
unsigned char  
  582       min() _GLIBCXX_USE_NOEXCEPT { 
return 0; }
 
  584       static _GLIBCXX_CONSTEXPR 
unsigned char  
  585       max() _GLIBCXX_USE_NOEXCEPT { 
return __SCHAR_MAX__ * 2U + 1; }
 
  587 #if __cplusplus >= 201103L 
  588       static constexpr 
unsigned char  
  592       static _GLIBCXX_USE_CONSTEXPR 
int digits  
  593        = __glibcxx_digits (
unsigned char);
 
  594       static _GLIBCXX_USE_CONSTEXPR 
int digits10  
  595        = __glibcxx_digits10 (
unsigned char);
 
  596 #if __cplusplus >= 201103L 
  599       static _GLIBCXX_USE_CONSTEXPR 
bool is_signed = 
false;
 
  600       static _GLIBCXX_USE_CONSTEXPR 
bool is_integer = 
true;
 
  601       static _GLIBCXX_USE_CONSTEXPR 
bool is_exact = 
true;
 
  602       static _GLIBCXX_USE_CONSTEXPR 
int radix = 2;
 
  604       static _GLIBCXX_CONSTEXPR 
unsigned char  
  605       epsilon() _GLIBCXX_USE_NOEXCEPT { 
return 0; }
 
  607       static _GLIBCXX_CONSTEXPR 
unsigned char  
  615       static _GLIBCXX_USE_CONSTEXPR 
bool has_infinity = 
false;
 
  622       static _GLIBCXX_CONSTEXPR 
unsigned char  
  624       { 
return static_cast<unsigned char>(0); }
 
  626       static _GLIBCXX_CONSTEXPR 
unsigned char  
  628       { 
return static_cast<unsigned char>(0); }
 
  630       static _GLIBCXX_CONSTEXPR 
unsigned char  
  632       { 
return static_cast<unsigned char>(0); }
 
  634       static _GLIBCXX_CONSTEXPR 
unsigned char  
  636       { 
return static_cast<unsigned char>(0); }
 
  638       static _GLIBCXX_USE_CONSTEXPR 
bool is_iec559 = 
false;
 
  639       static _GLIBCXX_USE_CONSTEXPR 
bool is_bounded = 
true;
 
  640       static _GLIBCXX_USE_CONSTEXPR 
bool is_modulo = 
true;
 
  642       static _GLIBCXX_USE_CONSTEXPR 
bool traps = __glibcxx_integral_traps;
 
  654       static _GLIBCXX_CONSTEXPR 
wchar_t  
  655       min() _GLIBCXX_USE_NOEXCEPT { 
return __glibcxx_min (
wchar_t); }
 
  657       static _GLIBCXX_CONSTEXPR 
wchar_t  
  658       max() _GLIBCXX_USE_NOEXCEPT { 
return __glibcxx_max (
wchar_t); }
 
  660 #if __cplusplus >= 201103L 
  661       static constexpr 
wchar_t 
  665       static _GLIBCXX_USE_CONSTEXPR 
int digits = __glibcxx_digits (
wchar_t);
 
  666       static _GLIBCXX_USE_CONSTEXPR 
int digits10  
  667        = __glibcxx_digits10 (
wchar_t);
 
  668 #if __cplusplus >= 201103L 
  671       static _GLIBCXX_USE_CONSTEXPR 
bool is_signed = __glibcxx_signed (
wchar_t);
 
  672       static _GLIBCXX_USE_CONSTEXPR 
bool is_integer = 
true;
 
  673       static _GLIBCXX_USE_CONSTEXPR 
bool is_exact = 
true;
 
  674       static _GLIBCXX_USE_CONSTEXPR 
int radix = 2;
 
  676       static _GLIBCXX_CONSTEXPR 
wchar_t  
  677       epsilon() _GLIBCXX_USE_NOEXCEPT { 
return 0; }
 
  679       static _GLIBCXX_CONSTEXPR 
wchar_t  
  687       static _GLIBCXX_USE_CONSTEXPR 
bool has_infinity = 
false;
 
  694       static _GLIBCXX_CONSTEXPR 
wchar_t  
  695       infinity() _GLIBCXX_USE_NOEXCEPT { 
return wchar_t(); }
 
  697       static _GLIBCXX_CONSTEXPR 
wchar_t  
  698       quiet_NaN() _GLIBCXX_USE_NOEXCEPT { 
return wchar_t(); }
 
  700       static _GLIBCXX_CONSTEXPR 
wchar_t  
  703       static _GLIBCXX_CONSTEXPR 
wchar_t  
  704       denorm_min() _GLIBCXX_USE_NOEXCEPT { 
return wchar_t(); }
 
  706       static _GLIBCXX_USE_CONSTEXPR 
bool is_iec559 = 
false;
 
  707       static _GLIBCXX_USE_CONSTEXPR 
bool is_bounded = 
true;
 
  710       static _GLIBCXX_USE_CONSTEXPR 
bool traps = __glibcxx_integral_traps;
 
  716 #if __cplusplus >= 201103L 
  723       static constexpr char16_t 
 
  724       min() noexcept { 
return __glibcxx_min (char16_t); }
 
  726       static constexpr char16_t 
 
  727       max() noexcept { 
return __glibcxx_max (char16_t); }
 
  729       static constexpr char16_t 
 
  732       static constexpr 
int digits = __glibcxx_digits (char16_t);
 
  733       static constexpr 
int digits10 = __glibcxx_digits10 (char16_t);
 
  735       static constexpr 
bool is_signed = __glibcxx_signed (char16_t);
 
  737       static constexpr 
bool is_exact = 
true;
 
  738       static constexpr 
int radix = 2;
 
  740       static constexpr char16_t 
 
  741       epsilon() noexcept { 
return 0; }
 
  743       static constexpr char16_t 
 
  757       static constexpr char16_t 
 
  758       infinity() noexcept { 
return char16_t(); }
 
  760       static constexpr char16_t 
 
  761       quiet_NaN() noexcept { 
return char16_t(); }
 
  763       static constexpr char16_t 
 
  766       static constexpr char16_t 
 
  773       static constexpr 
bool traps = __glibcxx_integral_traps;
 
  784       static constexpr char32_t 
 
  785       min() noexcept { 
return __glibcxx_min (char32_t); }
 
  787       static constexpr char32_t 
 
  788       max() noexcept { 
return __glibcxx_max (char32_t); }
 
  790       static constexpr char32_t 
 
  793       static constexpr 
int digits = __glibcxx_digits (char32_t);
 
  794       static constexpr 
int digits10 = __glibcxx_digits10 (char32_t);
 
  796       static constexpr 
bool is_signed = __glibcxx_signed (char32_t);
 
  798       static constexpr 
bool is_exact = 
true;
 
  799       static constexpr 
int radix = 2;
 
  801       static constexpr char32_t 
 
  802       epsilon() noexcept { 
return 0; }
 
  804       static constexpr char32_t 
 
  818       static constexpr char32_t 
 
  819       infinity() noexcept { 
return char32_t(); }
 
  821       static constexpr char32_t 
 
  822       quiet_NaN() noexcept { 
return char32_t(); }
 
  824       static constexpr char32_t 
 
  827       static constexpr char32_t 
 
  834       static constexpr 
bool traps = __glibcxx_integral_traps;
 
  846       static _GLIBCXX_CONSTEXPR 
short  
  847       min() _GLIBCXX_USE_NOEXCEPT { 
return -__SHRT_MAX__ - 1; }
 
  849       static _GLIBCXX_CONSTEXPR 
short  
  850       max() _GLIBCXX_USE_NOEXCEPT { 
return __SHRT_MAX__; }
 
  852 #if __cplusplus >= 201103L 
  853       static constexpr 
short  
  857       static _GLIBCXX_USE_CONSTEXPR 
int digits = __glibcxx_digits (
short);
 
  858       static _GLIBCXX_USE_CONSTEXPR 
int digits10 = __glibcxx_digits10 (
short);
 
  859 #if __cplusplus >= 201103L 
  862       static _GLIBCXX_USE_CONSTEXPR 
bool is_signed = 
true;
 
  863       static _GLIBCXX_USE_CONSTEXPR 
bool is_integer = 
true;
 
  864       static _GLIBCXX_USE_CONSTEXPR 
bool is_exact = 
true;
 
  865       static _GLIBCXX_USE_CONSTEXPR 
int radix = 2;
 
  867       static _GLIBCXX_CONSTEXPR 
short  
  868       epsilon() _GLIBCXX_USE_NOEXCEPT { 
return 0; }
 
  870       static _GLIBCXX_CONSTEXPR 
short  
  878       static _GLIBCXX_USE_CONSTEXPR 
bool has_infinity = 
false;
 
  885       static _GLIBCXX_CONSTEXPR 
short  
  886       infinity() _GLIBCXX_USE_NOEXCEPT { 
return short(); }
 
  888       static _GLIBCXX_CONSTEXPR 
short  
  889       quiet_NaN() _GLIBCXX_USE_NOEXCEPT { 
return short(); }
 
  891       static _GLIBCXX_CONSTEXPR 
short  
  894       static _GLIBCXX_CONSTEXPR 
short  
  895       denorm_min() _GLIBCXX_USE_NOEXCEPT { 
return short(); }
 
  897       static _GLIBCXX_USE_CONSTEXPR 
bool is_iec559 = 
false;
 
  898       static _GLIBCXX_USE_CONSTEXPR 
bool is_bounded = 
true;
 
  899       static _GLIBCXX_USE_CONSTEXPR 
bool is_modulo = 
false;
 
  901       static _GLIBCXX_USE_CONSTEXPR 
bool traps = __glibcxx_integral_traps;
 
  913       static _GLIBCXX_CONSTEXPR 
unsigned short  
  914       min() _GLIBCXX_USE_NOEXCEPT { 
return 0; }
 
  916       static _GLIBCXX_CONSTEXPR 
unsigned short  
  917       max() _GLIBCXX_USE_NOEXCEPT { 
return __SHRT_MAX__ * 2U + 1; }
 
  919 #if __cplusplus >= 201103L 
  920       static constexpr 
unsigned short  
  924       static _GLIBCXX_USE_CONSTEXPR 
int digits  
  925        = __glibcxx_digits (
unsigned short);
 
  926       static _GLIBCXX_USE_CONSTEXPR 
int digits10  
  927        = __glibcxx_digits10 (
unsigned short);
 
  928 #if __cplusplus >= 201103L 
  931       static _GLIBCXX_USE_CONSTEXPR 
bool is_signed = 
false;
 
  932       static _GLIBCXX_USE_CONSTEXPR 
bool is_integer = 
true;
 
  933       static _GLIBCXX_USE_CONSTEXPR 
bool is_exact = 
true;
 
  934       static _GLIBCXX_USE_CONSTEXPR 
int radix = 2;
 
  936       static _GLIBCXX_CONSTEXPR 
unsigned short  
  937       epsilon() _GLIBCXX_USE_NOEXCEPT { 
return 0; }
 
  939       static _GLIBCXX_CONSTEXPR 
unsigned short  
  947       static _GLIBCXX_USE_CONSTEXPR 
bool has_infinity = 
false;
 
  954       static _GLIBCXX_CONSTEXPR 
unsigned short  
  956       { 
return static_cast<unsigned short>(0); }
 
  958       static _GLIBCXX_CONSTEXPR 
unsigned short  
  960       { 
return static_cast<unsigned short>(0); }
 
  962       static _GLIBCXX_CONSTEXPR 
unsigned short  
  964       { 
return static_cast<unsigned short>(0); }
 
  966       static _GLIBCXX_CONSTEXPR 
unsigned short  
  968       { 
return static_cast<unsigned short>(0); }
 
  970       static _GLIBCXX_USE_CONSTEXPR 
bool is_iec559 = 
false;
 
  971       static _GLIBCXX_USE_CONSTEXPR 
bool is_bounded = 
true;
 
  972       static _GLIBCXX_USE_CONSTEXPR 
bool is_modulo = 
true;
 
  974       static _GLIBCXX_USE_CONSTEXPR 
bool traps = __glibcxx_integral_traps;
 
  986       static _GLIBCXX_CONSTEXPR 
int  
  987       min() _GLIBCXX_USE_NOEXCEPT { 
return -__INT_MAX__ - 1; }
 
  989       static _GLIBCXX_CONSTEXPR 
int  
  990       max() _GLIBCXX_USE_NOEXCEPT { 
return __INT_MAX__; }
 
  992 #if __cplusplus >= 201103L 
  997       static _GLIBCXX_USE_CONSTEXPR 
int digits = __glibcxx_digits (
int);
 
  998       static _GLIBCXX_USE_CONSTEXPR 
int digits10 = __glibcxx_digits10 (
int);
 
  999 #if __cplusplus >= 201103L 
 1002       static _GLIBCXX_USE_CONSTEXPR 
bool is_signed = 
true;
 
 1003       static _GLIBCXX_USE_CONSTEXPR 
bool is_integer = 
true;
 
 1004       static _GLIBCXX_USE_CONSTEXPR 
bool is_exact = 
true;
 
 1005       static _GLIBCXX_USE_CONSTEXPR 
int radix = 2;
 
 1007       static _GLIBCXX_CONSTEXPR 
int  
 1008       epsilon() _GLIBCXX_USE_NOEXCEPT { 
return 0; }
 
 1010       static _GLIBCXX_CONSTEXPR 
int  
 1018       static _GLIBCXX_USE_CONSTEXPR 
bool has_infinity = 
false;
 
 1025       static _GLIBCXX_CONSTEXPR 
int  
 1026       infinity() _GLIBCXX_USE_NOEXCEPT { 
return static_cast<int>(0); }
 
 1028       static _GLIBCXX_CONSTEXPR 
int  
 1029       quiet_NaN() _GLIBCXX_USE_NOEXCEPT { 
return static_cast<int>(0); }
 
 1031       static _GLIBCXX_CONSTEXPR 
int  
 1032       signaling_NaN() _GLIBCXX_USE_NOEXCEPT { 
return static_cast<int>(0); }
 
 1034       static _GLIBCXX_CONSTEXPR 
int  
 1035       denorm_min() _GLIBCXX_USE_NOEXCEPT { 
return static_cast<int>(0); }
 
 1037       static _GLIBCXX_USE_CONSTEXPR 
bool is_iec559 = 
false;
 
 1038       static _GLIBCXX_USE_CONSTEXPR 
bool is_bounded = 
true;
 
 1039       static _GLIBCXX_USE_CONSTEXPR 
bool is_modulo = 
false;
 
 1041       static _GLIBCXX_USE_CONSTEXPR 
bool traps = __glibcxx_integral_traps;
 
 1053       static _GLIBCXX_CONSTEXPR 
unsigned int  
 1054       min() _GLIBCXX_USE_NOEXCEPT { 
return 0; }
 
 1056       static _GLIBCXX_CONSTEXPR 
unsigned int  
 1057       max() _GLIBCXX_USE_NOEXCEPT { 
return __INT_MAX__ * 2U + 1; }
 
 1059 #if __cplusplus >= 201103L 
 1060       static constexpr 
unsigned int  
 1064       static _GLIBCXX_USE_CONSTEXPR 
int digits  
 1065        = __glibcxx_digits (
unsigned int);
 
 1066       static _GLIBCXX_USE_CONSTEXPR 
int digits10  
 1067        = __glibcxx_digits10 (
unsigned int);
 
 1068 #if __cplusplus >= 201103L 
 1071       static _GLIBCXX_USE_CONSTEXPR 
bool is_signed = 
false;
 
 1072       static _GLIBCXX_USE_CONSTEXPR 
bool is_integer = 
true;
 
 1073       static _GLIBCXX_USE_CONSTEXPR 
bool is_exact = 
true;
 
 1074       static _GLIBCXX_USE_CONSTEXPR 
int radix = 2;
 
 1076       static _GLIBCXX_CONSTEXPR 
unsigned int  
 1077       epsilon() _GLIBCXX_USE_NOEXCEPT { 
return 0; }
 
 1079       static _GLIBCXX_CONSTEXPR 
unsigned int  
 1087       static _GLIBCXX_USE_CONSTEXPR 
bool has_infinity = 
false;
 
 1094       static _GLIBCXX_CONSTEXPR 
unsigned int  
 1095       infinity() _GLIBCXX_USE_NOEXCEPT { 
return static_cast<unsigned int>(0); }
 
 1097       static _GLIBCXX_CONSTEXPR 
unsigned int  
 1099       { 
return static_cast<unsigned int>(0); }
 
 1101       static _GLIBCXX_CONSTEXPR 
unsigned int  
 1103       { 
return static_cast<unsigned int>(0); }
 
 1105       static _GLIBCXX_CONSTEXPR 
unsigned int  
 1107       { 
return static_cast<unsigned int>(0); }
 
 1109       static _GLIBCXX_USE_CONSTEXPR 
bool is_iec559 = 
false;
 
 1110       static _GLIBCXX_USE_CONSTEXPR 
bool is_bounded = 
true;
 
 1111       static _GLIBCXX_USE_CONSTEXPR 
bool is_modulo = 
true;
 
 1113       static _GLIBCXX_USE_CONSTEXPR 
bool traps = __glibcxx_integral_traps;
 
 1125       static _GLIBCXX_CONSTEXPR 
long 
 1126       min() _GLIBCXX_USE_NOEXCEPT { 
return -__LONG_MAX__ - 1; }
 
 1128       static _GLIBCXX_CONSTEXPR 
long  
 1129       max() _GLIBCXX_USE_NOEXCEPT { 
return __LONG_MAX__; }
 
 1131 #if __cplusplus >= 201103L 
 1132       static constexpr 
long  
 1136       static _GLIBCXX_USE_CONSTEXPR 
int digits = __glibcxx_digits (
long);
 
 1137       static _GLIBCXX_USE_CONSTEXPR 
int digits10 = __glibcxx_digits10 (
long);
 
 1138 #if __cplusplus >= 201103L 
 1141       static _GLIBCXX_USE_CONSTEXPR 
bool is_signed = 
true;
 
 1142       static _GLIBCXX_USE_CONSTEXPR 
bool is_integer = 
true;
 
 1143       static _GLIBCXX_USE_CONSTEXPR 
bool is_exact = 
true;
 
 1144       static _GLIBCXX_USE_CONSTEXPR 
int radix = 2;
 
 1146       static _GLIBCXX_CONSTEXPR 
long  
 1147       epsilon() _GLIBCXX_USE_NOEXCEPT { 
return 0; }
 
 1149       static _GLIBCXX_CONSTEXPR 
long  
 1157       static _GLIBCXX_USE_CONSTEXPR 
bool has_infinity = 
false;
 
 1164       static _GLIBCXX_CONSTEXPR 
long  
 1165       infinity() _GLIBCXX_USE_NOEXCEPT { 
return static_cast<long>(0); }
 
 1167       static _GLIBCXX_CONSTEXPR 
long  
 1168       quiet_NaN() _GLIBCXX_USE_NOEXCEPT { 
return static_cast<long>(0); }
 
 1170       static _GLIBCXX_CONSTEXPR 
long  
 1171       signaling_NaN() _GLIBCXX_USE_NOEXCEPT { 
return static_cast<long>(0); }
 
 1173       static _GLIBCXX_CONSTEXPR 
long  
 1174       denorm_min() _GLIBCXX_USE_NOEXCEPT { 
return static_cast<long>(0); }
 
 1176       static _GLIBCXX_USE_CONSTEXPR 
bool is_iec559 = 
false;
 
 1177       static _GLIBCXX_USE_CONSTEXPR 
bool is_bounded = 
true;
 
 1178       static _GLIBCXX_USE_CONSTEXPR 
bool is_modulo = 
false;
 
 1180       static _GLIBCXX_USE_CONSTEXPR 
bool traps = __glibcxx_integral_traps;
 
 1192       static _GLIBCXX_CONSTEXPR 
unsigned long  
 1193       min() _GLIBCXX_USE_NOEXCEPT { 
return 0; }
 
 1195       static _GLIBCXX_CONSTEXPR 
unsigned long  
 1196       max() _GLIBCXX_USE_NOEXCEPT { 
return __LONG_MAX__ * 2UL + 1; }
 
 1198 #if __cplusplus >= 201103L 
 1199       static constexpr 
unsigned long  
 1203       static _GLIBCXX_USE_CONSTEXPR 
int digits  
 1204        = __glibcxx_digits (
unsigned long);
 
 1205       static _GLIBCXX_USE_CONSTEXPR 
int digits10  
 1206        = __glibcxx_digits10 (
unsigned long);
 
 1207 #if __cplusplus >= 201103L 
 1210       static _GLIBCXX_USE_CONSTEXPR 
bool is_signed = 
false;
 
 1211       static _GLIBCXX_USE_CONSTEXPR 
bool is_integer = 
true;
 
 1212       static _GLIBCXX_USE_CONSTEXPR 
bool is_exact = 
true;
 
 1213       static _GLIBCXX_USE_CONSTEXPR 
int radix = 2;
 
 1215       static _GLIBCXX_CONSTEXPR 
unsigned long  
 1216       epsilon() _GLIBCXX_USE_NOEXCEPT { 
return 0; }
 
 1218       static _GLIBCXX_CONSTEXPR 
unsigned long  
 1226       static _GLIBCXX_USE_CONSTEXPR 
bool has_infinity = 
false;
 
 1233       static _GLIBCXX_CONSTEXPR 
unsigned long  
 1235       { 
return static_cast<unsigned long>(0); }
 
 1237       static _GLIBCXX_CONSTEXPR 
unsigned long  
 1239       { 
return static_cast<unsigned long>(0); }
 
 1241       static _GLIBCXX_CONSTEXPR 
unsigned long  
 1243       { 
return static_cast<unsigned long>(0); }
 
 1245       static _GLIBCXX_CONSTEXPR 
unsigned long  
 1247       { 
return static_cast<unsigned long>(0); }
 
 1249       static _GLIBCXX_USE_CONSTEXPR 
bool is_iec559 = 
false;
 
 1250       static _GLIBCXX_USE_CONSTEXPR 
bool is_bounded = 
true;
 
 1251       static _GLIBCXX_USE_CONSTEXPR 
bool is_modulo = 
true;
 
 1253       static _GLIBCXX_USE_CONSTEXPR 
bool traps = __glibcxx_integral_traps;
 
 1265       static _GLIBCXX_CONSTEXPR 
long long  
 1266       min() _GLIBCXX_USE_NOEXCEPT { 
return -__LONG_LONG_MAX__ - 1; }
 
 1268       static _GLIBCXX_CONSTEXPR 
long long  
 1269       max() _GLIBCXX_USE_NOEXCEPT { 
return __LONG_LONG_MAX__; }
 
 1271 #if __cplusplus >= 201103L 
 1272       static constexpr 
long long  
 1276       static _GLIBCXX_USE_CONSTEXPR 
int digits  
 1277        = __glibcxx_digits (
long long);
 
 1278       static _GLIBCXX_USE_CONSTEXPR 
int digits10  
 1279        = __glibcxx_digits10 (
long long);
 
 1280 #if __cplusplus >= 201103L 
 1283       static _GLIBCXX_USE_CONSTEXPR 
bool is_signed = 
true;
 
 1284       static _GLIBCXX_USE_CONSTEXPR 
bool is_integer = 
true;
 
 1285       static _GLIBCXX_USE_CONSTEXPR 
bool is_exact = 
true;
 
 1286       static _GLIBCXX_USE_CONSTEXPR 
int radix = 2;
 
 1288       static _GLIBCXX_CONSTEXPR 
long long  
 1289       epsilon() _GLIBCXX_USE_NOEXCEPT { 
return 0; }
 
 1291       static _GLIBCXX_CONSTEXPR 
long long  
 1299       static _GLIBCXX_USE_CONSTEXPR 
bool has_infinity = 
false;
 
 1306       static _GLIBCXX_CONSTEXPR 
long long  
 1307       infinity() _GLIBCXX_USE_NOEXCEPT { 
return static_cast<long long>(0); }
 
 1309       static _GLIBCXX_CONSTEXPR 
long long  
 1310       quiet_NaN() _GLIBCXX_USE_NOEXCEPT { 
return static_cast<long long>(0); }
 
 1312       static _GLIBCXX_CONSTEXPR 
long long  
 1314       { 
return static_cast<long long>(0); }
 
 1316       static _GLIBCXX_CONSTEXPR 
long long  
 1317       denorm_min() _GLIBCXX_USE_NOEXCEPT { 
return static_cast<long long>(0); }
 
 1319       static _GLIBCXX_USE_CONSTEXPR 
bool is_iec559 = 
false;
 
 1320       static _GLIBCXX_USE_CONSTEXPR 
bool is_bounded = 
true;
 
 1321       static _GLIBCXX_USE_CONSTEXPR 
bool is_modulo = 
false;
 
 1323       static _GLIBCXX_USE_CONSTEXPR 
bool traps = __glibcxx_integral_traps;
 
 1335       static _GLIBCXX_CONSTEXPR 
unsigned long long  
 1336       min() _GLIBCXX_USE_NOEXCEPT { 
return 0; }
 
 1338       static _GLIBCXX_CONSTEXPR 
unsigned long long  
 1339       max() _GLIBCXX_USE_NOEXCEPT { 
return __LONG_LONG_MAX__ * 2ULL + 1; }
 
 1341 #if __cplusplus >= 201103L 
 1342       static constexpr 
unsigned long long  
 1346       static _GLIBCXX_USE_CONSTEXPR 
int digits  
 1347        = __glibcxx_digits (
unsigned long long);
 
 1348       static _GLIBCXX_USE_CONSTEXPR 
int digits10  
 1349        = __glibcxx_digits10 (
unsigned long long);
 
 1350 #if __cplusplus >= 201103L 
 1353       static _GLIBCXX_USE_CONSTEXPR 
bool is_signed = 
false;
 
 1354       static _GLIBCXX_USE_CONSTEXPR 
bool is_integer = 
true;
 
 1355       static _GLIBCXX_USE_CONSTEXPR 
bool is_exact = 
true;
 
 1356       static _GLIBCXX_USE_CONSTEXPR 
int radix = 2;
 
 1358       static _GLIBCXX_CONSTEXPR 
unsigned long long  
 1359       epsilon() _GLIBCXX_USE_NOEXCEPT { 
return 0; }
 
 1361       static _GLIBCXX_CONSTEXPR 
unsigned long long  
 1369       static _GLIBCXX_USE_CONSTEXPR 
bool has_infinity = 
false;
 
 1376       static _GLIBCXX_CONSTEXPR 
unsigned long long  
 1378       { 
return static_cast<unsigned long long>(0); }
 
 1380       static _GLIBCXX_CONSTEXPR 
unsigned long long  
 1382       { 
return static_cast<unsigned long long>(0); }
 
 1384       static _GLIBCXX_CONSTEXPR 
unsigned long long  
 1386       { 
return static_cast<unsigned long long>(0); }
 
 1388       static _GLIBCXX_CONSTEXPR 
unsigned long long  
 1390       { 
return static_cast<unsigned long long>(0); }
 
 1392       static _GLIBCXX_USE_CONSTEXPR 
bool is_iec559 = 
false;
 
 1393       static _GLIBCXX_USE_CONSTEXPR 
bool is_bounded = 
true;
 
 1394       static _GLIBCXX_USE_CONSTEXPR 
bool is_modulo = 
true;
 
 1396       static _GLIBCXX_USE_CONSTEXPR 
bool traps = __glibcxx_integral_traps;
 
 1402 #if !defined(__STRICT_ANSI__) && defined(_GLIBCXX_USE_INT128) 
 1409       static _GLIBCXX_CONSTEXPR __int128
 
 1410       min() _GLIBCXX_USE_NOEXCEPT { 
return __glibcxx_min (__int128); }
 
 1412       static _GLIBCXX_CONSTEXPR __int128
 
 1413       max() _GLIBCXX_USE_NOEXCEPT { 
return __glibcxx_max (__int128); }
 
 1415 #if __cplusplus >= 201103L 
 1416       static constexpr __int128
 
 1420       static _GLIBCXX_USE_CONSTEXPR 
int digits 
 1421        = __glibcxx_digits (__int128);
 
 1422       static _GLIBCXX_USE_CONSTEXPR 
int digits10 
 1423        = __glibcxx_digits10 (__int128);
 
 1424 #if __cplusplus >= 201103L 
 1427       static _GLIBCXX_USE_CONSTEXPR 
bool is_signed = 
true;
 
 1428       static _GLIBCXX_USE_CONSTEXPR 
bool is_integer = 
true;
 
 1429       static _GLIBCXX_USE_CONSTEXPR 
bool is_exact = 
true;
 
 1430       static _GLIBCXX_USE_CONSTEXPR 
int radix = 2;
 
 1432       static _GLIBCXX_CONSTEXPR __int128
 
 1433       epsilon() _GLIBCXX_USE_NOEXCEPT { 
return 0; }
 
 1435       static _GLIBCXX_CONSTEXPR __int128
 
 1443       static _GLIBCXX_USE_CONSTEXPR 
bool has_infinity = 
false;
 
 1450       static _GLIBCXX_CONSTEXPR __int128
 
 1452       { 
return static_cast<__int128
>(0); }
 
 1454       static _GLIBCXX_CONSTEXPR __int128
 
 1456       { 
return static_cast<__int128
>(0); }
 
 1458       static _GLIBCXX_CONSTEXPR __int128
 
 1460       { 
return static_cast<__int128
>(0); }
 
 1462       static _GLIBCXX_CONSTEXPR __int128
 
 1464       { 
return static_cast<__int128
>(0); }
 
 1466       static _GLIBCXX_USE_CONSTEXPR 
bool is_iec559 = 
false;
 
 1467       static _GLIBCXX_USE_CONSTEXPR 
bool is_bounded = 
true;
 
 1468       static _GLIBCXX_USE_CONSTEXPR 
bool is_modulo = 
false;
 
 1470       static _GLIBCXX_USE_CONSTEXPR 
bool traps 
 1471        = __glibcxx_integral_traps;
 
 1479     struct numeric_limits<unsigned __int128>
 
 1483       static _GLIBCXX_CONSTEXPR 
unsigned __int128
 
 1484       min() _GLIBCXX_USE_NOEXCEPT { 
return 0; }
 
 1486       static _GLIBCXX_CONSTEXPR 
unsigned __int128
 
 1487       max() _GLIBCXX_USE_NOEXCEPT { 
return __glibcxx_max (
unsigned __int128); }
 
 1489 #if __cplusplus >= 201103L 
 1490       static constexpr 
unsigned __int128
 
 1494       static _GLIBCXX_USE_CONSTEXPR 
int digits 
 1495        = __glibcxx_digits (
unsigned __int128);
 
 1496       static _GLIBCXX_USE_CONSTEXPR 
int digits10 
 1497        = __glibcxx_digits10 (
unsigned __int128);
 
 1498 #if __cplusplus >= 201103L 
 1501       static _GLIBCXX_USE_CONSTEXPR 
bool is_signed = 
false;
 
 1502       static _GLIBCXX_USE_CONSTEXPR 
bool is_integer = 
true;
 
 1503       static _GLIBCXX_USE_CONSTEXPR 
bool is_exact = 
true;
 
 1504       static _GLIBCXX_USE_CONSTEXPR 
int radix = 2;
 
 1506       static _GLIBCXX_CONSTEXPR 
unsigned __int128
 
 1507       epsilon() _GLIBCXX_USE_NOEXCEPT { 
return 0; }
 
 1509       static _GLIBCXX_CONSTEXPR 
unsigned __int128
 
 1517       static _GLIBCXX_USE_CONSTEXPR 
bool has_infinity = 
false;
 
 1524       static _GLIBCXX_CONSTEXPR 
unsigned __int128
 
 1526       { 
return static_cast<unsigned __int128
>(0); }
 
 1528       static _GLIBCXX_CONSTEXPR 
unsigned __int128
 
 1530       { 
return static_cast<unsigned __int128
>(0); }
 
 1532       static _GLIBCXX_CONSTEXPR 
unsigned __int128
 
 1534       { 
return static_cast<unsigned __int128
>(0); }
 
 1536       static _GLIBCXX_CONSTEXPR 
unsigned __int128
 
 1538       { 
return static_cast<unsigned __int128
>(0); }
 
 1540       static _GLIBCXX_USE_CONSTEXPR 
bool is_iec559 = 
false;
 
 1541       static _GLIBCXX_USE_CONSTEXPR 
bool is_bounded = 
true;
 
 1542       static _GLIBCXX_USE_CONSTEXPR 
bool is_modulo = 
true;
 
 1544       static _GLIBCXX_USE_CONSTEXPR 
bool traps = __glibcxx_integral_traps;
 
 1557       static _GLIBCXX_CONSTEXPR 
float  
 1558       min() _GLIBCXX_USE_NOEXCEPT { 
return __FLT_MIN__; }
 
 1560       static _GLIBCXX_CONSTEXPR 
float  
 1561       max() _GLIBCXX_USE_NOEXCEPT { 
return __FLT_MAX__; }
 
 1563 #if __cplusplus >= 201103L 
 1564       static constexpr 
float  
 1565       lowest() noexcept { 
return -__FLT_MAX__; }
 
 1568       static _GLIBCXX_USE_CONSTEXPR 
int digits = __FLT_MANT_DIG__;
 
 1569       static _GLIBCXX_USE_CONSTEXPR 
int digits10 = __FLT_DIG__;
 
 1570 #if __cplusplus >= 201103L 
 1572      = __glibcxx_max_digits10 (__FLT_MANT_DIG__);
 
 1574       static _GLIBCXX_USE_CONSTEXPR 
bool is_signed = 
true;
 
 1575       static _GLIBCXX_USE_CONSTEXPR 
bool is_integer = 
false;
 
 1576       static _GLIBCXX_USE_CONSTEXPR 
bool is_exact = 
false;
 
 1577       static _GLIBCXX_USE_CONSTEXPR 
int radix = __FLT_RADIX__;
 
 1579       static _GLIBCXX_CONSTEXPR 
float  
 1580       epsilon() _GLIBCXX_USE_NOEXCEPT { 
return __FLT_EPSILON__; }
 
 1582       static _GLIBCXX_CONSTEXPR 
float  
 1583       round_error() _GLIBCXX_USE_NOEXCEPT { 
return 0.5F; }
 
 1585       static _GLIBCXX_USE_CONSTEXPR 
int min_exponent = __FLT_MIN_EXP__;
 
 1586       static _GLIBCXX_USE_CONSTEXPR 
int min_exponent10 = __FLT_MIN_10_EXP__;
 
 1587       static _GLIBCXX_USE_CONSTEXPR 
int max_exponent = __FLT_MAX_EXP__;
 
 1588       static _GLIBCXX_USE_CONSTEXPR 
int max_exponent10 = __FLT_MAX_10_EXP__;
 
 1590       static _GLIBCXX_USE_CONSTEXPR 
bool has_infinity = __FLT_HAS_INFINITY__;
 
 1591       static _GLIBCXX_USE_CONSTEXPR 
bool has_quiet_NaN = __FLT_HAS_QUIET_NAN__;
 
 1596        = __glibcxx_float_has_denorm_loss;
 
 1598       static _GLIBCXX_CONSTEXPR 
float  
 1599       infinity() _GLIBCXX_USE_NOEXCEPT { 
return __builtin_huge_valf(); }
 
 1601       static _GLIBCXX_CONSTEXPR 
float  
 1602       quiet_NaN() _GLIBCXX_USE_NOEXCEPT { 
return __builtin_nanf(
""); }
 
 1604       static _GLIBCXX_CONSTEXPR 
float  
 1605       signaling_NaN() _GLIBCXX_USE_NOEXCEPT { 
return __builtin_nansf(
""); }
 
 1607       static _GLIBCXX_CONSTEXPR 
float  
 1608       denorm_min() _GLIBCXX_USE_NOEXCEPT { 
return __FLT_DENORM_MIN__; }
 
 1610       static _GLIBCXX_USE_CONSTEXPR 
bool is_iec559 
 1612       static _GLIBCXX_USE_CONSTEXPR 
bool is_bounded = 
true;
 
 1613       static _GLIBCXX_USE_CONSTEXPR 
bool is_modulo = 
false;
 
 1615       static _GLIBCXX_USE_CONSTEXPR 
bool traps = __glibcxx_float_traps;
 
 1617        = __glibcxx_float_tinyness_before;
 
 1622 #undef __glibcxx_float_has_denorm_loss 
 1623 #undef __glibcxx_float_traps 
 1624 #undef __glibcxx_float_tinyness_before 
 1632       static _GLIBCXX_CONSTEXPR 
double  
 1633       min() _GLIBCXX_USE_NOEXCEPT { 
return __DBL_MIN__; }
 
 1635       static _GLIBCXX_CONSTEXPR 
double  
 1636       max() _GLIBCXX_USE_NOEXCEPT { 
return __DBL_MAX__; }
 
 1638 #if __cplusplus >= 201103L 
 1639       static constexpr 
double  
 1640       lowest() noexcept { 
return -__DBL_MAX__; }
 
 1643       static _GLIBCXX_USE_CONSTEXPR 
int digits = __DBL_MANT_DIG__;
 
 1644       static _GLIBCXX_USE_CONSTEXPR 
int digits10 = __DBL_DIG__;
 
 1645 #if __cplusplus >= 201103L 
 1647      = __glibcxx_max_digits10 (__DBL_MANT_DIG__);
 
 1649       static _GLIBCXX_USE_CONSTEXPR 
bool is_signed = 
true;
 
 1650       static _GLIBCXX_USE_CONSTEXPR 
bool is_integer = 
false;
 
 1651       static _GLIBCXX_USE_CONSTEXPR 
bool is_exact = 
false;
 
 1652       static _GLIBCXX_USE_CONSTEXPR 
int radix = __FLT_RADIX__;
 
 1654       static _GLIBCXX_CONSTEXPR 
double  
 1655       epsilon() _GLIBCXX_USE_NOEXCEPT { 
return __DBL_EPSILON__; }
 
 1657       static _GLIBCXX_CONSTEXPR 
double  
 1658       round_error() _GLIBCXX_USE_NOEXCEPT { 
return 0.5; }
 
 1660       static _GLIBCXX_USE_CONSTEXPR 
int min_exponent = __DBL_MIN_EXP__;
 
 1661       static _GLIBCXX_USE_CONSTEXPR 
int min_exponent10 = __DBL_MIN_10_EXP__;
 
 1662       static _GLIBCXX_USE_CONSTEXPR 
int max_exponent = __DBL_MAX_EXP__;
 
 1663       static _GLIBCXX_USE_CONSTEXPR 
int max_exponent10 = __DBL_MAX_10_EXP__;
 
 1665       static _GLIBCXX_USE_CONSTEXPR 
bool has_infinity = __DBL_HAS_INFINITY__;
 
 1666       static _GLIBCXX_USE_CONSTEXPR 
bool has_quiet_NaN = __DBL_HAS_QUIET_NAN__;
 
 1671         = __glibcxx_double_has_denorm_loss;
 
 1673       static _GLIBCXX_CONSTEXPR 
double  
 1674       infinity() _GLIBCXX_USE_NOEXCEPT { 
return __builtin_huge_val(); }
 
 1676       static _GLIBCXX_CONSTEXPR 
double  
 1677       quiet_NaN() _GLIBCXX_USE_NOEXCEPT { 
return __builtin_nan(
""); }
 
 1679       static _GLIBCXX_CONSTEXPR 
double  
 1680       signaling_NaN() _GLIBCXX_USE_NOEXCEPT { 
return __builtin_nans(
""); }
 
 1682       static _GLIBCXX_CONSTEXPR 
double  
 1683       denorm_min() _GLIBCXX_USE_NOEXCEPT { 
return __DBL_DENORM_MIN__; }
 
 1685       static _GLIBCXX_USE_CONSTEXPR 
bool is_iec559 
 1687       static _GLIBCXX_USE_CONSTEXPR 
bool is_bounded = 
true;
 
 1688       static _GLIBCXX_USE_CONSTEXPR 
bool is_modulo = 
false;
 
 1690       static _GLIBCXX_USE_CONSTEXPR 
bool traps = __glibcxx_double_traps;
 
 1692        = __glibcxx_double_tinyness_before;
 
 1697 #undef __glibcxx_double_has_denorm_loss 
 1698 #undef __glibcxx_double_traps 
 1699 #undef __glibcxx_double_tinyness_before 
 1707       static _GLIBCXX_CONSTEXPR 
long double  
 1708       min() _GLIBCXX_USE_NOEXCEPT { 
return __LDBL_MIN__; }
 
 1710       static _GLIBCXX_CONSTEXPR 
long double  
 1711       max() _GLIBCXX_USE_NOEXCEPT { 
return __LDBL_MAX__; }
 
 1713 #if __cplusplus >= 201103L 
 1714       static constexpr 
long double  
 1715       lowest() noexcept { 
return -__LDBL_MAX__; }
 
 1718       static _GLIBCXX_USE_CONSTEXPR 
int digits = __LDBL_MANT_DIG__;
 
 1719       static _GLIBCXX_USE_CONSTEXPR 
int digits10 = __LDBL_DIG__;
 
 1720 #if __cplusplus >= 201103L 
 1722      = __glibcxx_max_digits10 (__LDBL_MANT_DIG__);
 
 1724       static _GLIBCXX_USE_CONSTEXPR 
bool is_signed = 
true;
 
 1725       static _GLIBCXX_USE_CONSTEXPR 
bool is_integer = 
false;
 
 1726       static _GLIBCXX_USE_CONSTEXPR 
bool is_exact = 
false;
 
 1727       static _GLIBCXX_USE_CONSTEXPR 
int radix = __FLT_RADIX__;
 
 1729       static _GLIBCXX_CONSTEXPR 
long double  
 1730       epsilon() _GLIBCXX_USE_NOEXCEPT { 
return __LDBL_EPSILON__; }
 
 1732       static _GLIBCXX_CONSTEXPR 
long double  
 1733       round_error() _GLIBCXX_USE_NOEXCEPT { 
return 0.5L; }
 
 1735       static _GLIBCXX_USE_CONSTEXPR 
int min_exponent = __LDBL_MIN_EXP__;
 
 1736       static _GLIBCXX_USE_CONSTEXPR 
int min_exponent10 = __LDBL_MIN_10_EXP__;
 
 1737       static _GLIBCXX_USE_CONSTEXPR 
int max_exponent = __LDBL_MAX_EXP__;
 
 1738       static _GLIBCXX_USE_CONSTEXPR 
int max_exponent10 = __LDBL_MAX_10_EXP__;
 
 1740       static _GLIBCXX_USE_CONSTEXPR 
bool has_infinity = __LDBL_HAS_INFINITY__;
 
 1741       static _GLIBCXX_USE_CONSTEXPR 
bool has_quiet_NaN = __LDBL_HAS_QUIET_NAN__;
 
 1746     = __glibcxx_long_double_has_denorm_loss;
 
 1748       static _GLIBCXX_CONSTEXPR 
long double  
 1749       infinity() _GLIBCXX_USE_NOEXCEPT { 
return __builtin_huge_vall(); }
 
 1751       static _GLIBCXX_CONSTEXPR 
long double  
 1752       quiet_NaN() _GLIBCXX_USE_NOEXCEPT { 
return __builtin_nanl(
""); }
 
 1754       static _GLIBCXX_CONSTEXPR 
long double  
 1755       signaling_NaN() _GLIBCXX_USE_NOEXCEPT { 
return __builtin_nansl(
""); }
 
 1757       static _GLIBCXX_CONSTEXPR 
long double  
 1758       denorm_min() _GLIBCXX_USE_NOEXCEPT { 
return __LDBL_DENORM_MIN__; }
 
 1760       static _GLIBCXX_USE_CONSTEXPR 
bool is_iec559 
 1762       static _GLIBCXX_USE_CONSTEXPR 
bool is_bounded = 
true;
 
 1763       static _GLIBCXX_USE_CONSTEXPR 
bool is_modulo = 
false;
 
 1765       static _GLIBCXX_USE_CONSTEXPR 
bool traps = __glibcxx_long_double_traps;
 
 1767                      __glibcxx_long_double_tinyness_before;
 
 1772 #undef __glibcxx_long_double_has_denorm_loss 
 1773 #undef __glibcxx_long_double_traps 
 1774 #undef __glibcxx_long_double_tinyness_before 
 1776 _GLIBCXX_END_NAMESPACE_VERSION
 
 1779 #undef __glibcxx_signed 
 1780 #undef __glibcxx_min 
 1781 #undef __glibcxx_max 
 1782 #undef __glibcxx_digits 
 1783 #undef __glibcxx_digits10 
 1784 #undef __glibcxx_max_digits10 
 1786 #endif // _GLIBCXX_NUMERIC_LIMITS 
static constexpr int max_exponent
 
static constexpr bool is_iec559
 
To the nearest representable value. 
 
static constexpr int digits
 
static constexpr int max_exponent10
 
static constexpr int max_digits10
 
static constexpr bool tinyness_before
 
static constexpr float_round_style round_style
 
Properties of fundamental types. 
 
static constexpr _Tp signaling_NaN() noexcept
 
static constexpr bool is_signed
 
float_round_style
Describes the rounding style for floating-point types. 
 
static constexpr bool has_denorm_loss
 
static constexpr _Tp max() noexcept
 
float_denorm_style
Describes the denormalization for floating-point types. 
 
static constexpr _Tp round_error() noexcept
 
static constexpr bool is_specialized
 
static constexpr int min_exponent
 
static constexpr _Tp quiet_NaN() noexcept
 
static constexpr int digits10
 
static constexpr bool has_infinity
 
static constexpr _Tp denorm_min() noexcept
 
static constexpr bool has_signaling_NaN
 
static constexpr _Tp lowest() noexcept
 
static constexpr int radix
 
static constexpr _Tp infinity() noexcept
 
static constexpr bool is_bounded
 
static constexpr int min_exponent10
 
Indeterminate at compile time whether denormalized values are allowed. 
 
static constexpr bool is_modulo
 
The type allows denormalized values. 
 
Part of std::numeric_limits. 
 
static constexpr bool is_integer
 
static constexpr _Tp epsilon() noexcept
 
static constexpr float_denorm_style has_denorm
 
static constexpr bool is_exact
 
The type does not allow denormalized values. 
 
static constexpr bool traps
 
static constexpr _Tp min() noexcept
 
static constexpr bool has_quiet_NaN