LCOV - code coverage report
Current view: top level - src/src/reference-problems - himmelblau.cpp (source / functions) Hit Total Coverage
Test: ecee3ec3a495b05c61f077aa7a236b7e00601437 Lines: 0 34 0.0 %
Date: 2021-11-04 22:49:09 Functions: 0 9 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : #include <memory>
       2             : #include <panoc-alm/reference-problems/himmelblau.hpp>
       3             : 
       4             : namespace pa {
       5             : namespace problems {
       6             : 
       7           0 : Problem himmelblau_problem() {
       8           0 :     auto sq = [](auto x) { return x * x; };
       9           0 :     Box C{vec(2), vec(2)};
      10           0 :     C.lowerbound << -1, -1;
      11           0 :     C.upperbound << 4, 1.8;
      12           0 :     return Problem{
      13             :         2,
      14             :         0,
      15           0 :         C,
      16           0 :         Box{},
      17           0 :         [sq](crvec x) {
      18           0 :             return sq(sq(x(0)) + x(1) - 11) + sq(x(0) + sq(x(1)) - 7);
      19             :         },
      20           0 :         [sq](crvec x, rvec g) {
      21           0 :             g(0) =
      22           0 :                 2 * (2 * x(0) * (sq(x(0)) + x(1) - 11) + x(0) + sq(x(1)) - 7);
      23           0 :             g(1) =
      24           0 :                 2 * (sq(x(0)) + 2 * x(1) * (x(0) + sq(x(1)) - 7) + x(1) - 11);
      25           0 :         },
      26           0 :         [](crvec , rvec ) {},
      27           0 :         [](crvec , crvec , rvec grad) { grad.setZero(); },
      28           0 :         [](crvec , unsigned, rvec grad_gi) { grad_gi.setZero(); },
      29           0 :         [sq](crvec x, crvec , crvec v, rvec Hv) {
      30           0 :             real_t H00 = 4 * (sq(x(0)) + x(1) - 11) + 8 * sq(x(0)) + 2;
      31           0 :             real_t H01 = 4 * x(0) + 4 * x(1);
      32           0 :             real_t H10 = 4 * x(0) + 4 * x(1);
      33           0 :             real_t H11 = 4 * (x(0) + sq(x(1)) - 7) + 8 * sq(x(1)) + 2;
      34           0 :             Hv(0) = H00 * v(0) + H01 * v(1);
      35           0 :             Hv(1) = H10 * v(0) + H11 * v(1);
      36           0 :         },
      37           0 :         [sq](crvec x, crvec , rmat H) {
      38           0 :             H(0, 0) = 4 * (sq(x(0)) + x(1) - 11) + 8 * sq(x(0)) + 2;
      39           0 :             H(0, 1) = 4 * x(0) + 4 * x(1);
      40           0 :             H(1, 0) = 4 * x(0) + 4 * x(1);
      41           0 :             H(1, 1) = 4 * (x(0) + sq(x(1)) - 7) + 8 * sq(x(1)) + 2;
      42           0 :         },
      43             :     };
      44           0 : }
      45             : 
      46             : } // namespace problems
      47             : } // namespace pa

Generated by: LCOV version 1.15