Google OR-Tools v9.11
a fast and portable software suite for combinatorial optimization
Loading...
Searching...
No Matches
operations_research::glop::EtaFactorization Class Reference

#include <basis_representation.h>

Public Member Functions

 EtaFactorization ()
 
 EtaFactorization (const EtaFactorization &)=delete
 This type is neither copyable nor movable.
 
EtaFactorizationoperator= (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.
 

Detailed Description

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:

  • E.d = a (where a is usually the entering column).
  • y.E = c (where c is usually the objective row).

Definition at line 115 of file basis_representation.h.

Constructor & Destructor Documentation

◆ EtaFactorization() [1/2]

operations_research::glop::EtaFactorization::EtaFactorization ( )

EtaFactorization

Definition at line 145 of file basis_representation.cc.

◆ EtaFactorization() [2/2]

operations_research::glop::EtaFactorization::EtaFactorization ( const EtaFactorization & )
delete

This type is neither copyable nor movable.

◆ ~EtaFactorization()

operations_research::glop::EtaFactorization::~EtaFactorization ( )
virtual

Definition at line 147 of file basis_representation.cc.

Member Function Documentation

◆ Clear()

void operations_research::glop::EtaFactorization::Clear ( )

Deletes all eta matrices.

Definition at line 149 of file basis_representation.cc.

◆ LeftSolve()

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.

◆ operator=()

EtaFactorization & operations_research::glop::EtaFactorization::operator= ( const EtaFactorization & )
delete

◆ RightSolve()

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.

◆ SparseLeftSolve()

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.

◆ Update()

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.


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