Is there a simple way for user to declare a user-function to have this property, or
does it only work with 'simplifier functions' ?
For instance, if I write a maxima function inner_myfunc and then use:
(setf (get '$myfunc 'distribute_over) '(mlist $matrix mequal))
and then
matchdeclare (aa,all);
tellsimp (myfunc(aa),inner_myfunc(aa));
Then myfunc is first thread over lists and the result simplifies to inner_myfunc
which then makes a function call.
I wonder if there is a more direct way to do this. Even if the above construction
is necessary, you have added a very useful feature.
I guess the other route is to follow exampls of how double_factorial, etc are written.
In this case the function is
(defun $double_factorial (z)
(simplify (list '(%double_factorial) z)))
and %double_factorial is implemented handled with defprop.
Thanks,
John