
20 Jun
2006
20 Jun
'06
3:30 a.m.
Having rank also solves the following problem I was wondering about: how do you define vector scalar multiplication in a sufficiently restrictive way. Without a notion of rank, matrix * vector could be ambiguous with scalar * vector since (matrix * x, matrix * y, matrix * z) would be a valid vector<matrix<T> >.
Perhaps I'm horribly misunderstanding something, but wouldn't the fact that "matrix<T> * vector<T>" has to return "vector<T>" be enough to disambiguate it? Your example is implying that matrix<T> * vector<T> can somehow return vector<matrix<T> >. Frederick Akalin