floating point underflow
Hi, I'm facing a problem using cöln (1.1.9 and 1.1.13) with my 32 Bit Linux-Athlon System here: I have expression like b+(a*a*a-a)*h/2 Some "a" are rather small, so I retrieve an underflow. I did inhibit this then, but the older version seems to stop calculation in a correct manner (results of other expressions in my programms can not be correct) and the newer says: "Internal error: statement in File ./float/elem/cl_F_mul.cc line 25 has been reached." Thanks for any hint Michael
Hi! Michael Schuster wrote:
I'm facing a problem using cöln (1.1.9 and 1.1.13) with my 32 Bit Linux-Athlon System here: I have expression like b+(a*a*a-a)*h/2 Some "a" are rather small, so I retrieve an underflow. I did inhibit this then, but the older version seems to stop calculation in a correct manner (results of other expressions in my programms can not be correct) and the newer says: "Internal error: statement in File ./float/elem/cl_F_mul.cc line 25 has been reached."
In order for anyone to be able to help you it is essential that you write a reduced test case where the problem appears and can be investigated. Best wishes -richy. -- Richard B. Kreckel <http://www.ginac.de/~kreckel/>
Hi Richy & Cln-List, Am Samstag 27 Oktober 2007 schrieb Richard B. Kreckel:
In order for anyone to be able to help you it is essential that you write a reduced test case where the problem appears and can be investigated. Attachted I made a little demo programm which shows the problem. My output is : fnCalc1:1.49557e-52 fnCalc2:1.49557e-52 fnCalc2 + 0 :1.49557e-52 fnCalc3:0 Watch this!! 0 Watch this!! 1.49557e-52
The line >>Watch this!! 0<< should be >>Watch this!! 1.49557e-52<< at least in my mathematical opion. Ok, I donot know if my construct with the class Real is a possibile good design. I wanted to have an easy possibility to switch from built-in-double type to a class type with higher precision. Another problem is why I come (in my original programm) to a Real value-type of cl_SF while I only use the Real base class with cl_float() function as in the demo. But this is for next mailings here. My system: $gcc --version gcc (GCC) 4.0.2 20050901 (prerelease) (SUSE Linux) Copyright (C) 2005 Free Software Foundation, Inc. Dies ist freie Software; die Kopierbedingungen stehen in den Quellen. Es gibt KEINE Garantie; auch nicht für VERKAUFBARKEIT oder FÜR SPEZIELLE ZWECKE. $rpm -q cln cln-1.1.9-5 Thanks for any hint. Michael
participants (2)
-
Michael Schuster
-
Richard B. Kreckel