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