Subject: Vector Identities, Redux and more questions
From: Robert Dodier
Date: Thu, 14 Sep 2006 08:04:31 -0600
On 9/14/06, Neilen Marais <nmarais at sun.ac.za> wrote:
> How are multiple matchdeclares handled by maxima? Remember that the
> "more_vect.mac" already does matchdeclare(aa, all). Will this overide the
> previous declartion, thereby breaking other rules made using aa, or do the
> rules store the matchdeclares within themselves independent of
> redefinition later?
When a rule is defined, the matchdeclare predicates for the symbols
appearing in the rule are pasted into a Lisp function which implements
the rule. If matchdeclare is called again, it has no effect on existing
rules.
You can see the matchdeclare predicate of a symbol (say aa) by
:lisp (symbol-plist '$aa)
and the Lisp function for the rule (e.g. after load(vect))
by something like
:lisp #'&~rule4
for rules named after built-in or user-defined operators,
and something like
:lisp #'$trigrule1
otherwise. (The function name starts with & for an operator rule name.)
HTH
Robert Dodier