On Jun 28, 4:32 am, Matthew Rocklin <[email protected]> wrote: > Yeah, definitely. I must confess that a hidden passion of mine is optimizing > linear algebra (we all have our quirks). I was just looking at Theano a > minute ago actually - I think it would be cool to easily dump Matrix > expressions onto them. > > How should matrix expressions be represented in SymPy though? The way I see > it there are three options > > 1. Leave it as a SymPy Expr, forget shape, transpose, rank, etc... for > now. Maybe future SymPy elegance will make clever things possible (such as > issue 1941) > 2. Enhance SymPy Expr's to play nice with Matrices > 3. Subclass a family of MatrixExpr classes that live outside the core > > Probably there are things I'm missing but this is how I separate things. > Because I'd like this done sooner rather than later I'm obviously in favor > of 2 or 3 with a preference for 3. I don't know enough about SymPy however > to tell whether this is the "right way" and I'd rather not work on something > unless it has a chance at getting in. > > I'll push again for three by saying that there is a lot going on in Matrix > Expressions other than just non-commutativity and shape. Inverses, > transposes, rank, symmetry, positive_definiteness, conditioning, etc... all > play a big role in computational decisions made on matrices. Additionally > matrix expressions are ubiquitous and important in the scientific computing > world. From my (strongly biased) perspective they deserve special > treatment.
I think all this '.is_*' stuff should rather be implemented using the new assumption system (not sure about shape, maybe this should really go into the core). If we use noncommutative symbols, I think we can avoid messing around with Mul and friends. A.T could be implemented as a unary function. Vinzent -- 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.
