Date: Thu, 18 Sep 1997 16:35:31 +0200 From: Christoph Kukulies <kuku@gilberto.physik.RWTH-Aachen.DE> To: Terry Lambert <tlambert@primenet.com> Cc: Christoph Kukulies <kuku@gilberto.physik.RWTH-Aachen.DE>, freebsd-hackers@freefall.FreeBSD.org Subject: Re: FPE problem Message-ID: <19970918163531.11717@gil.physik.rwth-aachen.de> In-Reply-To: <199709171930.MAA08698@usr02.primenet.com>; from Terry Lambert on Wed, Sep 17, 1997 at 07:30:44PM %2B0000 References: <199709161220.OAA05839@gil.physik.rwth-aachen.de> <199709171930.MAA08698@usr02.primenet.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Sep 17, 1997 at 07:30:44PM +0000, Terry Lambert wrote: > > I'm having a weird problem with a f2c program which is causing an FPE > > for a reason I cannot figure out. > > > > It happens in a complex expression in a fortran expression > > in a scientific (high energy physics) calculation program. > > You seem to be getting a lef-associtivity underflow in the FORTRAN > code and not in the C code. The only apparent difference is the > order of the divide. > > But then, I'm rusty. A little bit more info now: ret_val = -z__ * (spint_1.a1 * z__ * (spint_1.a2 * z__ * (spint_1.a3 * z2 * (spint_1.a4 * z2 * (spint_1.a5 * z2 * (spint_1.a6 * z2 * (spint_1.a7 * z2 * (spint_1.a8 * z2 * (spint_1.a9 * z2 * ( spint_1.a10 * z2 + 1.) + 1.) + 1.) + 1.) + 1.) + 1.) + 1.) + 1.) + 1.) + 1.) + spint_1.zeta2 + z__ * log(1. - *x); (xxgdb) info float u: status 0x82e1: exceptions: INVALID LOS FPSTACK; flags: 0010; top 0 e: status 0x200: flags: 0010; top 0 control 0x1272: compute to 53 bits; round NEAREST; mask: DENORM UNDERF LOS; last instruction: opcode 0x1d0; pc 0x8:0xf01f9a96; operand 0x27:0x92844 regno tag msb lsb value %st(7) valid 3ff7ef1ea269b9378800 0.00729735 %st(6) valid c000e2f049da2892daf1 -3.54592 %st(5) valid bff9efbfe15ea0e63000 -0.0292663 %st(4) valid bff7efbfe15ea0e63000 -0.00731658 %st(3) valid bfee8fb318b8ce1a7800 -8.56516e-06 %st(2) valid bfeef46316e3382d2000 -1.45666e-05 %st(1) valid bfef8bb53b973a247800 -1.66545e-05 %st(0) => valid bfef947332ed75b2c000 -1.76966e-05 (xxgdb) What is LOS ? Loss of significance? When I'm seeing such a few steps before the exception occurs, does it mean that an exception is pending? ---------------------------vvv status 0x3920: exceptions: LOS; flags: 0001; top 7 control 0x1272: compute to 53 bits; round NEAREST; mask: DENORM UNDERF LOS; last instruction: opcode 0x6d9; pc 0x1f:0x1b280; operand 0x27:0x1aca0 regno tag msb lsb value %st(0) => valid 3ff7ef1ea269b9378800 0.00729735 %st(7) empty 3ffef89dcc5ab0803800 0.971158 %st(6) empty 3ffe8000000000000000 0.5 %st(5) empty 00000000000000000000 0 %st(4) empty 3ffe8c2938ee1f792000 0.547504 %st(3) empty 3fff8000000000000000 1 %st(2) empty bfffc59d300000000000 -1.54386 %st(1) empty 403dc8e6d27ab28298a0 7.23824e+18 (xxgdb) step > > > Terry Lambert > terry@lambert.org > --- > Any opinions in this posting are my own and not those of my present > or previous employers. -- --Chris Christoph P. U. Kukulies kuku@gil.physik.rwth-aachen.de
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19970918163531.11717>