Hi David,

Thanks for your comments.  I'm very interested in making Sage more
approachable for students, so I'm all for anything that improves that,
without hampering research applications.

In my linear algebra textbook, I've been dogmatic about every vector
being a column vector, even going so far as constructing row spaces as
sets of column vectors.  Definitely over the top, and arguably wrong.
But I've been trying to spare the students some initial confusion
about rows and columns and when to transpose, and when not to.

Would it be going too far to suggest vectors could be tagged as "row"
or "column" (or None)?  A right kernel would return a module/subspace
with basis vectors that were tagged as columns and a left kernel would
return a module/subspace with basis vectors that were tagged as rows.
A column space would have columns as basis vectors and a row space
would have basis vectors that are rows.  I could then see sanity
checks other places, like the product of a matrix with a vector on the
right or left could check for the vector being a column or a row.  An
inner product could require a row vector, then a column vector, in
that order as arguments.  A transpose method on vectors would just
toggle the tag.  And so on.  These checks could be phased in, choosing
where to query the tag and where to respect the None tag.  I could see
a payoff in preventing some incompatible operations in user-level code
with clear messages (eg "attempting to multiply a column vector on the
left of a matrix").

Would this be too disruptive in other places?

Printing.  In my cynical moments, I've long thought row vectors are
just a typographical convenience, and certainly the (1, 2, 3)^t
construction for a printed column vector must be a publisher's
preference.  But here it might make sense.  Just print vectors tagged
"column" exactly as is done now, but with  "^t" tacked on?

I hope I've understood your comments correctly and haven't run off too
far in the wrong direction.

Rob


--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to