From e45d6f298122efba75dbd7ab1a802abb094359f1 Mon Sep 17 00:00:00 2001 From: Oliver Sander <sander@igpm.rwth-aachen.de> Date: Fri, 12 Jul 2013 13:47:03 +0000 Subject: [PATCH] Use TargetSpace ctype for coordinates, instead of hard-coding 'double' [[Imported from SVN: r9304]] --- dune/gfe/targetspacertrsolver.cc | 8 ++++---- dune/gfe/targetspacertrsolver.hh | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/dune/gfe/targetspacertrsolver.cc b/dune/gfe/targetspacertrsolver.cc index bd50c876..2612f63f 100644 --- a/dune/gfe/targetspacertrsolver.cc +++ b/dune/gfe/targetspacertrsolver.cc @@ -48,7 +48,7 @@ setup(const AverageDistanceAssembler<TargetSpace>* assembler, template <class TargetSpace> void TargetSpaceRiemannianTRSolver<TargetSpace>::solve() { - MaxNormTrustRegion<blocksize> trustRegion(1, // we have only one block + MaxNormTrustRegion<blocksize,field_type> trustRegion(1, // we have only one block initialTrustRegionRadius_); // ///////////////////////////////////////////////////// @@ -110,8 +110,8 @@ void TargetSpaceRiemannianTRSolver<TargetSpace>::solve() newIterate = TargetSpace::exp(newIterate, corr[0]); /** \todo Don't always recompute oldEnergy */ - double oldEnergy = assembler_->value(x_); - double energy = assembler_->value(newIterate); + field_type oldEnergy = assembler_->value(x_); + field_type energy = assembler_->value(newIterate); // compute the model decrease // It is $ m(x) - m(x+s) = -<g,s> - 0.5 <s, Hs> @@ -119,7 +119,7 @@ void TargetSpaceRiemannianTRSolver<TargetSpace>::solve() CorrectionType tmp(corr.size()); tmp = 0; hesseMatrix.umv(corr, tmp); - double modelDecrease = (rhs*corr) - 0.5 * (corr*tmp); + field_type modelDecrease = (rhs*corr) - 0.5 * (corr*tmp); if (this->verbosity_ == NumProc::FULL) { std::cout << "Absolute model decrease: " << modelDecrease diff --git a/dune/gfe/targetspacertrsolver.hh b/dune/gfe/targetspacertrsolver.hh index 435b4035..2213cb15 100644 --- a/dune/gfe/targetspacertrsolver.hh +++ b/dune/gfe/targetspacertrsolver.hh @@ -18,7 +18,7 @@ class TargetSpaceRiemannianTRSolver const static int blocksize = TargetSpace::TangentVector::dimension; // Centralize the field type here - typedef double field_type; + typedef typename TargetSpace::ctype field_type; // Some types that I need // The types have the dynamic outer type because the dune-solvers solvers expect -- GitLab