[ 
https://issues.apache.org/jira/browse/MATH-581?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sébastien Brisard updated MATH-581:
-----------------------------------

    Attachment: MATH-581-02.zip

A new version, accounting (I hope) for your comments. For the problem regarding 
exceptions, all vectors are actually stored as {{RealVector}}, and a 
*reference* is returned by {{getOffendingVector}}. In case the exception was 
raised by a {{double[]}}, then an {{ArrayRealVector}} holding a shallow copy of 
the {{double[]}} is returned, so that {{getOffendingVector()}} consistently 
returns a reference to the object concerned.

I'm still not completely happy with those clases, I'm seriously considering 
removing the methods
{{RealLinearOperator.operate(double[], double[])}}, which I had put in for 
performance reasons (I wanted to avoid array creations as much as possible). 
Some crude monitoring on fairly large vector spaces (n = 786432) shows that the 
GC does its work very well indeed, so this method is no longer necessary, I 
think. Besides, such a method signature departs slightly from the Commons-math 
approach, as far as I understand. What are your views on 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, 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


Reply via email to