From fbcebeb1c0044d6c3ea5b5c4bfc0c53e0778baaf Mon Sep 17 00:00:00 2001 From: Elias Pipping <elias.pipping@fu-berlin.de> Date: Fri, 2 Oct 2015 12:34:10 +0200 Subject: [PATCH] LoopSolver: Restore precision --- dune/solvers/solvers/loopsolver.cc | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/dune/solvers/solvers/loopsolver.cc b/dune/solvers/solvers/loopsolver.cc index 96ab9c1a..59e696c3 100644 --- a/dune/solvers/solvers/loopsolver.cc +++ b/dune/solvers/solvers/loopsolver.cc @@ -124,37 +124,39 @@ void ::LoopSolver<VectorType, BitVectorType>::solve() // Output if (this->verbosity_ == NumProc::FULL) { + std::streamsize const oldPrecision = std::cout.precision(); + std::ios_base::fmtflags const oldFormatFlags = std::cout.flags(); + std::cout << std::setw(5) << i; if (this->useRelativeError_) { - std::cout << std::setiosflags(std::ios::scientific); - std::cout << std::setw(15) << std::setprecision(7) << error; - std::cout << std::resetiosflags(std::ios::scientific); + std::cout << std::scientific + << std::setw(15) << std::setprecision(7) << error; } if (referenceSolution_) { - std::cout << std::setiosflags(std::ios::scientific); - std::cout << std::setw(15) << std::setprecision(7) << normOfError; - std::cout << std::resetiosflags(std::ios::scientific); + std::cout << std::scientific + << std::setw(15) << std::setprecision(7) << normOfError; } - std::cout << std::setiosflags(std::ios::scientific); - std::cout << std::setw(15) << std::setprecision(7) << normOfCorrection; - std::cout << std::resetiosflags(std::ios::scientific); + std::cout << std::scientific + << std::setw(15) << std::setprecision(7) << normOfCorrection; - std::cout << std::setiosflags(std::ios::fixed); - if (i==0) // We can't estimate the convergence rate at the first iteration + if (i == 0) + // We can't estimate the convergence rate at the first iteration std::cout << " "; else - std::cout << std::setw(9) << std::setprecision(5) << convRate; - std::cout << std::resetiosflags(std::ios::fixed); + std::cout << std::fixed + << std::setw(9) << std::setprecision(5) << convRate; + + std::cout << std::setprecision(oldPrecision) + << std::setiosflags(oldFormatFlags); std::cout << this->iterationStep_->getOutput(); std::cout << std::endl; } - } -- GitLab