solver
EqRoutine.hpp
Go to the documentation of this file.
1 
12 #pragma once
13 
14 #include <memory>
15 #include <Eigen/Sparse>
18 
19 namespace solver {
20 
25  class EqRoutine
26  {
27  public:
28  EqRoutine(){}
29  ~EqRoutine(){}
30 
31  void setEquilibration(const Cone& cone, const SolverSetting& stgs, SolverStorage& stg);
32  void unsetEquilibration(SolverStorage& stg);
33  void scaleVariables(OptimizationVector& opt);
34 
35  Vector& equilVec() { return equil_vec_; }
36  const Vector& equilVec() const { return equil_vec_; }
37 
38  private:
39  void ruizEquilibration(SolverStorage& stg);
40  void maxRowsCols(double *row_vec, double *col_vec, const Eigen::SparseMatrix<double>& mat);
41  void equilibrateRowsCols(const double *row_vec, const double *col_vec, Eigen::SparseMatrix<double>& mat);
42  void unequilibrateRowsCols(const double *row_vec, const double *col_vec, Eigen::SparseMatrix<double>& mat);
43 
44  private:
45  Vector equil_vec_;
46  std::shared_ptr<Cone> cone_;
47  std::shared_ptr<SolverSetting> stgs_;
48  };
49 
50 }
ECOS - Embedded Conic Solver.
Class that provides storage space for the optimization matrices, vectors and variables.
Definition: Cone.hpp:380
Helper class to define an optimization vector, including primal and dual variables, and variables to render the optimization problem homogeneous.
Definition: Cone.hpp:322
Helper class to work with optimization variables, lay down in normal order.
Definition: Cone.hpp:190
Class that provides access to all environment variables required by the solver.
Definition: SolverSetting.hpp:43
Definition: Cone.hpp:20
This class contains all information about the conic optimization problem, and provides functionality ...
Definition: Cone.hpp:87
ECOS - Embedded Conic Solver.
Definition: EqRoutine.hpp:25