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 Mon, 06 Jun 2011 07:57:47 GMT


Sébastien Brisard commented on MATH-581:

Thanks for this review.
I have implemented some exceptions to handle linear operators which should be symmetric, positive
definite, etc.
These propositions are a little more intrusive, as the english error messages are to be written
in org.apache.commons.math.exception.util.LocalizedFormats. I thought I would submit those
changes once we agreed on the general picture.

OK for getting rid of the interfaces, keeping only the abstract classes. It is not consistent
with AbstractRealMatrix implementing RealMatrix, though.

As for the package hierarchy? In which package should the whole lot go?

Finally, following Gilles, I think that yes, a RealMatrix should extend a RealLinearOperator,
the main difference being that one allows access to its coefficients. From this perspective,
there is a slight overlap between getDomainDimension()/getCodomainDimension() on the one hand,
and getColumnDimension()/getRowDimension() on the other hand (the rationale being that rows/columns
do not necessarily make sense in the more general case of a linear operator).

> 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:
> 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