You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Sébastien Brisard (JIRA)" <ji...@apache.org> on 2011/07/12 05:47:00 UTC

[jira] [Commented] (MATH-581) Support for iterative linear solvers

    [ https://issues.apache.org/jira/browse/MATH-581?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13063695#comment-13063695 ] 

Sébastien Brisard commented on MATH-581:
----------------------------------------

I've had afterthoughts. I think ultimately, we will have {{AbstractRealMatrix}} inherit from {{RealLinearOperator}}, right?
Initially, I wanted to mark the difference between a _linear operator_ and a _matrix_, so I named {{getDomainDimension}} and {{getCodomainDimension}} the methods returning respectively the number of columns and the number of rows of the underlying matrix. I think if we want {{AbstractRealMatrix}} and {{RealLinearOperator}} to blend nicely, I should rename these methods according to the naming convention of the existing {{AbstractRealMatrix}}. Otherwise, the constructors would have different signatures!
{noformat}RealLinearOperator(dimDomain, dimCodomain){noformat}
(It would be unlogical to have the codomain appear before the domain). Since {{dimDomain == columnDimension}} and {{dimCodomain == rowDimension}}, this would translate into
{noformat}RealLinearOperator(columnDimension, rowDimension){noformat}
as opposed to
{noformat}AbstractRealMatrix(rowDimension, columnDimension){noformat}
which is a very dangerous inconsistency. MATH-581-04.zip corrects this.

> Support for iterative linear solvers
> ------------------------------------
>
>                 Key: MATH-581
>                 URL: https://issues.apache.org/jira/browse/MATH-581
>             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, MATH-581-02.zip, MATH-581-03.zip, linearoperator.zip
>
>
> 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: http://www.atlassian.com/software/jira