IterativeSolvers.jl icon indicating copy to clipboard operation
IterativeSolvers.jl copied to clipboard

Standardize iterators/reset! functionality, iterative "factorizations"

Open jagot opened this issue 4 years ago • 1 comments

Related to #166

I think it would be nice if the various solvers had the same interface to create iterators (which would reduce the amount of boilerplate in e.g. https://github.com/haampie/JacobiDavidson.jl to support different solvers).

If we could also have a reset! function to set new right-hand-sides and reinitialize all helper structures as well, that would be awesome.

Finally, I wonder if iterative "factorizations" are of interest? I.e. a struct that provides an implementation of ldiv! that under the hood uses one of the solvers from IterativeSolvers.jl. I started trying something out here, but I think it would possibly find a better home in IterativeSolvers.jl.

Ping @haampie

jagot avatar Jul 29 '20 09:07 jagot

I think it would be nice if the various solvers had the same interface to create iterators (which would reduce the amount of boilerplate in e.g. https://github.com/haampie/JacobiDavidson.jl to support different solvers).

I've had to introduce some of that boilerplate in my projects a couple of times now, specifically to create allocation-free versions of CG, LSQR and LSMR. With a little extra effort, I think I could adapt what I have to implement iterators for those three methods. I'd like to contribute but don't want to duplicate work if other people already have (better) implementations.

alanderos91 avatar Sep 05 '20 02:09 alanderos91