From 95c6887c5597e9c42f79efdf7793ffa662b3fcab Mon Sep 17 00:00:00 2001 From: John Wellbelove Date: Sun, 4 Apr 2021 11:33:29 +0100 Subject: [PATCH] Added macros for compilers that don't support HUGE_VAL --- include/etl/integral_limits.zip | Bin 1734 -> 0 bytes include/etl/limits.h | 45 ++++++++++++++------------------ 2 files changed, 19 insertions(+), 26 deletions(-) delete mode 100644 include/etl/integral_limits.zip diff --git a/include/etl/integral_limits.zip b/include/etl/integral_limits.zip deleted file mode 100644 index 1b22a9feb3fb6253c28ffa48926183f7c5ac5a15..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1734 zcmV;%208gqO9KQH000080Ax#fQa3Oz_Cf{#00$xf01*HH0BLS?WoL3>Y+r0?ZE19K zE@FpHZ5(sa=;1J8XMWBX{1WX;4w_)n>^#tbk+a9XU1Fu z;nFnPO86!5_}sp8zWD}2wOak^(|{BU#X|MIiS-%i5My2|7DR#4SU4% zhzAY{lfdN!EqbY&J{%ScL(UUct5ye;53}B3KMt#^qu1N*D&fKG@n|$U#D#v62on*s z9w!ee9SnJ?Uxt&T<1_d+B0+8bt6u^3iv4@5c|*{ zy6J#afXCoQ50H?Qp+nr`E{$k302lh0s8~Q#KEyaI_W8(730iyLG8XqK0`kC%`&mdL z?sAb(w3wAR_T#`FI~Njvu`(LQ;UXG}HThW@VOk=cycqi?vwkCeE>?uS9|u7^68QRY zo+w9I`N<|5bBL%1% zKoX~U&PP}eWeH6cZ1dW=RV)=W8`_rnS!<{bI8bc7Kd8X1<}}TY1889>hI0qzH7Ld% z{G%C-3aDS&mTKEzTE&9aYU`Sci<(i_I}Odafh%-0Ox!9OZW4^@m>@EaV`-`_qP0}3 z-o#twO4Bvxu2L*qYmOnJUYiyu&{ix*t9Nw8f_BGho3@GtG%&8A8P^u3QCq6v9BKwG zf%+N$2fL~0x=2+lC>^Zd5*0$-Y~NYhP1AvCFo;gr<@LdBQx$876J0>5JDO<-Aa&DlEWE8CPRp74-fFg50mag6(UNP+Y#~I^ zQgkt86m&GyJd9{JEKCJW#C^wBrxBr{Dmn(Ug|kFCvBsfp60qH_s$j`q)Q>#k14>p` zGaU8CQuMBzsol+otv1jKO=v_mSczykap5E5sF(iX@YDRF-2F^0&MhAZMfKw}JRBa( zFY||lbb0DZmxD(xDZNM4s)jTQ-S6EbW5cmc_4ghMB4G6^LK&oSmf(Km1Qj^w=1?Br zOKapcBV6vu@oC|q3WNzNDsUPKNr>bYM)4WC9739=Vq?dl)N|}ytrnpaql`|{_*o=2 zx*Jd~jvP@Es*bEE;}lm>99{r=u@Jc-VTp^{BoDKHiv@t+nkEl8gR|7o7sxjm3w#t5 z6A;1qBp%@LlA*dks^NoZ#0!-1|G{1Z_Tzm_J^5VDTA1N+-IqHbwaj)<&4mxLHiGeW z2}d6`7`xxMH|`0>Z)4nx;{cE9E~A48_t+))Zor6i__<$08+Sl_6x=ksIa4{qOR({X zwz@6NSkvkSFC6C7OZl?>G|@{sU1`qtQ$;6~o?30XvH-SLyLW?ZFK3=bJ4}7Scs%!Y zTkDa%oOtIKCjN^vUorJXxO+VJZN@#F@?-|3N8OxnVj2FPX#mvL@?uJd9Rn+0FtB)5 znzE?8J&k^aLrVnOciylezAbJdjx?Gv2W7r#Ih)Rg+-E|HiO()NF&i+vh7zMcNbHwn z+%mq|kMG3*%j;OPi2->B_Lu@w4c&?hi`Kgw8Z$=Vsj)j7o@B&gf@e@8&+ya!-2_{3VBU5Yd6*CZ#bIX(Y*L2j zv0^U)lI2vpsgs@ro*r}Vw%?4G-edaz<=03Y{VkIL)+-ERhi3bw@9?yTe54It~ zg7GfWFl7U3!|p_QiVF+jpFs*(rw>mMWby^OK7lj)HhsGE>ix;d>FLGE(dpZF=Vuoe z=kJa#bR7*zAC94IJxwc~ywcib`f{aQyDk|DNLb3k>Mb zB*dalZNrRZkDcXkK@)eU$mH6rjL+rFEYmuTTuq{%>wn*ilgUqjV-@-jP)h*<6aW+e z000O8WJ`HcH!v>tLIwZ;2ODnA cb1rC5O9ci1000010096$0001S1^@s60Q4Ig&j0`b diff --git a/include/etl/limits.h b/include/etl/limits.h index 111bee0c..9026b068 100644 --- a/include/etl/limits.h +++ b/include/etl/limits.h @@ -56,18 +56,26 @@ SOFTWARE. #if ETL_NOT_USING_STL #define ETL_LOG10_OF_2(x) (((x) * 301) / 1000) -#if defined(ETL_NO_HUGE_VAL_SUPPORT) - #ifndef HUGE_VAL - #define HUGE_VAL (1.0e999999999) - #endif +#if !defined(LDBL_MIN) && defined(DBL_MIN) + // Looks like we don't have these macros defined. + // That probably means that 'long double' is the same size as 'double'. + #define LDBL_MIN DBL_MIN + #define LDBL_MAX DBL_MAX + #define LDBL_EPSILON DBL_EPSILON + #define LDBL_MANT_DIG DBL_MANT_DIG + #define LDBL_DIG DBL_DIG + #define LDBL_MIN_EXP DBL_MIN_EXP + #define LDBL_MIN_10_EXP DBL_MIN_10_EXP + #define LDBL_MAX_EXP DBL_MAX_EXP + #define LDBL_MAX_10_EXP DBL_MAX_10_EXP +#endif - #ifndef HUGE_VALF - #define HUGE_VALF (1.0e999999999F) - #endif - - #ifndef HUGE_VALL - #define HUGE_VALL (1.0e999999999L) - #endif +#if !defined(HUGE_VAL) + // Looks like we don't have these macros defined. + // They're compiler implementation dependent, so we'll make them the same as the max values. + #define HUGE_VAL FLT_MAX + #define HUGE_VALF DLB_MAX + #define HUGE_VALL LDBL_MAX #endif #if defined(ETL_NO_CPP_NAN_SUPPORT) @@ -89,21 +97,6 @@ SOFTWARE. #define ETL_HAS_NAN true #endif -#if !defined(LDBL_MIN) && defined(DBL_MIN) - // Looks like we don't have those macros defined. - // That probably means that 'long double' is the same size as 'double'. - #define LDBL_MIN DBL_MIN - #define LDBL_MAX DBL_MAX - #define LDBL_EPSILON DBL_EPSILON - #define HUGE_VALL HUGE_VAL - #define LDBL_MANT_DIG DBL_MANT_DIG - #define LDBL_DIG DBL_DIG - #define LDBL_MIN_EXP DBL_MIN_EXP - #define LDBL_MIN_10_EXP DBL_MIN_10_EXP - #define LDBL_MAX_EXP DBL_MAX_EXP - #define LDBL_MAX_10_EXP DBL_MAX_10_EXP -#endif - namespace etl { enum float_round_style