solver
SparseCholesky.hpp
Go to the documentation of this file.
1 
47 #pragma once
48 
49 #include <memory>
50 #include <Eigen/Sparse>
52 
53 namespace linalg {
54 
59  {
60  public:
61  SparseCholesky(){}
62  ~SparseCholesky(){}
63 
64  void analyzePattern(const Eigen::SparseMatrix<double>& mat, const solver::SolverSetting& stgs);
65  int factorize(const Eigen::SparseMatrix<double>& mat, const Eigen::Ref<const Eigen::VectorXd>& sign);
66  void solve(const Eigen::Ref<const Eigen::VectorXd>& b, double* x);
67  Eigen::VectorXd& solve(const Eigen::VectorXd& b);
68 
69  private:
70  inline const solver::SolverSetting& getSetting() const { return *setting_; }
71 
72  int n_;
73  double eps_, delta_;
74  Eigen::VectorXd D_, Y_, X_;
75  Eigen::SparseMatrix<double> L_;
76  Eigen::VectorXi Parent_, Pattern_, Flag_, Lnnz_;
77  std::shared_ptr<const solver::SolverSetting> setting_;
78 
79  };
80 
81 }
Definition: SparseCholesky.hpp:53
Class that provides access to all environment variables required by the solver.
Definition: SolverSetting.hpp:43
Class to perform an LDL factorization of a matrix.
Definition: SparseCholesky.hpp:58
ECOS - Embedded Conic Solver.