Date: Thu, 19 Jul 2018 14:24:48 +0000 (UTC) From: Bruce Evans <bde@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r336484 - head/lib/msun/src Message-ID: <201807191424.w6JEOmGQ059427@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
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)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201807191424.w6JEOmGQ059427>