Const correctness in iterative solvers
The constructors of IterativeSolver
s took std::shared_ptr<LinearOperator<X,Y>>
and std::shared_ptr<ScalarProduct<X>>
as arguments, where the const version actually should suffice, since the corresponding methods are marked as const
.
This MR changes the arguments to std::shared_ptr<const LinearOperator<X,Y>>
and std::shared_ptr<const ScalarProduct<X>>
and adapts the SolverFactory
such that solvers can be created from a const operator.
This is a change of the interface but should not lead to problems due to the implicit conversion of std::shared_ptr<T>
to std::shared_ptr<const T>
.
Edited by Nils-Arne Dreier