38 #ifndef _GLIBCXX_NUMERIC_LIMITS
39 #define _GLIBCXX_NUMERIC_LIMITS 1
41 #pragma GCC system_header
80 #ifndef __glibcxx_integral_traps
81 # define __glibcxx_integral_traps true
89 #ifndef __glibcxx_float_has_denorm_loss
90 # define __glibcxx_float_has_denorm_loss false
92 #ifndef __glibcxx_float_traps
93 # define __glibcxx_float_traps false
95 #ifndef __glibcxx_float_tinyness_before
96 # define __glibcxx_float_tinyness_before false
103 #ifndef __glibcxx_double_has_denorm_loss
104 # define __glibcxx_double_has_denorm_loss false
106 #ifndef __glibcxx_double_traps
107 # define __glibcxx_double_traps false
109 #ifndef __glibcxx_double_tinyness_before
110 # define __glibcxx_double_tinyness_before false
117 #ifndef __glibcxx_long_double_has_denorm_loss
118 # define __glibcxx_long_double_has_denorm_loss false
120 #ifndef __glibcxx_long_double_traps
121 # define __glibcxx_long_double_traps false
123 #ifndef __glibcxx_long_double_tinyness_before
124 # define __glibcxx_long_double_tinyness_before false
129 #define __glibcxx_signed(T) ((T)(-1) < 0)
131 #define __glibcxx_min(T) \
132 (__glibcxx_signed (T) ? (T)1 << __glibcxx_digits (T) : (T)0)
134 #define __glibcxx_max(T) \
135 (__glibcxx_signed (T) ? \
136 (((((T)1 << (__glibcxx_digits (T) - 1)) - 1) << 1) + 1) : ~(T)0)
138 #define __glibcxx_digits(T) \
139 (sizeof(T) * __CHAR_BIT__ - __glibcxx_signed (T))
142 #define __glibcxx_digits10(T) \
143 (__glibcxx_digits (T) * 643 / 2136)
146 _GLIBCXX_BEGIN_NAMESPACE(std)
192 static const bool is_specialized =
false;
197 static const int digits = 0;
199 static const int digits10 = 0;
201 static const bool is_signed =
false;
205 static const bool is_integer =
false;
210 static const bool is_exact =
false;
213 static const int radix = 0;
217 static const int min_exponent = 0;
220 static const int min_exponent10 = 0;
224 static const int max_exponent = 0;
227 static const int max_exponent10 = 0;
230 static const bool has_infinity =
false;
233 static const bool has_quiet_NaN =
false;
236 static const bool has_signaling_NaN =
false;
241 static const bool has_denorm_loss =
false;
245 static const bool is_iec559 =
false;
249 static const bool is_bounded =
false;
254 static const bool is_modulo =
false;
257 static const bool traps =
false;
259 static const bool tinyness_before =
false;
277 template<
typename _Tp>
282 static _Tp
min() throw() {
return static_cast<_Tp
>(0); }
284 static _Tp
max() throw() {
return static_cast<_Tp
>(0); }
287 static _Tp
epsilon() throw() {
return static_cast<_Tp
>(0); }
291 static _Tp
infinity() throw() {
return static_cast<_Tp
>(0); }
293 static _Tp
quiet_NaN() throw() {
return static_cast<_Tp
>(0); }
300 static _Tp
denorm_min() throw() {
return static_cast<_Tp
>(0); }
310 static const bool is_specialized =
true;
312 static bool min()
throw()
314 static bool max()
throw()
317 static const int digits = 1;
318 static const int digits10 = 0;
319 static const bool is_signed =
false;
320 static const bool is_integer =
true;
321 static const bool is_exact =
true;
322 static const int radix = 2;
323 static bool epsilon()
throw()
325 static bool round_error()
throw()
328 static const int min_exponent = 0;
329 static const int min_exponent10 = 0;
330 static const int max_exponent = 0;
331 static const int max_exponent10 = 0;
333 static const bool has_infinity =
false;
334 static const bool has_quiet_NaN =
false;
335 static const bool has_signaling_NaN =
false;
337 static const bool has_denorm_loss =
false;
339 static bool infinity()
throw()
341 static bool quiet_NaN()
throw()
343 static bool signaling_NaN()
throw()
345 static bool denorm_min()
throw()
348 static const bool is_iec559 =
false;
349 static const bool is_bounded =
true;
350 static const bool is_modulo =
false;
355 static const bool traps = __glibcxx_integral_traps;
356 static const bool tinyness_before =
false;
364 static const bool is_specialized =
true;
366 static char min()
throw()
367 {
return __glibcxx_min(
char); }
368 static char max()
throw()
369 {
return __glibcxx_max(
char); }
371 static const int digits = __glibcxx_digits (
char);
372 static const int digits10 = __glibcxx_digits10 (
char);
373 static const bool is_signed = __glibcxx_signed (
char);
374 static const bool is_integer =
true;
375 static const bool is_exact =
true;
376 static const int radix = 2;
377 static char epsilon()
throw()
379 static char round_error()
throw()
382 static const int min_exponent = 0;
383 static const int min_exponent10 = 0;
384 static const int max_exponent = 0;
385 static const int max_exponent10 = 0;
387 static const bool has_infinity =
false;
388 static const bool has_quiet_NaN =
false;
389 static const bool has_signaling_NaN =
false;
391 static const bool has_denorm_loss =
false;
393 static char infinity()
throw()
395 static char quiet_NaN()
throw()
397 static char signaling_NaN()
throw()
399 static char denorm_min()
throw()
400 {
return static_cast<char>(0); }
402 static const bool is_iec559 =
false;
403 static const bool is_bounded =
true;
404 static const bool is_modulo =
true;
406 static const bool traps = __glibcxx_integral_traps;
407 static const bool tinyness_before =
false;
415 static const bool is_specialized =
true;
417 static signed char min()
throw()
418 {
return -__SCHAR_MAX__ - 1; }
419 static signed char max()
throw()
420 {
return __SCHAR_MAX__; }
422 static const int digits = __glibcxx_digits (
signed char);
423 static const int digits10 = __glibcxx_digits10 (
signed char);
424 static const bool is_signed =
true;
425 static const bool is_integer =
true;
426 static const bool is_exact =
true;
427 static const int radix = 2;
428 static signed char epsilon()
throw()
430 static signed char round_error()
throw()
433 static const int min_exponent = 0;
434 static const int min_exponent10 = 0;
435 static const int max_exponent = 0;
436 static const int max_exponent10 = 0;
438 static const bool has_infinity =
false;
439 static const bool has_quiet_NaN =
false;
440 static const bool has_signaling_NaN =
false;
442 static const bool has_denorm_loss =
false;
444 static signed char infinity()
throw()
445 {
return static_cast<signed char>(0); }
446 static signed char quiet_NaN()
throw()
447 {
return static_cast<signed char>(0); }
448 static signed char signaling_NaN()
throw()
449 {
return static_cast<signed char>(0); }
450 static signed char denorm_min()
throw()
451 {
return static_cast<signed char>(0); }
453 static const bool is_iec559 =
false;
454 static const bool is_bounded =
true;
455 static const bool is_modulo =
true;
457 static const bool traps = __glibcxx_integral_traps;
458 static const bool tinyness_before =
false;
466 static const bool is_specialized =
true;
468 static unsigned char min()
throw()
470 static unsigned char max()
throw()
471 {
return __SCHAR_MAX__ * 2U + 1; }
473 static const int digits = __glibcxx_digits (
unsigned char);
474 static const int digits10 = __glibcxx_digits10 (
unsigned char);
475 static const bool is_signed =
false;
476 static const bool is_integer =
true;
477 static const bool is_exact =
true;
478 static const int radix = 2;
479 static unsigned char epsilon()
throw()
481 static unsigned char round_error()
throw()
484 static const int min_exponent = 0;
485 static const int min_exponent10 = 0;
486 static const int max_exponent = 0;
487 static const int max_exponent10 = 0;
489 static const bool has_infinity =
false;
490 static const bool has_quiet_NaN =
false;
491 static const bool has_signaling_NaN =
false;
493 static const bool has_denorm_loss =
false;
495 static unsigned char infinity()
throw()
496 {
return static_cast<unsigned char>(0); }
497 static unsigned char quiet_NaN()
throw()
498 {
return static_cast<unsigned char>(0); }
499 static unsigned char signaling_NaN()
throw()
500 {
return static_cast<unsigned char>(0); }
501 static unsigned char denorm_min()
throw()
502 {
return static_cast<unsigned char>(0); }
504 static const bool is_iec559 =
false;
505 static const bool is_bounded =
true;
506 static const bool is_modulo =
true;
508 static const bool traps = __glibcxx_integral_traps;
509 static const bool tinyness_before =
false;
517 static const bool is_specialized =
true;
519 static wchar_t min()
throw()
520 {
return __glibcxx_min (
wchar_t); }
521 static wchar_t max()
throw()
522 {
return __glibcxx_max (
wchar_t); }
524 static const int digits = __glibcxx_digits (
wchar_t);
525 static const int digits10 = __glibcxx_digits10 (
wchar_t);
526 static const bool is_signed = __glibcxx_signed (
wchar_t);
527 static const bool is_integer =
true;
528 static const bool is_exact =
true;
529 static const int radix = 2;
530 static wchar_t epsilon()
throw()
532 static wchar_t round_error()
throw()
535 static const int min_exponent = 0;
536 static const int min_exponent10 = 0;
537 static const int max_exponent = 0;
538 static const int max_exponent10 = 0;
540 static const bool has_infinity =
false;
541 static const bool has_quiet_NaN =
false;
542 static const bool has_signaling_NaN =
false;
544 static const bool has_denorm_loss =
false;
546 static wchar_t infinity()
throw()
547 {
return wchar_t(); }
548 static wchar_t quiet_NaN()
throw()
549 {
return wchar_t(); }
550 static wchar_t signaling_NaN()
throw()
551 {
return wchar_t(); }
552 static wchar_t denorm_min()
throw()
553 {
return wchar_t(); }
555 static const bool is_iec559 =
false;
556 static const bool is_bounded =
true;
557 static const bool is_modulo =
true;
559 static const bool traps = __glibcxx_integral_traps;
560 static const bool tinyness_before =
false;
564 #ifdef __GXX_EXPERIMENTAL_CXX0X__
569 static const bool is_specialized =
true;
571 static char16_t
min()
throw()
572 {
return __glibcxx_min (char16_t); }
573 static char16_t
max()
throw()
574 {
return __glibcxx_max (char16_t); }
576 static const int digits = __glibcxx_digits (char16_t);
577 static const int digits10 = __glibcxx_digits10 (char16_t);
578 static const bool is_signed = __glibcxx_signed (char16_t);
579 static const bool is_integer =
true;
580 static const bool is_exact =
true;
581 static const int radix = 2;
582 static char16_t epsilon()
throw()
584 static char16_t round_error()
throw()
587 static const int min_exponent = 0;
588 static const int min_exponent10 = 0;
589 static const int max_exponent = 0;
590 static const int max_exponent10 = 0;
592 static const bool has_infinity =
false;
593 static const bool has_quiet_NaN =
false;
594 static const bool has_signaling_NaN =
false;
596 static const bool has_denorm_loss =
false;
598 static char16_t infinity()
throw()
599 {
return char16_t(); }
600 static char16_t quiet_NaN()
throw()
601 {
return char16_t(); }
602 static char16_t signaling_NaN()
throw()
603 {
return char16_t(); }
604 static char16_t denorm_min()
throw()
605 {
return char16_t(); }
607 static const bool is_iec559 =
false;
608 static const bool is_bounded =
true;
609 static const bool is_modulo =
true;
611 static const bool traps = __glibcxx_integral_traps;
612 static const bool tinyness_before =
false;
620 static const bool is_specialized =
true;
622 static char32_t
min()
throw()
623 {
return __glibcxx_min (char32_t); }
624 static char32_t
max()
throw()
625 {
return __glibcxx_max (char32_t); }
627 static const int digits = __glibcxx_digits (char32_t);
628 static const int digits10 = __glibcxx_digits10 (char32_t);
629 static const bool is_signed = __glibcxx_signed (char32_t);
630 static const bool is_integer =
true;
631 static const bool is_exact =
true;
632 static const int radix = 2;
633 static char32_t epsilon()
throw()
635 static char32_t round_error()
throw()
638 static const int min_exponent = 0;
639 static const int min_exponent10 = 0;
640 static const int max_exponent = 0;
641 static const int max_exponent10 = 0;
643 static const bool has_infinity =
false;
644 static const bool has_quiet_NaN =
false;
645 static const bool has_signaling_NaN =
false;
647 static const bool has_denorm_loss =
false;
649 static char32_t infinity()
throw()
650 {
return char32_t(); }
651 static char32_t quiet_NaN()
throw()
652 {
return char32_t(); }
653 static char32_t signaling_NaN()
throw()
654 {
return char32_t(); }
655 static char32_t denorm_min()
throw()
656 {
return char32_t(); }
658 static const bool is_iec559 =
false;
659 static const bool is_bounded =
true;
660 static const bool is_modulo =
true;
662 static const bool traps = __glibcxx_integral_traps;
663 static const bool tinyness_before =
false;
672 static const bool is_specialized =
true;
674 static short min()
throw()
675 {
return -__SHRT_MAX__ - 1; }
676 static short max()
throw()
677 {
return __SHRT_MAX__; }
679 static const int digits = __glibcxx_digits (
short);
680 static const int digits10 = __glibcxx_digits10 (
short);
681 static const bool is_signed =
true;
682 static const bool is_integer =
true;
683 static const bool is_exact =
true;
684 static const int radix = 2;
685 static short epsilon()
throw()
687 static short round_error()
throw()
690 static const int min_exponent = 0;
691 static const int min_exponent10 = 0;
692 static const int max_exponent = 0;
693 static const int max_exponent10 = 0;
695 static const bool has_infinity =
false;
696 static const bool has_quiet_NaN =
false;
697 static const bool has_signaling_NaN =
false;
699 static const bool has_denorm_loss =
false;
701 static short infinity()
throw()
703 static short quiet_NaN()
throw()
705 static short signaling_NaN()
throw()
707 static short denorm_min()
throw()
710 static const bool is_iec559 =
false;
711 static const bool is_bounded =
true;
712 static const bool is_modulo =
true;
714 static const bool traps = __glibcxx_integral_traps;
715 static const bool tinyness_before =
false;
723 static const bool is_specialized =
true;
725 static unsigned short min()
throw()
727 static unsigned short max()
throw()
728 {
return __SHRT_MAX__ * 2U + 1; }
730 static const int digits = __glibcxx_digits (
unsigned short);
731 static const int digits10 = __glibcxx_digits10 (
unsigned short);
732 static const bool is_signed =
false;
733 static const bool is_integer =
true;
734 static const bool is_exact =
true;
735 static const int radix = 2;
736 static unsigned short epsilon()
throw()
738 static unsigned short round_error()
throw()
741 static const int min_exponent = 0;
742 static const int min_exponent10 = 0;
743 static const int max_exponent = 0;
744 static const int max_exponent10 = 0;
746 static const bool has_infinity =
false;
747 static const bool has_quiet_NaN =
false;
748 static const bool has_signaling_NaN =
false;
750 static const bool has_denorm_loss =
false;
752 static unsigned short infinity()
throw()
753 {
return static_cast<unsigned short>(0); }
754 static unsigned short quiet_NaN()
throw()
755 {
return static_cast<unsigned short>(0); }
756 static unsigned short signaling_NaN()
throw()
757 {
return static_cast<unsigned short>(0); }
758 static unsigned short denorm_min()
throw()
759 {
return static_cast<unsigned short>(0); }
761 static const bool is_iec559 =
false;
762 static const bool is_bounded =
true;
763 static const bool is_modulo =
true;
765 static const bool traps = __glibcxx_integral_traps;
766 static const bool tinyness_before =
false;
774 static const bool is_specialized =
true;
776 static int min()
throw()
777 {
return -__INT_MAX__ - 1; }
778 static int max()
throw()
779 {
return __INT_MAX__; }
781 static const int digits = __glibcxx_digits (
int);
782 static const int digits10 = __glibcxx_digits10 (
int);
783 static const bool is_signed =
true;
784 static const bool is_integer =
true;
785 static const bool is_exact =
true;
786 static const int radix = 2;
787 static int epsilon()
throw()
789 static int round_error()
throw()
792 static const int min_exponent = 0;
793 static const int min_exponent10 = 0;
794 static const int max_exponent = 0;
795 static const int max_exponent10 = 0;
797 static const bool has_infinity =
false;
798 static const bool has_quiet_NaN =
false;
799 static const bool has_signaling_NaN =
false;
801 static const bool has_denorm_loss =
false;
803 static int infinity()
throw()
804 {
return static_cast<int>(0); }
805 static int quiet_NaN()
throw()
806 {
return static_cast<int>(0); }
807 static int signaling_NaN()
throw()
808 {
return static_cast<int>(0); }
809 static int denorm_min()
throw()
810 {
return static_cast<int>(0); }
812 static const bool is_iec559 =
false;
813 static const bool is_bounded =
true;
814 static const bool is_modulo =
true;
816 static const bool traps = __glibcxx_integral_traps;
817 static const bool tinyness_before =
false;
825 static const bool is_specialized =
true;
827 static unsigned int min()
throw()
829 static unsigned int max()
throw()
830 {
return __INT_MAX__ * 2U + 1; }
832 static const int digits = __glibcxx_digits (
unsigned int);
833 static const int digits10 = __glibcxx_digits10 (
unsigned int);
834 static const bool is_signed =
false;
835 static const bool is_integer =
true;
836 static const bool is_exact =
true;
837 static const int radix = 2;
838 static unsigned int epsilon()
throw()
840 static unsigned int round_error()
throw()
843 static const int min_exponent = 0;
844 static const int min_exponent10 = 0;
845 static const int max_exponent = 0;
846 static const int max_exponent10 = 0;
848 static const bool has_infinity =
false;
849 static const bool has_quiet_NaN =
false;
850 static const bool has_signaling_NaN =
false;
852 static const bool has_denorm_loss =
false;
854 static unsigned int infinity()
throw()
855 {
return static_cast<unsigned int>(0); }
856 static unsigned int quiet_NaN()
throw()
857 {
return static_cast<unsigned int>(0); }
858 static unsigned int signaling_NaN()
throw()
859 {
return static_cast<unsigned int>(0); }
860 static unsigned int denorm_min()
throw()
861 {
return static_cast<unsigned int>(0); }
863 static const bool is_iec559 =
false;
864 static const bool is_bounded =
true;
865 static const bool is_modulo =
true;
867 static const bool traps = __glibcxx_integral_traps;
868 static const bool tinyness_before =
false;
876 static const bool is_specialized =
true;
878 static long min()
throw()
879 {
return -__LONG_MAX__ - 1; }
880 static long max()
throw()
881 {
return __LONG_MAX__; }
883 static const int digits = __glibcxx_digits (
long);
884 static const int digits10 = __glibcxx_digits10 (
long);
885 static const bool is_signed =
true;
886 static const bool is_integer =
true;
887 static const bool is_exact =
true;
888 static const int radix = 2;
889 static long epsilon()
throw()
891 static long round_error()
throw()
894 static const int min_exponent = 0;
895 static const int min_exponent10 = 0;
896 static const int max_exponent = 0;
897 static const int max_exponent10 = 0;
899 static const bool has_infinity =
false;
900 static const bool has_quiet_NaN =
false;
901 static const bool has_signaling_NaN =
false;
903 static const bool has_denorm_loss =
false;
905 static long infinity()
throw()
906 {
return static_cast<long>(0); }
907 static long quiet_NaN()
throw()
908 {
return static_cast<long>(0); }
909 static long signaling_NaN()
throw()
910 {
return static_cast<long>(0); }
911 static long denorm_min()
throw()
912 {
return static_cast<long>(0); }
914 static const bool is_iec559 =
false;
915 static const bool is_bounded =
true;
916 static const bool is_modulo =
true;
918 static const bool traps = __glibcxx_integral_traps;
919 static const bool tinyness_before =
false;
927 static const bool is_specialized =
true;
929 static unsigned long min()
throw()
931 static unsigned long max()
throw()
932 {
return __LONG_MAX__ * 2UL + 1; }
934 static const int digits = __glibcxx_digits (
unsigned long);
935 static const int digits10 = __glibcxx_digits10 (
unsigned long);
936 static const bool is_signed =
false;
937 static const bool is_integer =
true;
938 static const bool is_exact =
true;
939 static const int radix = 2;
940 static unsigned long epsilon()
throw()
942 static unsigned long round_error()
throw()
945 static const int min_exponent = 0;
946 static const int min_exponent10 = 0;
947 static const int max_exponent = 0;
948 static const int max_exponent10 = 0;
950 static const bool has_infinity =
false;
951 static const bool has_quiet_NaN =
false;
952 static const bool has_signaling_NaN =
false;
954 static const bool has_denorm_loss =
false;
956 static unsigned long infinity()
throw()
957 {
return static_cast<unsigned long>(0); }
958 static unsigned long quiet_NaN()
throw()
959 {
return static_cast<unsigned long>(0); }
960 static unsigned long signaling_NaN()
throw()
961 {
return static_cast<unsigned long>(0); }
962 static unsigned long denorm_min()
throw()
963 {
return static_cast<unsigned long>(0); }
965 static const bool is_iec559 =
false;
966 static const bool is_bounded =
true;
967 static const bool is_modulo =
true;
969 static const bool traps = __glibcxx_integral_traps;
970 static const bool tinyness_before =
false;
978 static const bool is_specialized =
true;
980 static long long min()
throw()
981 {
return -__LONG_LONG_MAX__ - 1; }
982 static long long max()
throw()
983 {
return __LONG_LONG_MAX__; }
985 static const int digits = __glibcxx_digits (
long long);
986 static const int digits10 = __glibcxx_digits10 (
long long);
987 static const bool is_signed =
true;
988 static const bool is_integer =
true;
989 static const bool is_exact =
true;
990 static const int radix = 2;
991 static long long epsilon()
throw()
993 static long long round_error()
throw()
996 static const int min_exponent = 0;
997 static const int min_exponent10 = 0;
998 static const int max_exponent = 0;
999 static const int max_exponent10 = 0;
1001 static const bool has_infinity =
false;
1002 static const bool has_quiet_NaN =
false;
1003 static const bool has_signaling_NaN =
false;
1005 static const bool has_denorm_loss =
false;
1007 static long long infinity()
throw()
1008 {
return static_cast<long long>(0); }
1009 static long long quiet_NaN()
throw()
1010 {
return static_cast<long long>(0); }
1011 static long long signaling_NaN()
throw()
1012 {
return static_cast<long long>(0); }
1013 static long long denorm_min()
throw()
1014 {
return static_cast<long long>(0); }
1016 static const bool is_iec559 =
false;
1017 static const bool is_bounded =
true;
1018 static const bool is_modulo =
true;
1020 static const bool traps = __glibcxx_integral_traps;
1021 static const bool tinyness_before =
false;
1029 static const bool is_specialized =
true;
1031 static unsigned long long min()
throw()
1033 static unsigned long long max()
throw()
1034 {
return __LONG_LONG_MAX__ * 2ULL + 1; }
1036 static const int digits = __glibcxx_digits (
unsigned long long);
1037 static const int digits10 = __glibcxx_digits10 (
unsigned long long);
1038 static const bool is_signed =
false;
1039 static const bool is_integer =
true;
1040 static const bool is_exact =
true;
1041 static const int radix = 2;
1042 static unsigned long long epsilon()
throw()
1044 static unsigned long long round_error()
throw()
1047 static const int min_exponent = 0;
1048 static const int min_exponent10 = 0;
1049 static const int max_exponent = 0;
1050 static const int max_exponent10 = 0;
1052 static const bool has_infinity =
false;
1053 static const bool has_quiet_NaN =
false;
1054 static const bool has_signaling_NaN =
false;
1056 static const bool has_denorm_loss =
false;
1058 static unsigned long long infinity()
throw()
1059 {
return static_cast<unsigned long long>(0); }
1060 static unsigned long long quiet_NaN()
throw()
1061 {
return static_cast<unsigned long long>(0); }
1062 static unsigned long long signaling_NaN()
throw()
1063 {
return static_cast<unsigned long long>(0); }
1064 static unsigned long long denorm_min()
throw()
1065 {
return static_cast<unsigned long long>(0); }
1067 static const bool is_iec559 =
false;
1068 static const bool is_bounded =
true;
1069 static const bool is_modulo =
true;
1071 static const bool traps = __glibcxx_integral_traps;
1072 static const bool tinyness_before =
false;
1080 static const bool is_specialized =
true;
1082 static float min()
throw()
1083 {
return __FLT_MIN__; }
1084 static float max()
throw()
1085 {
return __FLT_MAX__; }
1087 static const int digits = __FLT_MANT_DIG__;
1088 static const int digits10 = __FLT_DIG__;
1089 static const bool is_signed =
true;
1090 static const bool is_integer =
false;
1091 static const bool is_exact =
false;
1092 static const int radix = __FLT_RADIX__;
1093 static float epsilon()
throw()
1094 {
return __FLT_EPSILON__; }
1095 static float round_error()
throw()
1098 static const int min_exponent = __FLT_MIN_EXP__;
1099 static const int min_exponent10 = __FLT_MIN_10_EXP__;
1100 static const int max_exponent = __FLT_MAX_EXP__;
1101 static const int max_exponent10 = __FLT_MAX_10_EXP__;
1103 static const bool has_infinity = __FLT_HAS_INFINITY__;
1104 static const bool has_quiet_NaN = __FLT_HAS_QUIET_NAN__;
1105 static const bool has_signaling_NaN = has_quiet_NaN;
1108 static const bool has_denorm_loss = __glibcxx_float_has_denorm_loss;
1110 static float infinity()
throw()
1111 {
return __builtin_huge_valf (); }
1112 static float quiet_NaN()
throw()
1113 {
return __builtin_nanf (
""); }
1114 static float signaling_NaN()
throw()
1115 {
return __builtin_nansf (
""); }
1116 static float denorm_min()
throw()
1117 {
return __FLT_DENORM_MIN__; }
1119 static const bool is_iec559
1121 static const bool is_bounded =
true;
1122 static const bool is_modulo =
false;
1124 static const bool traps = __glibcxx_float_traps;
1125 static const bool tinyness_before = __glibcxx_float_tinyness_before;
1129 #undef __glibcxx_float_has_denorm_loss
1130 #undef __glibcxx_float_traps
1131 #undef __glibcxx_float_tinyness_before
1137 static const bool is_specialized =
true;
1139 static double min()
throw()
1140 {
return __DBL_MIN__; }
1141 static double max()
throw()
1142 {
return __DBL_MAX__; }
1144 static const int digits = __DBL_MANT_DIG__;
1145 static const int digits10 = __DBL_DIG__;
1146 static const bool is_signed =
true;
1147 static const bool is_integer =
false;
1148 static const bool is_exact =
false;
1149 static const int radix = __FLT_RADIX__;
1150 static double epsilon()
throw()
1151 {
return __DBL_EPSILON__; }
1152 static double round_error()
throw()
1155 static const int min_exponent = __DBL_MIN_EXP__;
1156 static const int min_exponent10 = __DBL_MIN_10_EXP__;
1157 static const int max_exponent = __DBL_MAX_EXP__;
1158 static const int max_exponent10 = __DBL_MAX_10_EXP__;
1160 static const bool has_infinity = __DBL_HAS_INFINITY__;
1161 static const bool has_quiet_NaN = __DBL_HAS_QUIET_NAN__;
1162 static const bool has_signaling_NaN = has_quiet_NaN;
1165 static const bool has_denorm_loss = __glibcxx_double_has_denorm_loss;
1167 static double infinity()
throw()
1168 {
return __builtin_huge_val(); }
1169 static double quiet_NaN()
throw()
1170 {
return __builtin_nan (
""); }
1171 static double signaling_NaN()
throw()
1172 {
return __builtin_nans (
""); }
1173 static double denorm_min()
throw()
1174 {
return __DBL_DENORM_MIN__; }
1176 static const bool is_iec559
1178 static const bool is_bounded =
true;
1179 static const bool is_modulo =
false;
1181 static const bool traps = __glibcxx_double_traps;
1182 static const bool tinyness_before = __glibcxx_double_tinyness_before;
1186 #undef __glibcxx_double_has_denorm_loss
1187 #undef __glibcxx_double_traps
1188 #undef __glibcxx_double_tinyness_before
1194 static const bool is_specialized =
true;
1196 static long double min()
throw()
1197 {
return __LDBL_MIN__; }
1198 static long double max()
throw()
1199 {
return __LDBL_MAX__; }
1201 static const int digits = __LDBL_MANT_DIG__;
1202 static const int digits10 = __LDBL_DIG__;
1203 static const bool is_signed =
true;
1204 static const bool is_integer =
false;
1205 static const bool is_exact =
false;
1206 static const int radix = __FLT_RADIX__;
1207 static long double epsilon()
throw()
1208 {
return __LDBL_EPSILON__; }
1209 static long double round_error()
throw()
1212 static const int min_exponent = __LDBL_MIN_EXP__;
1213 static const int min_exponent10 = __LDBL_MIN_10_EXP__;
1214 static const int max_exponent = __LDBL_MAX_EXP__;
1215 static const int max_exponent10 = __LDBL_MAX_10_EXP__;
1217 static const bool has_infinity = __LDBL_HAS_INFINITY__;
1218 static const bool has_quiet_NaN = __LDBL_HAS_QUIET_NAN__;
1219 static const bool has_signaling_NaN = has_quiet_NaN;
1222 static const bool has_denorm_loss
1223 = __glibcxx_long_double_has_denorm_loss;
1225 static long double infinity()
throw()
1226 {
return __builtin_huge_vall (); }
1227 static long double quiet_NaN()
throw()
1228 {
return __builtin_nanl (
""); }
1229 static long double signaling_NaN()
throw()
1230 {
return __builtin_nansl (
""); }
1231 static long double denorm_min()
throw()
1232 {
return __LDBL_DENORM_MIN__; }
1234 static const bool is_iec559
1236 static const bool is_bounded =
true;
1237 static const bool is_modulo =
false;
1239 static const bool traps = __glibcxx_long_double_traps;
1240 static const bool tinyness_before = __glibcxx_long_double_tinyness_before;
1244 #undef __glibcxx_long_double_has_denorm_loss
1245 #undef __glibcxx_long_double_traps
1246 #undef __glibcxx_long_double_tinyness_before
1248 _GLIBCXX_END_NAMESPACE
1250 #undef __glibcxx_signed
1251 #undef __glibcxx_min
1252 #undef __glibcxx_max
1253 #undef __glibcxx_digits
1254 #undef __glibcxx_digits10
1256 #endif // _GLIBCXX_NUMERIC_LIMITS