Hi, Just a quick note that could be relevant to the discussion: check also out
http://code.google.com/p/sympycore/wiki/MatrixSupportIdeas that contains ideas how to deal with mutable matrices in operations where they should be immutable, all in a very efficient way. The idea is based on using views of matrices. Pearu On Jun 7, 7:52 pm, "Ondrej Certik" <[EMAIL PROTECTED]> wrote: > Let's clean this up. I sent an email to the numpy-list asking for an advice: > > http://projects.scipy.org/pipermail/numpy-discussion/2008-June/034801... > > The ultimate reason that Matrix is not a subclass of a Basic is that > it is mutable, while SymPy objects need to be immutable, so that when > you have an expression, like (1+x)**2, you can be sure that all the > instances (like "x") doesn't change in the middle of a calculation. > > Q: Why is a Matrix mutable? > A: Because we want to play with matrices using the natural syntax: > A[0,0] = x**2, etc. > > Q: Do we want to use Matrices in expressions? > A: I think it could be very useful. Currently we can use Symbol("A", > commutative=False), but it'd be nice to have an option to "attach" > some matrix for it, that represents it. Also it will make the whole > SymPy cleaner, if we adapt for example this approach: > > Make Matrix immutable, while introducing an Array class, that will > behave like numpy array, be mutable etc., and a 2D array could be > converted to Matrix (and back of course), thus Matrices would become > regular SymPy objects. > > Disadvantage -- if one needs to set entries of a Matrix using the > syntax "A[1, 2] = y" not only at the beginning of the calculaton, but > also in the middle, then he would have to do: A = Matrix(Array(A)[1,2] > = y). Of course A[1,2] = y would create an exception saying: "use the > A = Matrix(Array(A)[1,2] = y)" syntax. > > What do you think? > > Ondrej --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
