Hi, As I have been creditted by William with the free modules as row vectors and default left kernel for matrices (under the influence of Magma), let me propose a coherent way to relax this design decision.
It should be easy to add an argument to free modules to create them as column spaces and give a nice latex and (not so nice) ascii art printing. Thus right_kernel should return such a module or vector space. Arbitrary matrices will then have both left and right kernels, and the composition will be well-defined. There has been a huge amount of effort going into calculus to make Sage suitable (and a natural choice) for undergraduate calculus teaching. A much smaller amount of effort would make it suitable to map any undergraduate linear algebra textbook exercise in terms of row OR column vectors to a Sage exercise without convoluted applications of transposes. Except for details like passing the column/row orientation to subspaces and caching issues, the main changes are largely restricted to __repr__ and __mul__ (for compatibility with matrix multiplication). If someone has two days to spare (one for implementation and one for documentation and bug tracking), then I would highly recommend this complementary project to the right_kernel cleanup. There would be numerous advantages also to research, e.g. in the theory of theta functions or Siegel modular forms it would be a huge pain to correctly transpose the standard column vector notation into reliable code. --David --~--~---------~--~----~------------~-------~--~----~ 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/sage-devel URLs: http://www.sagemath.org -~----------~----~----~----~------~----~------~--~---
