his is the part of the code executing: public static double d1f (double arg) { double y,x; System.out.print("Argument arg is " + arg + " "); y= Math.exp(arg); System.out.print("Argument y is " + y + " "); x=Math.pow((y+1.0),2.0); System.out.print("Argument x is " + x + "\n"); return ( (2.0 * y)/x ); } The problem is when x is infinity. Argument arg is 378.0812928461101 Var y is 1.5798621479294393E164 Var x is Infinity Floating point exception (core dumped) I tested on Linux x/86 and it is working, the problem is on Tru64 Unix Release: 3.0.2 prerelease Environment: TRu64 Unix v 5.1
From: Craig Rodrigues <rodrigc@mediaone.net> To: gcc-gnats@gcc.gnu.org, gcc-prs@gcc.gnu.org, ake@purdue.edu, java@gcc.gnu.org, gcc-bugs@gcc.gnu.org, nobody@gcc.gnu.org, java-prs@gcc.gnu.org Cc: Subject: Re: libgcj/4616: Floating Point Math class problem on Tru64 Alpha v 5.1 Date: Sat, 05 Jan 2002 15:54:36 -0500 http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=4616 The following was submitted by ake@purdue.edu, but ended up in the wrong PR. Do not change the format of the subject line when CC:'ing messages to GNATS. =============================================================== Hello, These are the results of the C program: Argument arg is 3.780800e+02 Argument y is 1.577821e+164 Argument x is 1.797693e+308 Argument result is 1.755384e-144 BUT if x=y=overflow, this is the result: Argument arg is 9.000000e+02 Argument y is 1.797693e+308 Argument x is 1.797693e+308 Floating point exception (core dumped) More testing on Alpha and Java showed this: If arg >=261 the program is STALLED. No floating core dump, and it doesn't execute the print of "x": Argument arg is 261.0 Argument y is 2.2431575451828986E113 Regards On Fri, 19 Oct 2001, Andrew Haley wrote: > ake@purdue.edu writes: > > >Category: libgcj > > >Synopsis: Floating Point Math class problem on Tru64 Alpha v 5.1 > > >Confidential: no > > >Severity: serious > > >Priority: medium > > >Class: sw-bug > > >Submitter-Id: net > > >Originator: Antonio Ake > > >Release: 3.0.2 prerelease > > >Environment: > > TRu64 Unix v 5.1 > > >Description: > > his is the part of the code executing: > > public static double d1f (double arg) { > > double y,x; > > > > System.out.print("Argument arg is " + arg + " "); > > y= Math.exp(arg); > > System.out.print("Argument y is " + y + " "); > > x=Math.pow((y+1.0),2.0); > > System.out.print("Argument x is " + x + "\n"); > > return ( (2.0 * y)/x ); > > } > > The problem is when x is infinity. > > Argument arg is 378.0812928461101 > > Var y is 1.5798621479294393E164 > > Var x is Infinity > > Floating point exception (core dumped) > > I tested on Linux x/86 and it is working, the problem is on Tru64 Unix > > Fascianting. It looks as though floating-point exceptions trigger a > signal on this system. I've never come across a system which does > this before. > > Can you please write a trivial C program that does the same thing and > see if it also results in a Floating point exception? > > Thanks, > Andrew. >
Hello, could the submitter please verify whether this problem still occurs with gcc 3.3? gcc 3.0.2 is rather old at this point... Thanks, Dara
No feedback in 3 months (T-2 days).