From: SourceForge.net <noreply@so...>  20040305 06:47:18

Bugs item #910270, was opened at 20040305 01:32 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=910270&group_id=4933 Category: None Group: None Status: Open Resolution: None Priority: 5 Submitted By: Stavros Macrakis (macrakis) Assigned to: Nobody/Anonymous (nobody) Summary: 1/+3*x parses as 1/(+3*x) Initial Comment: A plus sign immediately following a multiplicative operator causes the next multiplicative term to bind tightly: 1/+3*x == 1/(+3*x) == 1/(3*x) (!!) should be (1/3)*x 1/+x/3 == 1/(+x/3) == 3/x (!!) should be (1/+x)/3 = 1/(3*x) a^+b*c == a^+(b*c) (!!) should be (a^b)*c With negative signs, these parse correctly: 1/3*x == (1/3)*x == x/3 1/x/3 == (1/x)/3 == 1/(3*x) a^b*c == (a^b)*c == c/(a^b) Maxima 5.9.0 on GCL 2.5.0 mingw32 W2k Athlon  You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=104933&aid=910270&group_id=4933 
From: SourceForge.net <noreply@so...>  20060724 02:42:30

Bugs item #910270, was opened at 20040304 23:32 Message generated for change (Comment added) made by robert_dodier You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=104933&aid=910270&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 Group: None Status: Open Resolution: None Priority: 5 Submitted By: Stavros Macrakis (macrakis) Assigned to: Nobody/Anonymous (nobody) Summary: 1/+3*x parses as 1/(+3*x) Initial Comment: A plus sign immediately following a multiplicative operator causes the next multiplicative term to bind tightly: 1/+3*x == 1/(+3*x) == 1/(3*x) (!!) should be (1/3)*x 1/+x/3 == 1/(+x/3) == 3/x (!!) should be (1/+x)/3 = 1/(3*x) a^+b*c == a^+(b*c) (!!) should be (a^b)*c With negative signs, these parse correctly: 1/3*x == (1/3)*x == x/3 1/x/3 == (1/x)/3 == 1/(3*x) a^b*c == (a^b)*c == c/(a^b) Maxima 5.9.0 on GCL 2.5.0 mingw32 W2k Athlon  >Comment By: Robert Dodier (robert_dodier) Date: 20060723 20:42 Message: Logged In: YES user_id=501686 Examples work the same in 5.9.3cvs. The observed behavior has something to do with LBP and RBP properties, although I don't know if the following numbers account entirely for the observed behavior. :lisp (mapcar #'lbp '($+ $ $* $/ $^)) => (100 100 120 120 140) :lisp (mapcar #'rbp '($+ $ $* $/ $^)) => (100 134 200 120 139)  You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=104933&aid=910270&group_id=4933 
From: SourceForge.net <noreply@so...>  20100214 12:57:20

