From: Paul F D. <pa...@pf...> - 2002-03-06 21:51:56
|
Travis wrote: To me, matrices are just arrays of rank <=2 which should be interpreted with their specific algebra. -- If a class is roughly data plus behaviors, a matrix is not simply an array of rank <=2. You can express the concept of a matrix most cleanly as a separate class. Adding an argumentless member function .M to "convert" from one class to the other, and not make the other class explicit, is a bit weird. But if the other class "Matrix" is explicit, you needn't give it a privleged status with respect to Numeric.array by having a member function in Numeric.array that amounts to a Matrix constructor. The only real motivation for that seems to me to be the feeling that M(x) is somehow less clear than x.M. Note that except for a tricky property behavior, you really ought to have to write the latter as x.M(). As I said, I think we can beef up Matrix to make the linear algebra freaks happy, even to making things like transpose(A)*(B) as optimized operations. |