From a3d234b842dccc1523a31cf82ee883019e76e455 Mon Sep 17 00:00:00 2001 From: Christian Engwer <christi@dune-project.org> Date: Fri, 23 Sep 2011 21:14:45 +0000 Subject: [PATCH] [solvers] remeber default reduction when apply is called with an explicit reduction [[Imported from SVN: r1498]] --- dune/istl/solvers.hh | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/dune/istl/solvers.hh b/dune/istl/solvers.hh index 17388ec05..8c8981594 100644 --- a/dune/istl/solvers.hh +++ b/dune/istl/solvers.hh @@ -326,8 +326,9 @@ namespace Dune { //! \copydoc InverseOperator::apply(X&,Y&,double,InverseOperatorResult&) virtual void apply (X& x, X& b, double reduction, InverseOperatorResult& res) { - _reduction = reduction; + std::swap(_reduction,reduction); (*this).apply(x,b,res); + std::swap(_reduction,reduction); } private: @@ -456,8 +457,9 @@ namespace Dune { */ virtual void apply (X& x, X& b, double reduction, InverseOperatorResult& res) { - _reduction = reduction; + std::swap(_reduction,reduction); (*this).apply(x,b,res); + std::swap(_reduction,reduction); } private: @@ -620,8 +622,9 @@ namespace Dune { virtual void apply (X& x, X& b, double reduction, InverseOperatorResult& res) { - _reduction = reduction; + std::swap(_reduction,reduction); (*this).apply(x,b,res); + std::swap(_reduction,reduction); } private: @@ -880,8 +883,9 @@ namespace Dune { */ virtual void apply (X& x, X& b, double reduction, InverseOperatorResult& res) { - _reduction = reduction; + std::swap(_reduction,reduction); (*this).apply(x,b,res); + std::swap(_reduction,reduction); } private: @@ -1128,8 +1132,9 @@ namespace Dune { */ virtual void apply (X& x, X& b, double reduction, InverseOperatorResult& res) { - _reduction = reduction; + std::swap(_reduction,reduction); (*this).apply(x,b,res); + std::swap(_reduction,reduction); } private: -- GitLab