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/106e81ad-4f07-4603-a909-ad73ce50a4a1%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to