this issue has already been discussed on the forum. The idea is to implement the most popular linear iterative solvers (CG, SYMMLQ, etc...) in commons-math. The beauty of these solvers is that they do not need direct access to the coefficients of the matrix, only matrix-vector products are necessary. This is goof, as sometimes it is inetficient to store the coefficients of the matrix.
So basically, before implementing the iterative solvers, we need to define an interface slightly more general than a matrix, namely LinearOperator, with only one basic operation: matrix-vector product.
Here are a few interfaces and abstract classes that do that. Nothing fancy yet, I just wanted to have you advice on the implementation before I commit some solvers.
I thought these classes could go in a package org.apache.commons.math.linearoperator, but really, I haven't got a clue...