> Put another way, what would be your preferred computer language if you
were SymPy starting again? There would obviously need to be an interface
to Python, but would you write the rest in C++?

There's the SymEngine project (https://github.com/symengine/symengine), 
which already does this :) SymPy itself, however, is, and should remain, a 
pure-Python computer algebra system.

I agree with what Aaron said above, SymPy does well in making things 
syntactically nice. From a pure performance perspective, SymPy and its 
trees of OOP objects is almost certainly the wrong data structure for 
performant computer algebra. Oscar Benjamin and I (with Aaron and Jason 
Moore also present for parts) have discussed the merits of hashcons 
(https://en.wikipedia.org/wiki/Hash_consing), which gives really neat 
inherent caching, smaller memory footprint, efficient expression traversal 
and topological sorting, and more. If there were to be a concerted effort 
to refactor the internals of SymPy in any way, my vote would strongly go 
towards using a different data structure for the implementation.

Sam

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sympy/fb160d08-978e-4002-ac7f-16635a313291n%40googlegroups.com.

Reply via email to