37 #ifndef _GLIBCXX_NUMERIC_LIMITS 38 #define _GLIBCXX_NUMERIC_LIMITS 1 40 #ifdef _GLIBCXX_SYSHDR 41 #pragma GCC system_header 44 #pragma GCC diagnostic push 45 #pragma GCC diagnostic ignored "-Wpedantic" // Q suffix 46 #pragma GCC diagnostic ignored "-Wlong-long" 47 #pragma GCC diagnostic ignored "-Wc++23-extensions" 86 #ifndef __glibcxx_integral_traps 87 # define __glibcxx_integral_traps true 95 #ifndef __glibcxx_float_has_denorm_loss 96 # define __glibcxx_float_has_denorm_loss false 98 #ifndef __glibcxx_float_traps 99 # define __glibcxx_float_traps false 101 #ifndef __glibcxx_float_tinyness_before 102 # define __glibcxx_float_tinyness_before false 109 #ifndef __glibcxx_double_has_denorm_loss 110 # define __glibcxx_double_has_denorm_loss false 112 #ifndef __glibcxx_double_traps 113 # define __glibcxx_double_traps false 115 #ifndef __glibcxx_double_tinyness_before 116 # define __glibcxx_double_tinyness_before false 123 #ifndef __glibcxx_long_double_has_denorm_loss 124 # define __glibcxx_long_double_has_denorm_loss false 126 #ifndef __glibcxx_long_double_traps 127 # define __glibcxx_long_double_traps false 129 #ifndef __glibcxx_long_double_tinyness_before 130 # define __glibcxx_long_double_tinyness_before false 135 #define __glibcxx_signed_b(T,B) ((T)(-1) < 0) 137 #define __glibcxx_min_b(T,B) \ 138 (__glibcxx_signed_b (T,B) ? -__glibcxx_max_b (T,B) - 1 : (T)0) 140 #define __glibcxx_max_b(T,B) \ 141 (__glibcxx_signed_b (T,B) ? \ 142 (((((T)1 << (__glibcxx_digits_b (T,B) - 1)) - 1) << 1) + 1) : ~(T)0) 144 #define __glibcxx_digits_b(T,B) \ 145 (B - __glibcxx_signed_b (T,B)) 148 #define __glibcxx_digits10_b(T,B) \ 149 (__glibcxx_digits_b (T,B) * 643L / 2136) 151 #define __glibcxx_signed(T) \ 152 __glibcxx_signed_b (T, sizeof(T) * __CHAR_BIT__) 153 #define __glibcxx_min(T) \ 154 __glibcxx_min_b (T, sizeof(T) * __CHAR_BIT__) 155 #define __glibcxx_max(T) \ 156 __glibcxx_max_b (T, sizeof(T) * __CHAR_BIT__) 157 #define __glibcxx_digits(T) \ 158 __glibcxx_digits_b (T, sizeof(T) * __CHAR_BIT__) 159 #define __glibcxx_digits10(T) \ 160 __glibcxx_digits10_b (T, sizeof(T) * __CHAR_BIT__) 162 #define __glibcxx_max_digits10(T) \ 163 (2 + (T) * 643L / 2136) 165 namespace std _GLIBCXX_VISIBILITY(default)
167 _GLIBCXX_BEGIN_NAMESPACE_VERSION
218 static _GLIBCXX_USE_CONSTEXPR
int digits = 0;
223 #if __cplusplus >= 201103L 238 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
false;
242 static _GLIBCXX_USE_CONSTEXPR
int radix = 0;
298 static _GLIBCXX_USE_CONSTEXPR
bool traps =
false;
318 template<
typename _Tp>
323 static _GLIBCXX_CONSTEXPR _Tp
324 min() _GLIBCXX_USE_NOEXCEPT {
return _Tp(); }
327 static _GLIBCXX_CONSTEXPR _Tp
328 max() _GLIBCXX_USE_NOEXCEPT {
return _Tp(); }
330 #if __cplusplus >= 201103L 339 static _GLIBCXX_CONSTEXPR _Tp
340 epsilon() _GLIBCXX_USE_NOEXCEPT {
return _Tp(); }
343 static _GLIBCXX_CONSTEXPR _Tp
347 static _GLIBCXX_CONSTEXPR _Tp
352 static _GLIBCXX_CONSTEXPR _Tp
357 static _GLIBCXX_CONSTEXPR _Tp
363 static _GLIBCXX_CONSTEXPR _Tp
370 template<
typename _Tp>
374 template<
typename _Tp>
378 template<
typename _Tp>
395 static _GLIBCXX_CONSTEXPR
bool 396 min() _GLIBCXX_USE_NOEXCEPT {
return false; }
398 static _GLIBCXX_CONSTEXPR
bool 399 max() _GLIBCXX_USE_NOEXCEPT {
return true; }
401 #if __cplusplus >= 201103L 402 static constexpr
bool 403 lowest() noexcept {
return min(); }
405 static _GLIBCXX_USE_CONSTEXPR
int digits = 1;
406 static _GLIBCXX_USE_CONSTEXPR
int digits10 = 0;
407 #if __cplusplus >= 201103L 410 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
false;
411 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
412 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
413 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
415 static _GLIBCXX_CONSTEXPR
bool 416 epsilon() _GLIBCXX_USE_NOEXCEPT {
return false; }
418 static _GLIBCXX_CONSTEXPR
bool 419 round_error() _GLIBCXX_USE_NOEXCEPT {
return false; }
426 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
433 static _GLIBCXX_CONSTEXPR
bool 434 infinity() _GLIBCXX_USE_NOEXCEPT {
return false; }
436 static _GLIBCXX_CONSTEXPR
bool 437 quiet_NaN() _GLIBCXX_USE_NOEXCEPT {
return false; }
439 static _GLIBCXX_CONSTEXPR
bool 440 signaling_NaN() _GLIBCXX_USE_NOEXCEPT {
return false; }
442 static _GLIBCXX_CONSTEXPR
bool 443 denorm_min() _GLIBCXX_USE_NOEXCEPT {
return false; }
445 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
446 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
447 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
false;
452 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
464 static _GLIBCXX_CONSTEXPR
char 465 min() _GLIBCXX_USE_NOEXCEPT {
return __glibcxx_min(
char); }
467 static _GLIBCXX_CONSTEXPR
char 468 max() _GLIBCXX_USE_NOEXCEPT {
return __glibcxx_max(
char); }
470 #if __cplusplus >= 201103L 471 static constexpr
char 472 lowest() noexcept {
return min(); }
475 static _GLIBCXX_USE_CONSTEXPR
int digits = __glibcxx_digits (
char);
476 static _GLIBCXX_USE_CONSTEXPR
int digits10 = __glibcxx_digits10 (
char);
477 #if __cplusplus >= 201103L 480 static _GLIBCXX_USE_CONSTEXPR
bool is_signed = __glibcxx_signed (
char);
481 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
482 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
483 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
485 static _GLIBCXX_CONSTEXPR
char 486 epsilon() _GLIBCXX_USE_NOEXCEPT {
return 0; }
488 static _GLIBCXX_CONSTEXPR
char 489 round_error() _GLIBCXX_USE_NOEXCEPT {
return 0; }
496 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
503 static _GLIBCXX_CONSTEXPR
504 char infinity() _GLIBCXX_USE_NOEXCEPT {
return char(); }
506 static _GLIBCXX_CONSTEXPR
char 507 quiet_NaN() _GLIBCXX_USE_NOEXCEPT {
return char(); }
509 static _GLIBCXX_CONSTEXPR
char 510 signaling_NaN() _GLIBCXX_USE_NOEXCEPT {
return char(); }
512 static _GLIBCXX_CONSTEXPR
char 513 denorm_min() _GLIBCXX_USE_NOEXCEPT {
return static_cast<char>(0); }
515 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
516 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
519 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
531 static _GLIBCXX_CONSTEXPR
signed char 532 min() _GLIBCXX_USE_NOEXCEPT {
return -__SCHAR_MAX__ - 1; }
534 static _GLIBCXX_CONSTEXPR
signed char 535 max() _GLIBCXX_USE_NOEXCEPT {
return __SCHAR_MAX__; }
537 #if __cplusplus >= 201103L 538 static constexpr
signed char 539 lowest() noexcept {
return min(); }
542 static _GLIBCXX_USE_CONSTEXPR
int digits = __glibcxx_digits (
signed char);
543 static _GLIBCXX_USE_CONSTEXPR
int digits10 544 = __glibcxx_digits10 (
signed char);
545 #if __cplusplus >= 201103L 548 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
true;
549 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
550 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
551 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
553 static _GLIBCXX_CONSTEXPR
signed char 554 epsilon() _GLIBCXX_USE_NOEXCEPT {
return 0; }
556 static _GLIBCXX_CONSTEXPR
signed char 557 round_error() _GLIBCXX_USE_NOEXCEPT {
return 0; }
564 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
571 static _GLIBCXX_CONSTEXPR
signed char 572 infinity() _GLIBCXX_USE_NOEXCEPT {
return static_cast<signed char>(0); }
574 static _GLIBCXX_CONSTEXPR
signed char 575 quiet_NaN() _GLIBCXX_USE_NOEXCEPT {
return static_cast<signed char>(0); }
577 static _GLIBCXX_CONSTEXPR
signed char 578 signaling_NaN() _GLIBCXX_USE_NOEXCEPT
579 {
return static_cast<signed char>(0); }
581 static _GLIBCXX_CONSTEXPR
signed char 582 denorm_min() _GLIBCXX_USE_NOEXCEPT
583 {
return static_cast<signed char>(0); }
585 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
586 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
587 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
false;
589 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
601 static _GLIBCXX_CONSTEXPR
unsigned char 602 min() _GLIBCXX_USE_NOEXCEPT {
return 0; }
604 static _GLIBCXX_CONSTEXPR
unsigned char 605 max() _GLIBCXX_USE_NOEXCEPT {
return __SCHAR_MAX__ * 2U + 1; }
607 #if __cplusplus >= 201103L 608 static constexpr
unsigned char 609 lowest() noexcept {
return min(); }
612 static _GLIBCXX_USE_CONSTEXPR
int digits 613 = __glibcxx_digits (
unsigned char);
614 static _GLIBCXX_USE_CONSTEXPR
int digits10 615 = __glibcxx_digits10 (
unsigned char);
616 #if __cplusplus >= 201103L 619 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
false;
620 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
621 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
622 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
624 static _GLIBCXX_CONSTEXPR
unsigned char 625 epsilon() _GLIBCXX_USE_NOEXCEPT {
return 0; }
627 static _GLIBCXX_CONSTEXPR
unsigned char 628 round_error() _GLIBCXX_USE_NOEXCEPT {
return 0; }
635 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
642 static _GLIBCXX_CONSTEXPR
unsigned char 643 infinity() _GLIBCXX_USE_NOEXCEPT
644 {
return static_cast<unsigned char>(0); }
646 static _GLIBCXX_CONSTEXPR
unsigned char 647 quiet_NaN() _GLIBCXX_USE_NOEXCEPT
648 {
return static_cast<unsigned char>(0); }
650 static _GLIBCXX_CONSTEXPR
unsigned char 651 signaling_NaN() _GLIBCXX_USE_NOEXCEPT
652 {
return static_cast<unsigned char>(0); }
654 static _GLIBCXX_CONSTEXPR
unsigned char 655 denorm_min() _GLIBCXX_USE_NOEXCEPT
656 {
return static_cast<unsigned char>(0); }
658 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
659 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
660 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
true;
662 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
674 static _GLIBCXX_CONSTEXPR
wchar_t 675 min() _GLIBCXX_USE_NOEXCEPT {
return __glibcxx_min (
wchar_t); }
677 static _GLIBCXX_CONSTEXPR
wchar_t 678 max() _GLIBCXX_USE_NOEXCEPT {
return __glibcxx_max (
wchar_t); }
680 #if __cplusplus >= 201103L 681 static constexpr
wchar_t 682 lowest() noexcept {
return min(); }
685 static _GLIBCXX_USE_CONSTEXPR
int digits = __glibcxx_digits (
wchar_t);
686 static _GLIBCXX_USE_CONSTEXPR
int digits10 687 = __glibcxx_digits10 (
wchar_t);
688 #if __cplusplus >= 201103L 691 static _GLIBCXX_USE_CONSTEXPR
bool is_signed = __glibcxx_signed (
wchar_t);
692 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
693 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
694 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
696 static _GLIBCXX_CONSTEXPR
wchar_t 697 epsilon() _GLIBCXX_USE_NOEXCEPT {
return 0; }
699 static _GLIBCXX_CONSTEXPR
wchar_t 700 round_error() _GLIBCXX_USE_NOEXCEPT {
return 0; }
707 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
714 static _GLIBCXX_CONSTEXPR
wchar_t 715 infinity() _GLIBCXX_USE_NOEXCEPT {
return wchar_t(); }
717 static _GLIBCXX_CONSTEXPR
wchar_t 718 quiet_NaN() _GLIBCXX_USE_NOEXCEPT {
return wchar_t(); }
720 static _GLIBCXX_CONSTEXPR
wchar_t 721 signaling_NaN() _GLIBCXX_USE_NOEXCEPT {
return wchar_t(); }
723 static _GLIBCXX_CONSTEXPR
wchar_t 724 denorm_min() _GLIBCXX_USE_NOEXCEPT {
return wchar_t(); }
726 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
727 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
730 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
736 #if _GLIBCXX_USE_CHAR8_T 743 static _GLIBCXX_CONSTEXPR char8_t
744 min() _GLIBCXX_USE_NOEXCEPT {
return __glibcxx_min (char8_t); }
746 static _GLIBCXX_CONSTEXPR char8_t
747 max() _GLIBCXX_USE_NOEXCEPT {
return __glibcxx_max (char8_t); }
749 static _GLIBCXX_CONSTEXPR char8_t
750 lowest() _GLIBCXX_USE_NOEXCEPT {
return min(); }
752 static _GLIBCXX_USE_CONSTEXPR
int digits = __glibcxx_digits (char8_t);
753 static _GLIBCXX_USE_CONSTEXPR
int digits10 = __glibcxx_digits10 (char8_t);
755 static _GLIBCXX_USE_CONSTEXPR
bool is_signed = __glibcxx_signed (char8_t);
756 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
757 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
758 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
760 static _GLIBCXX_CONSTEXPR char8_t
761 epsilon() _GLIBCXX_USE_NOEXCEPT {
return 0; }
763 static _GLIBCXX_CONSTEXPR char8_t
764 round_error() _GLIBCXX_USE_NOEXCEPT {
return 0; }
771 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
778 static _GLIBCXX_CONSTEXPR char8_t
779 infinity() _GLIBCXX_USE_NOEXCEPT {
return char8_t(); }
781 static _GLIBCXX_CONSTEXPR char8_t
782 quiet_NaN() _GLIBCXX_USE_NOEXCEPT {
return char8_t(); }
784 static _GLIBCXX_CONSTEXPR char8_t
785 signaling_NaN() _GLIBCXX_USE_NOEXCEPT {
return char8_t(); }
787 static _GLIBCXX_CONSTEXPR char8_t
788 denorm_min() _GLIBCXX_USE_NOEXCEPT {
return char8_t(); }
790 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
791 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
794 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
801 #if __cplusplus >= 201103L 808 static constexpr char16_t
809 min() noexcept {
return __glibcxx_min (char16_t); }
811 static constexpr char16_t
812 max() noexcept {
return __glibcxx_max (char16_t); }
814 static constexpr char16_t
815 lowest() noexcept {
return min(); }
817 static constexpr
int digits = __glibcxx_digits (char16_t);
818 static constexpr
int digits10 = __glibcxx_digits10 (char16_t);
820 static constexpr
bool is_signed = __glibcxx_signed (char16_t);
822 static constexpr
bool is_exact =
true;
823 static constexpr
int radix = 2;
825 static constexpr char16_t
826 epsilon() noexcept {
return 0; }
828 static constexpr char16_t
829 round_error() noexcept {
return 0; }
842 static constexpr char16_t
843 infinity() noexcept {
return char16_t(); }
845 static constexpr char16_t
846 quiet_NaN() noexcept {
return char16_t(); }
848 static constexpr char16_t
849 signaling_NaN() noexcept {
return char16_t(); }
851 static constexpr char16_t
852 denorm_min() noexcept {
return char16_t(); }
858 static constexpr
bool traps = __glibcxx_integral_traps;
869 static constexpr char32_t
870 min() noexcept {
return __glibcxx_min (char32_t); }
872 static constexpr char32_t
873 max() noexcept {
return __glibcxx_max (char32_t); }
875 static constexpr char32_t
876 lowest() noexcept {
return min(); }
878 static constexpr
int digits = __glibcxx_digits (char32_t);
879 static constexpr
int digits10 = __glibcxx_digits10 (char32_t);
881 static constexpr
bool is_signed = __glibcxx_signed (char32_t);
883 static constexpr
bool is_exact =
true;
884 static constexpr
int radix = 2;
886 static constexpr char32_t
887 epsilon() noexcept {
return 0; }
889 static constexpr char32_t
890 round_error() noexcept {
return 0; }
903 static constexpr char32_t
904 infinity() noexcept {
return char32_t(); }
906 static constexpr char32_t
907 quiet_NaN() noexcept {
return char32_t(); }
909 static constexpr char32_t
910 signaling_NaN() noexcept {
return char32_t(); }
912 static constexpr char32_t
913 denorm_min() noexcept {
return char32_t(); }
919 static constexpr
bool traps = __glibcxx_integral_traps;
931 static _GLIBCXX_CONSTEXPR
short 932 min() _GLIBCXX_USE_NOEXCEPT {
return -__SHRT_MAX__ - 1; }
934 static _GLIBCXX_CONSTEXPR
short 935 max() _GLIBCXX_USE_NOEXCEPT {
return __SHRT_MAX__; }
937 #if __cplusplus >= 201103L 938 static constexpr
short 939 lowest() noexcept {
return min(); }
942 static _GLIBCXX_USE_CONSTEXPR
int digits = __glibcxx_digits (
short);
943 static _GLIBCXX_USE_CONSTEXPR
int digits10 = __glibcxx_digits10 (
short);
944 #if __cplusplus >= 201103L 947 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
true;
948 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
949 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
950 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
952 static _GLIBCXX_CONSTEXPR
short 953 epsilon() _GLIBCXX_USE_NOEXCEPT {
return 0; }
955 static _GLIBCXX_CONSTEXPR
short 956 round_error() _GLIBCXX_USE_NOEXCEPT {
return 0; }
963 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
970 static _GLIBCXX_CONSTEXPR
short 971 infinity() _GLIBCXX_USE_NOEXCEPT {
return short(); }
973 static _GLIBCXX_CONSTEXPR
short 974 quiet_NaN() _GLIBCXX_USE_NOEXCEPT {
return short(); }
976 static _GLIBCXX_CONSTEXPR
short 977 signaling_NaN() _GLIBCXX_USE_NOEXCEPT {
return short(); }
979 static _GLIBCXX_CONSTEXPR
short 980 denorm_min() _GLIBCXX_USE_NOEXCEPT {
return short(); }
982 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
983 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
984 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
false;
986 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
998 static _GLIBCXX_CONSTEXPR
unsigned short 999 min() _GLIBCXX_USE_NOEXCEPT {
return 0; }
1001 static _GLIBCXX_CONSTEXPR
unsigned short 1002 max() _GLIBCXX_USE_NOEXCEPT {
return __SHRT_MAX__ * 2U + 1; }
1004 #if __cplusplus >= 201103L 1005 static constexpr
unsigned short 1006 lowest() noexcept {
return min(); }
1009 static _GLIBCXX_USE_CONSTEXPR
int digits 1010 = __glibcxx_digits (
unsigned short);
1011 static _GLIBCXX_USE_CONSTEXPR
int digits10 1012 = __glibcxx_digits10 (
unsigned short);
1013 #if __cplusplus >= 201103L 1016 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
false;
1017 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
1018 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
1019 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
1021 static _GLIBCXX_CONSTEXPR
unsigned short 1022 epsilon() _GLIBCXX_USE_NOEXCEPT {
return 0; }
1024 static _GLIBCXX_CONSTEXPR
unsigned short 1025 round_error() _GLIBCXX_USE_NOEXCEPT {
return 0; }
1032 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
1039 static _GLIBCXX_CONSTEXPR
unsigned short 1040 infinity() _GLIBCXX_USE_NOEXCEPT
1041 {
return static_cast<unsigned short>(0); }
1043 static _GLIBCXX_CONSTEXPR
unsigned short 1044 quiet_NaN() _GLIBCXX_USE_NOEXCEPT
1045 {
return static_cast<unsigned short>(0); }
1047 static _GLIBCXX_CONSTEXPR
unsigned short 1048 signaling_NaN() _GLIBCXX_USE_NOEXCEPT
1049 {
return static_cast<unsigned short>(0); }
1051 static _GLIBCXX_CONSTEXPR
unsigned short 1052 denorm_min() _GLIBCXX_USE_NOEXCEPT
1053 {
return static_cast<unsigned short>(0); }
1055 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
1056 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
1057 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
true;
1059 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
1071 static _GLIBCXX_CONSTEXPR
int 1072 min() _GLIBCXX_USE_NOEXCEPT {
return -__INT_MAX__ - 1; }
1074 static _GLIBCXX_CONSTEXPR
int 1075 max() _GLIBCXX_USE_NOEXCEPT {
return __INT_MAX__; }
1077 #if __cplusplus >= 201103L 1078 static constexpr
int 1079 lowest() noexcept {
return min(); }
1082 static _GLIBCXX_USE_CONSTEXPR
int digits = __glibcxx_digits (
int);
1083 static _GLIBCXX_USE_CONSTEXPR
int digits10 = __glibcxx_digits10 (
int);
1084 #if __cplusplus >= 201103L 1087 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
true;
1088 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
1089 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
1090 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
1092 static _GLIBCXX_CONSTEXPR
int 1093 epsilon() _GLIBCXX_USE_NOEXCEPT {
return 0; }
1095 static _GLIBCXX_CONSTEXPR
int 1096 round_error() _GLIBCXX_USE_NOEXCEPT {
return 0; }
1103 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
1110 static _GLIBCXX_CONSTEXPR
int 1111 infinity() _GLIBCXX_USE_NOEXCEPT {
return static_cast<int>(0); }
1113 static _GLIBCXX_CONSTEXPR
int 1114 quiet_NaN() _GLIBCXX_USE_NOEXCEPT {
return static_cast<int>(0); }
1116 static _GLIBCXX_CONSTEXPR
int 1117 signaling_NaN() _GLIBCXX_USE_NOEXCEPT {
return static_cast<int>(0); }
1119 static _GLIBCXX_CONSTEXPR
int 1120 denorm_min() _GLIBCXX_USE_NOEXCEPT {
return static_cast<int>(0); }
1122 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
1123 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
1124 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
false;
1126 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
1138 static _GLIBCXX_CONSTEXPR
unsigned int 1139 min() _GLIBCXX_USE_NOEXCEPT {
return 0; }
1141 static _GLIBCXX_CONSTEXPR
unsigned int 1142 max() _GLIBCXX_USE_NOEXCEPT {
return __INT_MAX__ * 2U + 1; }
1144 #if __cplusplus >= 201103L 1145 static constexpr
unsigned int 1146 lowest() noexcept {
return min(); }
1149 static _GLIBCXX_USE_CONSTEXPR
int digits 1150 = __glibcxx_digits (
unsigned int);
1151 static _GLIBCXX_USE_CONSTEXPR
int digits10 1152 = __glibcxx_digits10 (
unsigned int);
1153 #if __cplusplus >= 201103L 1156 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
false;
1157 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
1158 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
1159 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
1161 static _GLIBCXX_CONSTEXPR
unsigned int 1162 epsilon() _GLIBCXX_USE_NOEXCEPT {
return 0; }
1164 static _GLIBCXX_CONSTEXPR
unsigned int 1165 round_error() _GLIBCXX_USE_NOEXCEPT {
return 0; }
1172 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
1179 static _GLIBCXX_CONSTEXPR
unsigned int 1180 infinity() _GLIBCXX_USE_NOEXCEPT {
return static_cast<unsigned int>(0); }
1182 static _GLIBCXX_CONSTEXPR
unsigned int 1183 quiet_NaN() _GLIBCXX_USE_NOEXCEPT
1184 {
return static_cast<unsigned int>(0); }
1186 static _GLIBCXX_CONSTEXPR
unsigned int 1187 signaling_NaN() _GLIBCXX_USE_NOEXCEPT
1188 {
return static_cast<unsigned int>(0); }
1190 static _GLIBCXX_CONSTEXPR
unsigned int 1191 denorm_min() _GLIBCXX_USE_NOEXCEPT
1192 {
return static_cast<unsigned int>(0); }
1194 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
1195 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
1196 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
true;
1198 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
1210 static _GLIBCXX_CONSTEXPR
long 1211 min() _GLIBCXX_USE_NOEXCEPT {
return -__LONG_MAX__ - 1; }
1213 static _GLIBCXX_CONSTEXPR
long 1214 max() _GLIBCXX_USE_NOEXCEPT {
return __LONG_MAX__; }
1216 #if __cplusplus >= 201103L 1217 static constexpr
long 1218 lowest() noexcept {
return min(); }
1221 static _GLIBCXX_USE_CONSTEXPR
int digits = __glibcxx_digits (
long);
1222 static _GLIBCXX_USE_CONSTEXPR
int digits10 = __glibcxx_digits10 (
long);
1223 #if __cplusplus >= 201103L 1226 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
true;
1227 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
1228 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
1229 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
1231 static _GLIBCXX_CONSTEXPR
long 1232 epsilon() _GLIBCXX_USE_NOEXCEPT {
return 0; }
1234 static _GLIBCXX_CONSTEXPR
long 1235 round_error() _GLIBCXX_USE_NOEXCEPT {
return 0; }
1242 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
1249 static _GLIBCXX_CONSTEXPR
long 1250 infinity() _GLIBCXX_USE_NOEXCEPT {
return static_cast<long>(0); }
1252 static _GLIBCXX_CONSTEXPR
long 1253 quiet_NaN() _GLIBCXX_USE_NOEXCEPT {
return static_cast<long>(0); }
1255 static _GLIBCXX_CONSTEXPR
long 1256 signaling_NaN() _GLIBCXX_USE_NOEXCEPT {
return static_cast<long>(0); }
1258 static _GLIBCXX_CONSTEXPR
long 1259 denorm_min() _GLIBCXX_USE_NOEXCEPT {
return static_cast<long>(0); }
1261 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
1262 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
1263 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
false;
1265 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
1277 static _GLIBCXX_CONSTEXPR
unsigned long 1278 min() _GLIBCXX_USE_NOEXCEPT {
return 0; }
1280 static _GLIBCXX_CONSTEXPR
unsigned long 1281 max() _GLIBCXX_USE_NOEXCEPT {
return __LONG_MAX__ * 2UL + 1; }
1283 #if __cplusplus >= 201103L 1284 static constexpr
unsigned long 1285 lowest() noexcept {
return min(); }
1288 static _GLIBCXX_USE_CONSTEXPR
int digits 1289 = __glibcxx_digits (
unsigned long);
1290 static _GLIBCXX_USE_CONSTEXPR
int digits10 1291 = __glibcxx_digits10 (
unsigned long);
1292 #if __cplusplus >= 201103L 1295 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
false;
1296 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
1297 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
1298 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
1300 static _GLIBCXX_CONSTEXPR
unsigned long 1301 epsilon() _GLIBCXX_USE_NOEXCEPT {
return 0; }
1303 static _GLIBCXX_CONSTEXPR
unsigned long 1304 round_error() _GLIBCXX_USE_NOEXCEPT {
return 0; }
1311 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
1318 static _GLIBCXX_CONSTEXPR
unsigned long 1319 infinity() _GLIBCXX_USE_NOEXCEPT
1320 {
return static_cast<unsigned long>(0); }
1322 static _GLIBCXX_CONSTEXPR
unsigned long 1323 quiet_NaN() _GLIBCXX_USE_NOEXCEPT
1324 {
return static_cast<unsigned long>(0); }
1326 static _GLIBCXX_CONSTEXPR
unsigned long 1327 signaling_NaN() _GLIBCXX_USE_NOEXCEPT
1328 {
return static_cast<unsigned long>(0); }
1330 static _GLIBCXX_CONSTEXPR
unsigned long 1331 denorm_min() _GLIBCXX_USE_NOEXCEPT
1332 {
return static_cast<unsigned long>(0); }
1334 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
1335 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
1336 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
true;
1338 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
1350 static _GLIBCXX_CONSTEXPR
long long 1351 min() _GLIBCXX_USE_NOEXCEPT {
return -__LONG_LONG_MAX__ - 1; }
1353 static _GLIBCXX_CONSTEXPR
long long 1354 max() _GLIBCXX_USE_NOEXCEPT {
return __LONG_LONG_MAX__; }
1356 #if __cplusplus >= 201103L 1357 static constexpr
long long 1358 lowest() noexcept {
return min(); }
1361 static _GLIBCXX_USE_CONSTEXPR
int digits 1362 = __glibcxx_digits (
long long);
1363 static _GLIBCXX_USE_CONSTEXPR
int digits10 1364 = __glibcxx_digits10 (
long long);
1365 #if __cplusplus >= 201103L 1368 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
true;
1369 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
1370 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
1371 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
1373 static _GLIBCXX_CONSTEXPR
long long 1374 epsilon() _GLIBCXX_USE_NOEXCEPT {
return 0; }
1376 static _GLIBCXX_CONSTEXPR
long long 1377 round_error() _GLIBCXX_USE_NOEXCEPT {
return 0; }
1384 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
1391 static _GLIBCXX_CONSTEXPR
long long 1392 infinity() _GLIBCXX_USE_NOEXCEPT {
return static_cast<long long>(0); }
1394 static _GLIBCXX_CONSTEXPR
long long 1395 quiet_NaN() _GLIBCXX_USE_NOEXCEPT {
return static_cast<long long>(0); }
1397 static _GLIBCXX_CONSTEXPR
long long 1398 signaling_NaN() _GLIBCXX_USE_NOEXCEPT
1399 {
return static_cast<long long>(0); }
1401 static _GLIBCXX_CONSTEXPR
long long 1402 denorm_min() _GLIBCXX_USE_NOEXCEPT {
return static_cast<long long>(0); }
1404 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
1405 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
1406 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
false;
1408 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
1420 static _GLIBCXX_CONSTEXPR
unsigned long long 1421 min() _GLIBCXX_USE_NOEXCEPT {
return 0; }
1423 static _GLIBCXX_CONSTEXPR
unsigned long long 1424 max() _GLIBCXX_USE_NOEXCEPT {
return __LONG_LONG_MAX__ * 2ULL + 1; }
1426 #if __cplusplus >= 201103L 1427 static constexpr
unsigned long long 1428 lowest() noexcept {
return min(); }
1431 static _GLIBCXX_USE_CONSTEXPR
int digits 1432 = __glibcxx_digits (
unsigned long long);
1433 static _GLIBCXX_USE_CONSTEXPR
int digits10 1434 = __glibcxx_digits10 (
unsigned long long);
1435 #if __cplusplus >= 201103L 1438 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
false;
1439 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
1440 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
1441 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
1443 static _GLIBCXX_CONSTEXPR
unsigned long long 1444 epsilon() _GLIBCXX_USE_NOEXCEPT {
return 0; }
1446 static _GLIBCXX_CONSTEXPR
unsigned long long 1447 round_error() _GLIBCXX_USE_NOEXCEPT {
return 0; }
1454 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
1461 static _GLIBCXX_CONSTEXPR
unsigned long long 1462 infinity() _GLIBCXX_USE_NOEXCEPT
1463 {
return static_cast<unsigned long long>(0); }
1465 static _GLIBCXX_CONSTEXPR
unsigned long long 1466 quiet_NaN() _GLIBCXX_USE_NOEXCEPT
1467 {
return static_cast<unsigned long long>(0); }
1469 static _GLIBCXX_CONSTEXPR
unsigned long long 1470 signaling_NaN() _GLIBCXX_USE_NOEXCEPT
1471 {
return static_cast<unsigned long long>(0); }
1473 static _GLIBCXX_CONSTEXPR
unsigned long long 1474 denorm_min() _GLIBCXX_USE_NOEXCEPT
1475 {
return static_cast<unsigned long long>(0); }
1477 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
1478 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
1479 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
true;
1481 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
1487 #define __INT_N(TYPE, BITSIZE, EXT, UEXT) \ 1490 struct numeric_limits<TYPE> \ 1492 static _GLIBCXX_USE_CONSTEXPR bool is_specialized = true; \ 1494 static _GLIBCXX_CONSTEXPR TYPE \ 1495 min() _GLIBCXX_USE_NOEXCEPT { return __glibcxx_min_b (TYPE, BITSIZE); } \ 1497 static _GLIBCXX_CONSTEXPR TYPE \ 1498 max() _GLIBCXX_USE_NOEXCEPT { return __glibcxx_max_b (TYPE, BITSIZE); } \ 1500 static _GLIBCXX_USE_CONSTEXPR int digits \ 1502 static _GLIBCXX_USE_CONSTEXPR int digits10 \ 1503 = (BITSIZE - 1) * 643L / 2136; \ 1505 static _GLIBCXX_USE_CONSTEXPR bool is_signed = true; \ 1506 static _GLIBCXX_USE_CONSTEXPR bool is_integer = true; \ 1507 static _GLIBCXX_USE_CONSTEXPR bool is_exact = true; \ 1508 static _GLIBCXX_USE_CONSTEXPR int radix = 2; \ 1510 static _GLIBCXX_CONSTEXPR TYPE \ 1511 epsilon() _GLIBCXX_USE_NOEXCEPT { return 0; } \ 1513 static _GLIBCXX_CONSTEXPR TYPE \ 1514 round_error() _GLIBCXX_USE_NOEXCEPT { return 0; } \ 1518 static _GLIBCXX_USE_CONSTEXPR int min_exponent = 0; \ 1519 static _GLIBCXX_USE_CONSTEXPR int min_exponent10 = 0; \ 1520 static _GLIBCXX_USE_CONSTEXPR int max_exponent = 0; \ 1521 static _GLIBCXX_USE_CONSTEXPR int max_exponent10 = 0; \ 1523 static _GLIBCXX_USE_CONSTEXPR bool has_infinity = false; \ 1524 static _GLIBCXX_USE_CONSTEXPR bool has_quiet_NaN = false; \ 1525 static _GLIBCXX_USE_CONSTEXPR bool has_signaling_NaN = false; \ 1526 static _GLIBCXX_USE_CONSTEXPR float_denorm_style has_denorm \ 1528 static _GLIBCXX_USE_CONSTEXPR bool has_denorm_loss = false; \ 1530 static _GLIBCXX_CONSTEXPR TYPE \ 1531 infinity() _GLIBCXX_USE_NOEXCEPT \ 1532 { return static_cast<TYPE>(0); } \ 1534 static _GLIBCXX_CONSTEXPR TYPE \ 1535 quiet_NaN() _GLIBCXX_USE_NOEXCEPT \ 1536 { return static_cast<TYPE>(0); } \ 1538 static _GLIBCXX_CONSTEXPR TYPE \ 1539 signaling_NaN() _GLIBCXX_USE_NOEXCEPT \ 1540 { return static_cast<TYPE>(0); } \ 1542 static _GLIBCXX_CONSTEXPR TYPE \ 1543 denorm_min() _GLIBCXX_USE_NOEXCEPT \ 1544 { return static_cast<TYPE>(0); } \ 1546 static _GLIBCXX_USE_CONSTEXPR bool is_iec559 = false; \ 1547 static _GLIBCXX_USE_CONSTEXPR bool is_bounded = true; \ 1548 static _GLIBCXX_USE_CONSTEXPR bool is_modulo = false; \ 1550 static _GLIBCXX_USE_CONSTEXPR bool traps \ 1551 = __glibcxx_integral_traps; \ 1552 static _GLIBCXX_USE_CONSTEXPR bool tinyness_before = false; \ 1553 static _GLIBCXX_USE_CONSTEXPR float_round_style round_style \ 1554 = round_toward_zero; \ 1559 struct numeric_limits<unsigned TYPE> \ 1561 static _GLIBCXX_USE_CONSTEXPR bool is_specialized = true; \ 1563 static _GLIBCXX_CONSTEXPR unsigned TYPE \ 1564 min() _GLIBCXX_USE_NOEXCEPT { return 0; } \ 1566 static _GLIBCXX_CONSTEXPR unsigned TYPE \ 1567 max() _GLIBCXX_USE_NOEXCEPT \ 1568 { return __glibcxx_max_b (unsigned TYPE, BITSIZE); } \ 1572 static _GLIBCXX_USE_CONSTEXPR int digits \ 1574 static _GLIBCXX_USE_CONSTEXPR int digits10 \ 1575 = BITSIZE * 643L / 2136; \ 1576 static _GLIBCXX_USE_CONSTEXPR bool is_signed = false; \ 1577 static _GLIBCXX_USE_CONSTEXPR bool is_integer = true; \ 1578 static _GLIBCXX_USE_CONSTEXPR bool is_exact = true; \ 1579 static _GLIBCXX_USE_CONSTEXPR int radix = 2; \ 1581 static _GLIBCXX_CONSTEXPR unsigned TYPE \ 1582 epsilon() _GLIBCXX_USE_NOEXCEPT { return 0; } \ 1584 static _GLIBCXX_CONSTEXPR unsigned TYPE \ 1585 round_error() _GLIBCXX_USE_NOEXCEPT { return 0; } \ 1587 static _GLIBCXX_USE_CONSTEXPR int min_exponent = 0; \ 1588 static _GLIBCXX_USE_CONSTEXPR int min_exponent10 = 0; \ 1589 static _GLIBCXX_USE_CONSTEXPR int max_exponent = 0; \ 1590 static _GLIBCXX_USE_CONSTEXPR int max_exponent10 = 0; \ 1592 static _GLIBCXX_USE_CONSTEXPR bool has_infinity = false; \ 1593 static _GLIBCXX_USE_CONSTEXPR bool has_quiet_NaN = false; \ 1594 static _GLIBCXX_USE_CONSTEXPR bool has_signaling_NaN = false; \ 1595 static _GLIBCXX_USE_CONSTEXPR float_denorm_style has_denorm \ 1597 static _GLIBCXX_USE_CONSTEXPR bool has_denorm_loss = false; \ 1599 static _GLIBCXX_CONSTEXPR unsigned TYPE \ 1600 infinity() _GLIBCXX_USE_NOEXCEPT \ 1601 { return static_cast<unsigned TYPE>(0); } \ 1603 static _GLIBCXX_CONSTEXPR unsigned TYPE \ 1604 quiet_NaN() _GLIBCXX_USE_NOEXCEPT \ 1605 { return static_cast<unsigned TYPE>(0); } \ 1607 static _GLIBCXX_CONSTEXPR unsigned TYPE \ 1608 signaling_NaN() _GLIBCXX_USE_NOEXCEPT \ 1609 { return static_cast<unsigned TYPE>(0); } \ 1611 static _GLIBCXX_CONSTEXPR unsigned TYPE \ 1612 denorm_min() _GLIBCXX_USE_NOEXCEPT \ 1613 { return static_cast<unsigned TYPE>(0); } \ 1615 static _GLIBCXX_USE_CONSTEXPR bool is_iec559 = false; \ 1616 static _GLIBCXX_USE_CONSTEXPR bool is_bounded = true; \ 1617 static _GLIBCXX_USE_CONSTEXPR bool is_modulo = true; \ 1619 static _GLIBCXX_USE_CONSTEXPR bool traps = __glibcxx_integral_traps; \ 1620 static _GLIBCXX_USE_CONSTEXPR bool tinyness_before = false; \ 1621 static _GLIBCXX_USE_CONSTEXPR float_round_style round_style \ 1622 = round_toward_zero; \ 1625 #if __cplusplus >= 201103L 1627 #define __INT_N_201103(TYPE) \ 1628 static constexpr TYPE \ 1629 lowest() noexcept { return min(); } \ 1630 static constexpr int max_digits10 = 0; 1632 #define __INT_N_U201103(TYPE) \ 1633 static constexpr unsigned TYPE \ 1634 lowest() noexcept { return min(); } \ 1635 static constexpr int max_digits10 = 0; 1638 #define __INT_N_201103(TYPE) 1639 #define __INT_N_U201103(TYPE) 1642 #ifdef __GLIBCXX_TYPE_INT_N_0 1643 __INT_N(__GLIBCXX_TYPE_INT_N_0, __GLIBCXX_BITSIZE_INT_N_0,
1644 __INT_N_201103 (__GLIBCXX_TYPE_INT_N_0),
1645 __INT_N_U201103 (__GLIBCXX_TYPE_INT_N_0))
1647 #ifdef __GLIBCXX_TYPE_INT_N_1 1648 __INT_N (__GLIBCXX_TYPE_INT_N_1, __GLIBCXX_BITSIZE_INT_N_1,
1649 __INT_N_201103 (__GLIBCXX_TYPE_INT_N_1),
1650 __INT_N_U201103 (__GLIBCXX_TYPE_INT_N_1))
1652 #ifdef __GLIBCXX_TYPE_INT_N_2 1653 __INT_N (__GLIBCXX_TYPE_INT_N_2, __GLIBCXX_BITSIZE_INT_N_2,
1654 __INT_N_201103 (__GLIBCXX_TYPE_INT_N_2),
1655 __INT_N_U201103 (__GLIBCXX_TYPE_INT_N_2))
1657 #ifdef __GLIBCXX_TYPE_INT_N_3 1658 __INT_N (__GLIBCXX_TYPE_INT_N_3, __GLIBCXX_BITSIZE_INT_N_3,
1659 __INT_N_201103 (__GLIBCXX_TYPE_INT_N_3),
1660 __INT_N_U201103 (__GLIBCXX_TYPE_INT_N_3))
1663 #if defined __STRICT_ANSI__ && defined __SIZEOF_INT128__ 1664 __INT_N(__int128, 128,
1665 __INT_N_201103 (__int128),
1666 __INT_N_U201103 (__int128))
1670 #undef __INT_N_201103 1671 #undef __INT_N_U201103 1680 static _GLIBCXX_CONSTEXPR
float 1681 min() _GLIBCXX_USE_NOEXCEPT {
return __FLT_MIN__; }
1683 static _GLIBCXX_CONSTEXPR
float 1684 max() _GLIBCXX_USE_NOEXCEPT {
return __FLT_MAX__; }
1686 #if __cplusplus >= 201103L 1687 static constexpr
float 1688 lowest() noexcept {
return -__FLT_MAX__; }
1691 static _GLIBCXX_USE_CONSTEXPR
int digits = __FLT_MANT_DIG__;
1692 static _GLIBCXX_USE_CONSTEXPR
int digits10 = __FLT_DIG__;
1693 #if __cplusplus >= 201103L 1695 = __glibcxx_max_digits10 (__FLT_MANT_DIG__);
1697 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
true;
1698 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
false;
1699 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
false;
1700 static _GLIBCXX_USE_CONSTEXPR
int radix = __FLT_RADIX__;
1702 static _GLIBCXX_CONSTEXPR
float 1703 epsilon() _GLIBCXX_USE_NOEXCEPT {
return __FLT_EPSILON__; }
1705 static _GLIBCXX_CONSTEXPR
float 1706 round_error() _GLIBCXX_USE_NOEXCEPT {
return 0.5F; }
1708 static _GLIBCXX_USE_CONSTEXPR
int min_exponent = __FLT_MIN_EXP__;
1709 static _GLIBCXX_USE_CONSTEXPR
int min_exponent10 = __FLT_MIN_10_EXP__;
1710 static _GLIBCXX_USE_CONSTEXPR
int max_exponent = __FLT_MAX_EXP__;
1711 static _GLIBCXX_USE_CONSTEXPR
int max_exponent10 = __FLT_MAX_10_EXP__;
1713 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity = __FLT_HAS_INFINITY__;
1714 static _GLIBCXX_USE_CONSTEXPR
bool has_quiet_NaN = __FLT_HAS_QUIET_NAN__;
1719 = __glibcxx_float_has_denorm_loss;
1721 static _GLIBCXX_CONSTEXPR
float 1722 infinity() _GLIBCXX_USE_NOEXCEPT {
return __builtin_huge_valf(); }
1724 static _GLIBCXX_CONSTEXPR
float 1725 quiet_NaN() _GLIBCXX_USE_NOEXCEPT {
return __builtin_nanf(
""); }
1727 static _GLIBCXX_CONSTEXPR
float 1728 signaling_NaN() _GLIBCXX_USE_NOEXCEPT {
return __builtin_nansf(
""); }
1730 static _GLIBCXX_CONSTEXPR
float 1731 denorm_min() _GLIBCXX_USE_NOEXCEPT {
return __FLT_DENORM_MIN__; }
1733 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 1735 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
1736 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
false;
1738 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_float_traps;
1740 = __glibcxx_float_tinyness_before;
1745 #undef __glibcxx_float_has_denorm_loss 1746 #undef __glibcxx_float_traps 1747 #undef __glibcxx_float_tinyness_before 1755 static _GLIBCXX_CONSTEXPR
double 1756 min() _GLIBCXX_USE_NOEXCEPT {
return __DBL_MIN__; }
1758 static _GLIBCXX_CONSTEXPR
double 1759 max() _GLIBCXX_USE_NOEXCEPT {
return __DBL_MAX__; }
1761 #if __cplusplus >= 201103L 1762 static constexpr
double 1763 lowest() noexcept {
return -__DBL_MAX__; }
1766 static _GLIBCXX_USE_CONSTEXPR
int digits = __DBL_MANT_DIG__;
1767 static _GLIBCXX_USE_CONSTEXPR
int digits10 = __DBL_DIG__;
1768 #if __cplusplus >= 201103L 1770 = __glibcxx_max_digits10 (__DBL_MANT_DIG__);
1772 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
true;
1773 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
false;
1774 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
false;
1775 static _GLIBCXX_USE_CONSTEXPR
int radix = __FLT_RADIX__;
1777 static _GLIBCXX_CONSTEXPR
double 1778 epsilon() _GLIBCXX_USE_NOEXCEPT {
return __DBL_EPSILON__; }
1780 static _GLIBCXX_CONSTEXPR
double 1781 round_error() _GLIBCXX_USE_NOEXCEPT {
return 0.5; }
1783 static _GLIBCXX_USE_CONSTEXPR
int min_exponent = __DBL_MIN_EXP__;
1784 static _GLIBCXX_USE_CONSTEXPR
int min_exponent10 = __DBL_MIN_10_EXP__;
1785 static _GLIBCXX_USE_CONSTEXPR
int max_exponent = __DBL_MAX_EXP__;
1786 static _GLIBCXX_USE_CONSTEXPR
int max_exponent10 = __DBL_MAX_10_EXP__;
1788 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity = __DBL_HAS_INFINITY__;
1789 static _GLIBCXX_USE_CONSTEXPR
bool has_quiet_NaN = __DBL_HAS_QUIET_NAN__;
1794 = __glibcxx_double_has_denorm_loss;
1796 static _GLIBCXX_CONSTEXPR
double 1797 infinity() _GLIBCXX_USE_NOEXCEPT {
return __builtin_huge_val(); }
1799 static _GLIBCXX_CONSTEXPR
double 1800 quiet_NaN() _GLIBCXX_USE_NOEXCEPT {
return __builtin_nan(
""); }
1802 static _GLIBCXX_CONSTEXPR
double 1803 signaling_NaN() _GLIBCXX_USE_NOEXCEPT {
return __builtin_nans(
""); }
1805 static _GLIBCXX_CONSTEXPR
double 1806 denorm_min() _GLIBCXX_USE_NOEXCEPT {
return __DBL_DENORM_MIN__; }
1808 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 1810 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
1811 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
false;
1813 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_double_traps;
1815 = __glibcxx_double_tinyness_before;
1820 #undef __glibcxx_double_has_denorm_loss 1821 #undef __glibcxx_double_traps 1822 #undef __glibcxx_double_tinyness_before 1830 static _GLIBCXX_CONSTEXPR
long double 1831 min() _GLIBCXX_USE_NOEXCEPT {
return __LDBL_MIN__; }
1833 static _GLIBCXX_CONSTEXPR
long double 1834 max() _GLIBCXX_USE_NOEXCEPT {
return __LDBL_MAX__; }
1836 #if __cplusplus >= 201103L 1837 static constexpr
long double 1838 lowest() noexcept {
return -__LDBL_MAX__; }
1841 static _GLIBCXX_USE_CONSTEXPR
int digits = __LDBL_MANT_DIG__;
1842 static _GLIBCXX_USE_CONSTEXPR
int digits10 = __LDBL_DIG__;
1843 #if __cplusplus >= 201103L 1845 = __glibcxx_max_digits10 (__LDBL_MANT_DIG__);
1847 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
true;
1848 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
false;
1849 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
false;
1850 static _GLIBCXX_USE_CONSTEXPR
int radix = __FLT_RADIX__;
1852 static _GLIBCXX_CONSTEXPR
long double 1853 epsilon() _GLIBCXX_USE_NOEXCEPT {
return __LDBL_EPSILON__; }
1855 static _GLIBCXX_CONSTEXPR
long double 1856 round_error() _GLIBCXX_USE_NOEXCEPT {
return 0.5L; }
1858 static _GLIBCXX_USE_CONSTEXPR
int min_exponent = __LDBL_MIN_EXP__;
1859 static _GLIBCXX_USE_CONSTEXPR
int min_exponent10 = __LDBL_MIN_10_EXP__;
1860 static _GLIBCXX_USE_CONSTEXPR
int max_exponent = __LDBL_MAX_EXP__;
1861 static _GLIBCXX_USE_CONSTEXPR
int max_exponent10 = __LDBL_MAX_10_EXP__;
1863 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity = __LDBL_HAS_INFINITY__;
1864 static _GLIBCXX_USE_CONSTEXPR
bool has_quiet_NaN = __LDBL_HAS_QUIET_NAN__;
1869 = __glibcxx_long_double_has_denorm_loss;
1871 static _GLIBCXX_CONSTEXPR
long double 1872 infinity() _GLIBCXX_USE_NOEXCEPT {
return __builtin_huge_vall(); }
1874 static _GLIBCXX_CONSTEXPR
long double 1875 quiet_NaN() _GLIBCXX_USE_NOEXCEPT {
return __builtin_nanl(
""); }
1877 static _GLIBCXX_CONSTEXPR
long double 1878 signaling_NaN() _GLIBCXX_USE_NOEXCEPT {
return __builtin_nansl(
""); }
1880 static _GLIBCXX_CONSTEXPR
long double 1881 denorm_min() _GLIBCXX_USE_NOEXCEPT {
return __LDBL_DENORM_MIN__; }
1883 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 1885 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
1886 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
false;
1888 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_long_double_traps;
1890 __glibcxx_long_double_tinyness_before;
1895 #undef __glibcxx_long_double_has_denorm_loss 1896 #undef __glibcxx_long_double_traps 1897 #undef __glibcxx_long_double_tinyness_before 1899 #define __glibcxx_concat3_(P,M,S) P ## M ## S 1900 #define __glibcxx_concat3(P,M,S) __glibcxx_concat3_ (P,M,S) 1902 #if __cplusplus >= 201103L 1903 # define __max_digits10 max_digits10 1906 #define __glibcxx_float_n(BITSIZE) \ 1909 struct numeric_limits<_Float##BITSIZE> \ 1911 static _GLIBCXX_USE_CONSTEXPR bool is_specialized = true; \ 1913 static _GLIBCXX_CONSTEXPR _Float##BITSIZE \ 1914 min() _GLIBCXX_USE_NOEXCEPT \ 1915 { return __glibcxx_concat3 (__FLT, BITSIZE, _MIN__); } \ 1917 static _GLIBCXX_CONSTEXPR _Float##BITSIZE \ 1918 max() _GLIBCXX_USE_NOEXCEPT \ 1919 { return __glibcxx_concat3 (__FLT, BITSIZE, _MAX__); } \ 1921 static _GLIBCXX_CONSTEXPR _Float##BITSIZE \ 1922 lowest() _GLIBCXX_USE_NOEXCEPT \ 1923 { return -__glibcxx_concat3 (__FLT, BITSIZE, _MAX__); } \ 1925 static _GLIBCXX_USE_CONSTEXPR int digits \ 1926 = __glibcxx_concat3 (__FLT, BITSIZE, _MANT_DIG__); \ 1927 static _GLIBCXX_USE_CONSTEXPR int digits10 \ 1928 = __glibcxx_concat3 (__FLT, BITSIZE, _DIG__); \ 1929 static _GLIBCXX_USE_CONSTEXPR int __max_digits10 \ 1930 = __glibcxx_max_digits10 (__glibcxx_concat3 (__FLT, BITSIZE, \ 1932 static _GLIBCXX_USE_CONSTEXPR bool is_signed = true; \ 1933 static _GLIBCXX_USE_CONSTEXPR bool is_integer = false; \ 1934 static _GLIBCXX_USE_CONSTEXPR bool is_exact = false; \ 1935 static _GLIBCXX_USE_CONSTEXPR int radix = __FLT_RADIX__; \ 1937 static _GLIBCXX_CONSTEXPR _Float##BITSIZE \ 1938 epsilon() _GLIBCXX_USE_NOEXCEPT \ 1939 { return __glibcxx_concat3 (__FLT, BITSIZE, _EPSILON__); } \ 1941 static _GLIBCXX_CONSTEXPR _Float##BITSIZE \ 1942 round_error() _GLIBCXX_USE_NOEXCEPT { return 0.5F##BITSIZE; } \ 1944 static _GLIBCXX_USE_CONSTEXPR int min_exponent \ 1945 = __glibcxx_concat3 (__FLT, BITSIZE, _MIN_EXP__); \ 1946 static _GLIBCXX_USE_CONSTEXPR int min_exponent10 \ 1947 = __glibcxx_concat3 (__FLT, BITSIZE, _MIN_10_EXP__); \ 1948 static _GLIBCXX_USE_CONSTEXPR int max_exponent \ 1949 = __glibcxx_concat3 (__FLT, BITSIZE, _MAX_EXP__); \ 1950 static _GLIBCXX_USE_CONSTEXPR int max_exponent10 \ 1951 = __glibcxx_concat3 (__FLT, BITSIZE, _MAX_10_EXP__); \ 1953 static _GLIBCXX_USE_CONSTEXPR bool has_infinity \ 1954 = __glibcxx_concat3 (__FLT, BITSIZE, _HAS_INFINITY__); \ 1955 static _GLIBCXX_USE_CONSTEXPR bool has_quiet_NaN \ 1956 = __glibcxx_concat3 (__FLT, BITSIZE, _HAS_QUIET_NAN__); \ 1957 static _GLIBCXX_USE_CONSTEXPR bool has_signaling_NaN \ 1959 static _GLIBCXX_USE_CONSTEXPR float_denorm_style has_denorm \ 1960 = bool(__glibcxx_concat3 (__FLT, BITSIZE, _HAS_DENORM__)) \ 1961 ? denorm_present : denorm_absent; \ 1962 static _GLIBCXX_USE_CONSTEXPR bool has_denorm_loss = false; \ 1964 static _GLIBCXX_CONSTEXPR _Float##BITSIZE \ 1965 infinity() _GLIBCXX_USE_NOEXCEPT \ 1966 { return __builtin_huge_valf##BITSIZE(); } \ 1968 static _GLIBCXX_CONSTEXPR _Float##BITSIZE \ 1969 quiet_NaN() _GLIBCXX_USE_NOEXCEPT \ 1970 { return __builtin_nanf##BITSIZE(""); } \ 1972 static _GLIBCXX_CONSTEXPR _Float##BITSIZE \ 1973 signaling_NaN() _GLIBCXX_USE_NOEXCEPT \ 1974 { return __builtin_nansf##BITSIZE(""); } \ 1976 static _GLIBCXX_CONSTEXPR _Float##BITSIZE \ 1977 denorm_min() _GLIBCXX_USE_NOEXCEPT \ 1978 { return __glibcxx_concat3 (__FLT, BITSIZE, _DENORM_MIN__); } \ 1980 static _GLIBCXX_USE_CONSTEXPR bool is_iec559 \ 1981 = has_infinity && has_quiet_NaN && has_denorm == denorm_present;\ 1982 static _GLIBCXX_USE_CONSTEXPR bool is_bounded = true; \ 1983 static _GLIBCXX_USE_CONSTEXPR bool is_modulo = false; \ 1985 static _GLIBCXX_USE_CONSTEXPR bool traps = false; \ 1986 static _GLIBCXX_USE_CONSTEXPR bool tinyness_before = false; \ 1987 static _GLIBCXX_USE_CONSTEXPR float_round_style round_style \ 1988 = round_to_nearest; \ 1991 #ifdef __STDCPP_FLOAT16_T__ 1992 __glibcxx_float_n(16)
1994 #ifdef __FLT32_DIG__ 1995 __glibcxx_float_n(32)
1997 #ifdef __FLT64_DIG__ 1998 __glibcxx_float_n(64)
2000 #ifdef __FLT128_DIG__ 2001 __glibcxx_float_n(128)
2003 #undef __glibcxx_float_n 2004 #undef __glibcxx_concat3 2005 #undef __glibcxx_concat3_ 2007 #if __cplusplus >= 201103L 2008 # undef __max_digits10 2011 #ifdef __STDCPP_BFLOAT16_T__ 2018 static _GLIBCXX_CONSTEXPR __gnu_cxx::__bfloat16_t
2019 min() _GLIBCXX_USE_NOEXCEPT
2020 {
return __BFLT16_MIN__; }
2022 static _GLIBCXX_CONSTEXPR __gnu_cxx::__bfloat16_t
2023 max() _GLIBCXX_USE_NOEXCEPT
2024 {
return __BFLT16_MAX__; }
2026 static _GLIBCXX_CONSTEXPR __gnu_cxx::__bfloat16_t
2027 lowest() _GLIBCXX_USE_NOEXCEPT
2028 {
return -__BFLT16_MAX__; }
2030 static _GLIBCXX_USE_CONSTEXPR
int digits = __BFLT16_MANT_DIG__;
2031 static _GLIBCXX_USE_CONSTEXPR
int digits10 = __BFLT16_DIG__;
2032 #if __cplusplus >= 201103L 2034 = __glibcxx_max_digits10 (__BFLT16_MANT_DIG__);
2036 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
true;
2037 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
false;
2038 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
false;
2039 static _GLIBCXX_USE_CONSTEXPR
int radix = __FLT_RADIX__;
2041 static _GLIBCXX_CONSTEXPR __gnu_cxx::__bfloat16_t
2042 epsilon() _GLIBCXX_USE_NOEXCEPT
2043 {
return __BFLT16_EPSILON__; }
2045 static _GLIBCXX_CONSTEXPR __gnu_cxx::__bfloat16_t
2046 round_error() _GLIBCXX_USE_NOEXCEPT {
return 0.5BF16; }
2048 static _GLIBCXX_USE_CONSTEXPR
int min_exponent = __BFLT16_MIN_EXP__;
2049 static _GLIBCXX_USE_CONSTEXPR
int min_exponent10 = __BFLT16_MIN_10_EXP__;
2050 static _GLIBCXX_USE_CONSTEXPR
int max_exponent = __BFLT16_MAX_EXP__;
2051 static _GLIBCXX_USE_CONSTEXPR
int max_exponent10 = __BFLT16_MAX_10_EXP__;
2054 = __BFLT16_HAS_INFINITY__;
2056 = __BFLT16_HAS_QUIET_NAN__;
2062 static _GLIBCXX_CONSTEXPR __gnu_cxx::__bfloat16_t
2063 infinity() _GLIBCXX_USE_NOEXCEPT
2064 {
return __gnu_cxx::__bfloat16_t(__builtin_huge_valf()); }
2066 static _GLIBCXX_CONSTEXPR __gnu_cxx::__bfloat16_t
2067 quiet_NaN() _GLIBCXX_USE_NOEXCEPT
2068 {
return __gnu_cxx::__bfloat16_t(__builtin_nanf(
"")); }
2070 static _GLIBCXX_CONSTEXPR __gnu_cxx::__bfloat16_t
2071 signaling_NaN() _GLIBCXX_USE_NOEXCEPT
2072 {
return __builtin_nansf16b(
""); }
2074 static _GLIBCXX_CONSTEXPR __gnu_cxx::__bfloat16_t
2075 denorm_min() _GLIBCXX_USE_NOEXCEPT
2076 {
return __BFLT16_DENORM_MIN__; }
2078 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 2080 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
2081 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
false;
2083 static _GLIBCXX_USE_CONSTEXPR
bool traps =
false;
2088 #endif // __STDCPP_BFLOAT16_T__ 2090 #if defined(_GLIBCXX_USE_FLOAT128) 2092 #if ! defined(__STRICT_ANSI__) || defined(_GLIBCXX_DOUBLE_IS_IEEE_BINARY64) 2099 static _GLIBCXX_CONSTEXPR __float128
2100 min() _GLIBCXX_USE_NOEXCEPT
2102 #ifdef __STRICT_ANSI__ 2104 return double(9.3132257461547852e-10) * _S_1pm16352();
2106 return __extension__ 0x1.0p-16382Q;
2110 static _GLIBCXX_CONSTEXPR __float128
2111 max() _GLIBCXX_USE_NOEXCEPT
2113 #ifdef __STRICT_ANSI__ 2116 return (__float128(
double(3.4028236692093843e+38))
2117 +
double(3.7778931862957153e+22) +
double(8.35584e+6))
2120 return __extension__ 0x1.ffffffffffffffffffffffffffffp+16383Q;
2124 static _GLIBCXX_CONSTEXPR __float128
2125 lowest() _GLIBCXX_USE_NOEXCEPT
2128 static _GLIBCXX_USE_CONSTEXPR
int digits = 113;
2129 static _GLIBCXX_USE_CONSTEXPR
int digits10 = 33;
2130 #if __cplusplus >= 201103L 2133 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
true;
2134 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
false;
2135 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
false;
2136 static _GLIBCXX_USE_CONSTEXPR
int radix = __FLT_RADIX__;
2138 static _GLIBCXX_CONSTEXPR __float128
2139 epsilon() _GLIBCXX_USE_NOEXCEPT
2140 {
return double(1.9259299443872359e-34); }
2142 static _GLIBCXX_CONSTEXPR __float128
2143 round_error() _GLIBCXX_USE_NOEXCEPT {
return 0.5; }
2145 static _GLIBCXX_USE_CONSTEXPR
int min_exponent = -16381;
2147 static _GLIBCXX_USE_CONSTEXPR
int max_exponent = 16384;
2152 #if __has_builtin(__builtin_nansq) \ 2153 || (__has_builtin(__builtin_bit_cast) && __has_builtin(__builtin_nansf128)) 2156 static _GLIBCXX_USE_CONSTEXPR
bool has_signaling_NaN =
false;
2162 static _GLIBCXX_CONSTEXPR __float128
2163 infinity() _GLIBCXX_USE_NOEXCEPT
2164 {
return __builtin_huge_val(); }
2166 static _GLIBCXX_CONSTEXPR __float128
2167 quiet_NaN() _GLIBCXX_USE_NOEXCEPT
2168 {
return __builtin_nan(
""); }
2170 static _GLIBCXX_CONSTEXPR __float128
2171 signaling_NaN() _GLIBCXX_USE_NOEXCEPT
2173 #if __has_builtin(__builtin_nansq) 2174 return __builtin_nansq(
"");
2175 #elif __has_builtin(__builtin_bit_cast) && __has_builtin(__builtin_nansf128) 2176 return __builtin_bit_cast(__float128, __builtin_nansf128(
""));
2182 static _GLIBCXX_CONSTEXPR __float128
2183 denorm_min() _GLIBCXX_USE_NOEXCEPT
2185 #if defined(__STRICT_ANSI__) || defined(__INTEL_COMPILER) 2187 return double(1.7936620343357659e-43) * _S_1pm16352();
2189 return __extension__ 0x1.0p-16494Q;
2194 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
2195 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
false;
2197 static _GLIBCXX_USE_CONSTEXPR
bool traps =
false;
2202 #if defined(__STRICT_ANSI__) || defined(__INTEL_COMPILER) 2204 static _GLIBCXX_CONSTEXPR __float128
2205 _S_4p(__float128 __v) _GLIBCXX_USE_NOEXCEPT
2206 {
return __v * __v * __v * __v; }
2208 static _GLIBCXX_CONSTEXPR __float128
2209 _S_1pm4088() _GLIBCXX_USE_NOEXCEPT
2210 {
return _S_4p(
double(2.2250738585072014e-308)); }
2212 static _GLIBCXX_CONSTEXPR __float128
2213 _S_1pm16352() _GLIBCXX_USE_NOEXCEPT
2214 {
return _S_4p(_S_1pm4088()); }
2216 static _GLIBCXX_CONSTEXPR __float128
2217 _S_1p4064() _GLIBCXX_USE_NOEXCEPT
2218 {
return _S_4p(
double(7.0222388080559215e+305)); }
2220 static _GLIBCXX_CONSTEXPR __float128
2221 _S_1p16256() _GLIBCXX_USE_NOEXCEPT
2222 {
return _S_4p(_S_1p4064()); }
2225 #endif // !__STRICT_ANSI__ || DOUBLE_IS_IEEE_BINARY64 2226 #endif // _GLIBCXX_USE_FLOAT128 2228 _GLIBCXX_END_NAMESPACE_VERSION
2231 #undef __glibcxx_signed 2232 #undef __glibcxx_min 2233 #undef __glibcxx_max 2234 #undef __glibcxx_digits 2235 #undef __glibcxx_digits10 2236 #undef __glibcxx_max_digits10 2238 #pragma GCC diagnostic pop 2239 #endif // _GLIBCXX_NUMERIC_LIMITS static constexpr bool tinyness_before
constexpr const _Tp & max(const _Tp &, const _Tp &)
This does what you think it does.
static constexpr _Tp denorm_min() noexcept
To the nearest representable value.
static constexpr bool has_infinity
static constexpr int min_exponent10
static constexpr _Tp round_error() noexcept
static constexpr bool is_specialized
static constexpr int min_exponent
float_denorm_style
Describes the denormalization for floating-point types.
The type allows denormalized values.
static constexpr bool is_exact
static constexpr bool is_modulo
static constexpr int radix
static constexpr int max_exponent
static constexpr bool is_signed
static constexpr bool is_bounded
Indeterminate at compile time whether denormalized values are allowed.
ISO C++ entities toplevel namespace is std.
The type does not allow denormalized values.
static constexpr _Tp signaling_NaN() noexcept
static constexpr bool has_signaling_NaN
static constexpr float_round_style round_style
static constexpr int max_digits10
static constexpr _Tp infinity() noexcept
Properties of fundamental types.
static constexpr _Tp quiet_NaN() noexcept
static constexpr bool traps
static constexpr bool is_iec559
static constexpr _Tp max() noexcept
static constexpr float_denorm_style has_denorm
static constexpr bool has_denorm_loss
static constexpr int max_exponent10
static constexpr _Tp lowest() noexcept
static constexpr _Tp epsilon() noexcept
static constexpr _Tp min() noexcept
static constexpr int digits10
static constexpr bool has_quiet_NaN
static constexpr int digits
Part of std::numeric_limits.
static constexpr bool is_integer
float_round_style
Describes the rounding style for floating-point types.
constexpr const _Tp & min(const _Tp &, const _Tp &)
This does what you think it does.