From 95a38681fa193e3d66b2c77f9677a06b91993567 Mon Sep 17 00:00:00 2001
From: Elias Pipping <elias.pipping@fu-berlin.de>
Date: Wed, 12 Oct 2011 16:11:53 +0200
Subject: [PATCH] Return differences

---
 src/duneminimise.cc | 3 +--
 src/foo.m           | 4 ++--
 2 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/src/duneminimise.cc b/src/duneminimise.cc
index 6e492fab..e0b19bbf 100644
--- a/src/duneminimise.cc
+++ b/src/duneminimise.cc
@@ -37,10 +37,9 @@ DEFUN_DLD(duneminimise, args, nargout, "the help string") {
 
   SampleFunctional::SmallVector correction;
   Dune::minimise(J, start, correction);
-  start += correction;
 
   ColumnVector ret(dim);
-  Dune::duneToOctave<dim>(start, ret);
+  Dune::duneToOctave<dim>(correction, ret);
 
   return octave_value(ret);
 }
diff --git a/src/foo.m b/src/foo.m
index f23ed2e6..6abab325 100644
--- a/src/foo.m
+++ b/src/foo.m
@@ -24,12 +24,12 @@ oldvec = [279; 0];
 olddiff = [ 0; 0];
 
 for i=1:10
-  newvec=duneminimise(oldvec);
+  newdiff=duneminimise(oldvec);
+  newvec = oldvec + newdiff;
   line([oldvec(1) newvec(1)], ...
        [oldvec(2) newvec(2)], ...
        [duneevaluate(oldvec) duneevaluate(newvec)], ...
        'color', 'r');
-  newdiff = newvec - oldvec;
   printf("Norm of step: %f\n", norm(newdiff));
   if (i != 1)
     printf("Angle between steps: %f degrees\n", acos( dot(olddiff,newdiff) / (norm(olddiff) * norm(newdiff)) ) / pi * 180);
-- 
GitLab