Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.
Close
From: SourceForge.net <noreply@so...>  20060909 03:54:12

Bugs item #1117533, was opened at 20050206 15:18 Message generated for change (Settings changed) made by robert_dodier You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=104933&aid=1117533&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 Submitted By: Robert Dodier (robert_dodier) Assigned to: Nobody/Anonymous (nobody) Summary: letsimp complains about assignment to %pi Initial Comment: Dunno what's going on here. I'm guessing that letsimp tries to assign something to %pi as a trial value while trying to match x/(%pi*sin(y)) to a/(%pi*sin(b)). I haven't looked at the code. (%i1) matchdeclare ([a,b],true); (%o1) done (%i2) letrat: true; (%o2) true (%i3) let (a/(%pi*sin(b)),foo(a,b)); a (%o3)  > foo(a, b) %pi sin(b) (%i4) x/(%pi*sin(y)); x (%o4)  %pi sin(y) (%i5) letsimp(%); %pi improper value assignment to a numerical quantity  an error. Quitting. To debug this try debugmode(true); Maxima version: 5.9.1.1cvs Maxima build date: 23:52 1/25/2005 host type: i686redhatlinuxgnu lispimplementationtype: CLISP lispimplementationversion: 2.31 (released 20030901) also observed in Maxima version: 5.9.1 Maxima build date: 21:24 9/23/2004 host type: i686pclinuxgnu lispimplementationtype: CMU Common Lisp lispimplementationversion: 19a  You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=104933&aid=1117533&group_id=4933 
From: SourceForge.net <noreply@so...>  20100527 19:29:55

Bugs item #1117533, was opened at 20050206 23:18 Message generated for change (Comment added) made by crategus You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=104933&aid=1117533&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: Robert Dodier (robert_dodier) Assigned to: Nobody/Anonymous (nobody) Summary: letsimp complains about assignment to %pi Initial Comment: Dunno what's going on here. I'm guessing that letsimp tries to assign something to %pi as a trial value while trying to match x/(%pi*sin(y)) to a/(%pi*sin(b)). I haven't looked at the code. (%i1) matchdeclare ([a,b],true); (%o1) done (%i2) letrat: true; (%o2) true (%i3) let (a/(%pi*sin(b)),foo(a,b)); a (%o3)  > foo(a, b) %pi sin(b) (%i4) x/(%pi*sin(y)); x (%o4)  %pi sin(y) (%i5) letsimp(%); %pi improper value assignment to a numerical quantity  an error. Quitting. To debug this try debugmode(true); Maxima version: 5.9.1.1cvs Maxima build date: 23:52 1/25/2005 host type: i686redhatlinuxgnu lispimplementationtype: CLISP lispimplementationversion: 2.31 (released 20030901) also observed in Maxima version: 5.9.1 Maxima build date: 21:24 9/23/2004 host type: i686pclinuxgnu lispimplementationtype: CMU Common Lisp lispimplementationversion: 19a  >Comment By: Dieter Kaiser (crategus) Date: 20100527 21:29 Message: The reported problem is a general problem when we have a numeric constant in a letrule. Again an example with the symbol %e which is more simple: (%i1) matchdeclare(a,true)$ (%i2) let(%e*a,foo(a))$ (%i3) letsimp(%e*x); assignment: cannot assign to %e; it is a declared numeric quantity.  an error. To debug this try: debugmode(true); The error is in the routine nisnumberpicker in the file nisimp.lisp. This routine skips over numbers but not over numeric constants. When can extend the routine: (defun nisnumberpicker (x) (cond ((null x) nil) ((or (not (symbolp (caar x))) (kindp (caar x) '$constant)) (nisnumberpicker (cdr x))) (t (nisswcdr x (nisnumberpicker (cdr x)))))) This would be the new and correct result: (%i5) letsimp(%e*x); (%o5) foo(x) This is the result for the reported example: (%i1) matchdeclare([a,b],true)$ (%i2) let(a/(%pi*sin(b)),foo(a,b))$ (%i3) letrat:true$ (%i4) letsimp(x/(%pi*sin(y))); (%o4) foo(x,y) Dieter Kaiser  You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=104933&aid=1117533&group_id=4933 
From: SourceForge.net <noreply@so...>  20100527 20:47:45

Bugs item #1117533, was opened at 20050206 23:18 Message generated for change (Comment added) made by crategus You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=104933&aid=1117533&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: Closed >Resolution: Fixed Priority: 5 Private: No Submitted By: Robert Dodier (robert_dodier) Assigned to: Nobody/Anonymous (nobody) Summary: letsimp complains about assignment to %pi Initial Comment: Dunno what's going on here. I'm guessing that letsimp tries to assign something to %pi as a trial value while trying to match x/(%pi*sin(y)) to a/(%pi*sin(b)). I haven't looked at the code. (%i1) matchdeclare ([a,b],true); (%o1) done (%i2) letrat: true; (%o2) true (%i3) let (a/(%pi*sin(b)),foo(a,b)); a (%o3)  > foo(a, b) %pi sin(b) (%i4) x/(%pi*sin(y)); x (%o4)  %pi sin(y) (%i5) letsimp(%); %pi improper value assignment to a numerical quantity  an error. Quitting. To debug this try debugmode(true); Maxima version: 5.9.1.1cvs Maxima build date: 23:52 1/25/2005 host type: i686redhatlinuxgnu lispimplementationtype: CLISP lispimplementationversion: 2.31 (released 20030901) also observed in Maxima version: 5.9.1 Maxima build date: 21:24 9/23/2004 host type: i686pclinuxgnu lispimplementationtype: CMU Common Lisp lispimplementationversion: 19a  >Comment By: Dieter Kaiser (crategus) Date: 20100527 22:47 Message: Fixed in nisimp.lisp revision 1.10. We skip over constants in nisnumberpicker too. Closing this bug report as fixed. Dieter Kaiser  Comment By: Dieter Kaiser (crategus) Date: 20100527 21:29 Message: The reported problem is a general problem when we have a numeric constant in a letrule. Again an example with the symbol %e which is more simple: (%i1) matchdeclare(a,true)$ (%i2) let(%e*a,foo(a))$ (%i3) letsimp(%e*x); assignment: cannot assign to %e; it is a declared numeric quantity.  an error. To debug this try: debugmode(true); The error is in the routine nisnumberpicker in the file nisimp.lisp. This routine skips over numbers but not over numeric constants. When can extend the routine: (defun nisnumberpicker (x) (cond ((null x) nil) ((or (not (symbolp (caar x))) (kindp (caar x) '$constant)) (nisnumberpicker (cdr x))) (t (nisswcdr x (nisnumberpicker (cdr x)))))) This would be the new and correct result: (%i5) letsimp(%e*x); (%o5) foo(x) This is the result for the reported example: (%i1) matchdeclare([a,b],true)$ (%i2) let(a/(%pi*sin(b)),foo(a,b))$ (%i3) letrat:true$ (%i4) letsimp(x/(%pi*sin(y))); (%o4) foo(x,y) Dieter Kaiser  You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=104933&aid=1117533&group_id=4933 