commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sébastien Brisard (JIRA) <j...@apache.org>
Subject [jira] [Commented] (MATH-581) Support for iterative linear solvers
Date Mon, 08 Aug 2011 19:04:27 GMT

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

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

I like {{Observer}}, didn't know about them. I posted on the ML, hope others will like it
too.

bq. Nothing forces you to use both arguments!
Even I could have come with this (not too clean, you must admit) solution ;)

On immutability. I like this solution, but this is potentially very stringent if combined
with the {{Observer}} thing. Indeed, an evil use case would be
{code:java}
xx = solver.solve(a, b, x, true);
{code}
Let's imagine that the monitor holds a *reference* to e.g. {{x}}. Then if the monitor modifies
{{x}}, this can ruin the iterations. This means that at the begining of {{solve}}, a copy
of {{x}} and {{b}} must be made. That's no problem with these vectors, but it might be more
problematic with the {{RealLinearOperator}}: some kind of {{clone()}} method *must* be implemented.
Do you see that as a potential problem?

> 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, MATH-581-04.zip,
MATH-581-05.patch, MATH-581-05.patch, conjugate-gradient.zip, exceptions.patch, 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

       

Mime
View raw message