Thank Ondrej for the reply.

Yes, it seems like the we'll have to go back to the original proposal

Regards,
Thilina


On Tue, Mar 18, 2014 at 5:05 AM, Ondřej Čertík <ondrej.cer...@gmail.com>wrote:

> On Mon, Mar 17, 2014 at 9:40 AM, Thilina Rathnayake
> <thilina.r...@gmail.com> wrote:
> > Hi All,
> >
> > Thanks Ondrej, Mario and Someone for your valuable input.
> >
> > I accept that it's almost impossible for us to beat a good library like
> > Flint
> > and it's really unlikely that we will not have support for it in future.
> So
> > definitely
> > we should use it (or any othert library) to boost our performance. When
> > doing
> > so we should make sure that CSymPy doesn't become something like sage or
> > become difficult for a developer to work on it as Ondrej has pointed out.
> > So the bottom line is we should reuse whenever we can without sacrificing
> > the
> > maintainability, extensibility and user-friendliness. So I am going to
> > change my
> > initial proposal a bit and propose the following.
> >
> > How about writing  a wrapper this summer for flint (or any other library
> we
> > select)
> > to be used with CSymPy? I guess Flint is written in C. Other
> alternatives we
> > have
>
> Flint already has a C++ wrapper, see http://www.flintlib.org/features.html
> .
> So we would just use it.
>
> > are LELA and LInbox both written in C++. Latter two libraries support
> > symbolic
> > manipulation also. We can decide which library we should select and I
> would
> > love
> > to know what are your choices. Mario has already sided with Flint. I
> studied
> > Linbox
> > and LELA quite a bit but not in the perspective of writing wrappers on
> top
> > of them.
> > So I'll have to take a look at them again.
> >
> > In case we don't need to make this a hard dependency, as a fall-back
> > implementation I could do our own implementation for Basic as Ondrej
> pointed
> > out
> > earlier. Since all the other types like Number, Integer, Rational,
> Function
> > are derived
> > from Basic, all of these types can be used with this implementation. We
> can
> > also
> > provide specialized versions of the Matrices and algorithms to these
> types.
>
> Flint doesn't provide matrices for symbolic expressions. So I would
> stick with your original
> proposal to write good linear algebra functionality for symbolic
> types. I don't see any easy way around this.
>
> Ondrej
>
> >
> > I would like to know your opinions on this.
> >
> >
> >
> > Regards,
> > Thilina
> >
> >
> > On Mon, Mar 17, 2014 at 1:21 PM, mario <mario.pern...@gmail.com> wrote:
> >>
> >> My opinion is that it would be great if CSymPy depended only on Flint
> and
> >> its extensions;
> >> for what is missing in it one could make other extensions to it or write
> >> code
> >> directly in CSymPy. The reason is that there are costs in using many
> >> libraries;
> >> one must learn how to use them;  there is often a slowdown in converting
> >> to the required
> >> data structures.
> >>
> >>
> >>
> >> On Sunday, March 9, 2014 4:26:28 PM UTC+1, Thilina Rathnayake wrote:
> >>>
> >>> Hi All,
> >>>
> >>> I would like to work on implementing a Linear Algebra Module for CSymPy
> >>> this summer
> >>> as a GSoC project. I like to focus mainly on Matrices and related
> >>> algorithms as they play
> >>> a central role in Linear algebra.
> >>>
> >>> I hope to implement following (rough) list of things related to
> matrices:
> >>>
> >>> 1. Basic Operations:
> >>>     Addition, Scalar multiplication, transposition
> >>>     Matrix multiplication
> >>>     Row operations
> >>>     Finding a Submatrix (by deleting specific rows and columns)
> >>>
> >>> 2. Square Matrices
> >>>     Decompositions
> >>>     Inverse
> >>>     Eigen values, Eigen vectors and Determinants
> >>>     Nullspace
> >>>
> >>> I haven't decided on the magnitude of the scope of this project but
> since
> >>> Matrices are a
> >>> well studied and implemented field in scientific and numeric
> computation
> >>> lots of references
> >>> can be found so we can start implementing right after we get the
> >>> requirements and designs
> >>> correct.
> >>>
> >>> Apart from SymPy matrices module, there are open source linear algebra
> >>> modules
> >>> implemented in c++ like Armadillo and it++. Armadillo seems to be the
> >>> fastest among
> >>> these according to the benchmarks here. Armadillo focuses on numeric
> >>> computations.
> >>> Following two links provide useful information about implementing
> >>> numerical matrix
> >>> algorithms in C++.
> >>>
> >>> http://arma.sourceforge.net/armadillo_nicta_2010.pdf
> >>>
> >>>
> http://itee.uq.edu.au/~conrad/misc/sanderson_templates_lecture_uqcomp7305.pdf
> >>>
> >>> Generalizing these functions to work with elements from a more general
> >>> field rather than
> >>> numeric fields won't be that hard. That way we can support symbolic
> >>> expressions as well.
> >>> We can create a matrix base class and derive matrices which can
> support a
> >>> specific
> >>> Field (domain) effectively, like matrices with rational elements or
> real
> >>> elements.
> >>>
> >>> Should we think about the implementation of about sparse/dense or
> >>> mutable/immutable
> >>> matrices as a part of this project?
> >>>
> >>> Regards,
> >>> Thilina
> >>
> >> --
> >> 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 sympy+unsubscr...@googlegroups.com.
> >> To post to this group, send email to sympy@googlegroups.com.
> >> 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/a1c958b6-5752-4314-ba3d-63f18f2cb5a2%40googlegroups.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 sympy+unsubscr...@googlegroups.com.
> > To post to this group, send email to sympy@googlegroups.com.
> > 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/CAPnoRorOzkCimivJfc5a2ppK3rxC_Wea%3DYkEZdodf6%2BgAz1aCQ%40mail.gmail.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 sympy+unsubscr...@googlegroups.com.
> To post to this group, send email to sympy@googlegroups.com.
> 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/CADDwiVB8OxForfZ8BqJ6dwLKVT0HxqhaWh61y4LQhVNfU1vP7Q%40mail.gmail.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 sympy+unsubscr...@googlegroups.com.
To post to this group, send email to sympy@googlegroups.com.
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/CAPnoRoroCuLvtO--p%2BdwqWoZeR6YX1H%2BVBRfy4jEvjDNN_2XaQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to