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 <http://arma.sourceforge.net/> and > it++<http://itpp.sourceforge.net/4.3.1/>. > Armadillo seems to be the fastest among > these according to the benchmarks > here.<http://arma.sourceforge.net/speed.html>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 [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/a1c958b6-5752-4314-ba3d-63f18f2cb5a2%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
