Thank you Ondrej and Tim for your inputs. I too think we should concentrate
on Symbolic matrix manipulation rather than the numerical matrices since
there
are good libraries we can use to do them.

The approach used in Armadillo is that if the user is willing to install
additional
libraries it uses them for fast calculations, otherwise it uses it's own
implementation.
If we were to just throw an exception in this kind of a scenario, certain
other modules
which user might think as unrelated, might have to be disabled too.

For example, Suppose CSymPy has an equation solver which solves a system
of equations using matrix manipulations. If we don't have our own
implementation
of the matrices and if the user didn't install it through an external
library, it won't be
possible for the user to use the equation solver.

If the goal of CSymPy is to be a symbolic manipulation library, I don't
think the above is
going to be a big problem. I see lots of pros in concentrating just on
symbolic calculation.
For example, if we do a good job on symbolic manipulation rather than the
current general
CASs, CSymPy with a good numerical library like numpy might be an
unbeatable
combination.


Regards,
Thilina


On Fri, Mar 14, 2014 at 1:24 AM, Tim Lahey <[email protected]> wrote:

>
>
> 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.
>

-- 
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/CAPnoRoqWBkiJSjEykVpUS8M1xoVK5DREPodFuj7p6voH3Eipzg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to