Loading test/gdcpp.cpp +9 −26 Original line number Original line Diff line number Diff line Loading @@ -44,7 +44,7 @@ TEST_CASE("gradient_descent") { { GradientDescent<float, GradientDescent<float, Paraboloid<float>, Paraboloid<float>, ConstantStepSize<float, Paraboloid<float>>, ConstantStepSize<float>, NoCallback<float>, NoCallback<float>, ForwardDifferences<float, Paraboloid<float>>> optimizer; ForwardDifferences<float, Paraboloid<float>>> optimizer; optimizer.setMaxIterations(100); optimizer.setMaxIterations(100); Loading @@ -62,7 +62,7 @@ TEST_CASE("gradient_descent") { { GradientDescent<float, GradientDescent<float, Paraboloid<float>, Paraboloid<float>, ConstantStepSize<float, Paraboloid<float>>, ConstantStepSize<float>, NoCallback<float>, NoCallback<float>, BackwardDifferences<float, Paraboloid<float>>> optimizer; BackwardDifferences<float, Paraboloid<float>>> optimizer; optimizer.setMaxIterations(100); optimizer.setMaxIterations(100); Loading @@ -80,7 +80,7 @@ TEST_CASE("gradient_descent") { { GradientDescent<float, GradientDescent<float, Paraboloid<float>, Paraboloid<float>, ConstantStepSize<float, Paraboloid<float>>, ConstantStepSize<float>, NoCallback<float>, NoCallback<float>, CentralDifferences<float, Paraboloid<float>>> optimizer; CentralDifferences<float, Paraboloid<float>>> optimizer; optimizer.setMaxIterations(100); optimizer.setMaxIterations(100); Loading @@ -98,7 +98,7 @@ TEST_CASE("gradient_descent") { { GradientDescent<float, GradientDescent<float, Paraboloid<float>, Paraboloid<float>, ConstantStepSize<float, Paraboloid<float>>> optimizer; ConstantStepSize<float>> optimizer; optimizer.setMaxIterations(100); optimizer.setMaxIterations(100); Vector xval(2); Vector xval(2); Loading @@ -110,28 +110,11 @@ TEST_CASE("gradient_descent") REQUIRE_MATRIX_APPROX(xvalExp, result.xval, eps); REQUIRE_MATRIX_APPROX(xvalExp, result.xval, eps); } } SECTION("limited change step") SECTION("Barzilai-Borwein step") { { GradientDescent<float, GradientDescent<float, Paraboloid<float>, Paraboloid<float>, LimitedChangeStep<float, Paraboloid<float>>> optimizer; BarzilaiBorweinStep<float>> optimizer; optimizer.setMaxIterations(100); // optimizer.setVerbose(true); Vector xval(2); xval << 2, 2; Vector xvalExp(2); xvalExp << 0, 0; auto result = optimizer.minimize(xval); REQUIRE_MATRIX_APPROX(xvalExp, result.xval, eps); } SECTION("barzilai borwein step") { GradientDescent<float, Paraboloid<float>, BarzilaiBorweinStep<float, Paraboloid<float>>> optimizer; optimizer.setMaxIterations(100); optimizer.setMaxIterations(100); Vector xval(2); Vector xval(2); Loading @@ -147,7 +130,7 @@ TEST_CASE("gradient_descent") { { GradientDescent<float, GradientDescent<float, Paraboloid<float>, Paraboloid<float>, WolfeLineSearch<float, Paraboloid<float>>> optimizer; WolfeBacktracking<float>> optimizer; optimizer.setMaxIterations(100); optimizer.setMaxIterations(100); Vector xval(2); Vector xval(2); Loading @@ -163,7 +146,7 @@ TEST_CASE("gradient_descent") SECTION("optimize Rosenbrock") SECTION("optimize Rosenbrock") { { GradientDescent<float, Rosenbrock<float>, GradientDescent<float, Rosenbrock<float>, WolfeLineSearch<float, Rosenbrock<float>>> optimizer; WolfeBacktracking<float>> optimizer; optimizer.setMaxIterations(3000); optimizer.setMaxIterations(3000); optimizer.setMomentum(0.9); optimizer.setMomentum(0.9); Vector xval(2); Vector xval(2); Loading Loading
test/gdcpp.cpp +9 −26 Original line number Original line Diff line number Diff line Loading @@ -44,7 +44,7 @@ TEST_CASE("gradient_descent") { { GradientDescent<float, GradientDescent<float, Paraboloid<float>, Paraboloid<float>, ConstantStepSize<float, Paraboloid<float>>, ConstantStepSize<float>, NoCallback<float>, NoCallback<float>, ForwardDifferences<float, Paraboloid<float>>> optimizer; ForwardDifferences<float, Paraboloid<float>>> optimizer; optimizer.setMaxIterations(100); optimizer.setMaxIterations(100); Loading @@ -62,7 +62,7 @@ TEST_CASE("gradient_descent") { { GradientDescent<float, GradientDescent<float, Paraboloid<float>, Paraboloid<float>, ConstantStepSize<float, Paraboloid<float>>, ConstantStepSize<float>, NoCallback<float>, NoCallback<float>, BackwardDifferences<float, Paraboloid<float>>> optimizer; BackwardDifferences<float, Paraboloid<float>>> optimizer; optimizer.setMaxIterations(100); optimizer.setMaxIterations(100); Loading @@ -80,7 +80,7 @@ TEST_CASE("gradient_descent") { { GradientDescent<float, GradientDescent<float, Paraboloid<float>, Paraboloid<float>, ConstantStepSize<float, Paraboloid<float>>, ConstantStepSize<float>, NoCallback<float>, NoCallback<float>, CentralDifferences<float, Paraboloid<float>>> optimizer; CentralDifferences<float, Paraboloid<float>>> optimizer; optimizer.setMaxIterations(100); optimizer.setMaxIterations(100); Loading @@ -98,7 +98,7 @@ TEST_CASE("gradient_descent") { { GradientDescent<float, GradientDescent<float, Paraboloid<float>, Paraboloid<float>, ConstantStepSize<float, Paraboloid<float>>> optimizer; ConstantStepSize<float>> optimizer; optimizer.setMaxIterations(100); optimizer.setMaxIterations(100); Vector xval(2); Vector xval(2); Loading @@ -110,28 +110,11 @@ TEST_CASE("gradient_descent") REQUIRE_MATRIX_APPROX(xvalExp, result.xval, eps); REQUIRE_MATRIX_APPROX(xvalExp, result.xval, eps); } } SECTION("limited change step") SECTION("Barzilai-Borwein step") { { GradientDescent<float, GradientDescent<float, Paraboloid<float>, Paraboloid<float>, LimitedChangeStep<float, Paraboloid<float>>> optimizer; BarzilaiBorweinStep<float>> optimizer; optimizer.setMaxIterations(100); // optimizer.setVerbose(true); Vector xval(2); xval << 2, 2; Vector xvalExp(2); xvalExp << 0, 0; auto result = optimizer.minimize(xval); REQUIRE_MATRIX_APPROX(xvalExp, result.xval, eps); } SECTION("barzilai borwein step") { GradientDescent<float, Paraboloid<float>, BarzilaiBorweinStep<float, Paraboloid<float>>> optimizer; optimizer.setMaxIterations(100); optimizer.setMaxIterations(100); Vector xval(2); Vector xval(2); Loading @@ -147,7 +130,7 @@ TEST_CASE("gradient_descent") { { GradientDescent<float, GradientDescent<float, Paraboloid<float>, Paraboloid<float>, WolfeLineSearch<float, Paraboloid<float>>> optimizer; WolfeBacktracking<float>> optimizer; optimizer.setMaxIterations(100); optimizer.setMaxIterations(100); Vector xval(2); Vector xval(2); Loading @@ -163,7 +146,7 @@ TEST_CASE("gradient_descent") SECTION("optimize Rosenbrock") SECTION("optimize Rosenbrock") { { GradientDescent<float, Rosenbrock<float>, GradientDescent<float, Rosenbrock<float>, WolfeLineSearch<float, Rosenbrock<float>>> optimizer; WolfeBacktracking<float>> optimizer; optimizer.setMaxIterations(3000); optimizer.setMaxIterations(3000); optimizer.setMomentum(0.9); optimizer.setMomentum(0.9); Vector xval(2); Vector xval(2); Loading