declaration foo distributes over bar



If I were to try this project, I would attempt:

(1) Modify 'declare' to allow things like

       declare(f, distributes_over, ["[", set, matrix])

    (there are other possibilities). Internally, this would do

        (setf (get 'f 'distributes-over) '(mlist $set $matrix)))

(2) Change 'threadable' (in share/contrib/multiadditive.lisp) to examine
    the operator of the argument to see if it is in the distributes-over
    property list of the operator. This could be done by changing a few
    lines of threadable, I think.

(3) Change 'threadable' to a better name.

Since I wrote threadable, I have an not-invented-here attitude toward a
tellsimp method. But unlike a tellsimp scheme, I believe this method
would not slow the simplifier.

Barton

-----maxima-bounces at math.utexas.edu wrote: -----

>To: Robert Dodier <robert.dodier at gmail.com>
>From: Richard Fateman <fateman at EECS.Berkeley.EDU>
>Sent by: maxima-bounces at math.utexas.edu
>Date: 06/09/2007 08:32AM
>cc: maxima-help <maxima at math.utexas.edu>
>Subject: Re: [Maxima] declaration foo distributes over bar
>
>argument against:
>slows down simplifier.