37#ifndef _GLIBCXX_NUMERIC_LIMITS
38#define _GLIBCXX_NUMERIC_LIMITS 1
41#pragma GCC system_header
44#pragma GCC diagnostic push
45#pragma GCC diagnostic ignored "-Wpedantic"
46#pragma GCC diagnostic ignored "-Wlong-long"
47#pragma GCC diagnostic ignored "-Wc++23-extensions"
48#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
92#ifndef __glibcxx_integral_traps
93# define __glibcxx_integral_traps false
101#ifndef __glibcxx_float_has_denorm_loss
102# define __glibcxx_float_has_denorm_loss false
104#ifndef __glibcxx_float_traps
105# define __glibcxx_float_traps false
107#ifndef __glibcxx_float_tinyness_before
108# define __glibcxx_float_tinyness_before false
115#ifndef __glibcxx_double_has_denorm_loss
116# define __glibcxx_double_has_denorm_loss false
118#ifndef __glibcxx_double_traps
119# define __glibcxx_double_traps false
121#ifndef __glibcxx_double_tinyness_before
122# define __glibcxx_double_tinyness_before false
129#ifndef __glibcxx_long_double_has_denorm_loss
130# define __glibcxx_long_double_has_denorm_loss false
132#ifndef __glibcxx_long_double_traps
133# define __glibcxx_long_double_traps false
135#ifndef __glibcxx_long_double_tinyness_before
136# define __glibcxx_long_double_tinyness_before false
141#define __glibcxx_signed_b(T,B) ((T)(-1) < 0)
143#define __glibcxx_min_b(T,B) \
144 (__glibcxx_signed_b (T,B) ? -__glibcxx_max_b (T,B) - 1 : (T)0)
146#define __glibcxx_max_b(T,B) \
147 (__glibcxx_signed_b (T,B) ? \
148 (((((T)1 << (__glibcxx_digits_b (T,B) - 1)) - 1) << 1) + 1) : ~(T)0)
150#define __glibcxx_digits_b(T,B) \
151 (B - __glibcxx_signed_b (T,B))
154#define __glibcxx_digits10_b(T,B) \
155 (__glibcxx_digits_b (T,B) * 643L / 2136)
157#define __glibcxx_signed(T) \
158 __glibcxx_signed_b (T, sizeof(T) * __CHAR_BIT__)
159#define __glibcxx_min(T) \
160 __glibcxx_min_b (T, sizeof(T) * __CHAR_BIT__)
161#define __glibcxx_max(T) \
162 __glibcxx_max_b (T, sizeof(T) * __CHAR_BIT__)
163#define __glibcxx_digits(T) \
164 __glibcxx_digits_b (T, sizeof(T) * __CHAR_BIT__)
165#define __glibcxx_digits10(T) \
166 __glibcxx_digits10_b (T, sizeof(T) * __CHAR_BIT__)
168#define __glibcxx_max_digits10(T) \
169 (2 + (T) * 643L / 2136)
171namespace std _GLIBCXX_VISIBILITY(default)
173_GLIBCXX_BEGIN_NAMESPACE_VERSION
224 static _GLIBCXX_USE_CONSTEXPR
int digits = 0;
229#if __cplusplus >= 201103L
244 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
false;
248 static _GLIBCXX_USE_CONSTEXPR
int radix = 0;
279 _GLIBCXX23_DEPRECATED
284 _GLIBCXX23_DEPRECATED
306 static _GLIBCXX_USE_CONSTEXPR
bool traps =
false;
326 template<
typename _Tp>
331 static _GLIBCXX_CONSTEXPR _Tp
332 min() _GLIBCXX_USE_NOEXCEPT {
return _Tp(); }
335 static _GLIBCXX_CONSTEXPR _Tp
336 max() _GLIBCXX_USE_NOEXCEPT {
return _Tp(); }
338#if __cplusplus >= 201103L
347 static _GLIBCXX_CONSTEXPR _Tp
348 epsilon() _GLIBCXX_USE_NOEXCEPT {
return _Tp(); }
351 static _GLIBCXX_CONSTEXPR _Tp
355 static _GLIBCXX_CONSTEXPR _Tp
360 static _GLIBCXX_CONSTEXPR _Tp
365 static _GLIBCXX_CONSTEXPR _Tp
371 static _GLIBCXX_CONSTEXPR _Tp
378 template<
typename _Tp>
379 struct numeric_limits<const _Tp>
380 :
public numeric_limits<_Tp> { };
382 template<
typename _Tp>
386 template<
typename _Tp>
401 static _GLIBCXX_USE_CONSTEXPR
bool is_specialized =
true;
403 static _GLIBCXX_CONSTEXPR
bool
404 min() _GLIBCXX_USE_NOEXCEPT {
return false; }
406 static _GLIBCXX_CONSTEXPR
bool
407 max() _GLIBCXX_USE_NOEXCEPT {
return true; }
409#if __cplusplus >= 201103L
410 static constexpr bool
413 static _GLIBCXX_USE_CONSTEXPR
int digits = 1;
414 static _GLIBCXX_USE_CONSTEXPR
int digits10 = 0;
415#if __cplusplus >= 201103L
416 static constexpr int max_digits10 = 0;
418 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
false;
419 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
420 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
421 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
423 static _GLIBCXX_CONSTEXPR
bool
424 epsilon() _GLIBCXX_USE_NOEXCEPT {
return false; }
426 static _GLIBCXX_CONSTEXPR
bool
427 round_error() _GLIBCXX_USE_NOEXCEPT {
return false; }
429 static _GLIBCXX_USE_CONSTEXPR
int min_exponent = 0;
430 static _GLIBCXX_USE_CONSTEXPR
int min_exponent10 = 0;
431 static _GLIBCXX_USE_CONSTEXPR
int max_exponent = 0;
432 static _GLIBCXX_USE_CONSTEXPR
int max_exponent10 = 0;
434 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
435 static _GLIBCXX_USE_CONSTEXPR
bool has_quiet_NaN =
false;
436 static _GLIBCXX_USE_CONSTEXPR
bool has_signaling_NaN =
false;
437 _GLIBCXX23_DEPRECATED
440 _GLIBCXX23_DEPRECATED
441 static _GLIBCXX_USE_CONSTEXPR
bool has_denorm_loss =
false;
443 static _GLIBCXX_CONSTEXPR
bool
444 infinity() _GLIBCXX_USE_NOEXCEPT {
return false; }
446 static _GLIBCXX_CONSTEXPR
bool
447 quiet_NaN() _GLIBCXX_USE_NOEXCEPT {
return false; }
449 static _GLIBCXX_CONSTEXPR
bool
452 static _GLIBCXX_CONSTEXPR
bool
453 denorm_min() _GLIBCXX_USE_NOEXCEPT {
return false; }
455 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
456 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
457 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
false;
459 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
460 static _GLIBCXX_USE_CONSTEXPR
bool tinyness_before =
false;
469 static _GLIBCXX_USE_CONSTEXPR
bool is_specialized =
true;
471 static _GLIBCXX_CONSTEXPR
char
472 min() _GLIBCXX_USE_NOEXCEPT {
return __glibcxx_min(
char); }
474 static _GLIBCXX_CONSTEXPR
char
475 max() _GLIBCXX_USE_NOEXCEPT {
return __glibcxx_max(
char); }
477#if __cplusplus >= 201103L
478 static constexpr char
482 static _GLIBCXX_USE_CONSTEXPR
int digits = __glibcxx_digits (
char);
483 static _GLIBCXX_USE_CONSTEXPR
int digits10 = __glibcxx_digits10 (
char);
484#if __cplusplus >= 201103L
485 static constexpr int max_digits10 = 0;
487 static _GLIBCXX_USE_CONSTEXPR
bool is_signed = __glibcxx_signed (
char);
488 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
489 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
490 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
492 static _GLIBCXX_CONSTEXPR
char
493 epsilon() _GLIBCXX_USE_NOEXCEPT {
return 0; }
495 static _GLIBCXX_CONSTEXPR
char
498 static _GLIBCXX_USE_CONSTEXPR
int min_exponent = 0;
499 static _GLIBCXX_USE_CONSTEXPR
int min_exponent10 = 0;
500 static _GLIBCXX_USE_CONSTEXPR
int max_exponent = 0;
501 static _GLIBCXX_USE_CONSTEXPR
int max_exponent10 = 0;
503 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
504 static _GLIBCXX_USE_CONSTEXPR
bool has_quiet_NaN =
false;
505 static _GLIBCXX_USE_CONSTEXPR
bool has_signaling_NaN =
false;
506 _GLIBCXX23_DEPRECATED
509 _GLIBCXX23_DEPRECATED
510 static _GLIBCXX_USE_CONSTEXPR
bool has_denorm_loss =
false;
512 static _GLIBCXX_CONSTEXPR
513 char infinity() _GLIBCXX_USE_NOEXCEPT {
return char(); }
515 static _GLIBCXX_CONSTEXPR
char
516 quiet_NaN() _GLIBCXX_USE_NOEXCEPT {
return char(); }
518 static _GLIBCXX_CONSTEXPR
char
521 static _GLIBCXX_CONSTEXPR
char
522 denorm_min() _GLIBCXX_USE_NOEXCEPT {
return static_cast<char>(0); }
524 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
525 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
526 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo = !is_signed;
528 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
529 static _GLIBCXX_USE_CONSTEXPR
bool tinyness_before =
false;
538 static _GLIBCXX_USE_CONSTEXPR
bool is_specialized =
true;
540 static _GLIBCXX_CONSTEXPR
signed char
541 min() _GLIBCXX_USE_NOEXCEPT {
return -__SCHAR_MAX__ - 1; }
543 static _GLIBCXX_CONSTEXPR
signed char
544 max() _GLIBCXX_USE_NOEXCEPT {
return __SCHAR_MAX__; }
546#if __cplusplus >= 201103L
547 static constexpr signed char
551 static _GLIBCXX_USE_CONSTEXPR
int digits = __glibcxx_digits (
signed char);
552 static _GLIBCXX_USE_CONSTEXPR
int digits10
553 = __glibcxx_digits10 (
signed char);
554#if __cplusplus >= 201103L
555 static constexpr int max_digits10 = 0;
557 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
true;
558 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
559 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
560 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
562 static _GLIBCXX_CONSTEXPR
signed char
563 epsilon() _GLIBCXX_USE_NOEXCEPT {
return 0; }
565 static _GLIBCXX_CONSTEXPR
signed char
568 static _GLIBCXX_USE_CONSTEXPR
int min_exponent = 0;
569 static _GLIBCXX_USE_CONSTEXPR
int min_exponent10 = 0;
570 static _GLIBCXX_USE_CONSTEXPR
int max_exponent = 0;
571 static _GLIBCXX_USE_CONSTEXPR
int max_exponent10 = 0;
573 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
574 static _GLIBCXX_USE_CONSTEXPR
bool has_quiet_NaN =
false;
575 static _GLIBCXX_USE_CONSTEXPR
bool has_signaling_NaN =
false;
576 _GLIBCXX23_DEPRECATED
579 _GLIBCXX23_DEPRECATED
580 static _GLIBCXX_USE_CONSTEXPR
bool has_denorm_loss =
false;
582 static _GLIBCXX_CONSTEXPR
signed char
583 infinity() _GLIBCXX_USE_NOEXCEPT {
return static_cast<signed char>(0); }
585 static _GLIBCXX_CONSTEXPR
signed char
586 quiet_NaN() _GLIBCXX_USE_NOEXCEPT {
return static_cast<signed char>(0); }
588 static _GLIBCXX_CONSTEXPR
signed char
590 {
return static_cast<signed char>(0); }
592 static _GLIBCXX_CONSTEXPR
signed char
594 {
return static_cast<signed char>(0); }
596 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
597 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
598 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
false;
600 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
601 static _GLIBCXX_USE_CONSTEXPR
bool tinyness_before =
false;
610 static _GLIBCXX_USE_CONSTEXPR
bool is_specialized =
true;
612 static _GLIBCXX_CONSTEXPR
unsigned char
613 min() _GLIBCXX_USE_NOEXCEPT {
return 0; }
615 static _GLIBCXX_CONSTEXPR
unsigned char
616 max() _GLIBCXX_USE_NOEXCEPT {
return __SCHAR_MAX__ * 2U + 1; }
618#if __cplusplus >= 201103L
619 static constexpr unsigned char
623 static _GLIBCXX_USE_CONSTEXPR
int digits
624 = __glibcxx_digits (
unsigned char);
625 static _GLIBCXX_USE_CONSTEXPR
int digits10
626 = __glibcxx_digits10 (
unsigned char);
627#if __cplusplus >= 201103L
628 static constexpr int max_digits10 = 0;
630 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
false;
631 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
632 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
633 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
635 static _GLIBCXX_CONSTEXPR
unsigned char
636 epsilon() _GLIBCXX_USE_NOEXCEPT {
return 0; }
638 static _GLIBCXX_CONSTEXPR
unsigned char
641 static _GLIBCXX_USE_CONSTEXPR
int min_exponent = 0;
642 static _GLIBCXX_USE_CONSTEXPR
int min_exponent10 = 0;
643 static _GLIBCXX_USE_CONSTEXPR
int max_exponent = 0;
644 static _GLIBCXX_USE_CONSTEXPR
int max_exponent10 = 0;
646 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
647 static _GLIBCXX_USE_CONSTEXPR
bool has_quiet_NaN =
false;
648 static _GLIBCXX_USE_CONSTEXPR
bool has_signaling_NaN =
false;
649 _GLIBCXX23_DEPRECATED
652 _GLIBCXX23_DEPRECATED
653 static _GLIBCXX_USE_CONSTEXPR
bool has_denorm_loss =
false;
655 static _GLIBCXX_CONSTEXPR
unsigned char
657 {
return static_cast<unsigned char>(0); }
659 static _GLIBCXX_CONSTEXPR
unsigned char
661 {
return static_cast<unsigned char>(0); }
663 static _GLIBCXX_CONSTEXPR
unsigned char
665 {
return static_cast<unsigned char>(0); }
667 static _GLIBCXX_CONSTEXPR
unsigned char
669 {
return static_cast<unsigned char>(0); }
671 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
672 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
673 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
true;
675 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
676 static _GLIBCXX_USE_CONSTEXPR
bool tinyness_before =
false;
685 static _GLIBCXX_USE_CONSTEXPR
bool is_specialized =
true;
687 static _GLIBCXX_CONSTEXPR
wchar_t
688 min() _GLIBCXX_USE_NOEXCEPT {
return __glibcxx_min (
wchar_t); }
690 static _GLIBCXX_CONSTEXPR
wchar_t
691 max() _GLIBCXX_USE_NOEXCEPT {
return __glibcxx_max (
wchar_t); }
693#if __cplusplus >= 201103L
694 static constexpr wchar_t
698 static _GLIBCXX_USE_CONSTEXPR
int digits = __glibcxx_digits (
wchar_t);
699 static _GLIBCXX_USE_CONSTEXPR
int digits10
700 = __glibcxx_digits10 (
wchar_t);
701#if __cplusplus >= 201103L
702 static constexpr int max_digits10 = 0;
704 static _GLIBCXX_USE_CONSTEXPR
bool is_signed = __glibcxx_signed (
wchar_t);
705 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
706 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
707 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
709 static _GLIBCXX_CONSTEXPR
wchar_t
710 epsilon() _GLIBCXX_USE_NOEXCEPT {
return 0; }
712 static _GLIBCXX_CONSTEXPR
wchar_t
715 static _GLIBCXX_USE_CONSTEXPR
int min_exponent = 0;
716 static _GLIBCXX_USE_CONSTEXPR
int min_exponent10 = 0;
717 static _GLIBCXX_USE_CONSTEXPR
int max_exponent = 0;
718 static _GLIBCXX_USE_CONSTEXPR
int max_exponent10 = 0;
720 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
721 static _GLIBCXX_USE_CONSTEXPR
bool has_quiet_NaN =
false;
722 static _GLIBCXX_USE_CONSTEXPR
bool has_signaling_NaN =
false;
723 _GLIBCXX23_DEPRECATED
726 _GLIBCXX23_DEPRECATED
727 static _GLIBCXX_USE_CONSTEXPR
bool has_denorm_loss =
false;
729 static _GLIBCXX_CONSTEXPR
wchar_t
730 infinity() _GLIBCXX_USE_NOEXCEPT {
return wchar_t(); }
732 static _GLIBCXX_CONSTEXPR
wchar_t
733 quiet_NaN() _GLIBCXX_USE_NOEXCEPT {
return wchar_t(); }
735 static _GLIBCXX_CONSTEXPR
wchar_t
738 static _GLIBCXX_CONSTEXPR
wchar_t
739 denorm_min() _GLIBCXX_USE_NOEXCEPT {
return wchar_t(); }
741 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
742 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
743 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo = !is_signed;
745 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
746 static _GLIBCXX_USE_CONSTEXPR
bool tinyness_before =
false;
751#if _GLIBCXX_USE_CHAR8_T
758 static _GLIBCXX_CONSTEXPR
char8_t
759 min() _GLIBCXX_USE_NOEXCEPT {
return __glibcxx_min (
char8_t); }
761 static _GLIBCXX_CONSTEXPR
char8_t
762 max() _GLIBCXX_USE_NOEXCEPT {
return __glibcxx_max (
char8_t); }
764 static _GLIBCXX_CONSTEXPR
char8_t
765 lowest() _GLIBCXX_USE_NOEXCEPT {
return min(); }
767 static _GLIBCXX_USE_CONSTEXPR
int digits = __glibcxx_digits (
char8_t);
768 static _GLIBCXX_USE_CONSTEXPR
int digits10 = __glibcxx_digits10 (
char8_t);
770 static _GLIBCXX_USE_CONSTEXPR
bool is_signed = __glibcxx_signed (
char8_t);
771 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
772 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
773 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
775 static _GLIBCXX_CONSTEXPR
char8_t
776 epsilon() _GLIBCXX_USE_NOEXCEPT {
return 0; }
778 static _GLIBCXX_CONSTEXPR
char8_t
786 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
789 _GLIBCXX23_DEPRECATED
792 _GLIBCXX23_DEPRECATED
795 static _GLIBCXX_CONSTEXPR
char8_t
796 infinity() _GLIBCXX_USE_NOEXCEPT {
return char8_t(); }
798 static _GLIBCXX_CONSTEXPR
char8_t
799 quiet_NaN() _GLIBCXX_USE_NOEXCEPT {
return char8_t(); }
801 static _GLIBCXX_CONSTEXPR
char8_t
804 static _GLIBCXX_CONSTEXPR
char8_t
805 denorm_min() _GLIBCXX_USE_NOEXCEPT {
return char8_t(); }
807 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
808 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
811 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
818#if __cplusplus >= 201103L
823 static constexpr bool is_specialized =
true;
825 static constexpr char16_t
826 min()
noexcept {
return __glibcxx_min (
char16_t); }
828 static constexpr char16_t
829 max()
noexcept {
return __glibcxx_max (
char16_t); }
831 static constexpr char16_t
834 static constexpr int digits = __glibcxx_digits (
char16_t);
835 static constexpr int digits10 = __glibcxx_digits10 (
char16_t);
836 static constexpr int max_digits10 = 0;
837 static constexpr bool is_signed = __glibcxx_signed (
char16_t);
838 static constexpr bool is_integer =
true;
839 static constexpr bool is_exact =
true;
840 static constexpr int radix = 2;
842 static constexpr char16_t
843 epsilon()
noexcept {
return 0; }
845 static constexpr char16_t
848 static constexpr int min_exponent = 0;
849 static constexpr int min_exponent10 = 0;
850 static constexpr int max_exponent = 0;
851 static constexpr int max_exponent10 = 0;
853 static constexpr bool has_infinity =
false;
854 static constexpr bool has_quiet_NaN =
false;
855 static constexpr bool has_signaling_NaN =
false;
856 _GLIBCXX23_DEPRECATED
858 _GLIBCXX23_DEPRECATED
859 static constexpr bool has_denorm_loss =
false;
861 static constexpr char16_t
862 infinity()
noexcept {
return char16_t(); }
864 static constexpr char16_t
865 quiet_NaN()
noexcept {
return char16_t(); }
867 static constexpr char16_t
870 static constexpr char16_t
873 static constexpr bool is_iec559 =
false;
874 static constexpr bool is_bounded =
true;
875 static constexpr bool is_modulo = !is_signed;
877 static constexpr bool traps = __glibcxx_integral_traps;
878 static constexpr bool tinyness_before =
false;
886 static constexpr bool is_specialized =
true;
888 static constexpr char32_t
889 min()
noexcept {
return __glibcxx_min (
char32_t); }
891 static constexpr char32_t
892 max()
noexcept {
return __glibcxx_max (
char32_t); }
894 static constexpr char32_t
897 static constexpr int digits = __glibcxx_digits (
char32_t);
898 static constexpr int digits10 = __glibcxx_digits10 (
char32_t);
899 static constexpr int max_digits10 = 0;
900 static constexpr bool is_signed = __glibcxx_signed (
char32_t);
901 static constexpr bool is_integer =
true;
902 static constexpr bool is_exact =
true;
903 static constexpr int radix = 2;
905 static constexpr char32_t
906 epsilon()
noexcept {
return 0; }
908 static constexpr char32_t
911 static constexpr int min_exponent = 0;
912 static constexpr int min_exponent10 = 0;
913 static constexpr int max_exponent = 0;
914 static constexpr int max_exponent10 = 0;
916 static constexpr bool has_infinity =
false;
917 static constexpr bool has_quiet_NaN =
false;
918 static constexpr bool has_signaling_NaN =
false;
919 _GLIBCXX23_DEPRECATED
921 _GLIBCXX23_DEPRECATED
922 static constexpr bool has_denorm_loss =
false;
924 static constexpr char32_t
925 infinity()
noexcept {
return char32_t(); }
927 static constexpr char32_t
928 quiet_NaN()
noexcept {
return char32_t(); }
930 static constexpr char32_t
933 static constexpr char32_t
936 static constexpr bool is_iec559 =
false;
937 static constexpr bool is_bounded =
true;
938 static constexpr bool is_modulo = !is_signed;
940 static constexpr bool traps = __glibcxx_integral_traps;
941 static constexpr bool tinyness_before =
false;
950 static _GLIBCXX_USE_CONSTEXPR
bool is_specialized =
true;
952 static _GLIBCXX_CONSTEXPR
short
953 min() _GLIBCXX_USE_NOEXCEPT {
return -__SHRT_MAX__ - 1; }
955 static _GLIBCXX_CONSTEXPR
short
956 max() _GLIBCXX_USE_NOEXCEPT {
return __SHRT_MAX__; }
958#if __cplusplus >= 201103L
959 static constexpr short
963 static _GLIBCXX_USE_CONSTEXPR
int digits = __glibcxx_digits (
short);
964 static _GLIBCXX_USE_CONSTEXPR
int digits10 = __glibcxx_digits10 (
short);
965#if __cplusplus >= 201103L
966 static constexpr int max_digits10 = 0;
968 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
true;
969 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
970 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
971 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
973 static _GLIBCXX_CONSTEXPR
short
974 epsilon() _GLIBCXX_USE_NOEXCEPT {
return 0; }
976 static _GLIBCXX_CONSTEXPR
short
979 static _GLIBCXX_USE_CONSTEXPR
int min_exponent = 0;
980 static _GLIBCXX_USE_CONSTEXPR
int min_exponent10 = 0;
981 static _GLIBCXX_USE_CONSTEXPR
int max_exponent = 0;
982 static _GLIBCXX_USE_CONSTEXPR
int max_exponent10 = 0;
984 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
985 static _GLIBCXX_USE_CONSTEXPR
bool has_quiet_NaN =
false;
986 static _GLIBCXX_USE_CONSTEXPR
bool has_signaling_NaN =
false;
987 _GLIBCXX23_DEPRECATED
990 _GLIBCXX23_DEPRECATED
991 static _GLIBCXX_USE_CONSTEXPR
bool has_denorm_loss =
false;
993 static _GLIBCXX_CONSTEXPR
short
994 infinity() _GLIBCXX_USE_NOEXCEPT {
return short(); }
996 static _GLIBCXX_CONSTEXPR
short
997 quiet_NaN() _GLIBCXX_USE_NOEXCEPT {
return short(); }
999 static _GLIBCXX_CONSTEXPR
short
1002 static _GLIBCXX_CONSTEXPR
short
1003 denorm_min() _GLIBCXX_USE_NOEXCEPT {
return short(); }
1005 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
1006 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
1007 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
false;
1009 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
1010 static _GLIBCXX_USE_CONSTEXPR
bool tinyness_before =
false;
1019 static _GLIBCXX_USE_CONSTEXPR
bool is_specialized =
true;
1021 static _GLIBCXX_CONSTEXPR
unsigned short
1022 min() _GLIBCXX_USE_NOEXCEPT {
return 0; }
1024 static _GLIBCXX_CONSTEXPR
unsigned short
1025 max() _GLIBCXX_USE_NOEXCEPT {
return __SHRT_MAX__ * 2U + 1; }
1027#if __cplusplus >= 201103L
1028 static constexpr unsigned short
1032 static _GLIBCXX_USE_CONSTEXPR
int digits
1033 = __glibcxx_digits (
unsigned short);
1034 static _GLIBCXX_USE_CONSTEXPR
int digits10
1035 = __glibcxx_digits10 (
unsigned short);
1036#if __cplusplus >= 201103L
1037 static constexpr int max_digits10 = 0;
1039 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
false;
1040 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
1041 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
1042 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
1044 static _GLIBCXX_CONSTEXPR
unsigned short
1045 epsilon() _GLIBCXX_USE_NOEXCEPT {
return 0; }
1047 static _GLIBCXX_CONSTEXPR
unsigned short
1050 static _GLIBCXX_USE_CONSTEXPR
int min_exponent = 0;
1051 static _GLIBCXX_USE_CONSTEXPR
int min_exponent10 = 0;
1052 static _GLIBCXX_USE_CONSTEXPR
int max_exponent = 0;
1053 static _GLIBCXX_USE_CONSTEXPR
int max_exponent10 = 0;
1055 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
1056 static _GLIBCXX_USE_CONSTEXPR
bool has_quiet_NaN =
false;
1057 static _GLIBCXX_USE_CONSTEXPR
bool has_signaling_NaN =
false;
1058 _GLIBCXX23_DEPRECATED
1061 _GLIBCXX23_DEPRECATED
1062 static _GLIBCXX_USE_CONSTEXPR
bool has_denorm_loss =
false;
1064 static _GLIBCXX_CONSTEXPR
unsigned short
1066 {
return static_cast<unsigned short>(0); }
1068 static _GLIBCXX_CONSTEXPR
unsigned short
1070 {
return static_cast<unsigned short>(0); }
1072 static _GLIBCXX_CONSTEXPR
unsigned short
1074 {
return static_cast<unsigned short>(0); }
1076 static _GLIBCXX_CONSTEXPR
unsigned short
1078 {
return static_cast<unsigned short>(0); }
1080 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
1081 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
1082 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
true;
1084 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
1085 static _GLIBCXX_USE_CONSTEXPR
bool tinyness_before =
false;
1094 static _GLIBCXX_USE_CONSTEXPR
bool is_specialized =
true;
1096 static _GLIBCXX_CONSTEXPR
int
1097 min() _GLIBCXX_USE_NOEXCEPT {
return -__INT_MAX__ - 1; }
1099 static _GLIBCXX_CONSTEXPR
int
1100 max() _GLIBCXX_USE_NOEXCEPT {
return __INT_MAX__; }
1102#if __cplusplus >= 201103L
1103 static constexpr int
1107 static _GLIBCXX_USE_CONSTEXPR
int digits = __glibcxx_digits (
int);
1108 static _GLIBCXX_USE_CONSTEXPR
int digits10 = __glibcxx_digits10 (
int);
1109#if __cplusplus >= 201103L
1110 static constexpr int max_digits10 = 0;
1112 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
true;
1113 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
1114 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
1115 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
1117 static _GLIBCXX_CONSTEXPR
int
1118 epsilon() _GLIBCXX_USE_NOEXCEPT {
return 0; }
1120 static _GLIBCXX_CONSTEXPR
int
1123 static _GLIBCXX_USE_CONSTEXPR
int min_exponent = 0;
1124 static _GLIBCXX_USE_CONSTEXPR
int min_exponent10 = 0;
1125 static _GLIBCXX_USE_CONSTEXPR
int max_exponent = 0;
1126 static _GLIBCXX_USE_CONSTEXPR
int max_exponent10 = 0;
1128 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
1129 static _GLIBCXX_USE_CONSTEXPR
bool has_quiet_NaN =
false;
1130 static _GLIBCXX_USE_CONSTEXPR
bool has_signaling_NaN =
false;
1131 _GLIBCXX23_DEPRECATED
1134 _GLIBCXX23_DEPRECATED
1135 static _GLIBCXX_USE_CONSTEXPR
bool has_denorm_loss =
false;
1137 static _GLIBCXX_CONSTEXPR
int
1138 infinity() _GLIBCXX_USE_NOEXCEPT {
return static_cast<int>(0); }
1140 static _GLIBCXX_CONSTEXPR
int
1141 quiet_NaN() _GLIBCXX_USE_NOEXCEPT {
return static_cast<int>(0); }
1143 static _GLIBCXX_CONSTEXPR
int
1144 signaling_NaN() _GLIBCXX_USE_NOEXCEPT {
return static_cast<int>(0); }
1146 static _GLIBCXX_CONSTEXPR
int
1147 denorm_min() _GLIBCXX_USE_NOEXCEPT {
return static_cast<int>(0); }
1149 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
1150 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
1151 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
false;
1153 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
1154 static _GLIBCXX_USE_CONSTEXPR
bool tinyness_before =
false;
1163 static _GLIBCXX_USE_CONSTEXPR
bool is_specialized =
true;
1165 static _GLIBCXX_CONSTEXPR
unsigned int
1166 min() _GLIBCXX_USE_NOEXCEPT {
return 0; }
1168 static _GLIBCXX_CONSTEXPR
unsigned int
1169 max() _GLIBCXX_USE_NOEXCEPT {
return __INT_MAX__ * 2U + 1; }
1171#if __cplusplus >= 201103L
1172 static constexpr unsigned int
1176 static _GLIBCXX_USE_CONSTEXPR
int digits
1177 = __glibcxx_digits (
unsigned int);
1178 static _GLIBCXX_USE_CONSTEXPR
int digits10
1179 = __glibcxx_digits10 (
unsigned int);
1180#if __cplusplus >= 201103L
1181 static constexpr int max_digits10 = 0;
1183 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
false;
1184 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
1185 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
1186 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
1188 static _GLIBCXX_CONSTEXPR
unsigned int
1189 epsilon() _GLIBCXX_USE_NOEXCEPT {
return 0; }
1191 static _GLIBCXX_CONSTEXPR
unsigned int
1194 static _GLIBCXX_USE_CONSTEXPR
int min_exponent = 0;
1195 static _GLIBCXX_USE_CONSTEXPR
int min_exponent10 = 0;
1196 static _GLIBCXX_USE_CONSTEXPR
int max_exponent = 0;
1197 static _GLIBCXX_USE_CONSTEXPR
int max_exponent10 = 0;
1199 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
1200 static _GLIBCXX_USE_CONSTEXPR
bool has_quiet_NaN =
false;
1201 static _GLIBCXX_USE_CONSTEXPR
bool has_signaling_NaN =
false;
1202 _GLIBCXX23_DEPRECATED
1205 _GLIBCXX23_DEPRECATED
1206 static _GLIBCXX_USE_CONSTEXPR
bool has_denorm_loss =
false;
1208 static _GLIBCXX_CONSTEXPR
unsigned int
1209 infinity() _GLIBCXX_USE_NOEXCEPT {
return static_cast<unsigned int>(0); }
1211 static _GLIBCXX_CONSTEXPR
unsigned int
1213 {
return static_cast<unsigned int>(0); }
1215 static _GLIBCXX_CONSTEXPR
unsigned int
1217 {
return static_cast<unsigned int>(0); }
1219 static _GLIBCXX_CONSTEXPR
unsigned int
1221 {
return static_cast<unsigned int>(0); }
1223 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
1224 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
1225 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
true;
1227 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
1228 static _GLIBCXX_USE_CONSTEXPR
bool tinyness_before =
false;
1237 static _GLIBCXX_USE_CONSTEXPR
bool is_specialized =
true;
1239 static _GLIBCXX_CONSTEXPR
long
1240 min() _GLIBCXX_USE_NOEXCEPT {
return -__LONG_MAX__ - 1; }
1242 static _GLIBCXX_CONSTEXPR
long
1243 max() _GLIBCXX_USE_NOEXCEPT {
return __LONG_MAX__; }
1245#if __cplusplus >= 201103L
1246 static constexpr long
1250 static _GLIBCXX_USE_CONSTEXPR
int digits = __glibcxx_digits (
long);
1251 static _GLIBCXX_USE_CONSTEXPR
int digits10 = __glibcxx_digits10 (
long);
1252#if __cplusplus >= 201103L
1253 static constexpr int max_digits10 = 0;
1255 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
true;
1256 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
1257 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
1258 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
1260 static _GLIBCXX_CONSTEXPR
long
1261 epsilon() _GLIBCXX_USE_NOEXCEPT {
return 0; }
1263 static _GLIBCXX_CONSTEXPR
long
1266 static _GLIBCXX_USE_CONSTEXPR
int min_exponent = 0;
1267 static _GLIBCXX_USE_CONSTEXPR
int min_exponent10 = 0;
1268 static _GLIBCXX_USE_CONSTEXPR
int max_exponent = 0;
1269 static _GLIBCXX_USE_CONSTEXPR
int max_exponent10 = 0;
1271 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
1272 static _GLIBCXX_USE_CONSTEXPR
bool has_quiet_NaN =
false;
1273 static _GLIBCXX_USE_CONSTEXPR
bool has_signaling_NaN =
false;
1274 _GLIBCXX23_DEPRECATED
1277 _GLIBCXX23_DEPRECATED
1278 static _GLIBCXX_USE_CONSTEXPR
bool has_denorm_loss =
false;
1280 static _GLIBCXX_CONSTEXPR
long
1281 infinity() _GLIBCXX_USE_NOEXCEPT {
return static_cast<long>(0); }
1283 static _GLIBCXX_CONSTEXPR
long
1284 quiet_NaN() _GLIBCXX_USE_NOEXCEPT {
return static_cast<long>(0); }
1286 static _GLIBCXX_CONSTEXPR
long
1287 signaling_NaN() _GLIBCXX_USE_NOEXCEPT {
return static_cast<long>(0); }
1289 static _GLIBCXX_CONSTEXPR
long
1290 denorm_min() _GLIBCXX_USE_NOEXCEPT {
return static_cast<long>(0); }
1292 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
1293 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
1294 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
false;
1296 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
1297 static _GLIBCXX_USE_CONSTEXPR
bool tinyness_before =
false;
1306 static _GLIBCXX_USE_CONSTEXPR
bool is_specialized =
true;
1308 static _GLIBCXX_CONSTEXPR
unsigned long
1309 min() _GLIBCXX_USE_NOEXCEPT {
return 0; }
1311 static _GLIBCXX_CONSTEXPR
unsigned long
1312 max() _GLIBCXX_USE_NOEXCEPT {
return __LONG_MAX__ * 2UL + 1; }
1314#if __cplusplus >= 201103L
1315 static constexpr unsigned long
1319 static _GLIBCXX_USE_CONSTEXPR
int digits
1320 = __glibcxx_digits (
unsigned long);
1321 static _GLIBCXX_USE_CONSTEXPR
int digits10
1322 = __glibcxx_digits10 (
unsigned long);
1323#if __cplusplus >= 201103L
1324 static constexpr int max_digits10 = 0;
1326 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
false;
1327 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
1328 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
1329 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
1331 static _GLIBCXX_CONSTEXPR
unsigned long
1332 epsilon() _GLIBCXX_USE_NOEXCEPT {
return 0; }
1334 static _GLIBCXX_CONSTEXPR
unsigned long
1337 static _GLIBCXX_USE_CONSTEXPR
int min_exponent = 0;
1338 static _GLIBCXX_USE_CONSTEXPR
int min_exponent10 = 0;
1339 static _GLIBCXX_USE_CONSTEXPR
int max_exponent = 0;
1340 static _GLIBCXX_USE_CONSTEXPR
int max_exponent10 = 0;
1342 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
1343 static _GLIBCXX_USE_CONSTEXPR
bool has_quiet_NaN =
false;
1344 static _GLIBCXX_USE_CONSTEXPR
bool has_signaling_NaN =
false;
1345 _GLIBCXX23_DEPRECATED
1348 _GLIBCXX23_DEPRECATED
1349 static _GLIBCXX_USE_CONSTEXPR
bool has_denorm_loss =
false;
1351 static _GLIBCXX_CONSTEXPR
unsigned long
1353 {
return static_cast<unsigned long>(0); }
1355 static _GLIBCXX_CONSTEXPR
unsigned long
1357 {
return static_cast<unsigned long>(0); }
1359 static _GLIBCXX_CONSTEXPR
unsigned long
1361 {
return static_cast<unsigned long>(0); }
1363 static _GLIBCXX_CONSTEXPR
unsigned long
1365 {
return static_cast<unsigned long>(0); }
1367 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
1368 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
1369 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
true;
1371 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
1372 static _GLIBCXX_USE_CONSTEXPR
bool tinyness_before =
false;
1381 static _GLIBCXX_USE_CONSTEXPR
bool is_specialized =
true;
1383 static _GLIBCXX_CONSTEXPR
long long
1384 min() _GLIBCXX_USE_NOEXCEPT {
return -__LONG_LONG_MAX__ - 1; }
1386 static _GLIBCXX_CONSTEXPR
long long
1387 max() _GLIBCXX_USE_NOEXCEPT {
return __LONG_LONG_MAX__; }
1389#if __cplusplus >= 201103L
1390 static constexpr long long
1394 static _GLIBCXX_USE_CONSTEXPR
int digits
1395 = __glibcxx_digits (
long long);
1396 static _GLIBCXX_USE_CONSTEXPR
int digits10
1397 = __glibcxx_digits10 (
long long);
1398#if __cplusplus >= 201103L
1399 static constexpr int max_digits10 = 0;
1401 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
true;
1402 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
1403 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
1404 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
1406 static _GLIBCXX_CONSTEXPR
long long
1407 epsilon() _GLIBCXX_USE_NOEXCEPT {
return 0; }
1409 static _GLIBCXX_CONSTEXPR
long long
1412 static _GLIBCXX_USE_CONSTEXPR
int min_exponent = 0;
1413 static _GLIBCXX_USE_CONSTEXPR
int min_exponent10 = 0;
1414 static _GLIBCXX_USE_CONSTEXPR
int max_exponent = 0;
1415 static _GLIBCXX_USE_CONSTEXPR
int max_exponent10 = 0;
1417 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
1418 static _GLIBCXX_USE_CONSTEXPR
bool has_quiet_NaN =
false;
1419 static _GLIBCXX_USE_CONSTEXPR
bool has_signaling_NaN =
false;
1420 _GLIBCXX23_DEPRECATED
1423 _GLIBCXX23_DEPRECATED
1424 static _GLIBCXX_USE_CONSTEXPR
bool has_denorm_loss =
false;
1426 static _GLIBCXX_CONSTEXPR
long long
1427 infinity() _GLIBCXX_USE_NOEXCEPT {
return static_cast<long long>(0); }
1429 static _GLIBCXX_CONSTEXPR
long long
1430 quiet_NaN() _GLIBCXX_USE_NOEXCEPT {
return static_cast<long long>(0); }
1432 static _GLIBCXX_CONSTEXPR
long long
1434 {
return static_cast<long long>(0); }
1436 static _GLIBCXX_CONSTEXPR
long long
1437 denorm_min() _GLIBCXX_USE_NOEXCEPT {
return static_cast<long long>(0); }
1439 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
1440 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
1441 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
false;
1443 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
1444 static _GLIBCXX_USE_CONSTEXPR
bool tinyness_before =
false;
1453 static _GLIBCXX_USE_CONSTEXPR
bool is_specialized =
true;
1455 static _GLIBCXX_CONSTEXPR
unsigned long long
1456 min() _GLIBCXX_USE_NOEXCEPT {
return 0; }
1458 static _GLIBCXX_CONSTEXPR
unsigned long long
1459 max() _GLIBCXX_USE_NOEXCEPT {
return __LONG_LONG_MAX__ * 2ULL + 1; }
1461#if __cplusplus >= 201103L
1462 static constexpr unsigned long long
1466 static _GLIBCXX_USE_CONSTEXPR
int digits
1467 = __glibcxx_digits (
unsigned long long);
1468 static _GLIBCXX_USE_CONSTEXPR
int digits10
1469 = __glibcxx_digits10 (
unsigned long long);
1470#if __cplusplus >= 201103L
1471 static constexpr int max_digits10 = 0;
1473 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
false;
1474 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
1475 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
1476 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
1478 static _GLIBCXX_CONSTEXPR
unsigned long long
1479 epsilon() _GLIBCXX_USE_NOEXCEPT {
return 0; }
1481 static _GLIBCXX_CONSTEXPR
unsigned long long
1484 static _GLIBCXX_USE_CONSTEXPR
int min_exponent = 0;
1485 static _GLIBCXX_USE_CONSTEXPR
int min_exponent10 = 0;
1486 static _GLIBCXX_USE_CONSTEXPR
int max_exponent = 0;
1487 static _GLIBCXX_USE_CONSTEXPR
int max_exponent10 = 0;
1489 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
1490 static _GLIBCXX_USE_CONSTEXPR
bool has_quiet_NaN =
false;
1491 static _GLIBCXX_USE_CONSTEXPR
bool has_signaling_NaN =
false;
1492 _GLIBCXX23_DEPRECATED
1495 _GLIBCXX23_DEPRECATED
1496 static _GLIBCXX_USE_CONSTEXPR
bool has_denorm_loss =
false;
1498 static _GLIBCXX_CONSTEXPR
unsigned long long
1500 {
return static_cast<unsigned long long>(0); }
1502 static _GLIBCXX_CONSTEXPR
unsigned long long
1504 {
return static_cast<unsigned long long>(0); }
1506 static _GLIBCXX_CONSTEXPR
unsigned long long
1508 {
return static_cast<unsigned long long>(0); }
1510 static _GLIBCXX_CONSTEXPR
unsigned long long
1512 {
return static_cast<unsigned long long>(0); }
1514 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
1515 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
1516 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
true;
1518 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
1519 static _GLIBCXX_USE_CONSTEXPR
bool tinyness_before =
false;
1524#define __INT_N(TYPE, BITSIZE, EXT, UEXT) \
1527 struct numeric_limits<TYPE> \
1529 static _GLIBCXX_USE_CONSTEXPR bool is_specialized = true; \
1531 static _GLIBCXX_CONSTEXPR TYPE \
1532 min() _GLIBCXX_USE_NOEXCEPT { return __glibcxx_min_b (TYPE, BITSIZE); } \
1534 static _GLIBCXX_CONSTEXPR TYPE \
1535 max() _GLIBCXX_USE_NOEXCEPT { return __glibcxx_max_b (TYPE, BITSIZE); } \
1537 static _GLIBCXX_USE_CONSTEXPR int digits \
1539 static _GLIBCXX_USE_CONSTEXPR int digits10 \
1540 = (BITSIZE - 1) * 643L / 2136; \
1542 static _GLIBCXX_USE_CONSTEXPR bool is_signed = true; \
1543 static _GLIBCXX_USE_CONSTEXPR bool is_integer = true; \
1544 static _GLIBCXX_USE_CONSTEXPR bool is_exact = true; \
1545 static _GLIBCXX_USE_CONSTEXPR int radix = 2; \
1547 static _GLIBCXX_CONSTEXPR TYPE \
1548 epsilon() _GLIBCXX_USE_NOEXCEPT { return 0; } \
1550 static _GLIBCXX_CONSTEXPR TYPE \
1551 round_error() _GLIBCXX_USE_NOEXCEPT { return 0; } \
1555 static _GLIBCXX_USE_CONSTEXPR int min_exponent = 0; \
1556 static _GLIBCXX_USE_CONSTEXPR int min_exponent10 = 0; \
1557 static _GLIBCXX_USE_CONSTEXPR int max_exponent = 0; \
1558 static _GLIBCXX_USE_CONSTEXPR int max_exponent10 = 0; \
1560 static _GLIBCXX_USE_CONSTEXPR bool has_infinity = false; \
1561 static _GLIBCXX_USE_CONSTEXPR bool has_quiet_NaN = false; \
1562 static _GLIBCXX_USE_CONSTEXPR bool has_signaling_NaN = false; \
1563 _GLIBCXX23_DEPRECATED \
1564 static _GLIBCXX_USE_CONSTEXPR float_denorm_style has_denorm \
1566 _GLIBCXX23_DEPRECATED \
1567 static _GLIBCXX_USE_CONSTEXPR bool has_denorm_loss = false; \
1569 static _GLIBCXX_CONSTEXPR TYPE \
1570 infinity() _GLIBCXX_USE_NOEXCEPT \
1571 { return static_cast<TYPE>(0); } \
1573 static _GLIBCXX_CONSTEXPR TYPE \
1574 quiet_NaN() _GLIBCXX_USE_NOEXCEPT \
1575 { return static_cast<TYPE>(0); } \
1577 static _GLIBCXX_CONSTEXPR TYPE \
1578 signaling_NaN() _GLIBCXX_USE_NOEXCEPT \
1579 { return static_cast<TYPE>(0); } \
1581 static _GLIBCXX_CONSTEXPR TYPE \
1582 denorm_min() _GLIBCXX_USE_NOEXCEPT \
1583 { return static_cast<TYPE>(0); } \
1585 static _GLIBCXX_USE_CONSTEXPR bool is_iec559 = false; \
1586 static _GLIBCXX_USE_CONSTEXPR bool is_bounded = true; \
1587 static _GLIBCXX_USE_CONSTEXPR bool is_modulo = false; \
1589 static _GLIBCXX_USE_CONSTEXPR bool traps \
1590 = __glibcxx_integral_traps; \
1591 static _GLIBCXX_USE_CONSTEXPR bool tinyness_before = false; \
1592 static _GLIBCXX_USE_CONSTEXPR float_round_style round_style \
1593 = round_toward_zero; \
1598 struct numeric_limits<unsigned TYPE> \
1600 static _GLIBCXX_USE_CONSTEXPR bool is_specialized = true; \
1602 static _GLIBCXX_CONSTEXPR unsigned TYPE \
1603 min() _GLIBCXX_USE_NOEXCEPT { return 0; } \
1605 static _GLIBCXX_CONSTEXPR unsigned TYPE \
1606 max() _GLIBCXX_USE_NOEXCEPT \
1607 { return __glibcxx_max_b (unsigned TYPE, BITSIZE); } \
1611 static _GLIBCXX_USE_CONSTEXPR int digits \
1613 static _GLIBCXX_USE_CONSTEXPR int digits10 \
1614 = BITSIZE * 643L / 2136; \
1615 static _GLIBCXX_USE_CONSTEXPR bool is_signed = false; \
1616 static _GLIBCXX_USE_CONSTEXPR bool is_integer = true; \
1617 static _GLIBCXX_USE_CONSTEXPR bool is_exact = true; \
1618 static _GLIBCXX_USE_CONSTEXPR int radix = 2; \
1620 static _GLIBCXX_CONSTEXPR unsigned TYPE \
1621 epsilon() _GLIBCXX_USE_NOEXCEPT { return 0; } \
1623 static _GLIBCXX_CONSTEXPR unsigned TYPE \
1624 round_error() _GLIBCXX_USE_NOEXCEPT { return 0; } \
1626 static _GLIBCXX_USE_CONSTEXPR int min_exponent = 0; \
1627 static _GLIBCXX_USE_CONSTEXPR int min_exponent10 = 0; \
1628 static _GLIBCXX_USE_CONSTEXPR int max_exponent = 0; \
1629 static _GLIBCXX_USE_CONSTEXPR int max_exponent10 = 0; \
1631 static _GLIBCXX_USE_CONSTEXPR bool has_infinity = false; \
1632 static _GLIBCXX_USE_CONSTEXPR bool has_quiet_NaN = false; \
1633 static _GLIBCXX_USE_CONSTEXPR bool has_signaling_NaN = false; \
1634 _GLIBCXX23_DEPRECATED \
1635 static _GLIBCXX_USE_CONSTEXPR float_denorm_style has_denorm \
1637 _GLIBCXX23_DEPRECATED \
1638 static _GLIBCXX_USE_CONSTEXPR bool has_denorm_loss = false; \
1640 static _GLIBCXX_CONSTEXPR unsigned TYPE \
1641 infinity() _GLIBCXX_USE_NOEXCEPT \
1642 { return static_cast<unsigned TYPE>(0); } \
1644 static _GLIBCXX_CONSTEXPR unsigned TYPE \
1645 quiet_NaN() _GLIBCXX_USE_NOEXCEPT \
1646 { return static_cast<unsigned TYPE>(0); } \
1648 static _GLIBCXX_CONSTEXPR unsigned TYPE \
1649 signaling_NaN() _GLIBCXX_USE_NOEXCEPT \
1650 { return static_cast<unsigned TYPE>(0); } \
1652 static _GLIBCXX_CONSTEXPR unsigned TYPE \
1653 denorm_min() _GLIBCXX_USE_NOEXCEPT \
1654 { return static_cast<unsigned TYPE>(0); } \
1656 static _GLIBCXX_USE_CONSTEXPR bool is_iec559 = false; \
1657 static _GLIBCXX_USE_CONSTEXPR bool is_bounded = true; \
1658 static _GLIBCXX_USE_CONSTEXPR bool is_modulo = true; \
1660 static _GLIBCXX_USE_CONSTEXPR bool traps = __glibcxx_integral_traps; \
1661 static _GLIBCXX_USE_CONSTEXPR bool tinyness_before = false; \
1662 static _GLIBCXX_USE_CONSTEXPR float_round_style round_style \
1663 = round_toward_zero; \
1666#if __cplusplus >= 201103L
1668#define __INT_N_201103(TYPE) \
1669 static constexpr TYPE \
1670 lowest() noexcept { return min(); } \
1671 static constexpr int max_digits10 = 0;
1673#define __INT_N_U201103(TYPE) \
1674 static constexpr unsigned TYPE \
1675 lowest() noexcept { return min(); } \
1676 static constexpr int max_digits10 = 0;
1679#define __INT_N_201103(TYPE)
1680#define __INT_N_U201103(TYPE)
1683#ifdef __GLIBCXX_TYPE_INT_N_0
1684 __INT_N(__GLIBCXX_TYPE_INT_N_0, __GLIBCXX_BITSIZE_INT_N_0,
1685 __INT_N_201103 (__GLIBCXX_TYPE_INT_N_0),
1686 __INT_N_U201103 (__GLIBCXX_TYPE_INT_N_0))
1688#ifdef __GLIBCXX_TYPE_INT_N_1
1689 __INT_N (__GLIBCXX_TYPE_INT_N_1, __GLIBCXX_BITSIZE_INT_N_1,
1690 __INT_N_201103 (__GLIBCXX_TYPE_INT_N_1),
1691 __INT_N_U201103 (__GLIBCXX_TYPE_INT_N_1))
1693#ifdef __GLIBCXX_TYPE_INT_N_2
1694 __INT_N (__GLIBCXX_TYPE_INT_N_2, __GLIBCXX_BITSIZE_INT_N_2,
1695 __INT_N_201103 (__GLIBCXX_TYPE_INT_N_2),
1696 __INT_N_U201103 (__GLIBCXX_TYPE_INT_N_2))
1698#ifdef __GLIBCXX_TYPE_INT_N_3
1699 __INT_N (__GLIBCXX_TYPE_INT_N_3, __GLIBCXX_BITSIZE_INT_N_3,
1700 __INT_N_201103 (__GLIBCXX_TYPE_INT_N_3),
1701 __INT_N_U201103 (__GLIBCXX_TYPE_INT_N_3))
1704#if defined __STRICT_ANSI__ && defined __SIZEOF_INT128__
1705 __INT_N(__int128, 128,
1706 __INT_N_201103 (__int128),
1707 __INT_N_U201103 (__int128))
1711#undef __INT_N_201103
1712#undef __INT_N_U201103
1719 static _GLIBCXX_USE_CONSTEXPR
bool is_specialized =
true;
1721 static _GLIBCXX_CONSTEXPR
float
1722 min() _GLIBCXX_USE_NOEXCEPT {
return __FLT_MIN__; }
1724 static _GLIBCXX_CONSTEXPR
float
1725 max() _GLIBCXX_USE_NOEXCEPT {
return __FLT_MAX__; }
1727#if __cplusplus >= 201103L
1728 static constexpr float
1729 lowest()
noexcept {
return -__FLT_MAX__; }
1732 static _GLIBCXX_USE_CONSTEXPR
int digits = __FLT_MANT_DIG__;
1733 static _GLIBCXX_USE_CONSTEXPR
int digits10 = __FLT_DIG__;
1734#if __cplusplus >= 201103L
1735 static constexpr int max_digits10
1736 = __glibcxx_max_digits10 (__FLT_MANT_DIG__);
1738 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
true;
1739 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
false;
1740 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
false;
1741 static _GLIBCXX_USE_CONSTEXPR
int radix = __FLT_RADIX__;
1743 static _GLIBCXX_CONSTEXPR
float
1744 epsilon() _GLIBCXX_USE_NOEXCEPT {
return __FLT_EPSILON__; }
1746 static _GLIBCXX_CONSTEXPR
float
1747 round_error() _GLIBCXX_USE_NOEXCEPT {
return 0.5F; }
1749 static _GLIBCXX_USE_CONSTEXPR
int min_exponent = __FLT_MIN_EXP__;
1750 static _GLIBCXX_USE_CONSTEXPR
int min_exponent10 = __FLT_MIN_10_EXP__;
1751 static _GLIBCXX_USE_CONSTEXPR
int max_exponent = __FLT_MAX_EXP__;
1752 static _GLIBCXX_USE_CONSTEXPR
int max_exponent10 = __FLT_MAX_10_EXP__;
1754 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity = __FLT_HAS_INFINITY__;
1755 static _GLIBCXX_USE_CONSTEXPR
bool has_quiet_NaN = __FLT_HAS_QUIET_NAN__;
1756 static _GLIBCXX_USE_CONSTEXPR
bool has_signaling_NaN = has_quiet_NaN;
1757 _GLIBCXX23_DEPRECATED
1760 _GLIBCXX23_DEPRECATED
1761 static _GLIBCXX_USE_CONSTEXPR
bool has_denorm_loss
1762 = __glibcxx_float_has_denorm_loss;
1764 static _GLIBCXX_CONSTEXPR
float
1765 infinity() _GLIBCXX_USE_NOEXCEPT {
return __builtin_huge_valf(); }
1767 static _GLIBCXX_CONSTEXPR
float
1768 quiet_NaN() _GLIBCXX_USE_NOEXCEPT {
return __builtin_nanf(
""); }
1770 static _GLIBCXX_CONSTEXPR
float
1771 signaling_NaN() _GLIBCXX_USE_NOEXCEPT {
return __builtin_nansf(
""); }
1773 static _GLIBCXX_CONSTEXPR
float
1774 denorm_min() _GLIBCXX_USE_NOEXCEPT {
return __FLT_DENORM_MIN__; }
1776 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559
1778 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
1779 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
false;
1781 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_float_traps;
1782 static _GLIBCXX_USE_CONSTEXPR
bool tinyness_before
1783 = __glibcxx_float_tinyness_before;
1788#undef __glibcxx_float_has_denorm_loss
1789#undef __glibcxx_float_traps
1790#undef __glibcxx_float_tinyness_before
1796 static _GLIBCXX_USE_CONSTEXPR
bool is_specialized =
true;
1798 static _GLIBCXX_CONSTEXPR
double
1799 min() _GLIBCXX_USE_NOEXCEPT {
return __DBL_MIN__; }
1801 static _GLIBCXX_CONSTEXPR
double
1802 max() _GLIBCXX_USE_NOEXCEPT {
return __DBL_MAX__; }
1804#if __cplusplus >= 201103L
1805 static constexpr double
1806 lowest()
noexcept {
return -__DBL_MAX__; }
1809 static _GLIBCXX_USE_CONSTEXPR
int digits = __DBL_MANT_DIG__;
1810 static _GLIBCXX_USE_CONSTEXPR
int digits10 = __DBL_DIG__;
1811#if __cplusplus >= 201103L
1812 static constexpr int max_digits10
1813 = __glibcxx_max_digits10 (__DBL_MANT_DIG__);
1815 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
true;
1816 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
false;
1817 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
false;
1818 static _GLIBCXX_USE_CONSTEXPR
int radix = __FLT_RADIX__;
1820 static _GLIBCXX_CONSTEXPR
double
1821 epsilon() _GLIBCXX_USE_NOEXCEPT {
return __DBL_EPSILON__; }
1823 static _GLIBCXX_CONSTEXPR
double
1824 round_error() _GLIBCXX_USE_NOEXCEPT {
return 0.5; }
1826 static _GLIBCXX_USE_CONSTEXPR
int min_exponent = __DBL_MIN_EXP__;
1827 static _GLIBCXX_USE_CONSTEXPR
int min_exponent10 = __DBL_MIN_10_EXP__;
1828 static _GLIBCXX_USE_CONSTEXPR
int max_exponent = __DBL_MAX_EXP__;
1829 static _GLIBCXX_USE_CONSTEXPR
int max_exponent10 = __DBL_MAX_10_EXP__;
1831 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity = __DBL_HAS_INFINITY__;
1832 static _GLIBCXX_USE_CONSTEXPR
bool has_quiet_NaN = __DBL_HAS_QUIET_NAN__;
1833 static _GLIBCXX_USE_CONSTEXPR
bool has_signaling_NaN = has_quiet_NaN;
1834 _GLIBCXX23_DEPRECATED
1837 _GLIBCXX23_DEPRECATED
1838 static _GLIBCXX_USE_CONSTEXPR
bool has_denorm_loss
1839 = __glibcxx_double_has_denorm_loss;
1841 static _GLIBCXX_CONSTEXPR
double
1842 infinity() _GLIBCXX_USE_NOEXCEPT {
return __builtin_huge_val(); }
1844 static _GLIBCXX_CONSTEXPR
double
1845 quiet_NaN() _GLIBCXX_USE_NOEXCEPT {
return __builtin_nan(
""); }
1847 static _GLIBCXX_CONSTEXPR
double
1848 signaling_NaN() _GLIBCXX_USE_NOEXCEPT {
return __builtin_nans(
""); }
1850 static _GLIBCXX_CONSTEXPR
double
1851 denorm_min() _GLIBCXX_USE_NOEXCEPT {
return __DBL_DENORM_MIN__; }
1853 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559
1855 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
1856 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
false;
1858 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_double_traps;
1859 static _GLIBCXX_USE_CONSTEXPR
bool tinyness_before
1860 = __glibcxx_double_tinyness_before;
1865#undef __glibcxx_double_has_denorm_loss
1866#undef __glibcxx_double_traps
1867#undef __glibcxx_double_tinyness_before
1873 static _GLIBCXX_USE_CONSTEXPR
bool is_specialized =
true;
1875 static _GLIBCXX_CONSTEXPR
long double
1876 min() _GLIBCXX_USE_NOEXCEPT {
return __LDBL_MIN__; }
1878 static _GLIBCXX_CONSTEXPR
long double
1879 max() _GLIBCXX_USE_NOEXCEPT {
return __LDBL_MAX__; }
1881#if __cplusplus >= 201103L
1882 static constexpr long double
1883 lowest()
noexcept {
return -__LDBL_MAX__; }
1886 static _GLIBCXX_USE_CONSTEXPR
int digits = __LDBL_MANT_DIG__;
1887 static _GLIBCXX_USE_CONSTEXPR
int digits10 = __LDBL_DIG__;
1888#if __cplusplus >= 201103L
1889 static _GLIBCXX_USE_CONSTEXPR
int max_digits10
1890 = __glibcxx_max_digits10 (__LDBL_MANT_DIG__);
1892 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
true;
1893 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
false;
1894 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
false;
1895 static _GLIBCXX_USE_CONSTEXPR
int radix = __FLT_RADIX__;
1897 static _GLIBCXX_CONSTEXPR
long double
1898 epsilon() _GLIBCXX_USE_NOEXCEPT {
return __LDBL_EPSILON__; }
1900 static _GLIBCXX_CONSTEXPR
long double
1901 round_error() _GLIBCXX_USE_NOEXCEPT {
return 0.5L; }
1903 static _GLIBCXX_USE_CONSTEXPR
int min_exponent = __LDBL_MIN_EXP__;
1904 static _GLIBCXX_USE_CONSTEXPR
int min_exponent10 = __LDBL_MIN_10_EXP__;
1905 static _GLIBCXX_USE_CONSTEXPR
int max_exponent = __LDBL_MAX_EXP__;
1906 static _GLIBCXX_USE_CONSTEXPR
int max_exponent10 = __LDBL_MAX_10_EXP__;
1908 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity = __LDBL_HAS_INFINITY__;
1909 static _GLIBCXX_USE_CONSTEXPR
bool has_quiet_NaN = __LDBL_HAS_QUIET_NAN__;
1910 static _GLIBCXX_USE_CONSTEXPR
bool has_signaling_NaN = has_quiet_NaN;
1911 _GLIBCXX23_DEPRECATED
1914 _GLIBCXX23_DEPRECATED
1915 static _GLIBCXX_USE_CONSTEXPR
bool has_denorm_loss
1916 = __glibcxx_long_double_has_denorm_loss;
1918 static _GLIBCXX_CONSTEXPR
long double
1919 infinity() _GLIBCXX_USE_NOEXCEPT {
return __builtin_huge_vall(); }
1921 static _GLIBCXX_CONSTEXPR
long double
1922 quiet_NaN() _GLIBCXX_USE_NOEXCEPT {
return __builtin_nanl(
""); }
1924 static _GLIBCXX_CONSTEXPR
long double
1925 signaling_NaN() _GLIBCXX_USE_NOEXCEPT {
return __builtin_nansl(
""); }
1927 static _GLIBCXX_CONSTEXPR
long double
1928 denorm_min() _GLIBCXX_USE_NOEXCEPT {
return __LDBL_DENORM_MIN__; }
1930 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559
1932 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
1933 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
false;
1935 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_long_double_traps;
1936 static _GLIBCXX_USE_CONSTEXPR
bool tinyness_before =
1937 __glibcxx_long_double_tinyness_before;
1942#undef __glibcxx_long_double_has_denorm_loss
1943#undef __glibcxx_long_double_traps
1944#undef __glibcxx_long_double_tinyness_before
1946#define __glibcxx_concat3_(P,M,S) P ## M ## S
1947#define __glibcxx_concat3(P,M,S) __glibcxx_concat3_ (P,M,S)
1949#if __cplusplus >= 201103L
1950# define __max_digits10 max_digits10
1953#define __glibcxx_float_n(BITSIZE) \
1956 struct numeric_limits<_Float##BITSIZE> \
1958 static _GLIBCXX_USE_CONSTEXPR bool is_specialized = true; \
1960 static _GLIBCXX_CONSTEXPR _Float##BITSIZE \
1961 min() _GLIBCXX_USE_NOEXCEPT \
1962 { return __glibcxx_concat3 (__FLT, BITSIZE, _MIN__); } \
1964 static _GLIBCXX_CONSTEXPR _Float##BITSIZE \
1965 max() _GLIBCXX_USE_NOEXCEPT \
1966 { return __glibcxx_concat3 (__FLT, BITSIZE, _MAX__); } \
1968 static _GLIBCXX_CONSTEXPR _Float##BITSIZE \
1969 lowest() _GLIBCXX_USE_NOEXCEPT \
1970 { return -__glibcxx_concat3 (__FLT, BITSIZE, _MAX__); } \
1972 static _GLIBCXX_USE_CONSTEXPR int digits \
1973 = __glibcxx_concat3 (__FLT, BITSIZE, _MANT_DIG__); \
1974 static _GLIBCXX_USE_CONSTEXPR int digits10 \
1975 = __glibcxx_concat3 (__FLT, BITSIZE, _DIG__); \
1976 static _GLIBCXX_USE_CONSTEXPR int __max_digits10 \
1977 = __glibcxx_max_digits10 (__glibcxx_concat3 (__FLT, BITSIZE, \
1979 static _GLIBCXX_USE_CONSTEXPR bool is_signed = true; \
1980 static _GLIBCXX_USE_CONSTEXPR bool is_integer = false; \
1981 static _GLIBCXX_USE_CONSTEXPR bool is_exact = false; \
1982 static _GLIBCXX_USE_CONSTEXPR int radix = __FLT_RADIX__; \
1984 static _GLIBCXX_CONSTEXPR _Float##BITSIZE \
1985 epsilon() _GLIBCXX_USE_NOEXCEPT \
1986 { return __glibcxx_concat3 (__FLT, BITSIZE, _EPSILON__); } \
1988 static _GLIBCXX_CONSTEXPR _Float##BITSIZE \
1989 round_error() _GLIBCXX_USE_NOEXCEPT { return 0.5F##BITSIZE; } \
1991 static _GLIBCXX_USE_CONSTEXPR int min_exponent \
1992 = __glibcxx_concat3 (__FLT, BITSIZE, _MIN_EXP__); \
1993 static _GLIBCXX_USE_CONSTEXPR int min_exponent10 \
1994 = __glibcxx_concat3 (__FLT, BITSIZE, _MIN_10_EXP__); \
1995 static _GLIBCXX_USE_CONSTEXPR int max_exponent \
1996 = __glibcxx_concat3 (__FLT, BITSIZE, _MAX_EXP__); \
1997 static _GLIBCXX_USE_CONSTEXPR int max_exponent10 \
1998 = __glibcxx_concat3 (__FLT, BITSIZE, _MAX_10_EXP__); \
2000 static _GLIBCXX_USE_CONSTEXPR bool has_infinity \
2001 = __glibcxx_concat3 (__FLT, BITSIZE, _HAS_INFINITY__); \
2002 static _GLIBCXX_USE_CONSTEXPR bool has_quiet_NaN \
2003 = __glibcxx_concat3 (__FLT, BITSIZE, _HAS_QUIET_NAN__); \
2004 static _GLIBCXX_USE_CONSTEXPR bool has_signaling_NaN \
2006 _GLIBCXX23_DEPRECATED \
2007 static _GLIBCXX_USE_CONSTEXPR float_denorm_style has_denorm \
2008 = bool(__glibcxx_concat3 (__FLT, BITSIZE, _HAS_DENORM__)) \
2009 ? denorm_present : denorm_absent; \
2010 _GLIBCXX23_DEPRECATED \
2011 static _GLIBCXX_USE_CONSTEXPR bool has_denorm_loss = false; \
2013 static _GLIBCXX_CONSTEXPR _Float##BITSIZE \
2014 infinity() _GLIBCXX_USE_NOEXCEPT \
2015 { return __builtin_huge_valf##BITSIZE(); } \
2017 static _GLIBCXX_CONSTEXPR _Float##BITSIZE \
2018 quiet_NaN() _GLIBCXX_USE_NOEXCEPT \
2019 { return __builtin_nanf##BITSIZE(""); } \
2021 static _GLIBCXX_CONSTEXPR _Float##BITSIZE \
2022 signaling_NaN() _GLIBCXX_USE_NOEXCEPT \
2023 { return __builtin_nansf##BITSIZE(""); } \
2025 static _GLIBCXX_CONSTEXPR _Float##BITSIZE \
2026 denorm_min() _GLIBCXX_USE_NOEXCEPT \
2027 { return __glibcxx_concat3 (__FLT, BITSIZE, _DENORM_MIN__); } \
2029 static _GLIBCXX_USE_CONSTEXPR bool is_iec559 \
2030 = has_infinity && has_quiet_NaN && has_denorm == denorm_present;\
2031 static _GLIBCXX_USE_CONSTEXPR bool is_bounded = true; \
2032 static _GLIBCXX_USE_CONSTEXPR bool is_modulo = false; \
2034 static _GLIBCXX_USE_CONSTEXPR bool traps = false; \
2035 static _GLIBCXX_USE_CONSTEXPR bool tinyness_before = false; \
2036 static _GLIBCXX_USE_CONSTEXPR float_round_style round_style \
2037 = round_to_nearest; \
2040#ifdef __STDCPP_FLOAT16_T__
2041__glibcxx_float_n(16)
2044__glibcxx_float_n(32)
2047__glibcxx_float_n(64)
2049#ifdef __FLT128_DIG__
2050__glibcxx_float_n(128)
2052#undef __glibcxx_float_n
2053#undef __glibcxx_concat3
2054#undef __glibcxx_concat3_
2056#if __cplusplus >= 201103L
2057# undef __max_digits10
2060#ifdef __STDCPP_BFLOAT16_T__
2067 static _GLIBCXX_CONSTEXPR __gnu_cxx::__bfloat16_t
2068 min() _GLIBCXX_USE_NOEXCEPT
2069 {
return __BFLT16_MIN__; }
2071 static _GLIBCXX_CONSTEXPR __gnu_cxx::__bfloat16_t
2072 max() _GLIBCXX_USE_NOEXCEPT
2073 {
return __BFLT16_MAX__; }
2075 static _GLIBCXX_CONSTEXPR __gnu_cxx::__bfloat16_t
2076 lowest() _GLIBCXX_USE_NOEXCEPT
2077 {
return -__BFLT16_MAX__; }
2079 static _GLIBCXX_USE_CONSTEXPR
int digits = __BFLT16_MANT_DIG__;
2080 static _GLIBCXX_USE_CONSTEXPR
int digits10 = __BFLT16_DIG__;
2081#if __cplusplus >= 201103L
2083 = __glibcxx_max_digits10 (__BFLT16_MANT_DIG__);
2085 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
true;
2086 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
false;
2087 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
false;
2088 static _GLIBCXX_USE_CONSTEXPR
int radix = __FLT_RADIX__;
2090 static _GLIBCXX_CONSTEXPR __gnu_cxx::__bfloat16_t
2091 epsilon() _GLIBCXX_USE_NOEXCEPT
2092 {
return __BFLT16_EPSILON__; }
2094 static _GLIBCXX_CONSTEXPR __gnu_cxx::__bfloat16_t
2095 round_error() _GLIBCXX_USE_NOEXCEPT {
return 0.5BF16; }
2097 static _GLIBCXX_USE_CONSTEXPR
int min_exponent = __BFLT16_MIN_EXP__;
2098 static _GLIBCXX_USE_CONSTEXPR
int min_exponent10 = __BFLT16_MIN_10_EXP__;
2099 static _GLIBCXX_USE_CONSTEXPR
int max_exponent = __BFLT16_MAX_EXP__;
2100 static _GLIBCXX_USE_CONSTEXPR
int max_exponent10 = __BFLT16_MAX_10_EXP__;
2103 = __BFLT16_HAS_INFINITY__;
2105 = __BFLT16_HAS_QUIET_NAN__;
2107 _GLIBCXX23_DEPRECATED
2110 _GLIBCXX23_DEPRECATED
2113 static _GLIBCXX_CONSTEXPR __gnu_cxx::__bfloat16_t
2115 {
return __gnu_cxx::__bfloat16_t(__builtin_huge_valf()); }
2117 static _GLIBCXX_CONSTEXPR __gnu_cxx::__bfloat16_t
2119 {
return __gnu_cxx::__bfloat16_t(__builtin_nanf(
"")); }
2121 static _GLIBCXX_CONSTEXPR __gnu_cxx::__bfloat16_t
2123 {
return __builtin_nansf16b(
""); }
2125 static _GLIBCXX_CONSTEXPR __gnu_cxx::__bfloat16_t
2127 {
return __BFLT16_DENORM_MIN__; }
2129 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559
2131 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
2132 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
false;
2134 static _GLIBCXX_USE_CONSTEXPR
bool traps =
false;
2141#if defined(_GLIBCXX_USE_FLOAT128)
2143#if ! defined(__STRICT_ANSI__) || defined(_GLIBCXX_DOUBLE_IS_IEEE_BINARY64)
2150 static _GLIBCXX_CONSTEXPR __float128
2151 min() _GLIBCXX_USE_NOEXCEPT
2153#ifdef __STRICT_ANSI__
2155 return double(9.3132257461547852e-10) * _S_1pm16352();
2157 return __extension__ 0x1.0p-16382Q;
2161 static _GLIBCXX_CONSTEXPR __float128
2162 max() _GLIBCXX_USE_NOEXCEPT
2164#ifdef __STRICT_ANSI__
2167 return (__float128(
double(3.4028236692093843e+38))
2168 +
double(3.7778931862957153e+22) +
double(8.35584e+6))
2171 return __extension__ 0x1.ffffffffffffffffffffffffffffp+16383Q;
2175 static _GLIBCXX_CONSTEXPR __float128
2176 lowest() _GLIBCXX_USE_NOEXCEPT
2179 static _GLIBCXX_USE_CONSTEXPR
int digits = 113;
2180 static _GLIBCXX_USE_CONSTEXPR
int digits10 = 33;
2181#if __cplusplus >= 201103L
2184 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
true;
2185 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
false;
2186 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
false;
2187 static _GLIBCXX_USE_CONSTEXPR
int radix = __FLT_RADIX__;
2189 static _GLIBCXX_CONSTEXPR __float128
2190 epsilon() _GLIBCXX_USE_NOEXCEPT
2191 {
return double(1.9259299443872359e-34); }
2193 static _GLIBCXX_CONSTEXPR __float128
2194 round_error() _GLIBCXX_USE_NOEXCEPT {
return 0.5; }
2196 static _GLIBCXX_USE_CONSTEXPR
int min_exponent = -16381;
2198 static _GLIBCXX_USE_CONSTEXPR
int max_exponent = 16384;
2203#if __has_builtin(__builtin_nansq) \
2204 || (__has_builtin(__builtin_bit_cast) && __has_builtin(__builtin_nansf128))
2209 _GLIBCXX23_DEPRECATED
2212 _GLIBCXX23_DEPRECATED
2215 static _GLIBCXX_CONSTEXPR __float128
2217 {
return __builtin_huge_val(); }
2219 static _GLIBCXX_CONSTEXPR __float128
2221 {
return __builtin_nan(
""); }
2223 static _GLIBCXX_CONSTEXPR __float128
2226#if __has_builtin(__builtin_nansq)
2227 return __builtin_nansq(
"");
2228#elif __has_builtin(__builtin_bit_cast) && __has_builtin(__builtin_nansf128)
2229 return __builtin_bit_cast(__float128, __builtin_nansf128(
""));
2235 static _GLIBCXX_CONSTEXPR __float128
2238#if defined(__STRICT_ANSI__) || defined(__INTEL_COMPILER)
2240 return double(1.7936620343357659e-43) * _S_1pm16352();
2242 return __extension__ 0x1.0p-16494Q;
2247 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
2248 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
false;
2250 static _GLIBCXX_USE_CONSTEXPR
bool traps =
false;
2255#if defined(__STRICT_ANSI__) || defined(__INTEL_COMPILER)
2257 static _GLIBCXX_CONSTEXPR __float128
2258 _S_4p(__float128 __v) _GLIBCXX_USE_NOEXCEPT
2259 {
return __v * __v * __v * __v; }
2261 static _GLIBCXX_CONSTEXPR __float128
2262 _S_1pm4088() _GLIBCXX_USE_NOEXCEPT
2263 {
return _S_4p(
double(2.2250738585072014e-308)); }
2265 static _GLIBCXX_CONSTEXPR __float128
2266 _S_1pm16352() _GLIBCXX_USE_NOEXCEPT
2267 {
return _S_4p(_S_1pm4088()); }
2269 static _GLIBCXX_CONSTEXPR __float128
2270 _S_1p4064() _GLIBCXX_USE_NOEXCEPT
2271 {
return _S_4p(
double(7.0222388080559215e+305)); }
2273 static _GLIBCXX_CONSTEXPR __float128
2274 _S_1p16256() _GLIBCXX_USE_NOEXCEPT
2275 {
return _S_4p(_S_1p4064()); }
2281_GLIBCXX_END_NAMESPACE_VERSION
2284#undef __glibcxx_signed
2287#undef __glibcxx_digits
2288#undef __glibcxx_digits10
2289#undef __glibcxx_max_digits10
2291#pragma GCC diagnostic pop
ISO C++ entities toplevel namespace is std.
float_round_style
Describes the rounding style for floating-point types.
@ round_toward_zero
To zero.
@ round_toward_infinity
To infinity.
@ round_to_nearest
To the nearest representable value.
@ round_toward_neg_infinity
To negative infinity.
@ round_indeterminate
Intermediate.
float_denorm_style
Describes the denormalization for floating-point types.
@ denorm_present
The type allows denormalized values.
@ denorm_indeterminate
Indeterminate at compile time whether denormalized values are allowed.
@ denorm_absent
The type does not allow denormalized values.
GNU extensions for public use.
Part of std::numeric_limits.
static constexpr bool is_modulo
static constexpr bool has_quiet_NaN
static constexpr bool is_integer
static constexpr int max_digits10
static constexpr int min_exponent
static constexpr int digits
static constexpr bool is_bounded
static constexpr bool has_denorm_loss
static constexpr bool is_iec559
static constexpr bool is_exact
static constexpr bool traps
static constexpr bool has_signaling_NaN
static constexpr bool is_specialized
static constexpr int max_exponent
static constexpr bool is_signed
static constexpr int digits10
static constexpr int min_exponent10
static constexpr bool tinyness_before
static constexpr float_round_style round_style
static constexpr bool has_infinity
static constexpr int radix
static constexpr int max_exponent10
static constexpr float_denorm_style has_denorm
Properties of fundamental types.
static constexpr _Tp max() noexcept
static constexpr _Tp epsilon() noexcept
static constexpr _Tp quiet_NaN() noexcept
static constexpr _Tp lowest() noexcept
static constexpr _Tp min() noexcept
static constexpr _Tp denorm_min() noexcept
static constexpr _Tp infinity() noexcept
static constexpr _Tp round_error() noexcept
static constexpr _Tp signaling_NaN() noexcept