From: SourceForge.net <no...@so...> - 2008-03-28 17:37:11
|
Bugs item #1928142, was opened at 2008-03-28 18:37 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=104933&aid=1928142&group_id=4933 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Lisp Core - Simplification Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Harald Geyer (hgeyer) Assigned to: Nobody/Anonymous (nobody) Summary: keepfloat breaks ratsubst() in some cases Initial Comment: ratsubst returns incorrect results when keepfloat==true and the substitution causes the expression to contain both floats and rationals at the same time. See the following example session for things that don't work as well as for some things that do work. I can reproduce the problem from at least 5.11.0 up to current cvs with clisp and gcl. Maxima 5.14.0cvs http://maxima.sourceforge.net Using Lisp CLISP 2.41 (2006-10-13) Distributed under the GNU Public License. See the file COPYING. Dedicated to the memory of William Schelter. The function bug_report() provides bug reporting information. (%i1) batch(ratsubstbug.mac) batching /home/rld/ratsubstbug.mac (%i2) keepfloat : true (%i3) display2d : false (%i4) cos(%pi/3) (%o4) 1/2 (%i5) subst(%pi/3,th,1.2*cos(th)) (%o5) 0.6 (%i6) ratsubst(%pi/3,th,1.2*cos(th)) (%o6) 1.2 (%i7) cos(%pi) (%o7) -1 (%i8) subst(%pi,th,1.2*cos(th)) (%o8) -1.2 (%i9) ratsubst(%pi,th,1.2*cos(th)) (%o9) -1.2 (%i10) sqrt(1/4) (%o10) 1/2 (%i11) subst(4,th,1.2*sqrt(1/th)) (%o11) 0.6 (%i12) ratsubst(4,th,1.2*sqrt(1/th)) Maxima encountered a Lisp error: COMMON-LISP:GCD: 1.2 is not an integer Automatically continuing. To reenable the Lisp debugger set *debugger-hook* to nil. (%i13) subst(9,th,1.2*sqrt(1/th)) (%o13) 0.4 (%i14) ratsubst(9,th,1.2*sqrt(1/th)) Maxima encountered a Lisp error: COMMON-LISP:GCD: 1.2 is not an integer Automatically continuing. To reenable the Lisp debugger set *debugger-hook* to nil. (%i15) ratsubst(9,th,1.2*sqrt(th)) (%o15) 3.6 (%i16) ratsubst(4,th,1.2/sqrt(th)) Maxima encountered a Lisp error: COMMON-LISP:GCD: 1.2 is not an integer Automatically continuing. To reenable the Lisp debugger set *debugger-hook* to nil. (%i17) log(%e^(1/2)) (%o17) 1/2 (%i18) subst(%e^(1/2),th,1.2*log(th)) (%o18) 0.6 (%i19) ratsubst(%e^(1/2),th,1.2*log(th)) (%o19) 1.2 (%i20) ratsubst(%e^(1/3), th, 1.2*log(th)); (%o20) 1.2 (%i21) subst(%e^2,th,1.2*log(th)) (%o21) 2.4 (%i22) ratsubst(%e^2,th,1.2*log(th)) (%o22) 2.4 ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=104933&aid=1928142&group_id=4933 |