Author: bde Date: Thu Jul 19 14:24:48 2018 New Revision: 336484 URL: https://svnweb.freebsd.org/changeset/base/336484
Log: Oops, r336412 undid the fix of the overflow threshold in r323003. Restore the previous overflow threshold and adjust comments. Modified: head/lib/msun/src/s_csqrtl.c Modified: head/lib/msun/src/s_csqrtl.c ============================================================================== --- head/lib/msun/src/s_csqrtl.c Thu Jul 19 13:09:29 2018 (r336483) +++ head/lib/msun/src/s_csqrtl.c Thu Jul 19 14:24:48 2018 (r336484) @@ -36,17 +36,22 @@ __FBSDID("$FreeBSD$"); #include "math_private.h" /* - * THRESH is now calculated portably (up to 113-bit precision). However, - * the denormal threshold is hard-coded for a 15-bit exponent with the usual - * bias. s_logl.c and e_hypotl have less hard-coding but end up requiring - * the same for the exponent and more for the mantissa. + * Several thresholds require a 15-bit exponent and also the usual bias. + * s_logl.c and e_hypotl have less hard-coding but end up requiring the + * same for the exponent and more for the mantissa. */ #if LDBL_MAX_EXP != 0x4000 #error "Unsupported long double format" #endif -/* For avoiding overflow for components >= LDBL_MAX / (1 + sqrt(2)). */ -#define THRESH (LDBL_MAX / 2.414213562373095048801688724209698L) +/* + * Overflow must be avoided for components >= LDBL_MAX / (1 + sqrt(2)). + * The precise threshold is nontrivial to determine and spell, so use a + * lower threshold of approximaely LDBL_MAX / 4, and don't use LDBL_MAX + * to spell this since LDBL_MAX is broken on i386 (it overflows in 53-bit + * precision). + */ +#define THRESH 0x1p16382L long double complex csqrtl(long double complex z) _______________________________________________ svn-src-head@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"