On 13 Mar 2014, at 15:41, Ondřej Čertík wrote:

Those are some good points, I use Fortran too for numerics, almost
every day in fact.

CSymPy is currently much faster than Sage on some of the symbolic
benchmarks that I tried:

https://github.com/certik/csympy/tree/master/benchmarks

because there is not the overhead of Python / C++ conversion.

Ultimately, the goal of CSymPy is to provide fast symbolic
manipulation library, with the particular applications to areas where
people can't use SymPy because it is just too slow. In particular, I
want CSymPy to be as fast or faster than other symbolic software, open
source or commercial.

So I really don't want to reimplement numerical algorithms etc.

Coming back to the LA proposal from Thilina: I think that the most
pressing application is to provide Matrix algorithms for symbols from
CSymPy. For everything else, like double precision, or GMP, or other
types, I would simply reuse LELA (here is the github repo:
https://github.com/Singular/LELA) or maybe something else that is
maintained more often (last patch to LELA is from a year ago).

I think LinBox (http://www.linalg.org) would work. It seems to be updated more often than LELA. They each have their strengths and weaknesses. LELA is a fork of LinBox. It looks like it can use GMP/FLINT.


So in particular, let's concentrate most of the proposal on
implementing specialized Matrix classes for CSymPy Basic types. That's
the 90% of the uses, for now. To be honest, I wouldn't even worry
about templating it -- we might do it later, if we think it makes
sense. I am open on this of course. It makes sense to me to provide
good solid implementation for CSymPy Basic type and then if we want to
generalize this for some other types, we can always use this as the
low level building block. But it seems to me that if we just do this
for Basic, and wrap it to Python and make sure it works with SymPy,
that would be super useful.

Let me know what you think.

I think that's a good idea.

Cheers,

Tim.

---
Tim Lahey, Ph.D.
Post-Doctoral Fellow
Systems Design Engineering
University of Waterloo

--
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 post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sympy.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sympy/86ADDFF2-CA11-4297-81ED-EAC785834D0F%40gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to