Dear Wiki user,
You have subscribed to a wiki page or wiki category on "Commons Wiki" for change notification.
The "IterativeLinearSolvers" page has been changed by SebastienBrisard.
http://wiki.apache.org/commons/IterativeLinearSolvers

New page:
= IterativeLinearSolvers =
It is not uncommon to have to solve (large) linear systems for which it is both expensive
and unnecessary to explicitly define all coefficients of the underlying matrix.
In the present approach, the only requirement we make on the linear operator A is the ability
to compute the matrixvector product A.x (and possibly the product A'.x, where A' is the transpose
of A).There are quite a few iterative solvers around for addressing such problems: conjugate
gradient, SYMMLQ, to name but a few. This proposal aims at including these algorithms into
commonsmath. I have already implemented some of these algorithms, but I would like to have
a discussion on the interface. Here are a few ideas.
== The LinearMap interface ==
The linear operator A would be defined as implementing the interface LinearMap, which could
look like this
{{{
public interface LinearMap extends AnyMatrix{
public void apply(double[] x, double[] y);
public void apply(RealVector x, RealVector y);
}
}}}
=== Comments ===
Since it extends AnyMatrix, a LinearMap must implement getColumnDimension() and getRowDimension().
There might be a conflict in terminology, since the whole point in LinearMap is to forget
about the underlying matrix, and to focus on the linear operator. Maybe it would be better
to define radically different functions, for example
{{{
getDomainDimension()
}}}
{{{
getCodomainDimension()
}}}

To unsubscribe, email: devunsubscribe@commons.apache.org
For additional commands, email: devhelp@commons.apache.org
