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"
91#ifndef __glibcxx_integral_traps
92# define __glibcxx_integral_traps false
100#ifndef __glibcxx_float_has_denorm_loss
101# define __glibcxx_float_has_denorm_loss false
103#ifndef __glibcxx_float_traps
104# define __glibcxx_float_traps false
106#ifndef __glibcxx_float_tinyness_before
107# define __glibcxx_float_tinyness_before false
114#ifndef __glibcxx_double_has_denorm_loss
115# define __glibcxx_double_has_denorm_loss false
117#ifndef __glibcxx_double_traps
118# define __glibcxx_double_traps false
120#ifndef __glibcxx_double_tinyness_before
121# define __glibcxx_double_tinyness_before false
128#ifndef __glibcxx_long_double_has_denorm_loss
129# define __glibcxx_long_double_has_denorm_loss false
131#ifndef __glibcxx_long_double_traps
132# define __glibcxx_long_double_traps false
134#ifndef __glibcxx_long_double_tinyness_before
135# define __glibcxx_long_double_tinyness_before false
140#define __glibcxx_signed_b(T,B) ((T)(-1) < 0)
142#define __glibcxx_min_b(T,B) \
143 (__glibcxx_signed_b (T,B) ? -__glibcxx_max_b (T,B) - 1 : (T)0)
145#define __glibcxx_max_b(T,B) \
146 (__glibcxx_signed_b (T,B) ? \
147 (((((T)1 << (__glibcxx_digits_b (T,B) - 1)) - 1) << 1) + 1) : ~(T)0)
149#define __glibcxx_digits_b(T,B) \
150 (B - __glibcxx_signed_b (T,B))
153#define __glibcxx_digits10_b(T,B) \
154 (__glibcxx_digits_b (T,B) * 643L / 2136)
156#define __glibcxx_signed(T) \
157 __glibcxx_signed_b (T, sizeof(T) * __CHAR_BIT__)
158#define __glibcxx_min(T) \
159 __glibcxx_min_b (T, sizeof(T) * __CHAR_BIT__)
160#define __glibcxx_max(T) \
161 __glibcxx_max_b (T, sizeof(T) * __CHAR_BIT__)
162#define __glibcxx_digits(T) \
163 __glibcxx_digits_b (T, sizeof(T) * __CHAR_BIT__)
164#define __glibcxx_digits10(T) \
165 __glibcxx_digits10_b (T, sizeof(T) * __CHAR_BIT__)
167#define __glibcxx_max_digits10(T) \
168 (2 + (T) * 643L / 2136)
170namespace std _GLIBCXX_VISIBILITY(default)
172_GLIBCXX_BEGIN_NAMESPACE_VERSION
223 static _GLIBCXX_USE_CONSTEXPR
int digits = 0;
228#if __cplusplus >= 201103L
243 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
false;
247 static _GLIBCXX_USE_CONSTEXPR
int radix = 0;
303 static _GLIBCXX_USE_CONSTEXPR
bool traps =
false;
323 template<
typename _Tp>
328 static _GLIBCXX_CONSTEXPR _Tp
329 min() _GLIBCXX_USE_NOEXCEPT {
return _Tp(); }
332 static _GLIBCXX_CONSTEXPR _Tp
333 max() _GLIBCXX_USE_NOEXCEPT {
return _Tp(); }
335#if __cplusplus >= 201103L
344 static _GLIBCXX_CONSTEXPR _Tp
345 epsilon() _GLIBCXX_USE_NOEXCEPT {
return _Tp(); }
348 static _GLIBCXX_CONSTEXPR _Tp
352 static _GLIBCXX_CONSTEXPR _Tp
357 static _GLIBCXX_CONSTEXPR _Tp
362 static _GLIBCXX_CONSTEXPR _Tp
368 static _GLIBCXX_CONSTEXPR _Tp
375 template<
typename _Tp>
376 struct numeric_limits<const _Tp>
377 :
public numeric_limits<_Tp> { };
379 template<
typename _Tp>
383 template<
typename _Tp>
398 static _GLIBCXX_USE_CONSTEXPR
bool is_specialized =
true;
400 static _GLIBCXX_CONSTEXPR
bool
401 min() _GLIBCXX_USE_NOEXCEPT {
return false; }
403 static _GLIBCXX_CONSTEXPR
bool
404 max() _GLIBCXX_USE_NOEXCEPT {
return true; }
406#if __cplusplus >= 201103L
407 static constexpr bool
410 static _GLIBCXX_USE_CONSTEXPR
int digits = 1;
411 static _GLIBCXX_USE_CONSTEXPR
int digits10 = 0;
412#if __cplusplus >= 201103L
413 static constexpr int max_digits10 = 0;
415 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
false;
416 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
417 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
418 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
420 static _GLIBCXX_CONSTEXPR
bool
421 epsilon() _GLIBCXX_USE_NOEXCEPT {
return false; }
423 static _GLIBCXX_CONSTEXPR
bool
424 round_error() _GLIBCXX_USE_NOEXCEPT {
return false; }
426 static _GLIBCXX_USE_CONSTEXPR
int min_exponent = 0;
427 static _GLIBCXX_USE_CONSTEXPR
int min_exponent10 = 0;
428 static _GLIBCXX_USE_CONSTEXPR
int max_exponent = 0;
429 static _GLIBCXX_USE_CONSTEXPR
int max_exponent10 = 0;
431 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
432 static _GLIBCXX_USE_CONSTEXPR
bool has_quiet_NaN =
false;
433 static _GLIBCXX_USE_CONSTEXPR
bool has_signaling_NaN =
false;
436 static _GLIBCXX_USE_CONSTEXPR
bool has_denorm_loss =
false;
438 static _GLIBCXX_CONSTEXPR
bool
439 infinity() _GLIBCXX_USE_NOEXCEPT {
return false; }
441 static _GLIBCXX_CONSTEXPR
bool
442 quiet_NaN() _GLIBCXX_USE_NOEXCEPT {
return false; }
444 static _GLIBCXX_CONSTEXPR
bool
447 static _GLIBCXX_CONSTEXPR
bool
448 denorm_min() _GLIBCXX_USE_NOEXCEPT {
return false; }
450 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
451 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
452 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
false;
454 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
455 static _GLIBCXX_USE_CONSTEXPR
bool tinyness_before =
false;
464 static _GLIBCXX_USE_CONSTEXPR
bool is_specialized =
true;
466 static _GLIBCXX_CONSTEXPR
char
467 min() _GLIBCXX_USE_NOEXCEPT {
return __glibcxx_min(
char); }
469 static _GLIBCXX_CONSTEXPR
char
470 max() _GLIBCXX_USE_NOEXCEPT {
return __glibcxx_max(
char); }
472#if __cplusplus >= 201103L
473 static constexpr char
477 static _GLIBCXX_USE_CONSTEXPR
int digits = __glibcxx_digits (
char);
478 static _GLIBCXX_USE_CONSTEXPR
int digits10 = __glibcxx_digits10 (
char);
479#if __cplusplus >= 201103L
480 static constexpr int max_digits10 = 0;
482 static _GLIBCXX_USE_CONSTEXPR
bool is_signed = __glibcxx_signed (
char);
483 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
484 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
485 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
487 static _GLIBCXX_CONSTEXPR
char
488 epsilon() _GLIBCXX_USE_NOEXCEPT {
return 0; }
490 static _GLIBCXX_CONSTEXPR
char
493 static _GLIBCXX_USE_CONSTEXPR
int min_exponent = 0;
494 static _GLIBCXX_USE_CONSTEXPR
int min_exponent10 = 0;
495 static _GLIBCXX_USE_CONSTEXPR
int max_exponent = 0;
496 static _GLIBCXX_USE_CONSTEXPR
int max_exponent10 = 0;
498 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
499 static _GLIBCXX_USE_CONSTEXPR
bool has_quiet_NaN =
false;
500 static _GLIBCXX_USE_CONSTEXPR
bool has_signaling_NaN =
false;
503 static _GLIBCXX_USE_CONSTEXPR
bool has_denorm_loss =
false;
505 static _GLIBCXX_CONSTEXPR
506 char infinity() _GLIBCXX_USE_NOEXCEPT {
return char(); }
508 static _GLIBCXX_CONSTEXPR
char
509 quiet_NaN() _GLIBCXX_USE_NOEXCEPT {
return char(); }
511 static _GLIBCXX_CONSTEXPR
char
514 static _GLIBCXX_CONSTEXPR
char
515 denorm_min() _GLIBCXX_USE_NOEXCEPT {
return static_cast<char>(0); }
517 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
518 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
519 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo = !is_signed;
521 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
522 static _GLIBCXX_USE_CONSTEXPR
bool tinyness_before =
false;
531 static _GLIBCXX_USE_CONSTEXPR
bool is_specialized =
true;
533 static _GLIBCXX_CONSTEXPR
signed char
534 min() _GLIBCXX_USE_NOEXCEPT {
return -__SCHAR_MAX__ - 1; }
536 static _GLIBCXX_CONSTEXPR
signed char
537 max() _GLIBCXX_USE_NOEXCEPT {
return __SCHAR_MAX__; }
539#if __cplusplus >= 201103L
540 static constexpr signed char
544 static _GLIBCXX_USE_CONSTEXPR
int digits = __glibcxx_digits (
signed char);
545 static _GLIBCXX_USE_CONSTEXPR
int digits10
546 = __glibcxx_digits10 (
signed char);
547#if __cplusplus >= 201103L
548 static constexpr int max_digits10 = 0;
550 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
true;
551 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
552 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
553 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
555 static _GLIBCXX_CONSTEXPR
signed char
556 epsilon() _GLIBCXX_USE_NOEXCEPT {
return 0; }
558 static _GLIBCXX_CONSTEXPR
signed char
561 static _GLIBCXX_USE_CONSTEXPR
int min_exponent = 0;
562 static _GLIBCXX_USE_CONSTEXPR
int min_exponent10 = 0;
563 static _GLIBCXX_USE_CONSTEXPR
int max_exponent = 0;
564 static _GLIBCXX_USE_CONSTEXPR
int max_exponent10 = 0;
566 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
567 static _GLIBCXX_USE_CONSTEXPR
bool has_quiet_NaN =
false;
568 static _GLIBCXX_USE_CONSTEXPR
bool has_signaling_NaN =
false;
571 static _GLIBCXX_USE_CONSTEXPR
bool has_denorm_loss =
false;
573 static _GLIBCXX_CONSTEXPR
signed char
574 infinity() _GLIBCXX_USE_NOEXCEPT {
return static_cast<signed char>(0); }
576 static _GLIBCXX_CONSTEXPR
signed char
577 quiet_NaN() _GLIBCXX_USE_NOEXCEPT {
return static_cast<signed char>(0); }
579 static _GLIBCXX_CONSTEXPR
signed char
581 {
return static_cast<signed char>(0); }
583 static _GLIBCXX_CONSTEXPR
signed char
585 {
return static_cast<signed char>(0); }
587 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
588 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
589 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
false;
591 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
592 static _GLIBCXX_USE_CONSTEXPR
bool tinyness_before =
false;
601 static _GLIBCXX_USE_CONSTEXPR
bool is_specialized =
true;
603 static _GLIBCXX_CONSTEXPR
unsigned char
604 min() _GLIBCXX_USE_NOEXCEPT {
return 0; }
606 static _GLIBCXX_CONSTEXPR
unsigned char
607 max() _GLIBCXX_USE_NOEXCEPT {
return __SCHAR_MAX__ * 2U + 1; }
609#if __cplusplus >= 201103L
610 static constexpr unsigned char
614 static _GLIBCXX_USE_CONSTEXPR
int digits
615 = __glibcxx_digits (
unsigned char);
616 static _GLIBCXX_USE_CONSTEXPR
int digits10
617 = __glibcxx_digits10 (
unsigned char);
618#if __cplusplus >= 201103L
619 static constexpr int max_digits10 = 0;
621 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
false;
622 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
623 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
624 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
626 static _GLIBCXX_CONSTEXPR
unsigned char
627 epsilon() _GLIBCXX_USE_NOEXCEPT {
return 0; }
629 static _GLIBCXX_CONSTEXPR
unsigned char
632 static _GLIBCXX_USE_CONSTEXPR
int min_exponent = 0;
633 static _GLIBCXX_USE_CONSTEXPR
int min_exponent10 = 0;
634 static _GLIBCXX_USE_CONSTEXPR
int max_exponent = 0;
635 static _GLIBCXX_USE_CONSTEXPR
int max_exponent10 = 0;
637 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
638 static _GLIBCXX_USE_CONSTEXPR
bool has_quiet_NaN =
false;
639 static _GLIBCXX_USE_CONSTEXPR
bool has_signaling_NaN =
false;
642 static _GLIBCXX_USE_CONSTEXPR
bool has_denorm_loss =
false;
644 static _GLIBCXX_CONSTEXPR
unsigned char
646 {
return static_cast<unsigned char>(0); }
648 static _GLIBCXX_CONSTEXPR
unsigned char
650 {
return static_cast<unsigned char>(0); }
652 static _GLIBCXX_CONSTEXPR
unsigned char
654 {
return static_cast<unsigned char>(0); }
656 static _GLIBCXX_CONSTEXPR
unsigned char
658 {
return static_cast<unsigned char>(0); }
660 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
661 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
662 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
true;
664 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
665 static _GLIBCXX_USE_CONSTEXPR
bool tinyness_before =
false;
674 static _GLIBCXX_USE_CONSTEXPR
bool is_specialized =
true;
676 static _GLIBCXX_CONSTEXPR
wchar_t
677 min() _GLIBCXX_USE_NOEXCEPT {
return __glibcxx_min (
wchar_t); }
679 static _GLIBCXX_CONSTEXPR
wchar_t
680 max() _GLIBCXX_USE_NOEXCEPT {
return __glibcxx_max (
wchar_t); }
682#if __cplusplus >= 201103L
683 static constexpr wchar_t
687 static _GLIBCXX_USE_CONSTEXPR
int digits = __glibcxx_digits (
wchar_t);
688 static _GLIBCXX_USE_CONSTEXPR
int digits10
689 = __glibcxx_digits10 (
wchar_t);
690#if __cplusplus >= 201103L
691 static constexpr int max_digits10 = 0;
693 static _GLIBCXX_USE_CONSTEXPR
bool is_signed = __glibcxx_signed (
wchar_t);
694 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
695 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
696 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
698 static _GLIBCXX_CONSTEXPR
wchar_t
699 epsilon() _GLIBCXX_USE_NOEXCEPT {
return 0; }
701 static _GLIBCXX_CONSTEXPR
wchar_t
704 static _GLIBCXX_USE_CONSTEXPR
int min_exponent = 0;
705 static _GLIBCXX_USE_CONSTEXPR
int min_exponent10 = 0;
706 static _GLIBCXX_USE_CONSTEXPR
int max_exponent = 0;
707 static _GLIBCXX_USE_CONSTEXPR
int max_exponent10 = 0;
709 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
710 static _GLIBCXX_USE_CONSTEXPR
bool has_quiet_NaN =
false;
711 static _GLIBCXX_USE_CONSTEXPR
bool has_signaling_NaN =
false;
714 static _GLIBCXX_USE_CONSTEXPR
bool has_denorm_loss =
false;
716 static _GLIBCXX_CONSTEXPR
wchar_t
717 infinity() _GLIBCXX_USE_NOEXCEPT {
return wchar_t(); }
719 static _GLIBCXX_CONSTEXPR
wchar_t
720 quiet_NaN() _GLIBCXX_USE_NOEXCEPT {
return wchar_t(); }
722 static _GLIBCXX_CONSTEXPR
wchar_t
725 static _GLIBCXX_CONSTEXPR
wchar_t
726 denorm_min() _GLIBCXX_USE_NOEXCEPT {
return wchar_t(); }
728 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
729 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
730 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo = !is_signed;
732 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
733 static _GLIBCXX_USE_CONSTEXPR
bool tinyness_before =
false;
738#if _GLIBCXX_USE_CHAR8_T
745 static _GLIBCXX_CONSTEXPR
char8_t
746 min() _GLIBCXX_USE_NOEXCEPT {
return __glibcxx_min (
char8_t); }
748 static _GLIBCXX_CONSTEXPR
char8_t
749 max() _GLIBCXX_USE_NOEXCEPT {
return __glibcxx_max (
char8_t); }
751 static _GLIBCXX_CONSTEXPR
char8_t
752 lowest() _GLIBCXX_USE_NOEXCEPT {
return min(); }
754 static _GLIBCXX_USE_CONSTEXPR
int digits = __glibcxx_digits (
char8_t);
755 static _GLIBCXX_USE_CONSTEXPR
int digits10 = __glibcxx_digits10 (
char8_t);
757 static _GLIBCXX_USE_CONSTEXPR
bool is_signed = __glibcxx_signed (
char8_t);
758 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
759 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
760 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
762 static _GLIBCXX_CONSTEXPR
char8_t
763 epsilon() _GLIBCXX_USE_NOEXCEPT {
return 0; }
765 static _GLIBCXX_CONSTEXPR
char8_t
773 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
780 static _GLIBCXX_CONSTEXPR
char8_t
781 infinity() _GLIBCXX_USE_NOEXCEPT {
return char8_t(); }
783 static _GLIBCXX_CONSTEXPR
char8_t
784 quiet_NaN() _GLIBCXX_USE_NOEXCEPT {
return char8_t(); }
786 static _GLIBCXX_CONSTEXPR
char8_t
789 static _GLIBCXX_CONSTEXPR
char8_t
790 denorm_min() _GLIBCXX_USE_NOEXCEPT {
return char8_t(); }
792 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
793 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
796 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
803#if __cplusplus >= 201103L
808 static constexpr bool is_specialized =
true;
810 static constexpr char16_t
811 min()
noexcept {
return __glibcxx_min (
char16_t); }
813 static constexpr char16_t
814 max()
noexcept {
return __glibcxx_max (
char16_t); }
816 static constexpr char16_t
819 static constexpr int digits = __glibcxx_digits (
char16_t);
820 static constexpr int digits10 = __glibcxx_digits10 (
char16_t);
821 static constexpr int max_digits10 = 0;
822 static constexpr bool is_signed = __glibcxx_signed (
char16_t);
823 static constexpr bool is_integer =
true;
824 static constexpr bool is_exact =
true;
825 static constexpr int radix = 2;
827 static constexpr char16_t
828 epsilon()
noexcept {
return 0; }
830 static constexpr char16_t
833 static constexpr int min_exponent = 0;
834 static constexpr int min_exponent10 = 0;
835 static constexpr int max_exponent = 0;
836 static constexpr int max_exponent10 = 0;
838 static constexpr bool has_infinity =
false;
839 static constexpr bool has_quiet_NaN =
false;
840 static constexpr bool has_signaling_NaN =
false;
842 static constexpr bool has_denorm_loss =
false;
844 static constexpr char16_t
845 infinity()
noexcept {
return char16_t(); }
847 static constexpr char16_t
848 quiet_NaN()
noexcept {
return char16_t(); }
850 static constexpr char16_t
853 static constexpr char16_t
856 static constexpr bool is_iec559 =
false;
857 static constexpr bool is_bounded =
true;
858 static constexpr bool is_modulo = !is_signed;
860 static constexpr bool traps = __glibcxx_integral_traps;
861 static constexpr bool tinyness_before =
false;
869 static constexpr bool is_specialized =
true;
871 static constexpr char32_t
872 min()
noexcept {
return __glibcxx_min (
char32_t); }
874 static constexpr char32_t
875 max()
noexcept {
return __glibcxx_max (
char32_t); }
877 static constexpr char32_t
880 static constexpr int digits = __glibcxx_digits (
char32_t);
881 static constexpr int digits10 = __glibcxx_digits10 (
char32_t);
882 static constexpr int max_digits10 = 0;
883 static constexpr bool is_signed = __glibcxx_signed (
char32_t);
884 static constexpr bool is_integer =
true;
885 static constexpr bool is_exact =
true;
886 static constexpr int radix = 2;
888 static constexpr char32_t
889 epsilon()
noexcept {
return 0; }
891 static constexpr char32_t
894 static constexpr int min_exponent = 0;
895 static constexpr int min_exponent10 = 0;
896 static constexpr int max_exponent = 0;
897 static constexpr int max_exponent10 = 0;
899 static constexpr bool has_infinity =
false;
900 static constexpr bool has_quiet_NaN =
false;
901 static constexpr bool has_signaling_NaN =
false;
903 static constexpr bool has_denorm_loss =
false;
905 static constexpr char32_t
906 infinity()
noexcept {
return char32_t(); }
908 static constexpr char32_t
909 quiet_NaN()
noexcept {
return char32_t(); }
911 static constexpr char32_t
914 static constexpr char32_t
917 static constexpr bool is_iec559 =
false;
918 static constexpr bool is_bounded =
true;
919 static constexpr bool is_modulo = !is_signed;
921 static constexpr bool traps = __glibcxx_integral_traps;
922 static constexpr bool tinyness_before =
false;
931 static _GLIBCXX_USE_CONSTEXPR
bool is_specialized =
true;
933 static _GLIBCXX_CONSTEXPR
short
934 min() _GLIBCXX_USE_NOEXCEPT {
return -__SHRT_MAX__ - 1; }
936 static _GLIBCXX_CONSTEXPR
short
937 max() _GLIBCXX_USE_NOEXCEPT {
return __SHRT_MAX__; }
939#if __cplusplus >= 201103L
940 static constexpr short
944 static _GLIBCXX_USE_CONSTEXPR
int digits = __glibcxx_digits (
short);
945 static _GLIBCXX_USE_CONSTEXPR
int digits10 = __glibcxx_digits10 (
short);
946#if __cplusplus >= 201103L
947 static constexpr int max_digits10 = 0;
949 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
true;
950 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
951 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
952 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
954 static _GLIBCXX_CONSTEXPR
short
955 epsilon() _GLIBCXX_USE_NOEXCEPT {
return 0; }
957 static _GLIBCXX_CONSTEXPR
short
960 static _GLIBCXX_USE_CONSTEXPR
int min_exponent = 0;
961 static _GLIBCXX_USE_CONSTEXPR
int min_exponent10 = 0;
962 static _GLIBCXX_USE_CONSTEXPR
int max_exponent = 0;
963 static _GLIBCXX_USE_CONSTEXPR
int max_exponent10 = 0;
965 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
966 static _GLIBCXX_USE_CONSTEXPR
bool has_quiet_NaN =
false;
967 static _GLIBCXX_USE_CONSTEXPR
bool has_signaling_NaN =
false;
970 static _GLIBCXX_USE_CONSTEXPR
bool has_denorm_loss =
false;
972 static _GLIBCXX_CONSTEXPR
short
973 infinity() _GLIBCXX_USE_NOEXCEPT {
return short(); }
975 static _GLIBCXX_CONSTEXPR
short
976 quiet_NaN() _GLIBCXX_USE_NOEXCEPT {
return short(); }
978 static _GLIBCXX_CONSTEXPR
short
981 static _GLIBCXX_CONSTEXPR
short
982 denorm_min() _GLIBCXX_USE_NOEXCEPT {
return short(); }
984 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
985 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
986 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
false;
988 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
989 static _GLIBCXX_USE_CONSTEXPR
bool tinyness_before =
false;
998 static _GLIBCXX_USE_CONSTEXPR
bool is_specialized =
true;
1000 static _GLIBCXX_CONSTEXPR
unsigned short
1001 min() _GLIBCXX_USE_NOEXCEPT {
return 0; }
1003 static _GLIBCXX_CONSTEXPR
unsigned short
1004 max() _GLIBCXX_USE_NOEXCEPT {
return __SHRT_MAX__ * 2U + 1; }
1006#if __cplusplus >= 201103L
1007 static constexpr unsigned short
1011 static _GLIBCXX_USE_CONSTEXPR
int digits
1012 = __glibcxx_digits (
unsigned short);
1013 static _GLIBCXX_USE_CONSTEXPR
int digits10
1014 = __glibcxx_digits10 (
unsigned short);
1015#if __cplusplus >= 201103L
1016 static constexpr int max_digits10 = 0;
1018 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
false;
1019 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
1020 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
1021 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
1023 static _GLIBCXX_CONSTEXPR
unsigned short
1024 epsilon() _GLIBCXX_USE_NOEXCEPT {
return 0; }
1026 static _GLIBCXX_CONSTEXPR
unsigned short
1029 static _GLIBCXX_USE_CONSTEXPR
int min_exponent = 0;
1030 static _GLIBCXX_USE_CONSTEXPR
int min_exponent10 = 0;
1031 static _GLIBCXX_USE_CONSTEXPR
int max_exponent = 0;
1032 static _GLIBCXX_USE_CONSTEXPR
int max_exponent10 = 0;
1034 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
1035 static _GLIBCXX_USE_CONSTEXPR
bool has_quiet_NaN =
false;
1036 static _GLIBCXX_USE_CONSTEXPR
bool has_signaling_NaN =
false;
1039 static _GLIBCXX_USE_CONSTEXPR
bool has_denorm_loss =
false;
1041 static _GLIBCXX_CONSTEXPR
unsigned short
1043 {
return static_cast<unsigned short>(0); }
1045 static _GLIBCXX_CONSTEXPR
unsigned short
1047 {
return static_cast<unsigned short>(0); }
1049 static _GLIBCXX_CONSTEXPR
unsigned short
1051 {
return static_cast<unsigned short>(0); }
1053 static _GLIBCXX_CONSTEXPR
unsigned short
1055 {
return static_cast<unsigned short>(0); }
1057 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
1058 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
1059 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
true;
1061 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
1062 static _GLIBCXX_USE_CONSTEXPR
bool tinyness_before =
false;
1071 static _GLIBCXX_USE_CONSTEXPR
bool is_specialized =
true;
1073 static _GLIBCXX_CONSTEXPR
int
1074 min() _GLIBCXX_USE_NOEXCEPT {
return -__INT_MAX__ - 1; }
1076 static _GLIBCXX_CONSTEXPR
int
1077 max() _GLIBCXX_USE_NOEXCEPT {
return __INT_MAX__; }
1079#if __cplusplus >= 201103L
1080 static constexpr int
1084 static _GLIBCXX_USE_CONSTEXPR
int digits = __glibcxx_digits (
int);
1085 static _GLIBCXX_USE_CONSTEXPR
int digits10 = __glibcxx_digits10 (
int);
1086#if __cplusplus >= 201103L
1087 static constexpr int max_digits10 = 0;
1089 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
true;
1090 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
1091 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
1092 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
1094 static _GLIBCXX_CONSTEXPR
int
1095 epsilon() _GLIBCXX_USE_NOEXCEPT {
return 0; }
1097 static _GLIBCXX_CONSTEXPR
int
1100 static _GLIBCXX_USE_CONSTEXPR
int min_exponent = 0;
1101 static _GLIBCXX_USE_CONSTEXPR
int min_exponent10 = 0;
1102 static _GLIBCXX_USE_CONSTEXPR
int max_exponent = 0;
1103 static _GLIBCXX_USE_CONSTEXPR
int max_exponent10 = 0;
1105 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
1106 static _GLIBCXX_USE_CONSTEXPR
bool has_quiet_NaN =
false;
1107 static _GLIBCXX_USE_CONSTEXPR
bool has_signaling_NaN =
false;
1110 static _GLIBCXX_USE_CONSTEXPR
bool has_denorm_loss =
false;
1112 static _GLIBCXX_CONSTEXPR
int
1113 infinity() _GLIBCXX_USE_NOEXCEPT {
return static_cast<int>(0); }
1115 static _GLIBCXX_CONSTEXPR
int
1116 quiet_NaN() _GLIBCXX_USE_NOEXCEPT {
return static_cast<int>(0); }
1118 static _GLIBCXX_CONSTEXPR
int
1119 signaling_NaN() _GLIBCXX_USE_NOEXCEPT {
return static_cast<int>(0); }
1121 static _GLIBCXX_CONSTEXPR
int
1122 denorm_min() _GLIBCXX_USE_NOEXCEPT {
return static_cast<int>(0); }
1124 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
1125 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
1126 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
false;
1128 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
1129 static _GLIBCXX_USE_CONSTEXPR
bool tinyness_before =
false;
1138 static _GLIBCXX_USE_CONSTEXPR
bool is_specialized =
true;
1140 static _GLIBCXX_CONSTEXPR
unsigned int
1141 min() _GLIBCXX_USE_NOEXCEPT {
return 0; }
1143 static _GLIBCXX_CONSTEXPR
unsigned int
1144 max() _GLIBCXX_USE_NOEXCEPT {
return __INT_MAX__ * 2U + 1; }
1146#if __cplusplus >= 201103L
1147 static constexpr unsigned int
1151 static _GLIBCXX_USE_CONSTEXPR
int digits
1152 = __glibcxx_digits (
unsigned int);
1153 static _GLIBCXX_USE_CONSTEXPR
int digits10
1154 = __glibcxx_digits10 (
unsigned int);
1155#if __cplusplus >= 201103L
1156 static constexpr int max_digits10 = 0;
1158 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
false;
1159 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
1160 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
1161 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
1163 static _GLIBCXX_CONSTEXPR
unsigned int
1164 epsilon() _GLIBCXX_USE_NOEXCEPT {
return 0; }
1166 static _GLIBCXX_CONSTEXPR
unsigned int
1169 static _GLIBCXX_USE_CONSTEXPR
int min_exponent = 0;
1170 static _GLIBCXX_USE_CONSTEXPR
int min_exponent10 = 0;
1171 static _GLIBCXX_USE_CONSTEXPR
int max_exponent = 0;
1172 static _GLIBCXX_USE_CONSTEXPR
int max_exponent10 = 0;
1174 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
1175 static _GLIBCXX_USE_CONSTEXPR
bool has_quiet_NaN =
false;
1176 static _GLIBCXX_USE_CONSTEXPR
bool has_signaling_NaN =
false;
1179 static _GLIBCXX_USE_CONSTEXPR
bool has_denorm_loss =
false;
1181 static _GLIBCXX_CONSTEXPR
unsigned int
1182 infinity() _GLIBCXX_USE_NOEXCEPT {
return static_cast<unsigned int>(0); }
1184 static _GLIBCXX_CONSTEXPR
unsigned int
1186 {
return static_cast<unsigned int>(0); }
1188 static _GLIBCXX_CONSTEXPR
unsigned int
1190 {
return static_cast<unsigned int>(0); }
1192 static _GLIBCXX_CONSTEXPR
unsigned int
1194 {
return static_cast<unsigned int>(0); }
1196 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
1197 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
1198 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
true;
1200 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
1201 static _GLIBCXX_USE_CONSTEXPR
bool tinyness_before =
false;
1210 static _GLIBCXX_USE_CONSTEXPR
bool is_specialized =
true;
1212 static _GLIBCXX_CONSTEXPR
long
1213 min() _GLIBCXX_USE_NOEXCEPT {
return -__LONG_MAX__ - 1; }
1215 static _GLIBCXX_CONSTEXPR
long
1216 max() _GLIBCXX_USE_NOEXCEPT {
return __LONG_MAX__; }
1218#if __cplusplus >= 201103L
1219 static constexpr long
1223 static _GLIBCXX_USE_CONSTEXPR
int digits = __glibcxx_digits (
long);
1224 static _GLIBCXX_USE_CONSTEXPR
int digits10 = __glibcxx_digits10 (
long);
1225#if __cplusplus >= 201103L
1226 static constexpr int max_digits10 = 0;
1228 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
true;
1229 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
1230 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
1231 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
1233 static _GLIBCXX_CONSTEXPR
long
1234 epsilon() _GLIBCXX_USE_NOEXCEPT {
return 0; }
1236 static _GLIBCXX_CONSTEXPR
long
1239 static _GLIBCXX_USE_CONSTEXPR
int min_exponent = 0;
1240 static _GLIBCXX_USE_CONSTEXPR
int min_exponent10 = 0;
1241 static _GLIBCXX_USE_CONSTEXPR
int max_exponent = 0;
1242 static _GLIBCXX_USE_CONSTEXPR
int max_exponent10 = 0;
1244 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
1245 static _GLIBCXX_USE_CONSTEXPR
bool has_quiet_NaN =
false;
1246 static _GLIBCXX_USE_CONSTEXPR
bool has_signaling_NaN =
false;
1249 static _GLIBCXX_USE_CONSTEXPR
bool has_denorm_loss =
false;
1251 static _GLIBCXX_CONSTEXPR
long
1252 infinity() _GLIBCXX_USE_NOEXCEPT {
return static_cast<long>(0); }
1254 static _GLIBCXX_CONSTEXPR
long
1255 quiet_NaN() _GLIBCXX_USE_NOEXCEPT {
return static_cast<long>(0); }
1257 static _GLIBCXX_CONSTEXPR
long
1258 signaling_NaN() _GLIBCXX_USE_NOEXCEPT {
return static_cast<long>(0); }
1260 static _GLIBCXX_CONSTEXPR
long
1261 denorm_min() _GLIBCXX_USE_NOEXCEPT {
return static_cast<long>(0); }
1263 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
1264 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
1265 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
false;
1267 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
1268 static _GLIBCXX_USE_CONSTEXPR
bool tinyness_before =
false;
1277 static _GLIBCXX_USE_CONSTEXPR
bool is_specialized =
true;
1279 static _GLIBCXX_CONSTEXPR
unsigned long
1280 min() _GLIBCXX_USE_NOEXCEPT {
return 0; }
1282 static _GLIBCXX_CONSTEXPR
unsigned long
1283 max() _GLIBCXX_USE_NOEXCEPT {
return __LONG_MAX__ * 2UL + 1; }
1285#if __cplusplus >= 201103L
1286 static constexpr unsigned long
1290 static _GLIBCXX_USE_CONSTEXPR
int digits
1291 = __glibcxx_digits (
unsigned long);
1292 static _GLIBCXX_USE_CONSTEXPR
int digits10
1293 = __glibcxx_digits10 (
unsigned long);
1294#if __cplusplus >= 201103L
1295 static constexpr int max_digits10 = 0;
1297 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
false;
1298 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
1299 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
1300 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
1302 static _GLIBCXX_CONSTEXPR
unsigned long
1303 epsilon() _GLIBCXX_USE_NOEXCEPT {
return 0; }
1305 static _GLIBCXX_CONSTEXPR
unsigned long
1308 static _GLIBCXX_USE_CONSTEXPR
int min_exponent = 0;
1309 static _GLIBCXX_USE_CONSTEXPR
int min_exponent10 = 0;
1310 static _GLIBCXX_USE_CONSTEXPR
int max_exponent = 0;
1311 static _GLIBCXX_USE_CONSTEXPR
int max_exponent10 = 0;
1313 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
1314 static _GLIBCXX_USE_CONSTEXPR
bool has_quiet_NaN =
false;
1315 static _GLIBCXX_USE_CONSTEXPR
bool has_signaling_NaN =
false;
1318 static _GLIBCXX_USE_CONSTEXPR
bool has_denorm_loss =
false;
1320 static _GLIBCXX_CONSTEXPR
unsigned long
1322 {
return static_cast<unsigned long>(0); }
1324 static _GLIBCXX_CONSTEXPR
unsigned long
1326 {
return static_cast<unsigned long>(0); }
1328 static _GLIBCXX_CONSTEXPR
unsigned long
1330 {
return static_cast<unsigned long>(0); }
1332 static _GLIBCXX_CONSTEXPR
unsigned long
1334 {
return static_cast<unsigned long>(0); }
1336 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
1337 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
1338 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
true;
1340 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
1341 static _GLIBCXX_USE_CONSTEXPR
bool tinyness_before =
false;
1350 static _GLIBCXX_USE_CONSTEXPR
bool is_specialized =
true;
1352 static _GLIBCXX_CONSTEXPR
long long
1353 min() _GLIBCXX_USE_NOEXCEPT {
return -__LONG_LONG_MAX__ - 1; }
1355 static _GLIBCXX_CONSTEXPR
long long
1356 max() _GLIBCXX_USE_NOEXCEPT {
return __LONG_LONG_MAX__; }
1358#if __cplusplus >= 201103L
1359 static constexpr long long
1363 static _GLIBCXX_USE_CONSTEXPR
int digits
1364 = __glibcxx_digits (
long long);
1365 static _GLIBCXX_USE_CONSTEXPR
int digits10
1366 = __glibcxx_digits10 (
long long);
1367#if __cplusplus >= 201103L
1368 static constexpr int max_digits10 = 0;
1370 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
true;
1371 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
1372 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
1373 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
1375 static _GLIBCXX_CONSTEXPR
long long
1376 epsilon() _GLIBCXX_USE_NOEXCEPT {
return 0; }
1378 static _GLIBCXX_CONSTEXPR
long long
1381 static _GLIBCXX_USE_CONSTEXPR
int min_exponent = 0;
1382 static _GLIBCXX_USE_CONSTEXPR
int min_exponent10 = 0;
1383 static _GLIBCXX_USE_CONSTEXPR
int max_exponent = 0;
1384 static _GLIBCXX_USE_CONSTEXPR
int max_exponent10 = 0;
1386 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
1387 static _GLIBCXX_USE_CONSTEXPR
bool has_quiet_NaN =
false;
1388 static _GLIBCXX_USE_CONSTEXPR
bool has_signaling_NaN =
false;
1391 static _GLIBCXX_USE_CONSTEXPR
bool has_denorm_loss =
false;
1393 static _GLIBCXX_CONSTEXPR
long long
1394 infinity() _GLIBCXX_USE_NOEXCEPT {
return static_cast<long long>(0); }
1396 static _GLIBCXX_CONSTEXPR
long long
1397 quiet_NaN() _GLIBCXX_USE_NOEXCEPT {
return static_cast<long long>(0); }
1399 static _GLIBCXX_CONSTEXPR
long long
1401 {
return static_cast<long long>(0); }
1403 static _GLIBCXX_CONSTEXPR
long long
1404 denorm_min() _GLIBCXX_USE_NOEXCEPT {
return static_cast<long long>(0); }
1406 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
1407 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
1408 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
false;
1410 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
1411 static _GLIBCXX_USE_CONSTEXPR
bool tinyness_before =
false;
1420 static _GLIBCXX_USE_CONSTEXPR
bool is_specialized =
true;
1422 static _GLIBCXX_CONSTEXPR
unsigned long long
1423 min() _GLIBCXX_USE_NOEXCEPT {
return 0; }
1425 static _GLIBCXX_CONSTEXPR
unsigned long long
1426 max() _GLIBCXX_USE_NOEXCEPT {
return __LONG_LONG_MAX__ * 2ULL + 1; }
1428#if __cplusplus >= 201103L
1429 static constexpr unsigned long long
1433 static _GLIBCXX_USE_CONSTEXPR
int digits
1434 = __glibcxx_digits (
unsigned long long);
1435 static _GLIBCXX_USE_CONSTEXPR
int digits10
1436 = __glibcxx_digits10 (
unsigned long long);
1437#if __cplusplus >= 201103L
1438 static constexpr int max_digits10 = 0;
1440 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
false;
1441 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
true;
1442 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
true;
1443 static _GLIBCXX_USE_CONSTEXPR
int radix = 2;
1445 static _GLIBCXX_CONSTEXPR
unsigned long long
1446 epsilon() _GLIBCXX_USE_NOEXCEPT {
return 0; }
1448 static _GLIBCXX_CONSTEXPR
unsigned long long
1451 static _GLIBCXX_USE_CONSTEXPR
int min_exponent = 0;
1452 static _GLIBCXX_USE_CONSTEXPR
int min_exponent10 = 0;
1453 static _GLIBCXX_USE_CONSTEXPR
int max_exponent = 0;
1454 static _GLIBCXX_USE_CONSTEXPR
int max_exponent10 = 0;
1456 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity =
false;
1457 static _GLIBCXX_USE_CONSTEXPR
bool has_quiet_NaN =
false;
1458 static _GLIBCXX_USE_CONSTEXPR
bool has_signaling_NaN =
false;
1461 static _GLIBCXX_USE_CONSTEXPR
bool has_denorm_loss =
false;
1463 static _GLIBCXX_CONSTEXPR
unsigned long long
1465 {
return static_cast<unsigned long long>(0); }
1467 static _GLIBCXX_CONSTEXPR
unsigned long long
1469 {
return static_cast<unsigned long long>(0); }
1471 static _GLIBCXX_CONSTEXPR
unsigned long long
1473 {
return static_cast<unsigned long long>(0); }
1475 static _GLIBCXX_CONSTEXPR
unsigned long long
1477 {
return static_cast<unsigned long long>(0); }
1479 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559 =
false;
1480 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
1481 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
true;
1483 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_integral_traps;
1484 static _GLIBCXX_USE_CONSTEXPR
bool tinyness_before =
false;
1489#define __INT_N(TYPE, BITSIZE, EXT, UEXT) \
1492 struct numeric_limits<TYPE> \
1494 static _GLIBCXX_USE_CONSTEXPR bool is_specialized = true; \
1496 static _GLIBCXX_CONSTEXPR TYPE \
1497 min() _GLIBCXX_USE_NOEXCEPT { return __glibcxx_min_b (TYPE, BITSIZE); } \
1499 static _GLIBCXX_CONSTEXPR TYPE \
1500 max() _GLIBCXX_USE_NOEXCEPT { return __glibcxx_max_b (TYPE, BITSIZE); } \
1502 static _GLIBCXX_USE_CONSTEXPR int digits \
1504 static _GLIBCXX_USE_CONSTEXPR int digits10 \
1505 = (BITSIZE - 1) * 643L / 2136; \
1507 static _GLIBCXX_USE_CONSTEXPR bool is_signed = true; \
1508 static _GLIBCXX_USE_CONSTEXPR bool is_integer = true; \
1509 static _GLIBCXX_USE_CONSTEXPR bool is_exact = true; \
1510 static _GLIBCXX_USE_CONSTEXPR int radix = 2; \
1512 static _GLIBCXX_CONSTEXPR TYPE \
1513 epsilon() _GLIBCXX_USE_NOEXCEPT { return 0; } \
1515 static _GLIBCXX_CONSTEXPR TYPE \
1516 round_error() _GLIBCXX_USE_NOEXCEPT { return 0; } \
1520 static _GLIBCXX_USE_CONSTEXPR int min_exponent = 0; \
1521 static _GLIBCXX_USE_CONSTEXPR int min_exponent10 = 0; \
1522 static _GLIBCXX_USE_CONSTEXPR int max_exponent = 0; \
1523 static _GLIBCXX_USE_CONSTEXPR int max_exponent10 = 0; \
1525 static _GLIBCXX_USE_CONSTEXPR bool has_infinity = false; \
1526 static _GLIBCXX_USE_CONSTEXPR bool has_quiet_NaN = false; \
1527 static _GLIBCXX_USE_CONSTEXPR bool has_signaling_NaN = false; \
1528 static _GLIBCXX_USE_CONSTEXPR float_denorm_style has_denorm \
1530 static _GLIBCXX_USE_CONSTEXPR bool has_denorm_loss = false; \
1532 static _GLIBCXX_CONSTEXPR TYPE \
1533 infinity() _GLIBCXX_USE_NOEXCEPT \
1534 { return static_cast<TYPE>(0); } \
1536 static _GLIBCXX_CONSTEXPR TYPE \
1537 quiet_NaN() _GLIBCXX_USE_NOEXCEPT \
1538 { return static_cast<TYPE>(0); } \
1540 static _GLIBCXX_CONSTEXPR TYPE \
1541 signaling_NaN() _GLIBCXX_USE_NOEXCEPT \
1542 { return static_cast<TYPE>(0); } \
1544 static _GLIBCXX_CONSTEXPR TYPE \
1545 denorm_min() _GLIBCXX_USE_NOEXCEPT \
1546 { return static_cast<TYPE>(0); } \
1548 static _GLIBCXX_USE_CONSTEXPR bool is_iec559 = false; \
1549 static _GLIBCXX_USE_CONSTEXPR bool is_bounded = true; \
1550 static _GLIBCXX_USE_CONSTEXPR bool is_modulo = false; \
1552 static _GLIBCXX_USE_CONSTEXPR bool traps \
1553 = __glibcxx_integral_traps; \
1554 static _GLIBCXX_USE_CONSTEXPR bool tinyness_before = false; \
1555 static _GLIBCXX_USE_CONSTEXPR float_round_style round_style \
1556 = round_toward_zero; \
1561 struct numeric_limits<unsigned TYPE> \
1563 static _GLIBCXX_USE_CONSTEXPR bool is_specialized = true; \
1565 static _GLIBCXX_CONSTEXPR unsigned TYPE \
1566 min() _GLIBCXX_USE_NOEXCEPT { return 0; } \
1568 static _GLIBCXX_CONSTEXPR unsigned TYPE \
1569 max() _GLIBCXX_USE_NOEXCEPT \
1570 { return __glibcxx_max_b (unsigned TYPE, BITSIZE); } \
1574 static _GLIBCXX_USE_CONSTEXPR int digits \
1576 static _GLIBCXX_USE_CONSTEXPR int digits10 \
1577 = BITSIZE * 643L / 2136; \
1578 static _GLIBCXX_USE_CONSTEXPR bool is_signed = false; \
1579 static _GLIBCXX_USE_CONSTEXPR bool is_integer = true; \
1580 static _GLIBCXX_USE_CONSTEXPR bool is_exact = true; \
1581 static _GLIBCXX_USE_CONSTEXPR int radix = 2; \
1583 static _GLIBCXX_CONSTEXPR unsigned TYPE \
1584 epsilon() _GLIBCXX_USE_NOEXCEPT { return 0; } \
1586 static _GLIBCXX_CONSTEXPR unsigned TYPE \
1587 round_error() _GLIBCXX_USE_NOEXCEPT { return 0; } \
1589 static _GLIBCXX_USE_CONSTEXPR int min_exponent = 0; \
1590 static _GLIBCXX_USE_CONSTEXPR int min_exponent10 = 0; \
1591 static _GLIBCXX_USE_CONSTEXPR int max_exponent = 0; \
1592 static _GLIBCXX_USE_CONSTEXPR int max_exponent10 = 0; \
1594 static _GLIBCXX_USE_CONSTEXPR bool has_infinity = false; \
1595 static _GLIBCXX_USE_CONSTEXPR bool has_quiet_NaN = false; \
1596 static _GLIBCXX_USE_CONSTEXPR bool has_signaling_NaN = false; \
1597 static _GLIBCXX_USE_CONSTEXPR float_denorm_style has_denorm \
1599 static _GLIBCXX_USE_CONSTEXPR bool has_denorm_loss = false; \
1601 static _GLIBCXX_CONSTEXPR unsigned TYPE \
1602 infinity() _GLIBCXX_USE_NOEXCEPT \
1603 { return static_cast<unsigned TYPE>(0); } \
1605 static _GLIBCXX_CONSTEXPR unsigned TYPE \
1606 quiet_NaN() _GLIBCXX_USE_NOEXCEPT \
1607 { return static_cast<unsigned TYPE>(0); } \
1609 static _GLIBCXX_CONSTEXPR unsigned TYPE \
1610 signaling_NaN() _GLIBCXX_USE_NOEXCEPT \
1611 { return static_cast<unsigned TYPE>(0); } \
1613 static _GLIBCXX_CONSTEXPR unsigned TYPE \
1614 denorm_min() _GLIBCXX_USE_NOEXCEPT \
1615 { return static_cast<unsigned TYPE>(0); } \
1617 static _GLIBCXX_USE_CONSTEXPR bool is_iec559 = false; \
1618 static _GLIBCXX_USE_CONSTEXPR bool is_bounded = true; \
1619 static _GLIBCXX_USE_CONSTEXPR bool is_modulo = true; \
1621 static _GLIBCXX_USE_CONSTEXPR bool traps = __glibcxx_integral_traps; \
1622 static _GLIBCXX_USE_CONSTEXPR bool tinyness_before = false; \
1623 static _GLIBCXX_USE_CONSTEXPR float_round_style round_style \
1624 = round_toward_zero; \
1627#if __cplusplus >= 201103L
1629#define __INT_N_201103(TYPE) \
1630 static constexpr TYPE \
1631 lowest() noexcept { return min(); } \
1632 static constexpr int max_digits10 = 0;
1634#define __INT_N_U201103(TYPE) \
1635 static constexpr unsigned TYPE \
1636 lowest() noexcept { return min(); } \
1637 static constexpr int max_digits10 = 0;
1640#define __INT_N_201103(TYPE)
1641#define __INT_N_U201103(TYPE)
1644#ifdef __GLIBCXX_TYPE_INT_N_0
1645 __INT_N(__GLIBCXX_TYPE_INT_N_0, __GLIBCXX_BITSIZE_INT_N_0,
1646 __INT_N_201103 (__GLIBCXX_TYPE_INT_N_0),
1647 __INT_N_U201103 (__GLIBCXX_TYPE_INT_N_0))
1649#ifdef __GLIBCXX_TYPE_INT_N_1
1650 __INT_N (__GLIBCXX_TYPE_INT_N_1, __GLIBCXX_BITSIZE_INT_N_1,
1651 __INT_N_201103 (__GLIBCXX_TYPE_INT_N_1),
1652 __INT_N_U201103 (__GLIBCXX_TYPE_INT_N_1))
1654#ifdef __GLIBCXX_TYPE_INT_N_2
1655 __INT_N (__GLIBCXX_TYPE_INT_N_2, __GLIBCXX_BITSIZE_INT_N_2,
1656 __INT_N_201103 (__GLIBCXX_TYPE_INT_N_2),
1657 __INT_N_U201103 (__GLIBCXX_TYPE_INT_N_2))
1659#ifdef __GLIBCXX_TYPE_INT_N_3
1660 __INT_N (__GLIBCXX_TYPE_INT_N_3, __GLIBCXX_BITSIZE_INT_N_3,
1661 __INT_N_201103 (__GLIBCXX_TYPE_INT_N_3),
1662 __INT_N_U201103 (__GLIBCXX_TYPE_INT_N_3))
1665#if defined __STRICT_ANSI__ && defined __SIZEOF_INT128__
1666 __INT_N(__int128, 128,
1667 __INT_N_201103 (__int128),
1668 __INT_N_U201103 (__int128))
1672#undef __INT_N_201103
1673#undef __INT_N_U201103
1680 static _GLIBCXX_USE_CONSTEXPR
bool is_specialized =
true;
1682 static _GLIBCXX_CONSTEXPR
float
1683 min() _GLIBCXX_USE_NOEXCEPT {
return __FLT_MIN__; }
1685 static _GLIBCXX_CONSTEXPR
float
1686 max() _GLIBCXX_USE_NOEXCEPT {
return __FLT_MAX__; }
1688#if __cplusplus >= 201103L
1689 static constexpr float
1690 lowest()
noexcept {
return -__FLT_MAX__; }
1693 static _GLIBCXX_USE_CONSTEXPR
int digits = __FLT_MANT_DIG__;
1694 static _GLIBCXX_USE_CONSTEXPR
int digits10 = __FLT_DIG__;
1695#if __cplusplus >= 201103L
1696 static constexpr int max_digits10
1697 = __glibcxx_max_digits10 (__FLT_MANT_DIG__);
1699 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
true;
1700 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
false;
1701 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
false;
1702 static _GLIBCXX_USE_CONSTEXPR
int radix = __FLT_RADIX__;
1704 static _GLIBCXX_CONSTEXPR
float
1705 epsilon() _GLIBCXX_USE_NOEXCEPT {
return __FLT_EPSILON__; }
1707 static _GLIBCXX_CONSTEXPR
float
1708 round_error() _GLIBCXX_USE_NOEXCEPT {
return 0.5F; }
1710 static _GLIBCXX_USE_CONSTEXPR
int min_exponent = __FLT_MIN_EXP__;
1711 static _GLIBCXX_USE_CONSTEXPR
int min_exponent10 = __FLT_MIN_10_EXP__;
1712 static _GLIBCXX_USE_CONSTEXPR
int max_exponent = __FLT_MAX_EXP__;
1713 static _GLIBCXX_USE_CONSTEXPR
int max_exponent10 = __FLT_MAX_10_EXP__;
1715 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity = __FLT_HAS_INFINITY__;
1716 static _GLIBCXX_USE_CONSTEXPR
bool has_quiet_NaN = __FLT_HAS_QUIET_NAN__;
1717 static _GLIBCXX_USE_CONSTEXPR
bool has_signaling_NaN = has_quiet_NaN;
1720 static _GLIBCXX_USE_CONSTEXPR
bool has_denorm_loss
1721 = __glibcxx_float_has_denorm_loss;
1723 static _GLIBCXX_CONSTEXPR
float
1724 infinity() _GLIBCXX_USE_NOEXCEPT {
return __builtin_huge_valf(); }
1726 static _GLIBCXX_CONSTEXPR
float
1727 quiet_NaN() _GLIBCXX_USE_NOEXCEPT {
return __builtin_nanf(
""); }
1729 static _GLIBCXX_CONSTEXPR
float
1730 signaling_NaN() _GLIBCXX_USE_NOEXCEPT {
return __builtin_nansf(
""); }
1732 static _GLIBCXX_CONSTEXPR
float
1733 denorm_min() _GLIBCXX_USE_NOEXCEPT {
return __FLT_DENORM_MIN__; }
1735 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559
1737 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
1738 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
false;
1740 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_float_traps;
1741 static _GLIBCXX_USE_CONSTEXPR
bool tinyness_before
1742 = __glibcxx_float_tinyness_before;
1747#undef __glibcxx_float_has_denorm_loss
1748#undef __glibcxx_float_traps
1749#undef __glibcxx_float_tinyness_before
1755 static _GLIBCXX_USE_CONSTEXPR
bool is_specialized =
true;
1757 static _GLIBCXX_CONSTEXPR
double
1758 min() _GLIBCXX_USE_NOEXCEPT {
return __DBL_MIN__; }
1760 static _GLIBCXX_CONSTEXPR
double
1761 max() _GLIBCXX_USE_NOEXCEPT {
return __DBL_MAX__; }
1763#if __cplusplus >= 201103L
1764 static constexpr double
1765 lowest()
noexcept {
return -__DBL_MAX__; }
1768 static _GLIBCXX_USE_CONSTEXPR
int digits = __DBL_MANT_DIG__;
1769 static _GLIBCXX_USE_CONSTEXPR
int digits10 = __DBL_DIG__;
1770#if __cplusplus >= 201103L
1771 static constexpr int max_digits10
1772 = __glibcxx_max_digits10 (__DBL_MANT_DIG__);
1774 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
true;
1775 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
false;
1776 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
false;
1777 static _GLIBCXX_USE_CONSTEXPR
int radix = __FLT_RADIX__;
1779 static _GLIBCXX_CONSTEXPR
double
1780 epsilon() _GLIBCXX_USE_NOEXCEPT {
return __DBL_EPSILON__; }
1782 static _GLIBCXX_CONSTEXPR
double
1783 round_error() _GLIBCXX_USE_NOEXCEPT {
return 0.5; }
1785 static _GLIBCXX_USE_CONSTEXPR
int min_exponent = __DBL_MIN_EXP__;
1786 static _GLIBCXX_USE_CONSTEXPR
int min_exponent10 = __DBL_MIN_10_EXP__;
1787 static _GLIBCXX_USE_CONSTEXPR
int max_exponent = __DBL_MAX_EXP__;
1788 static _GLIBCXX_USE_CONSTEXPR
int max_exponent10 = __DBL_MAX_10_EXP__;
1790 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity = __DBL_HAS_INFINITY__;
1791 static _GLIBCXX_USE_CONSTEXPR
bool has_quiet_NaN = __DBL_HAS_QUIET_NAN__;
1792 static _GLIBCXX_USE_CONSTEXPR
bool has_signaling_NaN = has_quiet_NaN;
1795 static _GLIBCXX_USE_CONSTEXPR
bool has_denorm_loss
1796 = __glibcxx_double_has_denorm_loss;
1798 static _GLIBCXX_CONSTEXPR
double
1799 infinity() _GLIBCXX_USE_NOEXCEPT {
return __builtin_huge_val(); }
1801 static _GLIBCXX_CONSTEXPR
double
1802 quiet_NaN() _GLIBCXX_USE_NOEXCEPT {
return __builtin_nan(
""); }
1804 static _GLIBCXX_CONSTEXPR
double
1805 signaling_NaN() _GLIBCXX_USE_NOEXCEPT {
return __builtin_nans(
""); }
1807 static _GLIBCXX_CONSTEXPR
double
1808 denorm_min() _GLIBCXX_USE_NOEXCEPT {
return __DBL_DENORM_MIN__; }
1810 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559
1812 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
1813 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
false;
1815 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_double_traps;
1816 static _GLIBCXX_USE_CONSTEXPR
bool tinyness_before
1817 = __glibcxx_double_tinyness_before;
1822#undef __glibcxx_double_has_denorm_loss
1823#undef __glibcxx_double_traps
1824#undef __glibcxx_double_tinyness_before
1830 static _GLIBCXX_USE_CONSTEXPR
bool is_specialized =
true;
1832 static _GLIBCXX_CONSTEXPR
long double
1833 min() _GLIBCXX_USE_NOEXCEPT {
return __LDBL_MIN__; }
1835 static _GLIBCXX_CONSTEXPR
long double
1836 max() _GLIBCXX_USE_NOEXCEPT {
return __LDBL_MAX__; }
1838#if __cplusplus >= 201103L
1839 static constexpr long double
1840 lowest()
noexcept {
return -__LDBL_MAX__; }
1843 static _GLIBCXX_USE_CONSTEXPR
int digits = __LDBL_MANT_DIG__;
1844 static _GLIBCXX_USE_CONSTEXPR
int digits10 = __LDBL_DIG__;
1845#if __cplusplus >= 201103L
1846 static _GLIBCXX_USE_CONSTEXPR
int max_digits10
1847 = __glibcxx_max_digits10 (__LDBL_MANT_DIG__);
1849 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
true;
1850 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
false;
1851 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
false;
1852 static _GLIBCXX_USE_CONSTEXPR
int radix = __FLT_RADIX__;
1854 static _GLIBCXX_CONSTEXPR
long double
1855 epsilon() _GLIBCXX_USE_NOEXCEPT {
return __LDBL_EPSILON__; }
1857 static _GLIBCXX_CONSTEXPR
long double
1858 round_error() _GLIBCXX_USE_NOEXCEPT {
return 0.5L; }
1860 static _GLIBCXX_USE_CONSTEXPR
int min_exponent = __LDBL_MIN_EXP__;
1861 static _GLIBCXX_USE_CONSTEXPR
int min_exponent10 = __LDBL_MIN_10_EXP__;
1862 static _GLIBCXX_USE_CONSTEXPR
int max_exponent = __LDBL_MAX_EXP__;
1863 static _GLIBCXX_USE_CONSTEXPR
int max_exponent10 = __LDBL_MAX_10_EXP__;
1865 static _GLIBCXX_USE_CONSTEXPR
bool has_infinity = __LDBL_HAS_INFINITY__;
1866 static _GLIBCXX_USE_CONSTEXPR
bool has_quiet_NaN = __LDBL_HAS_QUIET_NAN__;
1867 static _GLIBCXX_USE_CONSTEXPR
bool has_signaling_NaN = has_quiet_NaN;
1870 static _GLIBCXX_USE_CONSTEXPR
bool has_denorm_loss
1871 = __glibcxx_long_double_has_denorm_loss;
1873 static _GLIBCXX_CONSTEXPR
long double
1874 infinity() _GLIBCXX_USE_NOEXCEPT {
return __builtin_huge_vall(); }
1876 static _GLIBCXX_CONSTEXPR
long double
1877 quiet_NaN() _GLIBCXX_USE_NOEXCEPT {
return __builtin_nanl(
""); }
1879 static _GLIBCXX_CONSTEXPR
long double
1880 signaling_NaN() _GLIBCXX_USE_NOEXCEPT {
return __builtin_nansl(
""); }
1882 static _GLIBCXX_CONSTEXPR
long double
1883 denorm_min() _GLIBCXX_USE_NOEXCEPT {
return __LDBL_DENORM_MIN__; }
1885 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559
1887 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
1888 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
false;
1890 static _GLIBCXX_USE_CONSTEXPR
bool traps = __glibcxx_long_double_traps;
1891 static _GLIBCXX_USE_CONSTEXPR
bool tinyness_before =
1892 __glibcxx_long_double_tinyness_before;
1897#undef __glibcxx_long_double_has_denorm_loss
1898#undef __glibcxx_long_double_traps
1899#undef __glibcxx_long_double_tinyness_before
1901#define __glibcxx_concat3_(P,M,S) P ## M ## S
1902#define __glibcxx_concat3(P,M,S) __glibcxx_concat3_ (P,M,S)
1904#if __cplusplus >= 201103L
1905# define __max_digits10 max_digits10
1908#define __glibcxx_float_n(BITSIZE) \
1911 struct numeric_limits<_Float##BITSIZE> \
1913 static _GLIBCXX_USE_CONSTEXPR bool is_specialized = true; \
1915 static _GLIBCXX_CONSTEXPR _Float##BITSIZE \
1916 min() _GLIBCXX_USE_NOEXCEPT \
1917 { return __glibcxx_concat3 (__FLT, BITSIZE, _MIN__); } \
1919 static _GLIBCXX_CONSTEXPR _Float##BITSIZE \
1920 max() _GLIBCXX_USE_NOEXCEPT \
1921 { return __glibcxx_concat3 (__FLT, BITSIZE, _MAX__); } \
1923 static _GLIBCXX_CONSTEXPR _Float##BITSIZE \
1924 lowest() _GLIBCXX_USE_NOEXCEPT \
1925 { return -__glibcxx_concat3 (__FLT, BITSIZE, _MAX__); } \
1927 static _GLIBCXX_USE_CONSTEXPR int digits \
1928 = __glibcxx_concat3 (__FLT, BITSIZE, _MANT_DIG__); \
1929 static _GLIBCXX_USE_CONSTEXPR int digits10 \
1930 = __glibcxx_concat3 (__FLT, BITSIZE, _DIG__); \
1931 static _GLIBCXX_USE_CONSTEXPR int __max_digits10 \
1932 = __glibcxx_max_digits10 (__glibcxx_concat3 (__FLT, BITSIZE, \
1934 static _GLIBCXX_USE_CONSTEXPR bool is_signed = true; \
1935 static _GLIBCXX_USE_CONSTEXPR bool is_integer = false; \
1936 static _GLIBCXX_USE_CONSTEXPR bool is_exact = false; \
1937 static _GLIBCXX_USE_CONSTEXPR int radix = __FLT_RADIX__; \
1939 static _GLIBCXX_CONSTEXPR _Float##BITSIZE \
1940 epsilon() _GLIBCXX_USE_NOEXCEPT \
1941 { return __glibcxx_concat3 (__FLT, BITSIZE, _EPSILON__); } \
1943 static _GLIBCXX_CONSTEXPR _Float##BITSIZE \
1944 round_error() _GLIBCXX_USE_NOEXCEPT { return 0.5F##BITSIZE; } \
1946 static _GLIBCXX_USE_CONSTEXPR int min_exponent \
1947 = __glibcxx_concat3 (__FLT, BITSIZE, _MIN_EXP__); \
1948 static _GLIBCXX_USE_CONSTEXPR int min_exponent10 \
1949 = __glibcxx_concat3 (__FLT, BITSIZE, _MIN_10_EXP__); \
1950 static _GLIBCXX_USE_CONSTEXPR int max_exponent \
1951 = __glibcxx_concat3 (__FLT, BITSIZE, _MAX_EXP__); \
1952 static _GLIBCXX_USE_CONSTEXPR int max_exponent10 \
1953 = __glibcxx_concat3 (__FLT, BITSIZE, _MAX_10_EXP__); \
1955 static _GLIBCXX_USE_CONSTEXPR bool has_infinity \
1956 = __glibcxx_concat3 (__FLT, BITSIZE, _HAS_INFINITY__); \
1957 static _GLIBCXX_USE_CONSTEXPR bool has_quiet_NaN \
1958 = __glibcxx_concat3 (__FLT, BITSIZE, _HAS_QUIET_NAN__); \
1959 static _GLIBCXX_USE_CONSTEXPR bool has_signaling_NaN \
1961 static _GLIBCXX_USE_CONSTEXPR float_denorm_style has_denorm \
1962 = bool(__glibcxx_concat3 (__FLT, BITSIZE, _HAS_DENORM__)) \
1963 ? denorm_present : denorm_absent; \
1964 static _GLIBCXX_USE_CONSTEXPR bool has_denorm_loss = false; \
1966 static _GLIBCXX_CONSTEXPR _Float##BITSIZE \
1967 infinity() _GLIBCXX_USE_NOEXCEPT \
1968 { return __builtin_huge_valf##BITSIZE(); } \
1970 static _GLIBCXX_CONSTEXPR _Float##BITSIZE \
1971 quiet_NaN() _GLIBCXX_USE_NOEXCEPT \
1972 { return __builtin_nanf##BITSIZE(""); } \
1974 static _GLIBCXX_CONSTEXPR _Float##BITSIZE \
1975 signaling_NaN() _GLIBCXX_USE_NOEXCEPT \
1976 { return __builtin_nansf##BITSIZE(""); } \
1978 static _GLIBCXX_CONSTEXPR _Float##BITSIZE \
1979 denorm_min() _GLIBCXX_USE_NOEXCEPT \
1980 { return __glibcxx_concat3 (__FLT, BITSIZE, _DENORM_MIN__); } \
1982 static _GLIBCXX_USE_CONSTEXPR bool is_iec559 \
1983 = has_infinity && has_quiet_NaN && has_denorm == denorm_present;\
1984 static _GLIBCXX_USE_CONSTEXPR bool is_bounded = true; \
1985 static _GLIBCXX_USE_CONSTEXPR bool is_modulo = false; \
1987 static _GLIBCXX_USE_CONSTEXPR bool traps = false; \
1988 static _GLIBCXX_USE_CONSTEXPR bool tinyness_before = false; \
1989 static _GLIBCXX_USE_CONSTEXPR float_round_style round_style \
1990 = round_to_nearest; \
1993#ifdef __STDCPP_FLOAT16_T__
1994__glibcxx_float_n(16)
1997__glibcxx_float_n(32)
2000__glibcxx_float_n(64)
2002#ifdef __FLT128_DIG__
2003__glibcxx_float_n(128)
2005#undef __glibcxx_float_n
2006#undef __glibcxx_concat3
2007#undef __glibcxx_concat3_
2009#if __cplusplus >= 201103L
2010# undef __max_digits10
2013#ifdef __STDCPP_BFLOAT16_T__
2020 static _GLIBCXX_CONSTEXPR __gnu_cxx::__bfloat16_t
2021 min() _GLIBCXX_USE_NOEXCEPT
2022 {
return __BFLT16_MIN__; }
2024 static _GLIBCXX_CONSTEXPR __gnu_cxx::__bfloat16_t
2025 max() _GLIBCXX_USE_NOEXCEPT
2026 {
return __BFLT16_MAX__; }
2028 static _GLIBCXX_CONSTEXPR __gnu_cxx::__bfloat16_t
2029 lowest() _GLIBCXX_USE_NOEXCEPT
2030 {
return -__BFLT16_MAX__; }
2032 static _GLIBCXX_USE_CONSTEXPR
int digits = __BFLT16_MANT_DIG__;
2033 static _GLIBCXX_USE_CONSTEXPR
int digits10 = __BFLT16_DIG__;
2034#if __cplusplus >= 201103L
2036 = __glibcxx_max_digits10 (__BFLT16_MANT_DIG__);
2038 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
true;
2039 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
false;
2040 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
false;
2041 static _GLIBCXX_USE_CONSTEXPR
int radix = __FLT_RADIX__;
2043 static _GLIBCXX_CONSTEXPR __gnu_cxx::__bfloat16_t
2044 epsilon() _GLIBCXX_USE_NOEXCEPT
2045 {
return __BFLT16_EPSILON__; }
2047 static _GLIBCXX_CONSTEXPR __gnu_cxx::__bfloat16_t
2048 round_error() _GLIBCXX_USE_NOEXCEPT {
return 0.5BF16; }
2050 static _GLIBCXX_USE_CONSTEXPR
int min_exponent = __BFLT16_MIN_EXP__;
2051 static _GLIBCXX_USE_CONSTEXPR
int min_exponent10 = __BFLT16_MIN_10_EXP__;
2052 static _GLIBCXX_USE_CONSTEXPR
int max_exponent = __BFLT16_MAX_EXP__;
2053 static _GLIBCXX_USE_CONSTEXPR
int max_exponent10 = __BFLT16_MAX_10_EXP__;
2056 = __BFLT16_HAS_INFINITY__;
2058 = __BFLT16_HAS_QUIET_NAN__;
2064 static _GLIBCXX_CONSTEXPR __gnu_cxx::__bfloat16_t
2066 {
return __gnu_cxx::__bfloat16_t(__builtin_huge_valf()); }
2068 static _GLIBCXX_CONSTEXPR __gnu_cxx::__bfloat16_t
2070 {
return __gnu_cxx::__bfloat16_t(__builtin_nanf(
"")); }
2072 static _GLIBCXX_CONSTEXPR __gnu_cxx::__bfloat16_t
2074 {
return __builtin_nansf16b(
""); }
2076 static _GLIBCXX_CONSTEXPR __gnu_cxx::__bfloat16_t
2078 {
return __BFLT16_DENORM_MIN__; }
2080 static _GLIBCXX_USE_CONSTEXPR
bool is_iec559
2082 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
2083 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
false;
2085 static _GLIBCXX_USE_CONSTEXPR
bool traps =
false;
2092#if defined(_GLIBCXX_USE_FLOAT128)
2094#if ! defined(__STRICT_ANSI__) || defined(_GLIBCXX_DOUBLE_IS_IEEE_BINARY64)
2101 static _GLIBCXX_CONSTEXPR __float128
2102 min() _GLIBCXX_USE_NOEXCEPT
2104#ifdef __STRICT_ANSI__
2106 return double(9.3132257461547852e-10) * _S_1pm16352();
2108 return __extension__ 0x1.0p-16382Q;
2112 static _GLIBCXX_CONSTEXPR __float128
2113 max() _GLIBCXX_USE_NOEXCEPT
2115#ifdef __STRICT_ANSI__
2118 return (__float128(
double(3.4028236692093843e+38))
2119 +
double(3.7778931862957153e+22) +
double(8.35584e+6))
2122 return __extension__ 0x1.ffffffffffffffffffffffffffffp+16383Q;
2126 static _GLIBCXX_CONSTEXPR __float128
2127 lowest() _GLIBCXX_USE_NOEXCEPT
2130 static _GLIBCXX_USE_CONSTEXPR
int digits = 113;
2131 static _GLIBCXX_USE_CONSTEXPR
int digits10 = 33;
2132#if __cplusplus >= 201103L
2135 static _GLIBCXX_USE_CONSTEXPR
bool is_signed =
true;
2136 static _GLIBCXX_USE_CONSTEXPR
bool is_integer =
false;
2137 static _GLIBCXX_USE_CONSTEXPR
bool is_exact =
false;
2138 static _GLIBCXX_USE_CONSTEXPR
int radix = __FLT_RADIX__;
2140 static _GLIBCXX_CONSTEXPR __float128
2141 epsilon() _GLIBCXX_USE_NOEXCEPT
2142 {
return double(1.9259299443872359e-34); }
2144 static _GLIBCXX_CONSTEXPR __float128
2145 round_error() _GLIBCXX_USE_NOEXCEPT {
return 0.5; }
2147 static _GLIBCXX_USE_CONSTEXPR
int min_exponent = -16381;
2149 static _GLIBCXX_USE_CONSTEXPR
int max_exponent = 16384;
2154#if __has_builtin(__builtin_nansq) \
2155 || (__has_builtin(__builtin_bit_cast) && __has_builtin(__builtin_nansf128))
2164 static _GLIBCXX_CONSTEXPR __float128
2166 {
return __builtin_huge_val(); }
2168 static _GLIBCXX_CONSTEXPR __float128
2170 {
return __builtin_nan(
""); }
2172 static _GLIBCXX_CONSTEXPR __float128
2175#if __has_builtin(__builtin_nansq)
2176 return __builtin_nansq(
"");
2177#elif __has_builtin(__builtin_bit_cast) && __has_builtin(__builtin_nansf128)
2178 return __builtin_bit_cast(__float128, __builtin_nansf128(
""));
2184 static _GLIBCXX_CONSTEXPR __float128
2187#if defined(__STRICT_ANSI__) || defined(__INTEL_COMPILER)
2189 return double(1.7936620343357659e-43) * _S_1pm16352();
2191 return __extension__ 0x1.0p-16494Q;
2196 static _GLIBCXX_USE_CONSTEXPR
bool is_bounded =
true;
2197 static _GLIBCXX_USE_CONSTEXPR
bool is_modulo =
false;
2199 static _GLIBCXX_USE_CONSTEXPR
bool traps =
false;
2204#if defined(__STRICT_ANSI__) || defined(__INTEL_COMPILER)
2206 static _GLIBCXX_CONSTEXPR __float128
2207 _S_4p(__float128 __v) _GLIBCXX_USE_NOEXCEPT
2208 {
return __v * __v * __v * __v; }
2210 static _GLIBCXX_CONSTEXPR __float128
2211 _S_1pm4088() _GLIBCXX_USE_NOEXCEPT
2212 {
return _S_4p(
double(2.2250738585072014e-308)); }
2214 static _GLIBCXX_CONSTEXPR __float128
2215 _S_1pm16352() _GLIBCXX_USE_NOEXCEPT
2216 {
return _S_4p(_S_1pm4088()); }
2218 static _GLIBCXX_CONSTEXPR __float128
2219 _S_1p4064() _GLIBCXX_USE_NOEXCEPT
2220 {
return _S_4p(
double(7.0222388080559215e+305)); }
2222 static _GLIBCXX_CONSTEXPR __float128
2223 _S_1p16256() _GLIBCXX_USE_NOEXCEPT
2224 {
return _S_4p(_S_1p4064()); }
2230_GLIBCXX_END_NAMESPACE_VERSION
2233#undef __glibcxx_signed
2236#undef __glibcxx_digits
2237#undef __glibcxx_digits10
2238#undef __glibcxx_max_digits10
2240#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