Re: commit 44ec60d to speed up MAPPLY1 via lambda optimization

Michel Talon <[email protected]>
Newsgroups gmane.comp.mathematics.maxima.general
Message-ID <[email protected]>
Le 15/08/2026 à 19:45, Robert Dodier a écrit :
> Hey, I just saw commit 44ec60d which avoids calling COERCE on Lisp
> lambda expressions, which makes a lot of stuff faster, and makes
> pattern-matching stuff (e.g. ezunits) much, much faster. That is
> really terrific!
>
> It has always bothered me that pattern-matching stuff is (or was, I
> guess) much slower than built-in simplification, to the extent that it
> makes me think twice about bringing pattern matching into the picture
> for the purely practical reason that it slows down everything
> noticeably, so this optimization is going to be really helpful.

We have seen in the past a similar explosion of compilation time (with 
sbcl which compiles all functions automatically) when using repeatedly 
coerce-float-fun (precisely there is a big coerce in %coerce-float-fun) 
from plot.lisp. This is used of course for plotting but also in other 
numerical stuff in the share directory (hompack, lbfgs, minpack, 
romberg, cobyla, colnew, etc.). It would be nice to ensure that the same 
thing you have done for mapply (keeping a copy of the compilation result 
in a hash table to avoid recompilation) covers all uses of convert with 
meval, so that all use case are speedied the same way.


-- 

Michel Talon

_______________________________________________
Maxima-discuss mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/maxima-discuss
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.