solver
solver::LinSolver Class Reference

Class that provides functionality for handling solution of linear systems in optimization problems. More...

#include <LinSolver.hpp>

Collaboration diagram for solver::LinSolver:

Public Member Functions

void updateMatrix ()
 
void initializeMatrix ()
 
FactStatus numericFactorization ()
 
void initialize (Cone &cone, SolverSetting &stgs, SolverStorage &stg)
 
int solve (const Eigen::Ref< const Eigen::VectorXd > &permB, OptimizationVector &searchDir, bool is_initialization=false)
 
void matrixTransposeTimesVector (const Eigen::SparseMatrix< double > &A, const Eigen::Ref< const Eigen::VectorXd > &eig_x, Eigen::Ref< Eigen::VectorXd > eig_y, bool add=true, bool is_new=true)
 
int perm (int id)
 
int invPerm (int id)
 
Eigen::PermutationMatrix< Eigen::Dynamic, Eigen::Dynamic > & perm ()
 
Eigen::PermutationMatrix< Eigen::Dynamic, Eigen::Dynamic > & invPerm ()
 
const Eigen::PermutationMatrix< Eigen::Dynamic, Eigen::Dynamic > & perm () const
 
const Eigen::PermutationMatrix< Eigen::Dynamic, Eigen::Dynamic > & invPerm () const
 

Private Member Functions

ConegetCone ()
 
SolverStoragegetStorage ()
 
SolverSettinggetSetting ()
 
linalg::SparseCholeskygetCholesky ()
 
void buildProblem ()
 
void findPermutation ()
 
void resizeProblemData ()
 
void symbolicFactorization ()
 

Private Attributes

Conecone_
 
SolverStoragestorage_
 
SolverSettingsetting_
 
linalg::SparseCholesky cholesky_
 
ConicVector Gdx_
 
double static_regularization_
 
ExtendedVector sign_
 
ExtendedVector permSign_
 
Eigen::VectorXd permX_
 
Eigen::VectorXd Pe_
 
Eigen::VectorXd permdX_
 
Eigen::SparseMatrix< double > kkt_
 
Eigen::SparseMatrix< double > permKkt_
 
Eigen::PermutationMatrix< Eigen::Dynamic, Eigen::Dynamic > perm_
 
Eigen::PermutationMatrix< Eigen::Dynamic, Eigen::Dynamic > invPerm_
 
Eigen::PermutationMatrix< Eigen::Dynamic, Eigen::Dynamic > permK_
 

Detailed Description

Class that provides functionality for handling solution of linear systems in optimization problems.

Performs symbolic and numeric factorization of kkt matrix, find permutation of kkt matrix to induce the best possible sparsity pattern, builds and updates kkt matrix and its scalings as required.


The documentation for this class was generated from the following files: