public inbox for newlib@sourceware.org
 help / color / mirror / Atom feed
From: Andoni Arregi <andoni.arregui@gtd-gmbh.de>
To: newlib@sourceware.org
Subject: [PATCH] Fix expf overflow limit
Date: Wed, 09 Feb 2022 14:52:07 +0100	[thread overview]
Message-ID: <6505c1b332ef8ecb9d9ea5900d7cb5a3a9cc767e.camel@gtd-gmbh.de> (raw)
In-Reply-To: <mwzgn76yey.fsf@tomate.loria.fr>

Correct the overflow limit in the variable o_threshold to be consistent
with the FLT_UWORD_LOG_MAX variable used by the internal implementation
of the expf algorithm itself.
The u_threshold variable has also been modified to be written in the
same format.

Note that this fix improves the situation but does not completely
correct the inconsistencies regarding the overflow and underflow limits
between the expf wrapper (wf_exp.c) and the expf algorithm itself
(ef_exp.c).

Currently these limits are different for the
_FLT_LARGEST_EXPONENT_IS_NORMAL and _FLT_NO_DENORMALS cases as well as
for the case where __OBSOLETE_MATH is not defined (only for the
underflow limit in this case).
---
 newlib/libm/math/wf_exp.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/newlib/libm/math/wf_exp.c b/newlib/libm/math/wf_exp.c
index 38cacd95a..075b5bb0a 100644
--- a/newlib/libm/math/wf_exp.c
+++ b/newlib/libm/math/wf_exp.c
@@ -26,8 +26,8 @@ static const float
 #else
 static float
 #endif
-o_threshold=  8.8721679688e+01,  /* 0x42b17180 */
-u_threshold= -1.0397208405e+02;  /* 0xc2cff1b5 */
+o_threshold=  0x1.62e42ep+06,  /* 0x42b17217 */
+u_threshold= -0x1.9fe36ap+06;  /* 0xc2cff1b5 */
 
 #ifdef __STDC__
 	float expf(float x)		/* wrapper expf */
-- 
2.35.1


  reply	other threads:[~2022-02-09 13:57 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-02-04  4:36 regression in Newlib 4.2.0 Paul Zimmermann
2022-02-09 13:52 ` Andoni Arregi [this message]
2022-02-10 15:01   ` [PATCH] Fix expf overflow limit Corinna Vinschen
2022-02-10 15:38   ` Paul Zimmermann
2022-02-09 14:27 ` regression in Newlib 4.2.0 Andoni Arregi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=6505c1b332ef8ecb9d9ea5900d7cb5a3a9cc767e.camel@gtd-gmbh.de \
    --to=andoni.arregui@gtd-gmbh.de \
    --cc=newlib@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).