commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sébastien Brisard (JIRA) <>
Subject [jira] [Commented] (MATH-581) Support for iterative linear solvers
Date Thu, 23 Jun 2011 02:50:49 GMT


Sébastien Brisard commented on MATH-581:

As a follow-up, please find attached patch #01, which accounts (I think) for your comments.
This patch contains
  - {{LinearOperator}}
  - {{RealLinearOperator}}
  - {{InvertibleRealLinearOperator}}
  - {{NonSelfAdjointLinearOperatorException}}
  - {{NonPositiveDefiniteLinearOperatorException}}

As soon as it will be validated, I'll be glad to contribute some real stuff, namely
  - {{IterativeSolver}}
  - {{PreconditionedIterativeSolver}}
  - {{IterativeSolverMonitor}}
  - {{JacobiPreconditioner}}
  - {{ConjugateGradient}}
  - ...

For testing purposes, it would be convenient indeed to have {{RealMatrix}} derive from {{RealLinearOperator}},
hence making it an abstract class instead of an interface. If the submitted patch is accepted,
maybe this issue should be closed, and a new issue regarding this specific modification be
opened. Once this in turn is done, maybe I can open a new issue and commit a new patch with
the iterative solvers themselves (including Unit tests, which are based on small, tractable

> Support for iterative linear solvers
> ------------------------------------
>                 Key: MATH-581
>                 URL:
>             Project: Commons Math
>          Issue Type: New Feature
>    Affects Versions: 3.0, Nightly Builds
>            Reporter: Sébastien Brisard
>              Labels: iterative, linear, solver
>         Attachments: MATH-581-01.patch,
> Dear all,
> 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...
> Best regards,
> Sebastien

This message is automatically generated by JIRA.
For more information on JIRA, see:


View raw message