From e138bd8a10f88beb514cc4e0b11297b230282c2b Mon Sep 17 00:00:00 2001
From: Elias Pipping <elias.pipping@fu-berlin.de>
Date: Fri, 9 Sep 2011 17:44:45 +0200
Subject: [PATCH] Clean up assertions; Run multiple gradient steps

---
 src/bisection-example-new.cc | 28 +++++++++++++++-------------
 1 file changed, 15 insertions(+), 13 deletions(-)

diff --git a/src/bisection-example-new.cc b/src/bisection-example-new.cc
index 2215aea3..852df8c6 100644
--- a/src/bisection-example-new.cc
+++ b/src/bisection-example-new.cc
@@ -213,18 +213,17 @@ void testSampleFunction() {
   SampleFunctional::SmallVector c = b;
   c /= c.two_norm();
 
-  assert(J.directionalDerivative(b, c) == 2 * sqrt(5) + 2);
+  // assert(J.directionalDerivative(b,c) == 2*sqrt(5) + 2);
 
   SampleFunctional::SmallVector start = b;
   start *= 17;
-  SampleFunctional::SmallVector correction = J.minimise(start, 20);
-  assert(J(start + correction) <= J(start));
+  SampleFunctional::SmallVector correction;
 
-  start += correction;
-  correction = J.minimise(start, 20);
-
-  assert(std::abs(J(start + correction) + 0.254631) < 1e-6);
-  std::cout << "Arrived at J(...) = " << J(start + correction) << std::endl;
+  for (int i = 1; i <= 4; ++i) {
+    correction = J.minimise(start, 20);
+    start += correction;
+  }
+  std::cout << "Arrived at J(...) = " << J(start) << std::endl;
 }
 
 void testTrivialFunction() {
@@ -245,14 +244,17 @@ void testTrivialFunction() {
   SampleFunctional::SmallVector c = b;
   c /= c.two_norm();
 
-  assert(J.directionalDerivative(b, c) == 2 * sqrt(5));
+  // assert(J.directionalDerivative(b,c) == 2*sqrt(5));
 
   SampleFunctional::SmallVector start = b;
   start *= 17;
-  SampleFunctional::SmallVector correction = J.minimise(start, 20);
-  assert(J(start + correction) <= J(start));
-  assert(std::abs(J(start + correction) + 0.83333333) < 1e-8);
-  std::cout << "Arrived at J(...) = " << J(start + correction) << std::endl;
+  SampleFunctional::SmallVector correction;
+
+  for (int i = 1; i <= 5; ++i) {
+    correction = J.minimise(start, 20);
+    start += correction;
+  }
+  std::cout << "Arrived at J(...) = " << J(start) << std::endl;
 }
 
 int main() {
-- 
GitLab