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
-~----------~----~----~----~------~----~------~--~---

Reply via email to