Menu ▾ ▴

#760 uncaught exception on floating point overflow (GCL)

None
maybe-fixed
nobody
5
2022-11-03
2005-06-26
No

Using GCL 2.6.6/Maxima 5.9.1cvs. Usually if there is a
floating point overflow, Maxima catches the GCL error
and returns to the Maxima command prompt after printing
an error message. E.g. in a fresh session:

(%i1) 1e300*1e300;

Maxima encountered a Lisp error:

Error in PROGN [or a callee]: Can't print a
non-number.

Automatically continuing.
To reenable the Lisp debugger set *debugger-hook*
to nil.
(%i2)

However, sometimes the error is not caught, and instead
of getting the Maxima prompt, the user gets the GCL
debugger prompt. I've been able to cause this to happen
a few times, but the only reproduceable example I have
is the following. The example is contained in the
attached file musa.mac.

------------------------ begin transcript
------------------------
(%i1) T: matrix ([3, 45, 6, 7, 8]);
(%o1) [ 3 45 6 7 8 ]
(%i2) t: matrix ([0, 3, 48, 54, 61, 69]);
(%o2) [ 0 3 48 54 61 69 ]
(%i3)
F1(N,F):= 5/N - sum (F*exp(-F*t[1,i])*T[1,i], i, 1, 5);
5
(%o3) F1(N, F) := - - sum(F exp((- F) t ) T , i,
1, 5)
N 1, i 1, i
(%i4)
F2(N,F):= 5/F - sum(N*exp(-F*t[1,i]),i,1,5) +
sum(F*N*t[1,i]*exp(-F*t[1,i])*T[1,
i],i,1,5) - sum (t[1,i],i,1,5);
5
(%o4) F2(N, F) := - - sum(N exp((- F) t ), i, 1, 5)
F 1, i
+ sum(F N t exp((- F) t ) T , i, 1, 5)
1, i 1, i 1, i
- sum(t , i, 1, 5)
1, i
(%i5) load (mnewton);
(%o5)

/home/robert/tmp/maxima-clean/maxima/share/contrib/mnewton.mac
(%i6) mnewton ([F1(N,F), F2(N,F)], [N, F], [1, 1]);

Maxima encountered a Lisp error:

Error in MACSYMA-TOP-LEVEL [or a callee]:
Error in PCL::PRINT-STD-INSTANCE [or a callee]: Can't
print a non-number.

Fast links are on: do (use-fast-links nil) for debugging
Broken at PRINT-OBJECT. Type :H for Help.
1 (Continue) Macsyma top-level
2 (Abort) Return to top level.
dbl:MAXIMA>>
---------------------------- end transcript
------------------------

The error appears to be generated by the line

numdet:float(sublis(Solutions,det)),

in mnewton.mac.

See also bug report 781726.

Discussion

  • Robert Dodier

    Robert Dodier - 2005-06-26

    example which shows error

     
  • Robert Dodier

    Robert Dodier - 2006-08-12
    • labels: --> 460522
     
  • Robert Dodier

    Robert Dodier - 2006-08-12

    Logged In: YES
    user_id=501686

    Reported behavior not observed in 5.9.3cvs / GCL 2.6.7.
    Instead mnewton ([F1(N,F), F2(N,F)], [N, F], [1, 1]); =>
    Maxima encountered a Lisp error:

    Error in PROGN [or a callee]: Bind stack overflow.

    i.e. different error, and it is caught successfully.

     
  • Robert Dodier

    Robert Dodier - 2006-09-09
    • labels: 460522 --> Lisp Core - Floating point
     
  • Robert Dodier

    Robert Dodier - 2022-11-03
    • labels: Lisp Core - Floating point --> floating point, gcl, error handling
    • status: open --> maybe-fixed
    • Group: --> None
     
  • Robert Dodier

    Robert Dodier - 2022-11-03

    Needs review. Extract example and put into test cases if not there already.

     

Log in to post a comment.