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