I'm learning a little numerical ODE stuff, so I whipped up an
implementation of the Euler algorithm.

It accepts systems of 1st-order equations, and the code was clean and I was
happy, and all was right in the world. Then I noticed that for small step
sizes it was allocating a very large amount of memory. It seems that the
allocation is happening in the matrix math, because when I wrote out the
matrix multiplication explicitly I got about a 30x speedup and huge
reduction in memory allocation (50MB instead of 2GB).

This feels like a bit of a nuclear option, and makes what was really nice
general code into something much uglier. Is there a better solution?

https://gist.github.com/ssfrr/4f5ecfaf462bb5b487db

-s

Reply via email to