Bugs item #910270, was opened at 20040305 07:32 Message generated for change (Comment added) made by crategus You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=104933&aid=910270&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 Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Stavros Macrakis (macrakis) Assigned to: Nobody/Anonymous (nobody) Summary: 1/+3*x parses as 1/(+3*x) Initial Comment: A plus sign immediately following a multiplicative operator causes the next multiplicative term to bind tightly: 1/+3*x == 1/(+3*x) == 1/(3*x) (!!) should be (1/3)*x 1/+x/3 == 1/(+x/3) == 3/x (!!) should be (1/+x)/3 = 1/(3*x) a^+b*c == a^+(b*c) (!!) should be (a^b)*c With negative signs, these parse correctly: 1/3*x == (1/3)*x == x/3 1/x/3 == (1/x)/3 == 1/(3*x) a^b*c == (a^b)*c == c/(a^b) Maxima 5.9.0 on GCL 2.5.0 mingw32 W2k Athlon  >Comment By: Dieter Kaiser (crategus) Date: 20100214 13:57 Message: In the examples of this bug report, the operator "" works correctly as a prefix operator in examples like x^a*y > y/(x^a) and x/a*y > (x/a)*y because the right binding power rpb of the operator "" has a value 134 which is greater than the left binding power of the operator "*" with a value of 120 and the right binding power of the operator "/" with a value of 120. The operator "+" will behave the same way, when we increase the right binding power to a value of 134 too. We will get the expexted results: (%i6) 1/+3*x; (%o6) x/3 (%i6) 1/+x/3; (%o6) 1/(3*x) (%i6) a^+b*x; (%o6) a^b*x Both, the testsuite and the share_testsuite have no problems with this change of the right binding power of the operator "+". Dieter Kaiser  Comment By: Robert Dodier (robert_dodier) Date: 20060724 04:42 Message: Logged In: YES user_id=501686 Examples work the same in 5.9.3cvs. The observed behavior has something to do with LBP and RBP properties, although I don't know if the following numbers account entirely for the observed behavior. :lisp (mapcar #'lbp '($+ $ $* $/ $^)) => (100 100 120 120 140) :lisp (mapcar #'rbp '($+ $ $* $/ $^)) => (100 134 200 120 139)  You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=104933&aid=910270&group_id=4933 
From: SourceForge.net <noreply@so...>  20100220 22:15:06

Bugs item #910270, was opened at 20040305 07:32 Message generated for change (Comment added) made by crategus You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=104933&aid=910270&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 Group: None >Status: Closed >Resolution: Fixed Priority: 5 Private: No Submitted By: Stavros Macrakis (macrakis) Assigned to: Nobody/Anonymous (nobody) Summary: 1/+3*x parses as 1/(+3*x) Initial Comment: A plus sign immediately following a multiplicative operator causes the next multiplicative term to bind tightly: 1/+3*x == 1/(+3*x) == 1/(3*x) (!!) should be (1/3)*x 1/+x/3 == 1/(+x/3) == 3/x (!!) should be (1/+x)/3 = 1/(3*x) a^+b*c == a^+(b*c) (!!) should be (a^b)*c With negative signs, these parse correctly: 1/3*x == (1/3)*x == x/3 1/x/3 == (1/x)/3 == 1/(3*x) a^b*c == (a^b)*c == c/(a^b) Maxima 5.9.0 on GCL 2.5.0 mingw32 W2k Athlon  >Comment By: Dieter Kaiser (crategus) Date: 20100220 23:15 Message: Fixed as suggested in nparse.lisp revision 1.56. The right binding power of the "+" has been increased to a value 134. Closing this bug report as fixed. Dieter Kaiser  Comment By: Dieter Kaiser (crategus) Date: 20100214 13:57 Message: In the examples of this bug report, the operator "" works correctly as a prefix operator in examples like x^a*y > y/(x^a) and x/a*y > (x/a)*y because the right binding power rpb of the operator "" has a value 134 which is greater than the left binding power of the operator "*" with a value of 120 and the right binding power of the operator "/" with a value of 120. The operator "+" will behave the same way, when we increase the right binding power to a value of 134 too. We will get the expexted results: (%i6) 1/+3*x; (%o6) x/3 (%i6) 1/+x/3; (%o6) 1/(3*x) (%i6) a^+b*x; (%o6) a^b*x Both, the testsuite and the share_testsuite have no problems with this change of the right binding power of the operator "+". Dieter Kaiser  Comment By: Robert Dodier (robert_dodier) Date: 20060724 04:42 Message: Logged In: YES user_id=501686 Examples work the same in 5.9.3cvs. The observed behavior has something to do with LBP and RBP properties, although I don't know if the following numbers account entirely for the observed behavior. :lisp (mapcar #'lbp '($+ $ $* $/ $^)) => (100 100 120 120 140) :lisp (mapcar #'rbp '($+ $ $* $/ $^)) => (100 134 200 120 139)  You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=104933&aid=910270&group_id=4933 