Opened 5 years ago

Last modified 4 years ago

#15789 new defect

Translation from Maxima seems to fail on some big big numbers

Reported by: kcrisman Owned by:
Priority: major Milestone: sage-6.4
Component: interfaces Keywords:
Cc: Merged in:
Authors: Reviewers:
Report Upstream: N/A Work issues:
Branch: Commit:
Dependencies: Stopgaps:

Description

At this ask.sagemath question, the following issue came up.

    sage: desolve_rk4(f(t,y), y, ivar=t, ics=[0,-4], end_points=[0,.4])
    [[0, -4],
     [0.1, -6.44026308551],
     [0.2, -18.4360863753],
     [0.3, -9638.98851821],
     [0.4, -2.29907718472e+44]]

works, but

    sage: desolve_rk4(f(t,y), y, ivar=t, ics=[0,-4], end_points=[0,.5])
    TypeError: unable to make sense of Maxima expression '[[0,-4],[0.1,-6.440263085506939],[0.2,-18.436086375306434],[.30000000000000004,-9638.988518207414],[0.4,-229907718471530700000000000000000000000000000.],[0.5,-.000000000000000.000000000000000]]' in Sage

and indeed -.000000000000000.000000000000000 makes no sense inside of Sage. I'm not sure what it's supposed to mean in Maxima, either!

Here is the problem, in Maxima.

    (%i1) rk(6+y-y^2,y,-4,[t,0,.5,.1]);
    (%o1) [[0, - 4], [0.1, - 6.440263085506939], [0.2, - 18.436086375306434], 
    [.30000000000000004, - 9638.988518207414], [0.4, - 2.2990771847153071e+44], 
    [0.5, - .000000000000000e+4932]]

I'm not sure exactly what is going on in Sage here, because

sage: a = maxima('- 2.2990771847153071e+44')
sage: a._sage_()
-2.29907718472e+44
sage: b = maxima(' - .000000000000000e+4932')
sage: b._sage_()
0.0

so it must be something about how these are translated.

Change History (3)

comment:1 Changed 5 years ago by nbruin

Does this help?

sage: E=maxima_calculus('rk(6+y-y^2,y,-4,[t,0,.5,.1])')
sage: E.ecl()
<ECL: ((MLIST SIMP) ((MLIST SIMP) 0 -4) ((MLIST SIMP) 0.1 -6.440263085506939)
 ((MLIST SIMP) 0.2 -18.436086375306434)
 ((MLIST SIMP) 0.30000000000000004 -9638.988518207414)
 ((MLIST SIMP) 0.4 -2.299077184715307e44)
 ((MLIST SIMP) 0.5 #.ext::double-float-negative-infinity))>

it seems to be ECL's own IEEE negative infinity, which seems to get handled a little strange by maxima.

comment:2 Changed 4 years ago by vbraun_spam

  • Milestone changed from sage-6.2 to sage-6.3

comment:3 Changed 4 years ago by vbraun_spam

  • Milestone changed from sage-6.3 to sage-6.4
Note: See TracTickets for help on using tickets.