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_b(T,B) ((T)(-1) < 0) 130 #define __glibcxx_min_b(T,B) \ 131 (__glibcxx_signed_b (T,B) ? -__glibcxx_max_b (T,B) - 1 : (T)0) 133 #define __glibcxx_max_b(T,B) \ 134 (__glibcxx_signed_b (T,B) ? \ 135 (((((T)1 << (__glibcxx_digits_b (T,B) - 1)) - 1) << 1) + 1) : ~(T)0) 137 #define __glibcxx_digits_b(T,B) \ 138 (B - __glibcxx_signed_b (T,B)) 141 #define __glibcxx_digits10_b(T,B) \ 142 (__glibcxx_digits_b (T,B) * 643L / 2136) 144 #define __glibcxx_signed(T) \ 145 __glibcxx_signed_b (T, sizeof(T) * __CHAR_BIT__) 146 #define __glibcxx_min(T) \ 147 __glibcxx_min_b (T, sizeof(T) * __CHAR_BIT__) 148 #define __glibcxx_max(T) \ 149 __glibcxx_max_b (T, sizeof(T) * __CHAR_BIT__) 150 #define __glibcxx_digits(T) \ 151 __glibcxx_digits_b (T, sizeof(T) * __CHAR_BIT__) 152 #define __glibcxx_digits10(T) \ 153 __glibcxx_digits10_b (T, sizeof(T) * __CHAR_BIT__) 155 #define __glibcxx_max_digits10(T) \ 156 (2 + (T) * 643L / 2136) 158 namespace std _GLIBCXX_VISIBILITY(default)
160 _GLIBCXX_BEGIN_NAMESPACE_VERSION
169 round_indeterminate = -1,
211 static _GLIBCXX_USE_CONSTEXPR
int digits = 0;
216 #if __cplusplus >= 201103L 231 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
false;
235 static _GLIBCXX_USE_CONSTEXPR
int radix = 0;
291 static _GLIBCXX_USE_CONSTEXPR
bool traps =
false;
311 template<
typename _Tp>
316 static _GLIBCXX_CONSTEXPR _Tp
317 min() _GLIBCXX_USE_NOEXCEPT {
return _Tp(); }
320 static _GLIBCXX_CONSTEXPR _Tp
321 max() _GLIBCXX_USE_NOEXCEPT {
return _Tp(); }
323 #if __cplusplus >= 201103L 332 static _GLIBCXX_CONSTEXPR _Tp
333 epsilon() _GLIBCXX_USE_NOEXCEPT {
return _Tp(); }
336 static _GLIBCXX_CONSTEXPR _Tp
340 static _GLIBCXX_CONSTEXPR _Tp
345 static _GLIBCXX_CONSTEXPR _Tp
350 static _GLIBCXX_CONSTEXPR _Tp
356 static _GLIBCXX_CONSTEXPR _Tp
363 template<
typename _Tp>
367 template<
typename _Tp>
371 template<
typename _Tp>
388 static _GLIBCXX_CONSTEXPR
bool 389 min() _GLIBCXX_USE_NOEXCEPT {
return false; }
391 static _GLIBCXX_CONSTEXPR
bool 392 max() _GLIBCXX_USE_NOEXCEPT {
return true; }
394 #if __cplusplus >= 201103L 395 static constexpr
bool 396 lowest() noexcept {
return min(); }
398 static _GLIBCXX_USE_CONSTEXPR
int digits = 1;
399 static _GLIBCXX_USE_CONSTEXPR
int digits10 = 0;
400 #if __cplusplus >= 201103L 403 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
false;
404 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
405 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
406 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
408 static _GLIBCXX_CONSTEXPR
bool 409 epsilon() _GLIBCXX_USE_NOEXCEPT {
return false; }
411 static _GLIBCXX_CONSTEXPR
bool 412 round_error() _GLIBCXX_USE_NOEXCEPT {
return false; }
419 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
426 static _GLIBCXX_CONSTEXPR
bool 427 infinity() _GLIBCXX_USE_NOEXCEPT {
return false; }
429 static _GLIBCXX_CONSTEXPR
bool 430 quiet_NaN() _GLIBCXX_USE_NOEXCEPT {
return false; }
432 static _GLIBCXX_CONSTEXPR
bool 433 signaling_NaN() _GLIBCXX_USE_NOEXCEPT {
return false; }
435 static _GLIBCXX_CONSTEXPR
bool 436 denorm_min() _GLIBCXX_USE_NOEXCEPT {
return false; }
438 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
439 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
440 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
false;
445 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
457 static _GLIBCXX_CONSTEXPR
char 458 min() _GLIBCXX_USE_NOEXCEPT {
return __glibcxx_min(
char); }
460 static _GLIBCXX_CONSTEXPR
char 461 max() _GLIBCXX_USE_NOEXCEPT {
return __glibcxx_max(
char); }
463 #if __cplusplus >= 201103L 464 static constexpr
char 465 lowest() noexcept {
return min(); }
468 static _GLIBCXX_USE_CONSTEXPR
int digits = __glibcxx_digits (
char);
469 static _GLIBCXX_USE_CONSTEXPR
int digits10 = __glibcxx_digits10 (
char);
470 #if __cplusplus >= 201103L 473 static _GLIBCXX_USE_CONSTEXPR
bool is_signed = __glibcxx_signed (
char);
474 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
475 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
476 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
478 static _GLIBCXX_CONSTEXPR
char 479 epsilon() _GLIBCXX_USE_NOEXCEPT {
return 0; }
481 static _GLIBCXX_CONSTEXPR
char 482 round_error() _GLIBCXX_USE_NOEXCEPT {
return 0; }
489 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
496 static _GLIBCXX_CONSTEXPR
497 char infinity() _GLIBCXX_USE_NOEXCEPT {
return char(); }
499 static _GLIBCXX_CONSTEXPR
char 500 quiet_NaN() _GLIBCXX_USE_NOEXCEPT {
return char(); }
502 static _GLIBCXX_CONSTEXPR
char 503 signaling_NaN() _GLIBCXX_USE_NOEXCEPT {
return char(); }
505 static _GLIBCXX_CONSTEXPR
char 506 denorm_min() _GLIBCXX_USE_NOEXCEPT {
return static_cast<char>(0); }
508 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
509 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
512 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
524 static _GLIBCXX_CONSTEXPR
signed char 525 min() _GLIBCXX_USE_NOEXCEPT {
return -__SCHAR_MAX__ - 1; }
527 static _GLIBCXX_CONSTEXPR
signed char 528 max() _GLIBCXX_USE_NOEXCEPT {
return __SCHAR_MAX__; }
530 #if __cplusplus >= 201103L 531 static constexpr
signed char 532 lowest() noexcept {
return min(); }
535 static _GLIBCXX_USE_CONSTEXPR
int digits = __glibcxx_digits (
signed char);
536 static _GLIBCXX_USE_CONSTEXPR
int digits10 537 = __glibcxx_digits10 (
signed char);
538 #if __cplusplus >= 201103L 541 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
true;
542 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
543 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
544 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
546 static _GLIBCXX_CONSTEXPR
signed char 547 epsilon() _GLIBCXX_USE_NOEXCEPT {
return 0; }
549 static _GLIBCXX_CONSTEXPR
signed char 550 round_error() _GLIBCXX_USE_NOEXCEPT {
return 0; }
557 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
564 static _GLIBCXX_CONSTEXPR
signed char 565 infinity() _GLIBCXX_USE_NOEXCEPT {
return static_cast<signed char>(0); }
567 static _GLIBCXX_CONSTEXPR
signed char 568 quiet_NaN() _GLIBCXX_USE_NOEXCEPT {
return static_cast<signed char>(0); }
570 static _GLIBCXX_CONSTEXPR
signed char 571 signaling_NaN() _GLIBCXX_USE_NOEXCEPT
572 {
return static_cast<signed char>(0); }
574 static _GLIBCXX_CONSTEXPR
signed char 575 denorm_min() _GLIBCXX_USE_NOEXCEPT
576 {
return static_cast<signed char>(0); }
578 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
579 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
580 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
false;
582 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
594 static _GLIBCXX_CONSTEXPR
unsigned char 595 min() _GLIBCXX_USE_NOEXCEPT {
return 0; }
597 static _GLIBCXX_CONSTEXPR
unsigned char 598 max() _GLIBCXX_USE_NOEXCEPT {
return __SCHAR_MAX__ * 2U + 1; }
600 #if __cplusplus >= 201103L 601 static constexpr
unsigned char 602 lowest() noexcept {
return min(); }
605 static _GLIBCXX_USE_CONSTEXPR
int digits 606 = __glibcxx_digits (
unsigned char);
607 static _GLIBCXX_USE_CONSTEXPR
int digits10 608 = __glibcxx_digits10 (
unsigned char);
609 #if __cplusplus >= 201103L 612 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
false;
613 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
614 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
615 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
617 static _GLIBCXX_CONSTEXPR
unsigned char 618 epsilon() _GLIBCXX_USE_NOEXCEPT {
return 0; }
620 static _GLIBCXX_CONSTEXPR
unsigned char 621 round_error() _GLIBCXX_USE_NOEXCEPT {
return 0; }
628 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
635 static _GLIBCXX_CONSTEXPR
unsigned char 636 infinity() _GLIBCXX_USE_NOEXCEPT
637 {
return static_cast<unsigned char>(0); }
639 static _GLIBCXX_CONSTEXPR
unsigned char 640 quiet_NaN() _GLIBCXX_USE_NOEXCEPT
641 {
return static_cast<unsigned char>(0); }
643 static _GLIBCXX_CONSTEXPR
unsigned char 644 signaling_NaN() _GLIBCXX_USE_NOEXCEPT
645 {
return static_cast<unsigned char>(0); }
647 static _GLIBCXX_CONSTEXPR
unsigned char 648 denorm_min() _GLIBCXX_USE_NOEXCEPT
649 {
return static_cast<unsigned char>(0); }
651 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
652 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
653 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
true;
655 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
667 static _GLIBCXX_CONSTEXPR
wchar_t 668 min() _GLIBCXX_USE_NOEXCEPT {
return __glibcxx_min (
wchar_t); }
670 static _GLIBCXX_CONSTEXPR
wchar_t 671 max() _GLIBCXX_USE_NOEXCEPT {
return __glibcxx_max (
wchar_t); }
673 #if __cplusplus >= 201103L 674 static constexpr
wchar_t 675 lowest() noexcept {
return min(); }
678 static _GLIBCXX_USE_CONSTEXPR
int digits = __glibcxx_digits (
wchar_t);
679 static _GLIBCXX_USE_CONSTEXPR
int digits10 680 = __glibcxx_digits10 (
wchar_t);
681 #if __cplusplus >= 201103L 684 static _GLIBCXX_USE_CONSTEXPR
bool is_signed = __glibcxx_signed (
wchar_t);
685 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
686 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
687 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
689 static _GLIBCXX_CONSTEXPR
wchar_t 690 epsilon() _GLIBCXX_USE_NOEXCEPT {
return 0; }
692 static _GLIBCXX_CONSTEXPR
wchar_t 693 round_error() _GLIBCXX_USE_NOEXCEPT {
return 0; }
700 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
707 static _GLIBCXX_CONSTEXPR
wchar_t 708 infinity() _GLIBCXX_USE_NOEXCEPT {
return wchar_t(); }
710 static _GLIBCXX_CONSTEXPR
wchar_t 711 quiet_NaN() _GLIBCXX_USE_NOEXCEPT {
return wchar_t(); }
713 static _GLIBCXX_CONSTEXPR
wchar_t 714 signaling_NaN() _GLIBCXX_USE_NOEXCEPT {
return wchar_t(); }
716 static _GLIBCXX_CONSTEXPR
wchar_t 717 denorm_min() _GLIBCXX_USE_NOEXCEPT {
return wchar_t(); }
719 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
720 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
723 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
729 #if _GLIBCXX_USE_CHAR8_T 736 static _GLIBCXX_CONSTEXPR char8_t
737 min() _GLIBCXX_USE_NOEXCEPT {
return __glibcxx_min (char8_t); }
739 static _GLIBCXX_CONSTEXPR char8_t
740 max() _GLIBCXX_USE_NOEXCEPT {
return __glibcxx_max (char8_t); }
742 static _GLIBCXX_CONSTEXPR char8_t
743 lowest() _GLIBCXX_USE_NOEXCEPT {
return min(); }
745 static _GLIBCXX_USE_CONSTEXPR
int digits = __glibcxx_digits (char8_t);
746 static _GLIBCXX_USE_CONSTEXPR
int digits10 = __glibcxx_digits10 (char8_t);
748 static _GLIBCXX_USE_CONSTEXPR
bool is_signed = __glibcxx_signed (char8_t);
749 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
750 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
751 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
753 static _GLIBCXX_CONSTEXPR char8_t
754 epsilon() _GLIBCXX_USE_NOEXCEPT {
return 0; }
756 static _GLIBCXX_CONSTEXPR char8_t
757 round_error() _GLIBCXX_USE_NOEXCEPT {
return 0; }
764 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
771 static _GLIBCXX_CONSTEXPR char8_t
772 infinity() _GLIBCXX_USE_NOEXCEPT {
return char8_t(); }
774 static _GLIBCXX_CONSTEXPR char8_t
775 quiet_NaN() _GLIBCXX_USE_NOEXCEPT {
return char8_t(); }
777 static _GLIBCXX_CONSTEXPR char8_t
778 signaling_NaN() _GLIBCXX_USE_NOEXCEPT {
return char8_t(); }
780 static _GLIBCXX_CONSTEXPR char8_t
781 denorm_min() _GLIBCXX_USE_NOEXCEPT {
return char8_t(); }
783 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
784 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
787 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
794 #if __cplusplus >= 201103L 801 static constexpr char16_t
802 min() noexcept {
return __glibcxx_min (char16_t); }
804 static constexpr char16_t
805 max() noexcept {
return __glibcxx_max (char16_t); }
807 static constexpr char16_t
808 lowest() noexcept {
return min(); }
810 static constexpr
int digits = __glibcxx_digits (char16_t);
811 static constexpr
int digits10 = __glibcxx_digits10 (char16_t);
813 static constexpr
bool is_signed = __glibcxx_signed (char16_t);
815 static constexpr
bool is_exact =
true;
816 static constexpr
int radix = 2;
818 static constexpr char16_t
819 epsilon() noexcept {
return 0; }
821 static constexpr char16_t
822 round_error() noexcept {
return 0; }
835 static constexpr char16_t
836 infinity() noexcept {
return char16_t(); }
838 static constexpr char16_t
839 quiet_NaN() noexcept {
return char16_t(); }
841 static constexpr char16_t
842 signaling_NaN() noexcept {
return char16_t(); }
844 static constexpr char16_t
845 denorm_min() noexcept {
return char16_t(); }
851 static constexpr
bool traps = __glibcxx_integral_traps;
862 static constexpr char32_t
863 min() noexcept {
return __glibcxx_min (char32_t); }
865 static constexpr char32_t
866 max() noexcept {
return __glibcxx_max (char32_t); }
868 static constexpr char32_t
869 lowest() noexcept {
return min(); }
871 static constexpr
int digits = __glibcxx_digits (char32_t);
872 static constexpr
int digits10 = __glibcxx_digits10 (char32_t);
874 static constexpr
bool is_signed = __glibcxx_signed (char32_t);
876 static constexpr
bool is_exact =
true;
877 static constexpr
int radix = 2;
879 static constexpr char32_t
880 epsilon() noexcept {
return 0; }
882 static constexpr char32_t
883 round_error() noexcept {
return 0; }
896 static constexpr char32_t
897 infinity() noexcept {
return char32_t(); }
899 static constexpr char32_t
900 quiet_NaN() noexcept {
return char32_t(); }
902 static constexpr char32_t
903 signaling_NaN() noexcept {
return char32_t(); }
905 static constexpr char32_t
906 denorm_min() noexcept {
return char32_t(); }
912 static constexpr
bool traps = __glibcxx_integral_traps;
924 static _GLIBCXX_CONSTEXPR
short 925 min() _GLIBCXX_USE_NOEXCEPT {
return -__SHRT_MAX__ - 1; }
927 static _GLIBCXX_CONSTEXPR
short 928 max() _GLIBCXX_USE_NOEXCEPT {
return __SHRT_MAX__; }
930 #if __cplusplus >= 201103L 931 static constexpr
short 932 lowest() noexcept {
return min(); }
935 static _GLIBCXX_USE_CONSTEXPR
int digits = __glibcxx_digits (
short);
936 static _GLIBCXX_USE_CONSTEXPR
int digits10 = __glibcxx_digits10 (
short);
937 #if __cplusplus >= 201103L 940 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
true;
941 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
942 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
943 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
945 static _GLIBCXX_CONSTEXPR
short 946 epsilon() _GLIBCXX_USE_NOEXCEPT {
return 0; }
948 static _GLIBCXX_CONSTEXPR
short 949 round_error() _GLIBCXX_USE_NOEXCEPT {
return 0; }
956 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
963 static _GLIBCXX_CONSTEXPR
short 964 infinity() _GLIBCXX_USE_NOEXCEPT {
return short(); }
966 static _GLIBCXX_CONSTEXPR
short 967 quiet_NaN() _GLIBCXX_USE_NOEXCEPT {
return short(); }
969 static _GLIBCXX_CONSTEXPR
short 970 signaling_NaN() _GLIBCXX_USE_NOEXCEPT {
return short(); }
972 static _GLIBCXX_CONSTEXPR
short 973 denorm_min() _GLIBCXX_USE_NOEXCEPT {
return short(); }
975 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
976 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
977 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
false;
979 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
991 static _GLIBCXX_CONSTEXPR
unsigned short 992 min() _GLIBCXX_USE_NOEXCEPT {
return 0; }
994 static _GLIBCXX_CONSTEXPR
unsigned short 995 max() _GLIBCXX_USE_NOEXCEPT {
return __SHRT_MAX__ * 2U + 1; }
997 #if __cplusplus >= 201103L 998 static constexpr
unsigned short 999 lowest() noexcept {
return min(); }
1002 static _GLIBCXX_USE_CONSTEXPR
int digits 1003 = __glibcxx_digits (
unsigned short);
1004 static _GLIBCXX_USE_CONSTEXPR
int digits10 1005 = __glibcxx_digits10 (
unsigned short);
1006 #if __cplusplus >= 201103L 1009 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
false;
1010 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
1011 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
1012 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
1014 static _GLIBCXX_CONSTEXPR
unsigned short 1015 epsilon() _GLIBCXX_USE_NOEXCEPT {
return 0; }
1017 static _GLIBCXX_CONSTEXPR
unsigned short 1018 round_error() _GLIBCXX_USE_NOEXCEPT {
return 0; }
1025 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
1032 static _GLIBCXX_CONSTEXPR
unsigned short 1033 infinity() _GLIBCXX_USE_NOEXCEPT
1034 {
return static_cast<unsigned short>(0); }
1036 static _GLIBCXX_CONSTEXPR
unsigned short 1037 quiet_NaN() _GLIBCXX_USE_NOEXCEPT
1038 {
return static_cast<unsigned short>(0); }
1040 static _GLIBCXX_CONSTEXPR
unsigned short 1041 signaling_NaN() _GLIBCXX_USE_NOEXCEPT
1042 {
return static_cast<unsigned short>(0); }
1044 static _GLIBCXX_CONSTEXPR
unsigned short 1045 denorm_min() _GLIBCXX_USE_NOEXCEPT
1046 {
return static_cast<unsigned short>(0); }
1048 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
1049 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
1050 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
true;
1052 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
1064 static _GLIBCXX_CONSTEXPR
int 1065 min() _GLIBCXX_USE_NOEXCEPT {
return -__INT_MAX__ - 1; }
1067 static _GLIBCXX_CONSTEXPR
int 1068 max() _GLIBCXX_USE_NOEXCEPT {
return __INT_MAX__; }
1070 #if __cplusplus >= 201103L 1071 static constexpr
int 1072 lowest() noexcept {
return min(); }
1075 static _GLIBCXX_USE_CONSTEXPR
int digits = __glibcxx_digits (
int);
1076 static _GLIBCXX_USE_CONSTEXPR
int digits10 = __glibcxx_digits10 (
int);
1077 #if __cplusplus >= 201103L 1080 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
true;
1081 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
1082 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
1083 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
1085 static _GLIBCXX_CONSTEXPR
int 1086 epsilon() _GLIBCXX_USE_NOEXCEPT {
return 0; }
1088 static _GLIBCXX_CONSTEXPR
int 1089 round_error() _GLIBCXX_USE_NOEXCEPT {
return 0; }
1096 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
1103 static _GLIBCXX_CONSTEXPR
int 1104 infinity() _GLIBCXX_USE_NOEXCEPT {
return static_cast<int>(0); }
1106 static _GLIBCXX_CONSTEXPR
int 1107 quiet_NaN() _GLIBCXX_USE_NOEXCEPT {
return static_cast<int>(0); }
1109 static _GLIBCXX_CONSTEXPR
int 1110 signaling_NaN() _GLIBCXX_USE_NOEXCEPT {
return static_cast<int>(0); }
1112 static _GLIBCXX_CONSTEXPR
int 1113 denorm_min() _GLIBCXX_USE_NOEXCEPT {
return static_cast<int>(0); }
1115 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
1116 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
1117 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
false;
1119 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
1131 static _GLIBCXX_CONSTEXPR
unsigned int 1132 min() _GLIBCXX_USE_NOEXCEPT {
return 0; }
1134 static _GLIBCXX_CONSTEXPR
unsigned int 1135 max() _GLIBCXX_USE_NOEXCEPT {
return __INT_MAX__ * 2U + 1; }
1137 #if __cplusplus >= 201103L 1138 static constexpr
unsigned int 1139 lowest() noexcept {
return min(); }
1142 static _GLIBCXX_USE_CONSTEXPR
int digits 1143 = __glibcxx_digits (
unsigned int);
1144 static _GLIBCXX_USE_CONSTEXPR
int digits10 1145 = __glibcxx_digits10 (
unsigned int);
1146 #if __cplusplus >= 201103L 1149 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
false;
1150 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
1151 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
1152 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
1154 static _GLIBCXX_CONSTEXPR
unsigned int 1155 epsilon() _GLIBCXX_USE_NOEXCEPT {
return 0; }
1157 static _GLIBCXX_CONSTEXPR
unsigned int 1158 round_error() _GLIBCXX_USE_NOEXCEPT {
return 0; }
1165 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
1172 static _GLIBCXX_CONSTEXPR
unsigned int 1173 infinity() _GLIBCXX_USE_NOEXCEPT {
return static_cast<unsigned int>(0); }
1175 static _GLIBCXX_CONSTEXPR
unsigned int 1176 quiet_NaN() _GLIBCXX_USE_NOEXCEPT
1177 {
return static_cast<unsigned int>(0); }
1179 static _GLIBCXX_CONSTEXPR
unsigned int 1180 signaling_NaN() _GLIBCXX_USE_NOEXCEPT
1181 {
return static_cast<unsigned int>(0); }
1183 static _GLIBCXX_CONSTEXPR
unsigned int 1184 denorm_min() _GLIBCXX_USE_NOEXCEPT
1185 {
return static_cast<unsigned int>(0); }
1187 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
1188 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
1189 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
true;
1191 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
1203 static _GLIBCXX_CONSTEXPR
long 1204 min() _GLIBCXX_USE_NOEXCEPT {
return -__LONG_MAX__ - 1; }
1206 static _GLIBCXX_CONSTEXPR
long 1207 max() _GLIBCXX_USE_NOEXCEPT {
return __LONG_MAX__; }
1209 #if __cplusplus >= 201103L 1210 static constexpr
long 1211 lowest() noexcept {
return min(); }
1214 static _GLIBCXX_USE_CONSTEXPR
int digits = __glibcxx_digits (
long);
1215 static _GLIBCXX_USE_CONSTEXPR
int digits10 = __glibcxx_digits10 (
long);
1216 #if __cplusplus >= 201103L 1219 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
true;
1220 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
1221 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
1222 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
1224 static _GLIBCXX_CONSTEXPR
long 1225 epsilon() _GLIBCXX_USE_NOEXCEPT {
return 0; }
1227 static _GLIBCXX_CONSTEXPR
long 1228 round_error() _GLIBCXX_USE_NOEXCEPT {
return 0; }
1235 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
1242 static _GLIBCXX_CONSTEXPR
long 1243 infinity() _GLIBCXX_USE_NOEXCEPT {
return static_cast<long>(0); }
1245 static _GLIBCXX_CONSTEXPR
long 1246 quiet_NaN() _GLIBCXX_USE_NOEXCEPT {
return static_cast<long>(0); }
1248 static _GLIBCXX_CONSTEXPR
long 1249 signaling_NaN() _GLIBCXX_USE_NOEXCEPT {
return static_cast<long>(0); }
1251 static _GLIBCXX_CONSTEXPR
long 1252 denorm_min() _GLIBCXX_USE_NOEXCEPT {
return static_cast<long>(0); }
1254 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
1255 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
1256 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
false;
1258 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
1270 static _GLIBCXX_CONSTEXPR
unsigned long 1271 min() _GLIBCXX_USE_NOEXCEPT {
return 0; }
1273 static _GLIBCXX_CONSTEXPR
unsigned long 1274 max() _GLIBCXX_USE_NOEXCEPT {
return __LONG_MAX__ * 2UL + 1; }
1276 #if __cplusplus >= 201103L 1277 static constexpr
unsigned long 1278 lowest() noexcept {
return min(); }
1281 static _GLIBCXX_USE_CONSTEXPR
int digits 1282 = __glibcxx_digits (
unsigned long);
1283 static _GLIBCXX_USE_CONSTEXPR
int digits10 1284 = __glibcxx_digits10 (
unsigned long);
1285 #if __cplusplus >= 201103L 1288 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
false;
1289 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
1290 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
1291 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
1293 static _GLIBCXX_CONSTEXPR
unsigned long 1294 epsilon() _GLIBCXX_USE_NOEXCEPT {
return 0; }
1296 static _GLIBCXX_CONSTEXPR
unsigned long 1297 round_error() _GLIBCXX_USE_NOEXCEPT {
return 0; }
1304 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
1311 static _GLIBCXX_CONSTEXPR
unsigned long 1312 infinity() _GLIBCXX_USE_NOEXCEPT
1313 {
return static_cast<unsigned long>(0); }
1315 static _GLIBCXX_CONSTEXPR
unsigned long 1316 quiet_NaN() _GLIBCXX_USE_NOEXCEPT
1317 {
return static_cast<unsigned long>(0); }
1319 static _GLIBCXX_CONSTEXPR
unsigned long 1320 signaling_NaN() _GLIBCXX_USE_NOEXCEPT
1321 {
return static_cast<unsigned long>(0); }
1323 static _GLIBCXX_CONSTEXPR
unsigned long 1324 denorm_min() _GLIBCXX_USE_NOEXCEPT
1325 {
return static_cast<unsigned long>(0); }
1327 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
1328 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
1329 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
true;
1331 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
1343 static _GLIBCXX_CONSTEXPR
long long 1344 min() _GLIBCXX_USE_NOEXCEPT {
return -__LONG_LONG_MAX__ - 1; }
1346 static _GLIBCXX_CONSTEXPR
long long 1347 max() _GLIBCXX_USE_NOEXCEPT {
return __LONG_LONG_MAX__; }
1349 #if __cplusplus >= 201103L 1350 static constexpr
long long 1351 lowest() noexcept {
return min(); }
1354 static _GLIBCXX_USE_CONSTEXPR
int digits 1355 = __glibcxx_digits (
long long);
1356 static _GLIBCXX_USE_CONSTEXPR
int digits10 1357 = __glibcxx_digits10 (
long long);
1358 #if __cplusplus >= 201103L 1361 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
true;
1362 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
1363 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
1364 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
1366 static _GLIBCXX_CONSTEXPR
long long 1367 epsilon() _GLIBCXX_USE_NOEXCEPT {
return 0; }
1369 static _GLIBCXX_CONSTEXPR
long long 1370 round_error() _GLIBCXX_USE_NOEXCEPT {
return 0; }
1377 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
1384 static _GLIBCXX_CONSTEXPR
long long 1385 infinity() _GLIBCXX_USE_NOEXCEPT {
return static_cast<long long>(0); }
1387 static _GLIBCXX_CONSTEXPR
long long 1388 quiet_NaN() _GLIBCXX_USE_NOEXCEPT {
return static_cast<long long>(0); }
1390 static _GLIBCXX_CONSTEXPR
long long 1391 signaling_NaN() _GLIBCXX_USE_NOEXCEPT
1392 {
return static_cast<long long>(0); }
1394 static _GLIBCXX_CONSTEXPR
long long 1395 denorm_min() _GLIBCXX_USE_NOEXCEPT {
return static_cast<long long>(0); }
1397 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
1398 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
1399 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
false;
1401 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
1413 static _GLIBCXX_CONSTEXPR
unsigned long long 1414 min() _GLIBCXX_USE_NOEXCEPT {
return 0; }
1416 static _GLIBCXX_CONSTEXPR
unsigned long long 1417 max() _GLIBCXX_USE_NOEXCEPT {
return __LONG_LONG_MAX__ * 2ULL + 1; }
1419 #if __cplusplus >= 201103L 1420 static constexpr
unsigned long long 1421 lowest() noexcept {
return min(); }
1424 static _GLIBCXX_USE_CONSTEXPR
int digits 1425 = __glibcxx_digits (
unsigned long long);
1426 static _GLIBCXX_USE_CONSTEXPR
int digits10 1427 = __glibcxx_digits10 (
unsigned long long);
1428 #if __cplusplus >= 201103L 1431 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
false;
1432 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
1433 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
1434 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
1436 static _GLIBCXX_CONSTEXPR
unsigned long long 1437 epsilon() _GLIBCXX_USE_NOEXCEPT {
return 0; }
1439 static _GLIBCXX_CONSTEXPR
unsigned long long 1440 round_error() _GLIBCXX_USE_NOEXCEPT {
return 0; }
1447 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
1454 static _GLIBCXX_CONSTEXPR
unsigned long long 1455 infinity() _GLIBCXX_USE_NOEXCEPT
1456 {
return static_cast<unsigned long long>(0); }
1458 static _GLIBCXX_CONSTEXPR
unsigned long long 1459 quiet_NaN() _GLIBCXX_USE_NOEXCEPT
1460 {
return static_cast<unsigned long long>(0); }
1462 static _GLIBCXX_CONSTEXPR
unsigned long long 1463 signaling_NaN() _GLIBCXX_USE_NOEXCEPT
1464 {
return static_cast<unsigned long long>(0); }
1466 static _GLIBCXX_CONSTEXPR
unsigned long long 1467 denorm_min() _GLIBCXX_USE_NOEXCEPT
1468 {
return static_cast<unsigned long long>(0); }
1470 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
1471 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
1472 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
true;
1474 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
1480 #define __INT_N(TYPE, BITSIZE, EXT, UEXT) \ 1482 struct numeric_limits<TYPE> \ 1484 static _GLIBCXX_USE_CONSTEXPR bool is_specialized = true; \ 1486 static _GLIBCXX_CONSTEXPR TYPE \ 1487 min() _GLIBCXX_USE_NOEXCEPT { return __glibcxx_min_b (TYPE, BITSIZE); } \ 1489 static _GLIBCXX_CONSTEXPR TYPE \ 1490 max() _GLIBCXX_USE_NOEXCEPT { return __glibcxx_max_b (TYPE, BITSIZE); } \ 1492 static _GLIBCXX_USE_CONSTEXPR int digits \ 1494 static _GLIBCXX_USE_CONSTEXPR int digits10 \ 1495 = (BITSIZE - 1) * 643L / 2136; \ 1497 static _GLIBCXX_USE_CONSTEXPR bool is_signed = true; \ 1498 static _GLIBCXX_USE_CONSTEXPR bool is_integer = true; \ 1499 static _GLIBCXX_USE_CONSTEXPR bool is_exact = true; \ 1500 static _GLIBCXX_USE_CONSTEXPR int radix = 2; \ 1502 static _GLIBCXX_CONSTEXPR TYPE \ 1503 epsilon() _GLIBCXX_USE_NOEXCEPT { return 0; } \ 1505 static _GLIBCXX_CONSTEXPR TYPE \ 1506 round_error() _GLIBCXX_USE_NOEXCEPT { return 0; } \ 1510 static _GLIBCXX_USE_CONSTEXPR int min_exponent = 0; \ 1511 static _GLIBCXX_USE_CONSTEXPR int min_exponent10 = 0; \ 1512 static _GLIBCXX_USE_CONSTEXPR int max_exponent = 0; \ 1513 static _GLIBCXX_USE_CONSTEXPR int max_exponent10 = 0; \ 1515 static _GLIBCXX_USE_CONSTEXPR bool has_infinity = false; \ 1516 static _GLIBCXX_USE_CONSTEXPR bool has_quiet_NaN = false; \ 1517 static _GLIBCXX_USE_CONSTEXPR bool has_signaling_NaN = false; \ 1518 static _GLIBCXX_USE_CONSTEXPR float_denorm_style has_denorm \ 1520 static _GLIBCXX_USE_CONSTEXPR bool has_denorm_loss = false; \ 1522 static _GLIBCXX_CONSTEXPR TYPE \ 1523 infinity() _GLIBCXX_USE_NOEXCEPT \ 1524 { return static_cast<TYPE>(0); } \ 1526 static _GLIBCXX_CONSTEXPR TYPE \ 1527 quiet_NaN() _GLIBCXX_USE_NOEXCEPT \ 1528 { return static_cast<TYPE>(0); } \ 1530 static _GLIBCXX_CONSTEXPR TYPE \ 1531 signaling_NaN() _GLIBCXX_USE_NOEXCEPT \ 1532 { return static_cast<TYPE>(0); } \ 1534 static _GLIBCXX_CONSTEXPR TYPE \ 1535 denorm_min() _GLIBCXX_USE_NOEXCEPT \ 1536 { return static_cast<TYPE>(0); } \ 1538 static _GLIBCXX_USE_CONSTEXPR bool is_iec559 = false; \ 1539 static _GLIBCXX_USE_CONSTEXPR bool is_bounded = true; \ 1540 static _GLIBCXX_USE_CONSTEXPR bool is_modulo = false; \ 1542 static _GLIBCXX_USE_CONSTEXPR bool traps \ 1543 = __glibcxx_integral_traps; \ 1544 static _GLIBCXX_USE_CONSTEXPR bool tinyness_before = false; \ 1545 static _GLIBCXX_USE_CONSTEXPR float_round_style round_style \ 1546 = round_toward_zero; \ 1550 struct numeric_limits<unsigned TYPE> \ 1552 static _GLIBCXX_USE_CONSTEXPR bool is_specialized = true; \ 1554 static _GLIBCXX_CONSTEXPR unsigned TYPE \ 1555 min() _GLIBCXX_USE_NOEXCEPT { return 0; } \ 1557 static _GLIBCXX_CONSTEXPR unsigned TYPE \ 1558 max() _GLIBCXX_USE_NOEXCEPT \ 1559 { return __glibcxx_max_b (unsigned TYPE, BITSIZE); } \ 1563 static _GLIBCXX_USE_CONSTEXPR int digits \ 1565 static _GLIBCXX_USE_CONSTEXPR int digits10 \ 1566 = BITSIZE * 643L / 2136; \ 1567 static _GLIBCXX_USE_CONSTEXPR bool is_signed = false; \ 1568 static _GLIBCXX_USE_CONSTEXPR bool is_integer = true; \ 1569 static _GLIBCXX_USE_CONSTEXPR bool is_exact = true; \ 1570 static _GLIBCXX_USE_CONSTEXPR int radix = 2; \ 1572 static _GLIBCXX_CONSTEXPR unsigned TYPE \ 1573 epsilon() _GLIBCXX_USE_NOEXCEPT { return 0; } \ 1575 static _GLIBCXX_CONSTEXPR unsigned TYPE \ 1576 round_error() _GLIBCXX_USE_NOEXCEPT { return 0; } \ 1578 static _GLIBCXX_USE_CONSTEXPR int min_exponent = 0; \ 1579 static _GLIBCXX_USE_CONSTEXPR int min_exponent10 = 0; \ 1580 static _GLIBCXX_USE_CONSTEXPR int max_exponent = 0; \ 1581 static _GLIBCXX_USE_CONSTEXPR int max_exponent10 = 0; \ 1583 static _GLIBCXX_USE_CONSTEXPR bool has_infinity = false; \ 1584 static _GLIBCXX_USE_CONSTEXPR bool has_quiet_NaN = false; \ 1585 static _GLIBCXX_USE_CONSTEXPR bool has_signaling_NaN = false; \ 1586 static _GLIBCXX_USE_CONSTEXPR float_denorm_style has_denorm \ 1588 static _GLIBCXX_USE_CONSTEXPR bool has_denorm_loss = false; \ 1590 static _GLIBCXX_CONSTEXPR unsigned TYPE \ 1591 infinity() _GLIBCXX_USE_NOEXCEPT \ 1592 { return static_cast<unsigned TYPE>(0); } \ 1594 static _GLIBCXX_CONSTEXPR unsigned TYPE \ 1595 quiet_NaN() _GLIBCXX_USE_NOEXCEPT \ 1596 { return static_cast<unsigned TYPE>(0); } \ 1598 static _GLIBCXX_CONSTEXPR unsigned TYPE \ 1599 signaling_NaN() _GLIBCXX_USE_NOEXCEPT \ 1600 { return static_cast<unsigned TYPE>(0); } \ 1602 static _GLIBCXX_CONSTEXPR unsigned TYPE \ 1603 denorm_min() _GLIBCXX_USE_NOEXCEPT \ 1604 { return static_cast<unsigned TYPE>(0); } \ 1606 static _GLIBCXX_USE_CONSTEXPR bool is_iec559 = false; \ 1607 static _GLIBCXX_USE_CONSTEXPR bool is_bounded = true; \ 1608 static _GLIBCXX_USE_CONSTEXPR bool is_modulo = true; \ 1610 static _GLIBCXX_USE_CONSTEXPR bool traps = __glibcxx_integral_traps; \ 1611 static _GLIBCXX_USE_CONSTEXPR bool tinyness_before = false; \ 1612 static _GLIBCXX_USE_CONSTEXPR float_round_style round_style \ 1613 = round_toward_zero; \ 1616 #if __cplusplus >= 201103L 1618 #define __INT_N_201103(TYPE) \ 1619 static constexpr TYPE \ 1620 lowest() noexcept { return min(); } \ 1621 static constexpr int max_digits10 = 0; 1623 #define __INT_N_U201103(TYPE) \ 1624 static constexpr unsigned TYPE \ 1625 lowest() noexcept { return min(); } \ 1626 static constexpr int max_digits10 = 0; 1629 #define __INT_N_201103(TYPE) 1630 #define __INT_N_U201103(TYPE) 1633 #if !defined(__STRICT_ANSI__) 1634 #ifdef __GLIBCXX_TYPE_INT_N_0 1635 __INT_N(__GLIBCXX_TYPE_INT_N_0, __GLIBCXX_BITSIZE_INT_N_0,
1636 __INT_N_201103 (__GLIBCXX_TYPE_INT_N_0), __INT_N_U201103 (__GLIBCXX_TYPE_INT_N_0))
1638 #ifdef __GLIBCXX_TYPE_INT_N_1 1639 __INT_N (__GLIBCXX_TYPE_INT_N_1, __GLIBCXX_BITSIZE_INT_N_1,
1640 __INT_N_201103 (__GLIBCXX_TYPE_INT_N_1), __INT_N_U201103 (__GLIBCXX_TYPE_INT_N_1))
1642 #ifdef __GLIBCXX_TYPE_INT_N_2 1643 __INT_N (__GLIBCXX_TYPE_INT_N_2, __GLIBCXX_BITSIZE_INT_N_2,
1644 __INT_N_201103 (__GLIBCXX_TYPE_INT_N_2), __INT_N_U201103 (__GLIBCXX_TYPE_INT_N_2))
1646 #ifdef __GLIBCXX_TYPE_INT_N_3 1647 __INT_N (__GLIBCXX_TYPE_INT_N_3, __GLIBCXX_BITSIZE_INT_N_3,
1648 __INT_N_201103 (__GLIBCXX_TYPE_INT_N_3), __INT_N_U201103 (__GLIBCXX_TYPE_INT_N_3))
1651 #elif defined __STRICT_ANSI__ && defined __SIZEOF_INT128__ 1652 __INT_N(__int128, 128,
1653 __INT_N_201103 (__int128),
1654 __INT_N_U201103 (__int128))
1658 #undef __INT_N_201103 1659 #undef __INT_N_U201103 1668 static _GLIBCXX_CONSTEXPR
float 1669 min() _GLIBCXX_USE_NOEXCEPT {
return __FLT_MIN__; }
1671 static _GLIBCXX_CONSTEXPR
float 1672 max() _GLIBCXX_USE_NOEXCEPT {
return __FLT_MAX__; }
1674 #if __cplusplus >= 201103L 1675 static constexpr
float 1676 lowest() noexcept {
return -__FLT_MAX__; }
1679 static _GLIBCXX_USE_CONSTEXPR
int digits = __FLT_MANT_DIG__;
1680 static _GLIBCXX_USE_CONSTEXPR
int digits10 = __FLT_DIG__;
1681 #if __cplusplus >= 201103L 1683 = __glibcxx_max_digits10 (__FLT_MANT_DIG__);
1685 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
true;
1686 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
false;
1687 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
false;
1688 static _GLIBCXX_USE_CONSTEXPR
int radix = __FLT_RADIX__;
1690 static _GLIBCXX_CONSTEXPR
float 1691 epsilon() _GLIBCXX_USE_NOEXCEPT {
return __FLT_EPSILON__; }
1693 static _GLIBCXX_CONSTEXPR
float 1694 round_error() _GLIBCXX_USE_NOEXCEPT {
return 0.5F; }
1696 static _GLIBCXX_USE_CONSTEXPR
int min_exponent = __FLT_MIN_EXP__;
1697 static _GLIBCXX_USE_CONSTEXPR
int min_exponent10 = __FLT_MIN_10_EXP__;
1698 static _GLIBCXX_USE_CONSTEXPR
int max_exponent = __FLT_MAX_EXP__;
1699 static _GLIBCXX_USE_CONSTEXPR
int max_exponent10 = __FLT_MAX_10_EXP__;
1701 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity = __FLT_HAS_INFINITY__;
1702 static _GLIBCXX_USE_CONSTEXPR
bool has_quiet_NaN = __FLT_HAS_QUIET_NAN__;
1707 = __glibcxx_float_has_denorm_loss;
1709 static _GLIBCXX_CONSTEXPR
float 1710 infinity() _GLIBCXX_USE_NOEXCEPT {
return __builtin_huge_valf(); }
1712 static _GLIBCXX_CONSTEXPR
float 1713 quiet_NaN() _GLIBCXX_USE_NOEXCEPT {
return __builtin_nanf(
""); }
1715 static _GLIBCXX_CONSTEXPR
float 1716 signaling_NaN() _GLIBCXX_USE_NOEXCEPT {
return __builtin_nansf(
""); }
1718 static _GLIBCXX_CONSTEXPR
float 1719 denorm_min() _GLIBCXX_USE_NOEXCEPT {
return __FLT_DENORM_MIN__; }
1721 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 1723 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
1724 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
false;
1726 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_float_traps;
1728 = __glibcxx_float_tinyness_before;
1733 #undef __glibcxx_float_has_denorm_loss 1734 #undef __glibcxx_float_traps 1735 #undef __glibcxx_float_tinyness_before 1743 static _GLIBCXX_CONSTEXPR
double 1744 min() _GLIBCXX_USE_NOEXCEPT {
return __DBL_MIN__; }
1746 static _GLIBCXX_CONSTEXPR
double 1747 max() _GLIBCXX_USE_NOEXCEPT {
return __DBL_MAX__; }
1749 #if __cplusplus >= 201103L 1750 static constexpr
double 1751 lowest() noexcept {
return -__DBL_MAX__; }
1754 static _GLIBCXX_USE_CONSTEXPR
int digits = __DBL_MANT_DIG__;
1755 static _GLIBCXX_USE_CONSTEXPR
int digits10 = __DBL_DIG__;
1756 #if __cplusplus >= 201103L 1758 = __glibcxx_max_digits10 (__DBL_MANT_DIG__);
1760 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
true;
1761 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
false;
1762 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
false;
1763 static _GLIBCXX_USE_CONSTEXPR
int radix = __FLT_RADIX__;
1765 static _GLIBCXX_CONSTEXPR
double 1766 epsilon() _GLIBCXX_USE_NOEXCEPT {
return __DBL_EPSILON__; }
1768 static _GLIBCXX_CONSTEXPR
double 1769 round_error() _GLIBCXX_USE_NOEXCEPT {
return 0.5; }
1771 static _GLIBCXX_USE_CONSTEXPR
int min_exponent = __DBL_MIN_EXP__;
1772 static _GLIBCXX_USE_CONSTEXPR
int min_exponent10 = __DBL_MIN_10_EXP__;
1773 static _GLIBCXX_USE_CONSTEXPR
int max_exponent = __DBL_MAX_EXP__;
1774 static _GLIBCXX_USE_CONSTEXPR
int max_exponent10 = __DBL_MAX_10_EXP__;
1776 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity = __DBL_HAS_INFINITY__;
1777 static _GLIBCXX_USE_CONSTEXPR
bool has_quiet_NaN = __DBL_HAS_QUIET_NAN__;
1782 = __glibcxx_double_has_denorm_loss;
1784 static _GLIBCXX_CONSTEXPR
double 1785 infinity() _GLIBCXX_USE_NOEXCEPT {
return __builtin_huge_val(); }
1787 static _GLIBCXX_CONSTEXPR
double 1788 quiet_NaN() _GLIBCXX_USE_NOEXCEPT {
return __builtin_nan(
""); }
1790 static _GLIBCXX_CONSTEXPR
double 1791 signaling_NaN() _GLIBCXX_USE_NOEXCEPT {
return __builtin_nans(
""); }
1793 static _GLIBCXX_CONSTEXPR
double 1794 denorm_min() _GLIBCXX_USE_NOEXCEPT {
return __DBL_DENORM_MIN__; }
1796 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 1798 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
1799 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
false;
1801 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_double_traps;
1803 = __glibcxx_double_tinyness_before;
1808 #undef __glibcxx_double_has_denorm_loss 1809 #undef __glibcxx_double_traps 1810 #undef __glibcxx_double_tinyness_before 1818 static _GLIBCXX_CONSTEXPR
long double 1819 min() _GLIBCXX_USE_NOEXCEPT {
return __LDBL_MIN__; }
1821 static _GLIBCXX_CONSTEXPR
long double 1822 max() _GLIBCXX_USE_NOEXCEPT {
return __LDBL_MAX__; }
1824 #if __cplusplus >= 201103L 1825 static constexpr
long double 1826 lowest() noexcept {
return -__LDBL_MAX__; }
1829 static _GLIBCXX_USE_CONSTEXPR
int digits = __LDBL_MANT_DIG__;
1830 static _GLIBCXX_USE_CONSTEXPR
int digits10 = __LDBL_DIG__;
1831 #if __cplusplus >= 201103L 1833 = __glibcxx_max_digits10 (__LDBL_MANT_DIG__);
1835 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
true;
1836 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
false;
1837 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
false;
1838 static _GLIBCXX_USE_CONSTEXPR
int radix = __FLT_RADIX__;
1840 static _GLIBCXX_CONSTEXPR
long double 1841 epsilon() _GLIBCXX_USE_NOEXCEPT {
return __LDBL_EPSILON__; }
1843 static _GLIBCXX_CONSTEXPR
long double 1844 round_error() _GLIBCXX_USE_NOEXCEPT {
return 0.5L; }
1846 static _GLIBCXX_USE_CONSTEXPR
int min_exponent = __LDBL_MIN_EXP__;
1847 static _GLIBCXX_USE_CONSTEXPR
int min_exponent10 = __LDBL_MIN_10_EXP__;
1848 static _GLIBCXX_USE_CONSTEXPR
int max_exponent = __LDBL_MAX_EXP__;
1849 static _GLIBCXX_USE_CONSTEXPR
int max_exponent10 = __LDBL_MAX_10_EXP__;
1851 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity = __LDBL_HAS_INFINITY__;
1852 static _GLIBCXX_USE_CONSTEXPR
bool has_quiet_NaN = __LDBL_HAS_QUIET_NAN__;
1857 = __glibcxx_long_double_has_denorm_loss;
1859 static _GLIBCXX_CONSTEXPR
long double 1860 infinity() _GLIBCXX_USE_NOEXCEPT {
return __builtin_huge_vall(); }
1862 static _GLIBCXX_CONSTEXPR
long double 1863 quiet_NaN() _GLIBCXX_USE_NOEXCEPT {
return __builtin_nanl(
""); }
1865 static _GLIBCXX_CONSTEXPR
long double 1866 signaling_NaN() _GLIBCXX_USE_NOEXCEPT {
return __builtin_nansl(
""); }
1868 static _GLIBCXX_CONSTEXPR
long double 1869 denorm_min() _GLIBCXX_USE_NOEXCEPT {
return __LDBL_DENORM_MIN__; }
1871 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 1873 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
1874 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
false;
1876 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_long_double_traps;
1878 __glibcxx_long_double_tinyness_before;
1883 #undef __glibcxx_long_double_has_denorm_loss 1884 #undef __glibcxx_long_double_traps 1885 #undef __glibcxx_long_double_tinyness_before 1887 _GLIBCXX_END_NAMESPACE_VERSION
1890 #undef __glibcxx_signed 1891 #undef __glibcxx_min 1892 #undef __glibcxx_max 1893 #undef __glibcxx_digits 1894 #undef __glibcxx_digits10 1895 #undef __glibcxx_max_digits10 1897 #endif // _GLIBCXX_NUMERIC_LIMITS To the nearest representable value.
static constexpr bool is_integer
static constexpr _Tp epsilon() noexcept
static constexpr _Tp round_error() noexcept
static constexpr bool is_signed
static constexpr bool is_modulo
static constexpr _Tp infinity() noexcept
static constexpr bool has_signaling_NaN
static constexpr bool is_bounded
static constexpr int digits
static constexpr _Tp signaling_NaN() noexcept
static constexpr bool is_specialized
static constexpr int digits10
Properties of fundamental types.
static constexpr bool traps
static constexpr _Tp min() noexcept
static constexpr int radix
static constexpr _Tp quiet_NaN() noexcept
static constexpr bool is_exact
float_denorm_style
Describes the denormalization for floating-point types.
Part of std::numeric_limits.
static constexpr bool has_quiet_NaN
static constexpr bool has_denorm_loss
static constexpr bool is_iec559
static constexpr bool tinyness_before
ISO C++ entities toplevel namespace is std.
constexpr const _Tp & min(const _Tp &, const _Tp &)
This does what you think it does.
static constexpr int min_exponent10
static constexpr int min_exponent
static constexpr float_round_style round_style
static constexpr _Tp max() noexcept
The type does not allow denormalized values.
static constexpr int max_digits10
static constexpr _Tp denorm_min() noexcept
static constexpr _Tp lowest() noexcept
static constexpr float_denorm_style has_denorm
static constexpr int max_exponent
Indeterminate at compile time whether denormalized values are allowed.
The type allows denormalized values.
constexpr const _Tp & max(const _Tp &, const _Tp &)
This does what you think it does.
static constexpr int max_exponent10
static constexpr bool has_infinity
float_round_style
Describes the rounding style for floating-point types.