On Jul 11, 2:46 pm, SherjilOzair <[email protected]> wrote: > For those who've not read my latest blog, I'm working on implementing > a new structure for the matrices module of sympy. > I faced many decision problems while doing so, like what should be > named what and what should be where. > > Should matrix and linear algebra be separated ? > > I'm +1 for minimal code in the matrix class and most of the > code(factorizations, solves) outside the class. > > What all functionality have we or should we *promise* to the users of > sympy ? That is, what is the public API ? > > Since you guys have been using sympy matrices for a long time, it > would be best if you could reply back with what do you expect the > matrix module to behave like ? > > One thing that I'm promising is user indifference to internal > representation, i.e. the user can ignore the representation of the > matrix to be chosen and matrix class will figure out the > representation, and there will be seamless conversion between the > matrix internals. An algorithm that works on dense matrix would even > work on sparse matrices without the user explicitly doing any > conversions. > The user will still be able to override and choose the repr himself my > a 'repr' kwarg like Matrix(..., repr='dense'). > > I plan to put only essential functionalities in the main class. Other > functionalities will be put in a separate file matrixtools.py or > matrixutils.py. > For example, jacobian does not belong to the class, it belongs to > specialmatrices.py, and should be in the linalg. namespace as > linalg.jacobian > I've encountered many stuff like this like this in the matrices.py > file. > > so, once again the questions are, > What do you expect from the matrix module ? > What should be the public API ? > What functionality should be given special status to reside inside the > class ?
I think we should do it like numpy and prefer for example lu_solve(A, b) over A.lu_solve(b). On the other hand, we have usually both in sympy. 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.
