I agree that they should be separate. A Tuple represents a generic container object, whereas a Matrix is a specific kind of object with certain algebraic properties. The fact that Tuple is only Basic whereas ImmutableMatrix is also Expr showcases this fact (I know this brings us back to the "meaning of Expr" discussion).
A Tuple might be thought of mathematically as an element of a cartesian product set. As Joachim noted, it could contain anything: mathematical expressions, boolean expressions, sets, other tuples, etc. A Matrix has properties like a*(x, y, z) = (a*x, a*y, a*z). This doesn't make sense if x, y, and z are all booleans, for example. Another thing: if we define a nxm matrix by ((x11, x12, ..., x1m), ..., (xn1, xn2, ..., xnm)), then this could be seen as a column of row vectors. So we see that depending on the context, we must consider a tuple to be a row matrix or a column matrix. If anything, ImmutableMatrix should subclass from Tuple, not the other way around, since the latter is a more generic class. What specific special cases are there in the code by the way? Aaron Meurer On Sat, May 12, 2012 at 5:21 AM, [email protected] <[email protected]> wrote: > Here is the issue http://code.google.com/p/sympy/issues/detail?id=3263 > > -- > 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. > -- 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.
