diff --git a/src/test-gradient-horrible-logarithmic.cc b/src/test-gradient-horrible-logarithmic.cc index cd0f16b88840f6977ba857c8feb5fa2133bf3d60..5cbc16e1d402b78f919711504edd18a46a17271e 100644 --- a/src/test-gradient-horrible-logarithmic.cc +++ b/src/test-gradient-horrible-logarithmic.cc @@ -16,12 +16,14 @@ int main() { int const dim = 2; typedef Dune::SampleFunctional<dim> Functional; + typedef Functional::SmallMatrix SmallMatrix; + typedef Functional::SmallVector SmallVector; - Functional::SmallMatrix A; + SmallMatrix A; A[0][0] = 3; A[0][1] = A[1][0] = 1.5; A[1][1] = 4; - Functional::SmallVector b; + SmallVector b; b[0] = 1; b[1] = 2; @@ -29,7 +31,7 @@ int main() { auto phi = Dune::make_shared<Functional::NonlinearityType const>(f); Functional J(A, b, phi); - Functional::SmallVector start = b; + SmallVector start = b; start *= 17; double const ret1 = functionTester(J, start, 6); diff --git a/src/test-gradient-horrible.cc b/src/test-gradient-horrible.cc index b09a32ac9ddeef13affc430a4e87bb59a7d2aac5..2d3196878a3c94cef4e5c15adcc99a9368cc32e2 100644 --- a/src/test-gradient-horrible.cc +++ b/src/test-gradient-horrible.cc @@ -16,12 +16,14 @@ int main() { int const dim = 2; typedef Dune::SampleFunctional<dim> Functional; + typedef Functional::SmallMatrix SmallMatrix; + typedef Functional::SmallVector SmallVector; - Functional::SmallMatrix A; + SmallMatrix A; A[0][0] = 3; A[0][1] = A[1][0] = 1.5; A[1][1] = 4; - Functional::SmallVector b; + SmallVector b; b[0] = 1; b[1] = 2; @@ -29,7 +31,7 @@ int main() { auto phi = Dune::make_shared<Functional::NonlinearityType const>(f); Functional J(A, b, phi); - Functional::SmallVector start = b; + SmallVector start = b; start *= 17; double const ret1 = functionTester(J, start, 7); diff --git a/src/test-gradient-identity.cc b/src/test-gradient-identity.cc index 62c96e3bdb2ef550d12fc4d5c6ab540554efface..e0c372536b304ed46ee6ecec30729e58d134f653 100644 --- a/src/test-gradient-identity.cc +++ b/src/test-gradient-identity.cc @@ -16,12 +16,14 @@ int main() { int const dim = 2; typedef Dune::SampleFunctional<dim> Functional; + typedef Functional::SmallMatrix SmallMatrix; + typedef Functional::SmallVector SmallVector; - Functional::SmallMatrix A; + SmallMatrix A; A[0][0] = 3; A[0][1] = A[1][0] = 1.5; A[1][1] = 4; - Functional::SmallVector b; + SmallVector b; b[0] = 1; b[1] = 2; @@ -29,7 +31,7 @@ int main() { auto phi = Dune::make_shared<Functional::NonlinearityType const>(f); Functional J(A, b, phi); - Functional::SmallVector start = b; + SmallVector start = b; start *= 17; double const ret1 = functionTester(J, start, 6); diff --git a/src/test-gradient-parabola.cc b/src/test-gradient-parabola.cc index 34bd13cc1f7146ce253b583223e59a7fb0538bf1..a2ee2ee9544ca12dcc73a2a5d64a227a09c9f4c9 100644 --- a/src/test-gradient-parabola.cc +++ b/src/test-gradient-parabola.cc @@ -18,12 +18,14 @@ int main() { int const dim = 2; typedef Dune::SampleFunctional<dim> Functional; + typedef Functional::SmallMatrix SmallMatrix; + typedef Functional::SmallVector SmallVector; - Functional::SmallMatrix A; + SmallMatrix A; A[0][0] = 3; A[0][1] = A[1][0] = 1.5; A[1][1] = 4; - Functional::SmallVector b; + SmallVector b; b[0] = 1; b[1] = 2; @@ -34,23 +36,23 @@ int main() { auto phi = Dune::make_shared<Functional::NonlinearityType const>(f); Functional J(A, b, phi); - Functional::SmallVector solution; // Analytic solution + SmallVector solution; // Analytic solution solution[0] = 4.0 / 37.0; solution[1] = 34.0 / 111.0; - Functional::SmallMatrix M = A; + SmallMatrix M = A; M[0][0] += 2; M[1][1] += 2; double ret1; { - Functional::SmallVector start = b; + SmallVector start = b; start *= 17; - Functional::SmallVector analytic_descent = b; + SmallVector analytic_descent = b; M.mmv(start, analytic_descent); - Functional::SmallVector numerical_descent; + SmallVector numerical_descent; J.descentDirection(start, numerical_descent); assert(two_distance<dim>(numerical_descent, analytic_descent) < 1e-10); @@ -61,14 +63,14 @@ int main() { double ret2; { // Something random - Functional::SmallVector start; + SmallVector start; start[0] = 279; start[1] = -96; - Functional::SmallVector analytic_descent = b; + SmallVector analytic_descent = b; M.mmv(start, analytic_descent); - Functional::SmallVector numerical_descent; + SmallVector numerical_descent; J.descentDirection(start, numerical_descent); assert(two_distance<dim>(numerical_descent, analytic_descent) < 1e-10); diff --git a/src/test-gradient-sample-3d.cc b/src/test-gradient-sample-3d.cc index 005a948c4ca48201798d00dc5393a681a93fc2fa..a58ffc2ae52260350d3039a39a23ac16b8587ff2 100644 --- a/src/test-gradient-sample-3d.cc +++ b/src/test-gradient-sample-3d.cc @@ -16,14 +16,16 @@ int main() { int const dim = 3; typedef Dune::SampleFunctional<dim> Functional; + typedef Functional::SmallMatrix SmallMatrix; + typedef Functional::SmallVector SmallVector; - Functional::SmallMatrix A(0); + SmallMatrix A(0); A[0][0] = 3; A[0][1] = A[1][0] = 1.5; A[1][1] = 4; A[1][2] = A[2][1] = 1.5; A[2][2] = 5; - Functional::SmallVector b; + SmallVector b; b[0] = 1; b[1] = 2; b[2] = 3; @@ -32,7 +34,7 @@ int main() { auto phi = Dune::make_shared<Functional::NonlinearityType const>(f); Functional J(A, b, phi); - Functional::SmallVector start = b; + SmallVector start = b; start *= 17; double const ret1 = functionTester(J, start, 9); diff --git a/src/test-gradient-sample-nonsmooth.cc b/src/test-gradient-sample-nonsmooth.cc index f4d0c7c608be7756d124238e7d73a636c417bd18..b9a474a18400d1d72513b4f2cb6c6be3a992a493 100644 --- a/src/test-gradient-sample-nonsmooth.cc +++ b/src/test-gradient-sample-nonsmooth.cc @@ -17,12 +17,14 @@ int main() { int const dim = 2; typedef Dune::SampleFunctional<dim> Functional; + typedef Functional::SmallMatrix SmallMatrix; + typedef Functional::SmallVector SmallVector; - Functional::SmallMatrix A; + SmallMatrix A; A[0][0] = 3; A[0][1] = A[1][0] = 1.5; A[1][1] = 4; - Functional::SmallVector b; + SmallVector b; b[0] = 1; b[1] = 2; @@ -30,8 +32,8 @@ int main() { auto phi = Dune::make_shared<Functional::NonlinearityType const>(f); Functional J(A, b, phi); - Functional::SmallVector start; - Functional::SmallVector analytic_descent; + SmallVector start; + SmallVector analytic_descent; /* for x = b/|b|: @@ -50,7 +52,7 @@ int main() { start /= (b.two_norm() + 1e-12); // Make sure the norm is below 1; assert(start.two_norm() < 1); - Functional::SmallVector numerical_descent; + SmallVector numerical_descent; J.descentDirection(start, numerical_descent); analytic_descent[0] = -(7 / sqrt(5) - 1); analytic_descent[1] = -(11.5 / sqrt(5) - 2); @@ -63,7 +65,7 @@ int main() { start /= (b.two_norm() - 1e-12); // Make sure the norm is above 1; assert(start.two_norm() > 1); - Functional::SmallVector numerical_descent; + SmallVector numerical_descent; J.descentDirection(start, numerical_descent); analytic_descent[0] = -(8 / sqrt(5) - 1); analytic_descent[1] = -(13.5 / sqrt(5) - 2); diff --git a/src/test-gradient-sample-steep.cc b/src/test-gradient-sample-steep.cc index d6965f835797ece0d5d6f447901b5b23afe0c585..42b8a54ba3c1bf3bc410b18e72b8b8b67eabdd0d 100644 --- a/src/test-gradient-sample-steep.cc +++ b/src/test-gradient-sample-steep.cc @@ -16,12 +16,14 @@ int main() { int const dim = 2; typedef Dune::SampleFunctional<dim> Functional; + typedef Functional::SmallMatrix SmallMatrix; + typedef Functional::SmallVector SmallVector; - Functional::SmallMatrix A; + SmallMatrix A; A[0][0] = 1; A[0][1] = A[1][0] = 0; A[1][1] = 1; - Functional::SmallVector b; + SmallVector b; b[0] = 1; b[1] = 2; @@ -29,7 +31,7 @@ int main() { auto phi = Dune::make_shared<Functional::NonlinearityType const>(f); Functional J(A, b, phi); - Functional::SmallVector start; + SmallVector start; start[0] = 0; start[1] = 1; diff --git a/src/test-gradient-sample-steep2.cc b/src/test-gradient-sample-steep2.cc index 77bb5bd8bb1261ee0c0ba00f6b5e1cd0056000a0..894cb3abb5da3dac5864b3c9ecf35789ec1d63ee 100644 --- a/src/test-gradient-sample-steep2.cc +++ b/src/test-gradient-sample-steep2.cc @@ -16,12 +16,14 @@ int main() { int const dim = 2; typedef Dune::SampleFunctional<dim> Functional; + typedef Functional::SmallMatrix SmallMatrix; + typedef Functional::SmallVector SmallVector; - Functional::SmallMatrix A; + SmallMatrix A; A[0][0] = 1; A[0][1] = A[1][0] = 0; A[1][1] = 1; - Functional::SmallVector b; + SmallVector b; b[0] = 1; b[1] = 2.5; @@ -29,7 +31,7 @@ int main() { auto phi = Dune::make_shared<Functional::NonlinearityType const>(f); Functional J(A, b, phi); - Functional::SmallVector start; + SmallVector start; start[0] = 0; start[1] = 1; diff --git a/src/test-gradient-sample-verysteep.cc b/src/test-gradient-sample-verysteep.cc index 704a226910359269d7fc293491a71d5a08e77593..2552f6ecbd75c213c13dda4d70c422ebc71ef32f 100644 --- a/src/test-gradient-sample-verysteep.cc +++ b/src/test-gradient-sample-verysteep.cc @@ -16,12 +16,14 @@ int main() { int const dim = 2; typedef Dune::SampleFunctional<dim> Functional; + typedef Functional::SmallMatrix SmallMatrix; + typedef Functional::SmallVector SmallVector; - Functional::SmallMatrix A; + SmallMatrix A; A[0][0] = 1; A[0][1] = A[1][0] = 0; A[1][1] = 1; - Functional::SmallVector b; + SmallVector b; b[0] = 1; b[1] = 2.5; @@ -29,7 +31,7 @@ int main() { auto phi = Dune::make_shared<Functional::NonlinearityType const>(f); Functional J(A, b, phi); - Functional::SmallVector start; + SmallVector start; start[0] = 0; start[1] = 1; diff --git a/src/test-gradient-sample.cc b/src/test-gradient-sample.cc index 43f427816e8f543a61c51ad04214b79bac985e44..1bfd05c0fd72ea424050e495e361d883e084a4b5 100644 --- a/src/test-gradient-sample.cc +++ b/src/test-gradient-sample.cc @@ -18,12 +18,14 @@ int main() { int const dim = 2; typedef Dune::SampleFunctional<dim> Functional; + typedef Functional::SmallMatrix SmallMatrix; + typedef Functional::SmallVector SmallVector; - Functional::SmallMatrix A; + SmallMatrix A; A[0][0] = 3; A[0][1] = A[1][0] = 1.5; A[1][1] = 4; - Functional::SmallVector b; + SmallVector b; b[0] = 1; b[1] = 2; @@ -31,7 +33,7 @@ int main() { auto phi = Dune::make_shared<Functional::NonlinearityType const>(f); Functional J(A, b, phi); - Functional::SmallVector start = b; + SmallVector start = b; start *= 17; /* @@ -40,10 +42,10 @@ int main() { = 17*(6, 9.5) - (1, 2) + 2/sqrt(5) (1, 2) = (102 - 1 + 2/sqrt(5), 161.5 - 2 + 4/sqrt(5)) */ - Functional::SmallVector analytic_descent; + SmallVector analytic_descent; analytic_descent[0] = -(102 - 1 + 2 / sqrt(5)); analytic_descent[1] = -(161.5 - 2 + 4 / sqrt(5)); - Functional::SmallVector numerical_descent; + SmallVector numerical_descent; J.descentDirection(start, numerical_descent); assert(two_distance<dim>(analytic_descent, numerical_descent) < 1e-10); diff --git a/src/test-gradient-sample2.cc b/src/test-gradient-sample2.cc index 5c13a17d969544cfb0f97c7bdb8924356be16458..fd67e841e4bbb069c0e9bb35ef1966e4c42d8501 100644 --- a/src/test-gradient-sample2.cc +++ b/src/test-gradient-sample2.cc @@ -18,12 +18,14 @@ int main() { int const dim = 2; typedef Dune::SampleFunctional<dim> Functional; + typedef Functional::SmallMatrix SmallMatrix; + typedef Functional::SmallVector SmallVector; - Functional::SmallMatrix A; + SmallMatrix A; A[0][0] = 1; A[0][1] = A[1][0] = 0; A[1][1] = 1; - Functional::SmallVector b; + SmallVector b; b[0] = 1; b[1] = 1; @@ -31,7 +33,7 @@ int main() { auto phi = Dune::make_shared<Functional::NonlinearityType const>(f); Functional J(A, b, phi); - Functional::SmallVector start = b; + SmallVector start = b; double const ret1 = functionTester(J, start, 2); diff --git a/src/test-gradient-trivial.cc b/src/test-gradient-trivial.cc index 83d8c30cf14ac7c6a64a677f0e94b065eaeb15c9..892b10ac609fa1d8c1f2f35613fdbb0e03100e29 100644 --- a/src/test-gradient-trivial.cc +++ b/src/test-gradient-trivial.cc @@ -17,16 +17,18 @@ int main() { int const dim = 2; typedef Dune::SampleFunctional<dim> Functional; + typedef Functional::SmallMatrix SmallMatrix; + typedef Functional::SmallVector SmallVector; - Functional::SmallMatrix A; + SmallMatrix A; A[0][0] = 3; A[0][1] = A[1][0] = 1.5; A[1][1] = 4; - Functional::SmallVector b; + SmallVector b; b[0] = 1; b[1] = 2; - Functional::SmallVector solution; // Analytic solution + SmallVector solution; // Analytic solution solution[0] = 4.0 / 39.0; solution[1] = 6.0 / 13.0; @@ -34,12 +36,12 @@ int main() { auto phi = Dune::make_shared<Functional::NonlinearityType const>(f); Functional J(A, b, phi); - Functional::SmallVector start = b; + SmallVector start = b; start *= 17; - Functional::SmallVector analytic_descent = b; + SmallVector analytic_descent = b; A.mmv(start, analytic_descent); - Functional::SmallVector numerical_descent; + SmallVector numerical_descent; J.descentDirection(start, numerical_descent); assert(two_distance<dim>(numerical_descent, analytic_descent) < 1e-10);