On Tue, Aug 31, 2010 at 4:22 PM, Patrick Li <[email protected]> wrote:
> But this starts to clutter up the library. Is it possible to provide this
> optimization at the library level for the users? eg. somehow recognize that
> whenever the user writes (matrix-transpose-multiply A B)  I can replace it
> with the internal function (matrix-transpose-multiply* A B)?

You can do this with macrology. Basically, matrix-multiply should
become an identifier macro with some special cases to handle known
optimisations.

> and (let ([AT (matrix-transpose A)) (matrix-multiply AT B))   with
>  (matrix-transpose-multiply* A B)

I don't know if this will work with my proposed scheme. I think macro
expansions occurs before inlining.

I'm curious to read what others suggest. You could define a whole
language like Typed Racket, but that is probably too much work for
what you want.

N.

PS: Looking forward to more numerical code in Racket.
_________________________________________________
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/users

Reply via email to