38 #ifndef _GLIBCXX_NUMERIC_LIMITS
39 #define _GLIBCXX_NUMERIC_LIMITS 1
41 #pragma GCC system_header
80 #ifndef __glibcxx_integral_traps
81 # define __glibcxx_integral_traps true
89 #ifndef __glibcxx_float_has_denorm_loss
90 # define __glibcxx_float_has_denorm_loss false
92 #ifndef __glibcxx_float_traps
93 # define __glibcxx_float_traps false
95 #ifndef __glibcxx_float_tinyness_before
96 # define __glibcxx_float_tinyness_before false
103 #ifndef __glibcxx_double_has_denorm_loss
104 # define __glibcxx_double_has_denorm_loss false
106 #ifndef __glibcxx_double_traps
107 # define __glibcxx_double_traps false
109 #ifndef __glibcxx_double_tinyness_before
110 # define __glibcxx_double_tinyness_before false
117 #ifndef __glibcxx_long_double_has_denorm_loss
118 # define __glibcxx_long_double_has_denorm_loss false
120 #ifndef __glibcxx_long_double_traps
121 # define __glibcxx_long_double_traps false
123 #ifndef __glibcxx_long_double_tinyness_before
124 # define __glibcxx_long_double_tinyness_before false
129 #define __glibcxx_signed(T) ((T)(-1) < 0)
131 #define __glibcxx_min(T) \
132 (__glibcxx_signed (T) ? (T)1 << __glibcxx_digits (T) : (T)0)
134 #define __glibcxx_max(T) \
135 (__glibcxx_signed (T) ? \
136 (((((T)1 << (__glibcxx_digits (T) - 1)) - 1) << 1) + 1) : ~(T)0)
138 #define __glibcxx_digits(T) \
139 (sizeof(T) * __CHAR_BIT__ - __glibcxx_signed (T))
142 #define __glibcxx_digits10(T) \
143 (__glibcxx_digits (T) * 643L / 2136)
145 #define __glibcxx_max_digits10(T) \
146 (2 + (T) * 643L / 2136)
148 namespace std _GLIBCXX_VISIBILITY(default)
150 _GLIBCXX_BEGIN_NAMESPACE_VERSION
159 round_indeterminate = -1,
201 static _GLIBCXX_USE_CONSTEXPR
int digits = 0;
206 #ifdef __GXX_EXPERIMENTAL_CXX0X__
223 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
false;
227 static _GLIBCXX_USE_CONSTEXPR
int radix = 0;
280 static _GLIBCXX_USE_CONSTEXPR
bool traps =
false;
303 template<
typename _Tp>
308 static _GLIBCXX_CONSTEXPR _Tp
309 min() throw() {
return static_cast<_Tp
>(0); }
312 static _GLIBCXX_CONSTEXPR _Tp
313 max() throw() {
return static_cast<_Tp
>(0); }
315 #ifdef __GXX_EXPERIMENTAL_CXX0X__
319 lowest() throw() {
return static_cast<_Tp
>(0); }
324 static _GLIBCXX_CONSTEXPR _Tp
325 epsilon() throw() {
return static_cast<_Tp
>(0); }
328 static _GLIBCXX_CONSTEXPR _Tp
332 static _GLIBCXX_CONSTEXPR _Tp
337 static _GLIBCXX_CONSTEXPR _Tp
342 static _GLIBCXX_CONSTEXPR _Tp
348 static _GLIBCXX_CONSTEXPR _Tp
352 #ifdef __GXX_EXPERIMENTAL_CXX0X__
353 template<
typename _Tp>
354 struct numeric_limits<const _Tp>
355 :
public numeric_limits<_Tp> { };
357 template<
typename _Tp>
358 struct numeric_limits<volatile _Tp>
359 :
public numeric_limits<_Tp> { };
361 template<
typename _Tp>
362 struct numeric_limits<const volatile _Tp>
363 :
public numeric_limits<_Tp> { };
375 static _GLIBCXX_CONSTEXPR
bool
376 min()
throw() {
return false; }
378 static _GLIBCXX_CONSTEXPR
bool
379 max()
throw() {
return true; }
381 #ifdef __GXX_EXPERIMENTAL_CXX0X__
382 static constexpr
bool
385 static _GLIBCXX_USE_CONSTEXPR
int digits = 1;
386 static _GLIBCXX_USE_CONSTEXPR
int digits10 = 0;
387 #ifdef __GXX_EXPERIMENTAL_CXX0X__
390 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
false;
391 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
392 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
393 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
395 static _GLIBCXX_CONSTEXPR
bool
396 epsilon()
throw() {
return false; }
398 static _GLIBCXX_CONSTEXPR
bool
406 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
413 static _GLIBCXX_CONSTEXPR
bool
414 infinity()
throw() {
return false; }
416 static _GLIBCXX_CONSTEXPR
bool
419 static _GLIBCXX_CONSTEXPR
bool
422 static _GLIBCXX_CONSTEXPR
bool
425 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
426 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
427 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
false;
432 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
444 static _GLIBCXX_CONSTEXPR
char
445 min()
throw() {
return __glibcxx_min(
char); }
447 static _GLIBCXX_CONSTEXPR
char
448 max()
throw() {
return __glibcxx_max(
char); }
450 #ifdef __GXX_EXPERIMENTAL_CXX0X__
451 static constexpr
char
455 static _GLIBCXX_USE_CONSTEXPR
int digits = __glibcxx_digits (
char);
456 static _GLIBCXX_USE_CONSTEXPR
int digits10 = __glibcxx_digits10 (
char);
457 #ifdef __GXX_EXPERIMENTAL_CXX0X__
460 static _GLIBCXX_USE_CONSTEXPR
bool is_signed = __glibcxx_signed (
char);
461 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
462 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
463 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
465 static _GLIBCXX_CONSTEXPR
char
466 epsilon()
throw() {
return 0; }
468 static _GLIBCXX_CONSTEXPR
char
476 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
483 static _GLIBCXX_CONSTEXPR
484 char infinity()
throw() {
return char(); }
486 static _GLIBCXX_CONSTEXPR
char
489 static _GLIBCXX_CONSTEXPR
char
492 static _GLIBCXX_CONSTEXPR
char
493 denorm_min()
throw() {
return static_cast<char>(0); }
495 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
496 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
497 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
true;
499 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
511 static _GLIBCXX_CONSTEXPR
signed char
512 min()
throw() {
return -__SCHAR_MAX__ - 1; }
514 static _GLIBCXX_CONSTEXPR
signed char
515 max()
throw() {
return __SCHAR_MAX__; }
517 #ifdef __GXX_EXPERIMENTAL_CXX0X__
518 static constexpr
signed char
522 static _GLIBCXX_USE_CONSTEXPR
int digits = __glibcxx_digits (
signed char);
523 static _GLIBCXX_USE_CONSTEXPR
int digits10
524 = __glibcxx_digits10 (
signed char);
525 #ifdef __GXX_EXPERIMENTAL_CXX0X__
528 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
true;
529 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
530 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
531 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
533 static _GLIBCXX_CONSTEXPR
signed char
534 epsilon()
throw() {
return 0; }
536 static _GLIBCXX_CONSTEXPR
signed char
544 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
551 static _GLIBCXX_CONSTEXPR
signed char
552 infinity()
throw() {
return static_cast<signed char>(0); }
554 static _GLIBCXX_CONSTEXPR
signed char
555 quiet_NaN()
throw() {
return static_cast<signed char>(0); }
557 static _GLIBCXX_CONSTEXPR
signed char
558 signaling_NaN()
throw() {
return static_cast<signed char>(0); }
560 static _GLIBCXX_CONSTEXPR
signed char
561 denorm_min()
throw() {
return static_cast<signed char>(0); }
563 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
564 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
565 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
true;
567 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
579 static _GLIBCXX_CONSTEXPR
unsigned char
580 min()
throw() {
return 0; }
582 static _GLIBCXX_CONSTEXPR
unsigned char
583 max()
throw() {
return __SCHAR_MAX__ * 2U + 1; }
585 #ifdef __GXX_EXPERIMENTAL_CXX0X__
586 static constexpr
unsigned char
590 static _GLIBCXX_USE_CONSTEXPR
int digits
591 = __glibcxx_digits (
unsigned char);
592 static _GLIBCXX_USE_CONSTEXPR
int digits10
593 = __glibcxx_digits10 (
unsigned char);
594 #ifdef __GXX_EXPERIMENTAL_CXX0X__
597 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
false;
598 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
599 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
600 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
602 static _GLIBCXX_CONSTEXPR
unsigned char
603 epsilon()
throw() {
return 0; }
605 static _GLIBCXX_CONSTEXPR
unsigned char
613 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
620 static _GLIBCXX_CONSTEXPR
unsigned char
621 infinity()
throw() {
return static_cast<unsigned char>(0); }
623 static _GLIBCXX_CONSTEXPR
unsigned char
624 quiet_NaN()
throw() {
return static_cast<unsigned char>(0); }
626 static _GLIBCXX_CONSTEXPR
unsigned char
627 signaling_NaN()
throw() {
return static_cast<unsigned char>(0); }
629 static _GLIBCXX_CONSTEXPR
unsigned char
630 denorm_min()
throw() {
return static_cast<unsigned char>(0); }
632 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
633 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
634 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
true;
636 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
648 static _GLIBCXX_CONSTEXPR
wchar_t
649 min()
throw() {
return __glibcxx_min (
wchar_t); }
651 static _GLIBCXX_CONSTEXPR
wchar_t
652 max()
throw() {
return __glibcxx_max (
wchar_t); }
654 #ifdef __GXX_EXPERIMENTAL_CXX0X__
655 static constexpr
wchar_t
659 static _GLIBCXX_USE_CONSTEXPR
int digits = __glibcxx_digits (
wchar_t);
660 static _GLIBCXX_USE_CONSTEXPR
int digits10
661 = __glibcxx_digits10 (
wchar_t);
662 #ifdef __GXX_EXPERIMENTAL_CXX0X__
665 static _GLIBCXX_USE_CONSTEXPR
bool is_signed = __glibcxx_signed (
wchar_t);
666 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
667 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
668 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
670 static _GLIBCXX_CONSTEXPR
wchar_t
671 epsilon()
throw() {
return 0; }
673 static _GLIBCXX_CONSTEXPR
wchar_t
681 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
688 static _GLIBCXX_CONSTEXPR
wchar_t
689 infinity()
throw() {
return wchar_t(); }
691 static _GLIBCXX_CONSTEXPR
wchar_t
692 quiet_NaN()
throw() {
return wchar_t(); }
694 static _GLIBCXX_CONSTEXPR
wchar_t
697 static _GLIBCXX_CONSTEXPR
wchar_t
700 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
701 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
702 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
true;
704 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
710 #ifdef __GXX_EXPERIMENTAL_CXX0X__
717 static _GLIBCXX_CONSTEXPR char16_t
718 min()
throw() {
return __glibcxx_min (char16_t); }
720 static _GLIBCXX_CONSTEXPR char16_t
721 max()
throw() {
return __glibcxx_max (char16_t); }
723 #ifdef __GXX_EXPERIMENTAL_CXX0X__
724 static constexpr char16_t
728 static _GLIBCXX_USE_CONSTEXPR
int digits
729 = __glibcxx_digits (char16_t);
730 static _GLIBCXX_USE_CONSTEXPR
int digits10
731 = __glibcxx_digits10 (char16_t);
732 #ifdef __GXX_EXPERIMENTAL_CXX0X__
735 static _GLIBCXX_USE_CONSTEXPR
bool is_signed
736 = __glibcxx_signed (char16_t);
737 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
738 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
739 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
741 static _GLIBCXX_CONSTEXPR char16_t
742 epsilon()
throw() {
return 0; }
744 static _GLIBCXX_CONSTEXPR char16_t
752 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
759 static _GLIBCXX_CONSTEXPR char16_t
760 infinity()
throw() {
return char16_t(); }
762 static _GLIBCXX_CONSTEXPR char16_t
763 quiet_NaN()
throw() {
return char16_t(); }
765 static _GLIBCXX_CONSTEXPR char16_t
768 static _GLIBCXX_CONSTEXPR char16_t
771 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
772 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
773 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
true;
775 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
787 static _GLIBCXX_CONSTEXPR char32_t
788 min()
throw() {
return __glibcxx_min (char32_t); }
790 static _GLIBCXX_CONSTEXPR char32_t
791 max()
throw() {
return __glibcxx_max (char32_t); }
793 #ifdef __GXX_EXPERIMENTAL_CXX0X__
794 static constexpr char32_t
798 static _GLIBCXX_USE_CONSTEXPR
int digits = __glibcxx_digits (char32_t);
799 static _GLIBCXX_USE_CONSTEXPR
int digits10
800 = __glibcxx_digits10 (char32_t);
801 #ifdef __GXX_EXPERIMENTAL_CXX0X__
804 static _GLIBCXX_USE_CONSTEXPR
bool is_signed
805 = __glibcxx_signed (char32_t);
806 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
807 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
808 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
810 static _GLIBCXX_CONSTEXPR char32_t
811 epsilon()
throw() {
return 0; }
813 static _GLIBCXX_CONSTEXPR char32_t
821 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
828 static _GLIBCXX_CONSTEXPR char32_t
829 infinity()
throw() {
return char32_t(); }
831 static _GLIBCXX_CONSTEXPR char32_t
832 quiet_NaN()
throw() {
return char32_t(); }
834 static _GLIBCXX_CONSTEXPR char32_t
837 static _GLIBCXX_CONSTEXPR char32_t
840 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
841 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
842 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
true;
844 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
857 static _GLIBCXX_CONSTEXPR
short
858 min()
throw() {
return -__SHRT_MAX__ - 1; }
860 static _GLIBCXX_CONSTEXPR
short
861 max()
throw() {
return __SHRT_MAX__; }
863 #ifdef __GXX_EXPERIMENTAL_CXX0X__
864 static constexpr
short
868 static _GLIBCXX_USE_CONSTEXPR
int digits = __glibcxx_digits (
short);
869 static _GLIBCXX_USE_CONSTEXPR
int digits10 = __glibcxx_digits10 (
short);
870 #ifdef __GXX_EXPERIMENTAL_CXX0X__
873 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
true;
874 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
875 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
876 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
878 static _GLIBCXX_CONSTEXPR
short
879 epsilon()
throw() {
return 0; }
881 static _GLIBCXX_CONSTEXPR
short
889 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
896 static _GLIBCXX_CONSTEXPR
short
897 infinity()
throw() {
return short(); }
899 static _GLIBCXX_CONSTEXPR
short
902 static _GLIBCXX_CONSTEXPR
short
905 static _GLIBCXX_CONSTEXPR
short
908 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
909 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
910 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
true;
912 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
924 static _GLIBCXX_CONSTEXPR
unsigned short
925 min()
throw() {
return 0; }
927 static _GLIBCXX_CONSTEXPR
unsigned short
928 max()
throw() {
return __SHRT_MAX__ * 2U + 1; }
930 #ifdef __GXX_EXPERIMENTAL_CXX0X__
931 static constexpr
unsigned short
935 static _GLIBCXX_USE_CONSTEXPR
int digits
936 = __glibcxx_digits (
unsigned short);
937 static _GLIBCXX_USE_CONSTEXPR
int digits10
938 = __glibcxx_digits10 (
unsigned short);
939 #ifdef __GXX_EXPERIMENTAL_CXX0X__
942 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
false;
943 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
944 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
945 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
947 static _GLIBCXX_CONSTEXPR
unsigned short
948 epsilon()
throw() {
return 0; }
950 static _GLIBCXX_CONSTEXPR
unsigned short
958 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
965 static _GLIBCXX_CONSTEXPR
unsigned short
966 infinity()
throw() {
return static_cast<unsigned short>(0); }
968 static _GLIBCXX_CONSTEXPR
unsigned short
969 quiet_NaN()
throw() {
return static_cast<unsigned short>(0); }
971 static _GLIBCXX_CONSTEXPR
unsigned short
972 signaling_NaN()
throw() {
return static_cast<unsigned short>(0); }
974 static _GLIBCXX_CONSTEXPR
unsigned short
975 denorm_min()
throw() {
return static_cast<unsigned short>(0); }
977 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
978 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
979 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
true;
981 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
993 static _GLIBCXX_CONSTEXPR
int
994 min()
throw() {
return -__INT_MAX__ - 1; }
996 static _GLIBCXX_CONSTEXPR
int
997 max()
throw() {
return __INT_MAX__; }
999 #ifdef __GXX_EXPERIMENTAL_CXX0X__
1000 static constexpr
int
1004 static _GLIBCXX_USE_CONSTEXPR
int digits = __glibcxx_digits (
int);
1005 static _GLIBCXX_USE_CONSTEXPR
int digits10 = __glibcxx_digits10 (
int);
1006 #ifdef __GXX_EXPERIMENTAL_CXX0X__
1009 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
true;
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
int
1015 epsilon()
throw() {
return 0; }
1017 static _GLIBCXX_CONSTEXPR
int
1025 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
1032 static _GLIBCXX_CONSTEXPR
int
1033 infinity()
throw() {
return static_cast<int>(0); }
1035 static _GLIBCXX_CONSTEXPR
int
1036 quiet_NaN()
throw() {
return static_cast<int>(0); }
1038 static _GLIBCXX_CONSTEXPR
int
1041 static _GLIBCXX_CONSTEXPR
int
1042 denorm_min()
throw() {
return static_cast<int>(0); }
1044 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
1045 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
1046 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
true;
1048 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
1060 static _GLIBCXX_CONSTEXPR
unsigned int
1061 min()
throw() {
return 0; }
1063 static _GLIBCXX_CONSTEXPR
unsigned int
1064 max()
throw() {
return __INT_MAX__ * 2U + 1; }
1066 #ifdef __GXX_EXPERIMENTAL_CXX0X__
1067 static constexpr
unsigned int
1071 static _GLIBCXX_USE_CONSTEXPR
int digits
1072 = __glibcxx_digits (
unsigned int);
1073 static _GLIBCXX_USE_CONSTEXPR
int digits10
1074 = __glibcxx_digits10 (
unsigned int);
1075 #ifdef __GXX_EXPERIMENTAL_CXX0X__
1078 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
false;
1079 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
1080 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
1081 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
1083 static _GLIBCXX_CONSTEXPR
unsigned int
1084 epsilon()
throw() {
return 0; }
1086 static _GLIBCXX_CONSTEXPR
unsigned int
1094 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
1101 static _GLIBCXX_CONSTEXPR
unsigned int
1102 infinity()
throw() {
return static_cast<unsigned int>(0); }
1104 static _GLIBCXX_CONSTEXPR
unsigned int
1105 quiet_NaN()
throw() {
return static_cast<unsigned int>(0); }
1107 static _GLIBCXX_CONSTEXPR
unsigned int
1108 signaling_NaN()
throw() {
return static_cast<unsigned int>(0); }
1110 static _GLIBCXX_CONSTEXPR
unsigned int
1111 denorm_min()
throw() {
return static_cast<unsigned int>(0); }
1113 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
1114 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
1115 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
true;
1117 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
1129 static _GLIBCXX_CONSTEXPR
long
1130 min()
throw() {
return -__LONG_MAX__ - 1; }
1132 static _GLIBCXX_CONSTEXPR
long
1133 max()
throw() {
return __LONG_MAX__; }
1135 #ifdef __GXX_EXPERIMENTAL_CXX0X__
1136 static constexpr
long
1140 static _GLIBCXX_USE_CONSTEXPR
int digits = __glibcxx_digits (
long);
1141 static _GLIBCXX_USE_CONSTEXPR
int digits10 = __glibcxx_digits10 (
long);
1142 #ifdef __GXX_EXPERIMENTAL_CXX0X__
1145 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
true;
1146 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
1147 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
1148 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
1150 static _GLIBCXX_CONSTEXPR
long
1151 epsilon()
throw() {
return 0; }
1153 static _GLIBCXX_CONSTEXPR
long
1161 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
1168 static _GLIBCXX_CONSTEXPR
long
1169 infinity()
throw() {
return static_cast<long>(0); }
1171 static _GLIBCXX_CONSTEXPR
long
1172 quiet_NaN()
throw() {
return static_cast<long>(0); }
1174 static _GLIBCXX_CONSTEXPR
long
1177 static _GLIBCXX_CONSTEXPR
long
1178 denorm_min()
throw() {
return static_cast<long>(0); }
1180 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
1181 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
1182 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
true;
1184 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
1196 static _GLIBCXX_CONSTEXPR
unsigned long
1197 min()
throw() {
return 0; }
1199 static _GLIBCXX_CONSTEXPR
unsigned long
1200 max()
throw() {
return __LONG_MAX__ * 2UL + 1; }
1202 #ifdef __GXX_EXPERIMENTAL_CXX0X__
1203 static constexpr
unsigned long
1207 static _GLIBCXX_USE_CONSTEXPR
int digits
1208 = __glibcxx_digits (
unsigned long);
1209 static _GLIBCXX_USE_CONSTEXPR
int digits10
1210 = __glibcxx_digits10 (
unsigned long);
1211 #ifdef __GXX_EXPERIMENTAL_CXX0X__
1214 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
false;
1215 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
1216 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
1217 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
1219 static _GLIBCXX_CONSTEXPR
unsigned long
1220 epsilon()
throw() {
return 0; }
1222 static _GLIBCXX_CONSTEXPR
unsigned long
1230 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
1237 static _GLIBCXX_CONSTEXPR
unsigned long
1238 infinity()
throw() {
return static_cast<unsigned long>(0); }
1240 static _GLIBCXX_CONSTEXPR
unsigned long
1241 quiet_NaN()
throw() {
return static_cast<unsigned long>(0); }
1243 static _GLIBCXX_CONSTEXPR
unsigned long
1244 signaling_NaN()
throw() {
return static_cast<unsigned long>(0); }
1246 static _GLIBCXX_CONSTEXPR
unsigned long
1247 denorm_min()
throw() {
return static_cast<unsigned long>(0); }
1249 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
1250 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
1251 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
true;
1253 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
1265 static _GLIBCXX_CONSTEXPR
long long
1266 min()
throw() {
return -__LONG_LONG_MAX__ - 1; }
1268 static _GLIBCXX_CONSTEXPR
long long
1269 max()
throw() {
return __LONG_LONG_MAX__; }
1271 #ifdef __GXX_EXPERIMENTAL_CXX0X__
1272 static constexpr
long long
1276 static _GLIBCXX_USE_CONSTEXPR
int digits
1277 = __glibcxx_digits (
long long);
1278 static _GLIBCXX_USE_CONSTEXPR
int digits10
1279 = __glibcxx_digits10 (
long long);
1280 #ifdef __GXX_EXPERIMENTAL_CXX0X__
1283 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
true;
1284 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
1285 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
1286 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
1288 static _GLIBCXX_CONSTEXPR
long long
1289 epsilon()
throw() {
return 0; }
1291 static _GLIBCXX_CONSTEXPR
long long
1299 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
1306 static _GLIBCXX_CONSTEXPR
long long
1307 infinity()
throw() {
return static_cast<long long>(0); }
1309 static _GLIBCXX_CONSTEXPR
long long
1310 quiet_NaN()
throw() {
return static_cast<long long>(0); }
1312 static _GLIBCXX_CONSTEXPR
long long
1313 signaling_NaN()
throw() {
return static_cast<long long>(0); }
1315 static _GLIBCXX_CONSTEXPR
long long
1316 denorm_min()
throw() {
return static_cast<long long>(0); }
1318 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
1319 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
1320 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
true;
1322 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
1334 static _GLIBCXX_CONSTEXPR
unsigned long long
1335 min()
throw() {
return 0; }
1337 static _GLIBCXX_CONSTEXPR
unsigned long long
1338 max()
throw() {
return __LONG_LONG_MAX__ * 2ULL + 1; }
1340 #ifdef __GXX_EXPERIMENTAL_CXX0X__
1341 static constexpr
unsigned long long
1345 static _GLIBCXX_USE_CONSTEXPR
int digits
1346 = __glibcxx_digits (
unsigned long long);
1347 static _GLIBCXX_USE_CONSTEXPR
int digits10
1348 = __glibcxx_digits10 (
unsigned long long);
1349 #ifdef __GXX_EXPERIMENTAL_CXX0X__
1352 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
false;
1353 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
1354 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
1355 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
1357 static _GLIBCXX_CONSTEXPR
unsigned long long
1358 epsilon()
throw() {
return 0; }
1360 static _GLIBCXX_CONSTEXPR
unsigned long long
1368 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
1375 static _GLIBCXX_CONSTEXPR
unsigned long long
1376 infinity()
throw() {
return static_cast<unsigned long long>(0); }
1378 static _GLIBCXX_CONSTEXPR
unsigned long long
1379 quiet_NaN()
throw() {
return static_cast<unsigned long long>(0); }
1381 static _GLIBCXX_CONSTEXPR
unsigned long long
1382 signaling_NaN()
throw() {
return static_cast<unsigned long long>(0); }
1384 static _GLIBCXX_CONSTEXPR
unsigned long long
1385 denorm_min()
throw() {
return static_cast<unsigned long long>(0); }
1387 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
1388 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
1389 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
true;
1391 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
1403 static _GLIBCXX_CONSTEXPR
float
1404 min()
throw() {
return __FLT_MIN__; }
1406 static _GLIBCXX_CONSTEXPR
float
1407 max()
throw() {
return __FLT_MAX__; }
1409 #ifdef __GXX_EXPERIMENTAL_CXX0X__
1410 static constexpr
float
1411 lowest()
throw() {
return -__FLT_MAX__; }
1414 static _GLIBCXX_USE_CONSTEXPR
int digits = __FLT_MANT_DIG__;
1415 static _GLIBCXX_USE_CONSTEXPR
int digits10 = __FLT_DIG__;
1416 #ifdef __GXX_EXPERIMENTAL_CXX0X__
1418 = __glibcxx_max_digits10 (__FLT_MANT_DIG__);
1420 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
true;
1421 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
false;
1422 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
false;
1423 static _GLIBCXX_USE_CONSTEXPR
int radix = __FLT_RADIX__;
1425 static _GLIBCXX_CONSTEXPR
float
1426 epsilon()
throw() {
return __FLT_EPSILON__; }
1428 static _GLIBCXX_CONSTEXPR
float
1431 static _GLIBCXX_USE_CONSTEXPR
int min_exponent = __FLT_MIN_EXP__;
1432 static _GLIBCXX_USE_CONSTEXPR
int min_exponent10 = __FLT_MIN_10_EXP__;
1433 static _GLIBCXX_USE_CONSTEXPR
int max_exponent = __FLT_MAX_EXP__;
1434 static _GLIBCXX_USE_CONSTEXPR
int max_exponent10 = __FLT_MAX_10_EXP__;
1436 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity = __FLT_HAS_INFINITY__;
1437 static _GLIBCXX_USE_CONSTEXPR
bool has_quiet_NaN = __FLT_HAS_QUIET_NAN__;
1442 = __glibcxx_float_has_denorm_loss;
1444 static _GLIBCXX_CONSTEXPR
float
1445 infinity()
throw() {
return __builtin_huge_valf (); }
1447 static _GLIBCXX_CONSTEXPR
float
1448 quiet_NaN()
throw() {
return __builtin_nanf (
""); }
1450 static _GLIBCXX_CONSTEXPR
float
1453 static _GLIBCXX_CONSTEXPR
float
1454 denorm_min()
throw() {
return __FLT_DENORM_MIN__; }
1456 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559
1458 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
1459 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
false;
1461 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_float_traps;
1463 = __glibcxx_float_tinyness_before;
1468 #undef __glibcxx_float_has_denorm_loss
1469 #undef __glibcxx_float_traps
1470 #undef __glibcxx_float_tinyness_before
1478 static _GLIBCXX_CONSTEXPR
double
1479 min()
throw() {
return __DBL_MIN__; }
1481 static _GLIBCXX_CONSTEXPR
double
1482 max()
throw() {
return __DBL_MAX__; }
1484 #ifdef __GXX_EXPERIMENTAL_CXX0X__
1485 static constexpr
double
1486 lowest()
throw() {
return -__DBL_MAX__; }
1489 static _GLIBCXX_USE_CONSTEXPR
int digits = __DBL_MANT_DIG__;
1490 static _GLIBCXX_USE_CONSTEXPR
int digits10 = __DBL_DIG__;
1491 #ifdef __GXX_EXPERIMENTAL_CXX0X__
1493 = __glibcxx_max_digits10 (__DBL_MANT_DIG__);
1495 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
true;
1496 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
false;
1497 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
false;
1498 static _GLIBCXX_USE_CONSTEXPR
int radix = __FLT_RADIX__;
1500 static _GLIBCXX_CONSTEXPR
double
1501 epsilon()
throw() {
return __DBL_EPSILON__; }
1503 static _GLIBCXX_CONSTEXPR
double
1506 static _GLIBCXX_USE_CONSTEXPR
int min_exponent = __DBL_MIN_EXP__;
1507 static _GLIBCXX_USE_CONSTEXPR
int min_exponent10 = __DBL_MIN_10_EXP__;
1508 static _GLIBCXX_USE_CONSTEXPR
int max_exponent = __DBL_MAX_EXP__;
1509 static _GLIBCXX_USE_CONSTEXPR
int max_exponent10 = __DBL_MAX_10_EXP__;
1511 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity = __DBL_HAS_INFINITY__;
1512 static _GLIBCXX_USE_CONSTEXPR
bool has_quiet_NaN = __DBL_HAS_QUIET_NAN__;
1517 = __glibcxx_double_has_denorm_loss;
1519 static _GLIBCXX_CONSTEXPR
double
1520 infinity()
throw() {
return __builtin_huge_val(); }
1522 static _GLIBCXX_CONSTEXPR
double
1523 quiet_NaN()
throw() {
return __builtin_nan (
""); }
1525 static _GLIBCXX_CONSTEXPR
double
1528 static _GLIBCXX_CONSTEXPR
double
1529 denorm_min()
throw() {
return __DBL_DENORM_MIN__; }
1531 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559
1533 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
1534 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
false;
1536 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_double_traps;
1538 = __glibcxx_double_tinyness_before;
1543 #undef __glibcxx_double_has_denorm_loss
1544 #undef __glibcxx_double_traps
1545 #undef __glibcxx_double_tinyness_before
1553 static _GLIBCXX_CONSTEXPR
long double
1554 min()
throw() {
return __LDBL_MIN__; }
1556 static _GLIBCXX_CONSTEXPR
long double
1557 max()
throw() {
return __LDBL_MAX__; }
1559 #ifdef __GXX_EXPERIMENTAL_CXX0X__
1560 static constexpr
long double
1561 lowest()
throw() {
return -__LDBL_MAX__; }
1564 static _GLIBCXX_USE_CONSTEXPR
int digits = __LDBL_MANT_DIG__;
1565 static _GLIBCXX_USE_CONSTEXPR
int digits10 = __LDBL_DIG__;
1566 #ifdef __GXX_EXPERIMENTAL_CXX0X__
1568 = __glibcxx_max_digits10 (__LDBL_MANT_DIG__);
1570 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
true;
1571 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
false;
1572 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
false;
1573 static _GLIBCXX_USE_CONSTEXPR
int radix = __FLT_RADIX__;
1575 static _GLIBCXX_CONSTEXPR
long double
1576 epsilon()
throw() {
return __LDBL_EPSILON__; }
1578 static _GLIBCXX_CONSTEXPR
long double
1581 static _GLIBCXX_USE_CONSTEXPR
int min_exponent = __LDBL_MIN_EXP__;
1582 static _GLIBCXX_USE_CONSTEXPR
int min_exponent10 = __LDBL_MIN_10_EXP__;
1583 static _GLIBCXX_USE_CONSTEXPR
int max_exponent = __LDBL_MAX_EXP__;
1584 static _GLIBCXX_USE_CONSTEXPR
int max_exponent10 = __LDBL_MAX_10_EXP__;
1586 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity = __LDBL_HAS_INFINITY__;
1587 static _GLIBCXX_USE_CONSTEXPR
bool has_quiet_NaN = __LDBL_HAS_QUIET_NAN__;
1592 = __glibcxx_long_double_has_denorm_loss;
1594 static _GLIBCXX_CONSTEXPR
long double
1595 infinity()
throw() {
return __builtin_huge_vall (); }
1597 static _GLIBCXX_CONSTEXPR
long double
1598 quiet_NaN()
throw() {
return __builtin_nanl (
""); }
1600 static _GLIBCXX_CONSTEXPR
long double
1603 static _GLIBCXX_CONSTEXPR
long double
1604 denorm_min()
throw() {
return __LDBL_DENORM_MIN__; }
1606 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559
1608 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
1609 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
false;
1611 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_long_double_traps;
1613 __glibcxx_long_double_tinyness_before;
1618 #undef __glibcxx_long_double_has_denorm_loss
1619 #undef __glibcxx_long_double_traps
1620 #undef __glibcxx_long_double_tinyness_before
1622 _GLIBCXX_END_NAMESPACE_VERSION
1625 #undef __glibcxx_signed
1626 #undef __glibcxx_min
1627 #undef __glibcxx_max
1628 #undef __glibcxx_digits
1629 #undef __glibcxx_digits10
1630 #undef __glibcxx_max_digits10
1632 #endif // _GLIBCXX_NUMERIC_LIMITS
static constexpr bool traps
static constexpr float_denorm_style has_denorm
static constexpr int min_exponent10
The type allows denormalized values.
static constexpr _Tp epsilon()
static constexpr bool has_signaling_NaN
static constexpr _Tp infinity()
float_round_style
Describes the rounding style for floating-point types.
static constexpr int min_exponent
static constexpr _Tp round_error()
static constexpr _Tp signaling_NaN()
Indeterminate at compile time whether denormalized values are allowed.
static constexpr bool is_exact
static constexpr bool is_modulo
static constexpr _Tp max()
static constexpr int digits10
static constexpr _Tp denorm_min()
float_denorm_style
Describes the denormalization for floating-point types.
static constexpr int max_exponent10
static constexpr bool is_integer
static constexpr bool is_iec559
static constexpr int digits
static constexpr bool has_denorm_loss
static constexpr _Tp lowest()
static constexpr bool has_quiet_NaN
To the nearest representable value.
static constexpr bool tinyness_before
The type does not allow denormalized values.
static constexpr int max_digits10
static constexpr int radix
static constexpr int max_exponent
static constexpr bool is_specialized
static constexpr float_round_style round_style
Properties of fundamental types.
static constexpr _Tp min()
static constexpr bool has_infinity
static constexpr _Tp quiet_NaN()
static constexpr bool is_bounded
Part of std::numeric_limits.