commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Apache Wiki <>
Subject [Commons Wiki] Update of "IterativeLinearSolvers" by SebastienBrisard
Date Tue, 19 Apr 2011 18:55:29 GMT
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.


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 matrix-vector 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
commons-math. 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


To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message