LCOV - code coverage report
Current view: top level - app/src/Opt - QuadraticGuessSolver.cpp (source / functions) Hit Total Coverage
Test: coverage.info Lines: 0 18 0.0 %
Date: 2023-08-17 16:45:52 Functions: 0 3 0.0 %

          Line data    Source code
       1             : #include "Opt/QuadraticGuessSolver.hpp"
       2             : 
       3             : #include <cmath>
       4             : #include <iostream>
       5             : 
       6             : using namespace std;
       7             : using namespace Opt;
       8             : 
       9             : typedef UnivariateSolver::Var Var;
      10             : 
      11           0 : QuadraticGuessSolver::QuadraticGuessSolver(
      12             :     SolverWithInitialSolutions &solver_,
      13             :     Var                         initialSolution_,
      14             :     Var                         alpha_,
      15             :     Var                         multAdjust_,
      16             :     Var                         margin_
      17           0 : ):
      18             :     solver(solver_),
      19             :     s(initialSolution_),
      20             :     alpha(alpha_),
      21             :     multAdjust(multAdjust_),
      22           0 :     margin(margin_) {}
      23             : 
      24           0 : void QuadraticGuessSolver::setStopCriteria(Var e) {
      25           0 :     epsilon = e;
      26           0 : }
      27             : 
      28           0 : Var QuadraticGuessSolver::solve(Problem prob) {
      29           0 :     Var p  = pow(10, margin);
      30           0 :     Var s1 = s * multAdjust;
      31           0 :     Var s2 = s * p;
      32           0 :     Var s3 = s / p;
      33           0 :     Var e  = fabs(s2 - s3) * epsilon;
      34           0 :     solver.clearInitialSolutions();
      35           0 :     solver.addInitialSolutions(s1, s2, s3);
      36           0 :     solver.setStopCriteria(e);
      37           0 :     Var x = solver.solve(prob);
      38           0 :     s     = (1.0 - alpha) * s + alpha * x;
      39           0 :     return x;
      40             : }

Generated by: LCOV version 1.14