From: SourceForge.net <no...@so...> - 2005-09-24 05:38:24
|
Bugs item #1294744, was opened at 2005-09-18 13:11 Message generated for change (Comment added) made by robert_dodier You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=104933&aid=1294744&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: van_Nek (van_nek) Assigned to: Nobody/Anonymous (nobody) Summary: dot-operator precedence 110 ? Initial Comment: ------------------------------------------------------------- Maxima version: 5.9.1 Maxima build date: 7:34 9/24/2004 host type: i686-pc-mingw32 lisp-implementation-type: Kyoto Common Lisp lisp-implementation-version: GCL 2.6.5 ------------------------------------------------------------- (C54) a*[v1,v2] . b*[w1,w2]; (D54) [a*w1, a*w2]*([v1, v2] . b) (C55) :lisp $C54 ((MTIMES) $a ((MNCTIMES) ((MLIST) $v1 $v2) $b) ((MLIST) $w1 $w2)) (C55) :lisp(describe 'mnctimes) MNCTIMES - internal symbol in MAXIMA package ... property RBP: 109 property LBP: 110 ... (C55) :lisp(describe 'mtimes) MTIMES - internal symbol in MAXIMA package ... property RBP: 120 property LBP: 120 ... I regard this information as the operator precedence, or am I wrong? If this is the precedence, D54 should be the result of the following D55. (C55) (a*[v1,v2]) . (b*[w1,w2]); (D55) a*b*v2*w2 + a*b*v1*w1 Can someone explain, if the rbp and lbp values are the operator precedence values and what the correct value for dot is. Volker van Nek ---------------------------------------------------------------------- >Comment By: Robert Dodier (robert_dodier) Date: 2005-09-23 23:38 Message: Logged In: YES user_id=501686 LBP and RBP are indeed operator precedence values (see "Syntax" under "Expressions", http://maxima.sf.net/docs/manual/en/maxima_toc.html). However it is the LBP and RBP of the symbols $. and $* which are relevant to parsing input expressions; the parser sees only the atoms in the input stream, not MNCTIMES or MTIMES. LBP and RBP for input symbols are defined in src/nparse.lisp, which establishes () that "." has higher precedence than "*". However, for the purposes of display (essentially to determine which subexpressions need parentheses), src/grind.lisp establishes precedence for operators MNCTIMES, MTIMES, etc. The list in src/grind.lisp is out-of-date with respect to src/nparse.lisp -- in particular, "." has lower precedence than "*" there. The list in src/grind.lisp should be changed to have the same precedence values as in src/nparse.lisp. Whether "." should have higher or lower or the same precedence as "*", I don't know, and it is not immediately relevant, so I'm going to leave that alone. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=104933&aid=1294744&group_id=4933 |