diff --git a/src/test-gradient-parabola.cc b/src/test-gradient-parabola.cc index 03b396fdd27e8977a35c347d091bc2318cbaf50a..34bd13cc1f7146ce253b583223e59a7fb0538bf1 100644 --- a/src/test-gradient-parabola.cc +++ b/src/test-gradient-parabola.cc @@ -42,25 +42,38 @@ int main() { M[0][0] += 2; M[1][1] += 2; - Functional::SmallVector start = b; - start *= 17; - - Functional::SmallVector analytic_descent = b; - M.mmv(start, analytic_descent); - - Functional::SmallVector numerical_descent; - J.descentDirection(start, numerical_descent); - assert(two_distance<dim>(numerical_descent, analytic_descent) < 1e-10); - - double const ret1 = functionTester(J, start, 6); - assert(two_distance<dim>(start, solution) < 1e-6); - - // Something random - start[0] = 279; - start[1] = -96; - - double const ret2 = functionTester(J, start, 15); - assert(two_distance<dim>(start, solution) < 1e-6); - + double ret1; + { + Functional::SmallVector start = b; + start *= 17; + + Functional::SmallVector analytic_descent = b; + M.mmv(start, analytic_descent); + + Functional::SmallVector numerical_descent; + J.descentDirection(start, numerical_descent); + assert(two_distance<dim>(numerical_descent, analytic_descent) < 1e-10); + + ret1 = functionTester(J, start, 6); + assert(two_distance<dim>(start, solution) < 1e-6); + } + + double ret2; + { + // Something random + Functional::SmallVector start; + start[0] = 279; + start[1] = -96; + + Functional::SmallVector analytic_descent = b; + M.mmv(start, analytic_descent); + + Functional::SmallVector numerical_descent; + J.descentDirection(start, numerical_descent); + assert(two_distance<dim>(numerical_descent, analytic_descent) < 1e-10); + + ret2 = functionTester(J, start, 15); + assert(two_distance<dim>(start, solution) < 1e-6); + } assert(std::abs(ret1 - ret2) < 1e-11); }