There is something I'm doing as part of my project which maybe be
useful. I'm implementing a Matrix_ wrapper class which will wrap over
low-level matrices. Its being written to replace the current Matrix
class. Algorithmic code and user-level code is being separated into
different classes. Currently, we have three internal matrices, the
DenseMatrix( a modified form of the current Matrix class), DOKMatrix
and LILMatrix. These three are essentially Data internal matrices.
The MatrixSymbol can be another object that Matrix_ (later Matrix)
would use as internal.

Of what I understand from this discussion about the Matrix Symbol, we
need to have an object that will be treated like a Matrix everywhere,
but without the internal data. Space is being made in the Matrix
module for such an object, but for it work nicely it needs to interact
nicely with Expr objects. If its a problem subclassing Expr and
friends, I'm +1 about making a separate codebase for matrix
expressions. It is, after all, a different algebra.

I'm not very familiar with Expr, Add, etc. but I think a separate
algebra MatrixExpr, MatrixAdd, etc. could be developed by copy-pasting
some code from Expr, Add, and modifying according to need. I say 'copy-
paste' and not subclassing as the code would be need to be modified
much before it can work on matrices.

Presently, I'm quite busy with this new encapsulation class Matrix_
and can only think of working fulltime on MatrixSymbol after I've
merged in my work on DOKMatrix, LILMatrix and the ongoing work on
Matrix_.

Matthew, you could set up a wiki page on 'matrix expressions' with
some example code in it. 'symbolic matrices' can mean a few number of
things, and is somewhat vague. It would be good if everyone could see
what sort of concrete things are expected from matrix expressions.
Approaches to implement Matrix Algebra, with pros and cons listed,
could be added there for discussion, suggestion and improvement.

Regards,
Sherjil Ozair

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sympy?hl=en.

Reply via email to