Am 28.06.2009 um 07:53 schrieb Handkea fumosa:
> The recur arg in question is (+ (* G__12815 G__12815) (* G__12817
> G__12816 G__12816) G__12819) all of whose operands are doubles.
>
> This seems buggy.
Yes, that seems ominous. I'm not doing much
number crunching (read: I don't need tight loops
with primitives), so I can't really tell, why it
doesn't work.
> (If you're asking why the meaningless names, it's because this is
> actually adapted from the output of macroexpand-1. I have a macro to
> turn symbolic mathematical expressions into optimized iteration loops.
> It's not ready for prime-time yet; besides this problem, it doesn't do
> common subexpression elimination, so for instance there's two of (*
> G__12815 G__12815) in there.
I don't know, how your macro looks like, but maybe
you can use the # notation: c-r# will give you something
like c-r__123.
However there are limitations for # notation (needs to be
in the same `). In that case you can specify a prefix to
gensym. (gensym "c-r__") will also give you c-r__123.
This should help making things in macros clearer.
Sincerely
Meikel
Yes, that is it. Alternatives for inlining other than binary ops are
under consideration.
Rich