Keep in mind that symbolic linear algebra is quite different than
numerical linear algebra. A lot of the algorithms aren't designed for
symbolic matrices.
Cheers,
Tim.
On 9 Mar 2014, at 23:49, Thilina Rathnayake wrote:
I am not sure BLAS or LAPACK supports arbitrary precision arithmetic.
If not
we have to go with FLINT.
Regards,
Thilina
On Mon, Mar 10, 2014 at 8:51 AM, Thilina Rathnayake
<[email protected]>wrote:
Hi Mario,
Thanks for the reply.
One of the design goals of CSymPy is that user should be able to
install
and use it without additional dependencies. Currently, only
compulsory
dependency for CSymPy is the gmp module. We can use FLINT, BLAS,
or LAPACK for linear algebra if the user is ready to install them,
but if
not
CSymPy should be able to do them itself. I think Ondrej will have
something
to add to this.
Regards,
Thilina
On Sun, Mar 9, 2014 at 10:54 PM, mario <[email protected]>
wrote:
csympy could use flint for matrices with multiprecision numbers
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/92d9c5ea-869d-4025-a3fa-53477a2eae67%40googlegroups.com<https://groups.google.com/d/msgid/sympy/92d9c5ea-869d-4025-a3fa-53477a2eae67%40googlegroups.com?utm_medium=email&utm_source=footer>
.
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/CAPnoRopfocWKWOMg6SH2Zg9h4fadkjdY1eO8W%2B8s6tAgLgu%3D9A%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 [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/1E55FAB0-F118-4450-B0BF-5550B55D42C8%40gmail.com.
For more options, visit https://groups.google.com/d/optout.