[ https://issues.apache.org/jira/browse/MATH581?page=com.atlassian.jira.plugin.system.issuetabpanels:commenttabpanel&focusedCommentId=13081129#comment13081129
]
Sébastien Brisard commented on MATH581:

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: MATH581
> URL: https://issues.apache.org/jira/browse/MATH581
> Project: Commons Math
> Issue Type: New Feature
> Affects Versions: 3.0, Nightly Builds
> Reporter: Sébastien Brisard
> Labels: iterative, linear, solver
> Attachments: MATH58101.patch, MATH58102.zip, MATH58103.zip, MATH58104.zip,
MATH58105.patch, MATH58105.patch, conjugategradient.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 commonsmath. The beauty of these
solvers is that they do not need direct access to the coefficients of the matrix, only matrixvector
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:
matrixvector 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
