Matrix class - represents an infinite (hopefully sparse) matrix.
any elements without a row are interpretted to be zero.
the pipe hold ('rowIdx, 'colIdx, 'val) where in principle
each row/col/value type is generic, with the constraint that ValT is a Ring[T]
In practice, RowT and ColT are going to be Strings, Integers or Longs in the usual case.
WARNING:
It is NOT OKAY to use the same instance of Matrix/Row/Col with DIFFERENT Monoids/Rings/Fields.
If you want to change, midstream, the Monoid on your ValT, you have to construct a new Matrix.
This is due to caching of internal computation graphs.
RowVector - handles matrices of row dimension one. It is the result of some of the matrix methods and has methods
that return ColVector and diagonal matrix
ColVector - handles matrices of col dimension one. It is the result of some of the matrix methods and has methods
that return RowVector and diagonal matrix
Matrix class - represents an infinite (hopefully sparse) matrix. any elements without a row are interpretted to be zero. the pipe hold ('rowIdx, 'colIdx, 'val) where in principle each row/col/value type is generic, with the constraint that ValT is a Ring[T] In practice, RowT and ColT are going to be Strings, Integers or Longs in the usual case.
WARNING: It is NOT OKAY to use the same instance of Matrix/Row/Col with DIFFERENT Monoids/Rings/Fields. If you want to change, midstream, the Monoid on your ValT, you have to construct a new Matrix. This is due to caching of internal computation graphs.
RowVector - handles matrices of row dimension one. It is the result of some of the matrix methods and has methods that return ColVector and diagonal matrix
ColVector - handles matrices of col dimension one. It is the result of some of the matrix methods and has methods that return RowVector and diagonal matrix