delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp-workers/2003/08/30/12:50:31

From: Kbwms AT aol DOT com
Message-ID: <114.2823ab81.2c822fce@aol.com>
Date: Sat, 30 Aug 2003 12:50:22 EDT
Subject: Re: Arithmetic Exceptions in C99
To: djgpp-workers AT delorie DOT com
MIME-Version: 1.0
X-Mailer: 8.0 for Windows sub 6015
Reply-To: djgpp-workers AT delorie DOT com

--part1_114.2823ab81.2c822fce_boundary
Content-Type: text/plain; charset="US-ASCII"
Content-Transfer-Encoding: 7bit

In a message dated 8/30/2003 5:28:52 AM Eastern Standard Time, 
eliz AT elta DOT co DOT il writes:

> >Date: Fri, 29 Aug 2003 17:01:17 -0500
> >From: Eric Rudd <rudd AT cyberoptics DOT com>
> >
> >I am still of the opinion that it is 
> >best to prevent the math functions from either raising signals or 
> >setting exception bits in the FPU status register, because they can 
> >crash a program and prevent recovery.
> 
> We could implement the exceptions bitmap as a special word that is
> physically different from the x87 status register.  The functions that
> return the exceptions info could then look at that word and also at
> the x87 status word.
> 

Has anyone bothered to look at the source for libm.a to see what they do?  I 
see expressions like (x-x)/(x-x) to produce a NaN and turn on the floating 
point invalid exception and "huge + x" (where huge = 1.0e30) to turn on the 
floating point inexact exception.  In the log function is "-two54/zero" to turn on 
the floating point divide-by-zero exception and generate -infinity.

Has anyone ever had any problems with these functions?

--part1_114.2823ab81.2c822fce_boundary
Content-Type: text/html; charset="US-ASCII"
Content-Transfer-Encoding: quoted-printable

<HTML><FONT FACE=3Darial,helvetica><FONT  SIZE=3D3 FAMILY=3D"SERIF" FACE=3D"=
Georgia" LANG=3D"0">In a message dated 8/30/2003 5:28:52 AM Eastern Standard=
 Time, eliz AT elta DOT co DOT il writes:<BR>
<BR>
<BLOCKQUOTE TYPE=3DCITE style=3D"BORDER-LEFT: #0000ff 2px solid; MARGIN-LEFT=
: 5px; MARGIN-RIGHT: 0px; PADDING-LEFT: 5px"></FONT><FONT  COLOR=3D"#000000"=
 style=3D"BACKGROUND-COLOR: #ffffff" SIZE=3D2 FAMILY=3D"SANSSERIF" FACE=3D"A=
rial" LANG=3D"0">&gt;Date: Fri, 29 Aug 2003 17:01:17 -0500<BR>
&gt;From: Eric Rudd &lt;rudd AT cyberoptics DOT com&gt;<BR>
&gt;<BR>
&gt;I am still of the opinion that it is <BR>
&gt;best to prevent the math functions from either raising signals or <BR>
&gt;setting exception bits in the FPU status register, because they can <BR>
&gt;crash a program and prevent recovery.<BR>
<BR>
We could implement the exceptions bitmap as a special word that is<BR>
physically different from the x87 status register.&nbsp; The functions that<=
BR>
return the exceptions info could then look at that word and also at<BR>
the x87 status word.<BR>
</BLOCKQUOTE><BR>
</FONT><FONT  COLOR=3D"#000000" style=3D"BACKGROUND-COLOR: #ffffff" SIZE=3D3=
 FAMILY=3D"SERIF" FACE=3D"Georgia" LANG=3D"0"><BR>
Has anyone bothered to look at the source for libm.a to see what they do?&nb=
sp; I see expressions like (x-x)/(x-x) to produce a NaN and turn on the floa=
ting point invalid exception and "huge + x" (where huge =3D 1.0e30) to turn=20=
on the floating point inexact exception.&nbsp; In the log function is "-two5=
4/zero" to turn on the floating point divide-by-zero exception and generate=20=
-infinity.<BR>
<BR>
Has anyone ever had any problems with these functions?</FONT></HTML>

--part1_114.2823ab81.2c822fce_boundary--

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019