Google OR-Tools v9.11
a fast and portable software suite for combinatorial optimization
|
#include <basis_representation.h>
Public Member Functions | |
EtaFactorization () | |
EtaFactorization (const EtaFactorization &)=delete | |
This type is neither copyable nor movable. | |
EtaFactorization & | operator= (const EtaFactorization &)=delete |
virtual | ~EtaFactorization () |
void | Clear () |
Deletes all eta matrices. | |
void | Update (ColIndex entering_col, RowIndex leaving_variable_row, const ScatteredColumn &direction) |
void | LeftSolve (DenseRow *y) const |
Left solves all systems from right to left, i.e. y_i = y_{i+1}.(E_i)^{-1}. | |
void | SparseLeftSolve (DenseRow *y, ColIndexVector *pos) const |
void | RightSolve (DenseColumn *d) const |
Right solves all systems from left to right, i.e. E_i.d_{i+1} = d_i. | |
An eta factorization corresponds to the product of k eta matrices, i.e. E = E_0.E_1. ... .E_{k-1} It is used to solve two systems:
Definition at line 115 of file basis_representation.h.
operations_research::glop::EtaFactorization::EtaFactorization | ( | ) |
Definition at line 145 of file basis_representation.cc.
|
delete |
This type is neither copyable nor movable.
|
virtual |
Definition at line 147 of file basis_representation.cc.
void operations_research::glop::EtaFactorization::Clear | ( | ) |
Deletes all eta matrices.
Definition at line 149 of file basis_representation.cc.
void operations_research::glop::EtaFactorization::LeftSolve | ( | DenseRow * | y | ) | const |
Left solves all systems from right to left, i.e. y_i = y_{i+1}.(E_i)^{-1}.
Definition at line 160 of file basis_representation.cc.
|
delete |
void operations_research::glop::EtaFactorization::RightSolve | ( | DenseColumn * | d | ) | const |
Right solves all systems from left to right, i.e. E_i.d_{i+1} = d_i.
Definition at line 174 of file basis_representation.cc.
void operations_research::glop::EtaFactorization::SparseLeftSolve | ( | DenseRow * | y, |
ColIndexVector * | pos ) const |
Same as LeftSolve(), but 'pos' contains the non-zero positions of c. The order of the positions is not important, but there must be no duplicates. The values not in 'pos' are not used. If eta_col_ was not already in 'pos', it is added.
Definition at line 167 of file basis_representation.cc.
void operations_research::glop::EtaFactorization::Update | ( | ColIndex | entering_col, |
RowIndex | leaving_variable_row, | ||
const ScatteredColumn & | direction ) |
Updates the eta factorization, i.e. adds the new eta matrix defined by the leaving variable and the corresponding eta column.
Definition at line 151 of file basis_representation.cc.