rtoy / maxima

A Clone of Maxima's repo
Other
0 stars 0 forks source link

float(1.0b0) overflows with clisp #1594

Closed rtoy closed 2 days ago

rtoy commented 2 days ago

Imported from SourceForge on 2024-07-04 20:20:25 Created by billingd on 2006-01-11 23:09:05 Original: https://sourceforge.net/p/maxima/bugs/852


With 5.9.2 and CVS maxima with clisp on cygwin I see

(%i1) float(0.0b0); Floating point overflow in converting 0.0B0 to flonum -- an error. Quitting. To debug this try debugmode (true);

Robert Dodier reported

clisp 2.34 / maxima 5.9.2cvs / linux => same error gcl 2.6.7 / maxima 5.9.2cvs / linux => OK

Raymond Toy found the problem

The problem is in fp2flo in float.lisp and can be seen to be caused by clisp:

(/ 0 (expt 2d0 53)) => 0 instead of 0d0.

The error message that is produced is wrong because it thinks if scale-float signals an error, it's because of overflow. In this case scale-float signals an error because the first arg is not a float.

Fixed bysetting custom:*floating-point-rational- contagion-ansi* to T. Then (/ 0 1d0) => 0d0, as expected.

rtoy commented 2 days ago

Imported from SourceForge on 2024-07-04 20:20:26 Created by billingd on 2006-01-11 23:18:12 Original: https://sourceforge.net/p/maxima/bugs/852/#63f9


Logged In: YES user_id=365569

Fixed with patch to clmacs.lisp rev 1.20 Test in rtest16.mac rev 1.10

rtoy commented 2 days ago

Imported from SourceForge on 2024-07-04 20:20:29 Created by billingd on 2006-01-11 23:18:56 Original: https://sourceforge.net/p/maxima/bugs/852/#661c