Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

ClpDualRowPivot Class Reference

Dual Row Pivot Abstract Base Class. More...

#include <ClpDualRowPivot.hpp>

Inheritance diagram for ClpDualRowPivot:

ClpDualRowDantzig ClpDualRowSteepest List of all members.

Public Methods

Algorithmic methods
virtual int pivotRow ()=0
 Returns pivot row, -1 if none.

virtual double updateWeights (CoinIndexedVector *input, CoinIndexedVector *spare, CoinIndexedVector *updatedColumn)=0
 Updates weights and returns pivot alpha.

virtual void updatePrimalSolution (CoinIndexedVector *input, double theta, double &changeInObjective)=0
 Updates primal solution (and maybe list of candidates) Uses input vector which it deletes Computes change in objective function Would be faster if we kept basic regions, but on other hand it means everything is always in sync.

virtual void saveWeights (ClpSimplex *model, int mode)
 Saves any weights round factorization as pivot rows may change Will be empty unless steepest edge (will save model) May also recompute infeasibility stuff 1) before factorization 2) after good factorization (if weights empty may initialize) 3) after something happened but no factorization (e.g.

virtual void checkAccuracy ()
 checks accuracy and may re-initialize (may be empty)

virtual void unrollWeights ()
 Gets rid of last update (may be empty).

virtual void clearArrays ()
 Gets rid of all arrays (may be empty).

virtual bool looksOptimal () const
 Returns true if would not find any row.

Constructors and destructors
 ClpDualRowPivot ()
 Default Constructor.

 ClpDualRowPivot (const ClpDualRowPivot &)
 Copy constructor.

ClpDualRowPivot & operator= (const ClpDualRowPivot &rhs)
 Assignment operator.

virtual ~ClpDualRowPivot ()
 Destructor.

virtual ClpDualRowPivot * clone (bool copyData=true) const=0
 Clone.

Other
ClpSimplexmodel ()
 Returns model.

int type ()
 Returns type (above 63 is extra information).


Protected Attributes

Protected member data
ClpSimplexmodel_
 Pointer to model.

int type_
 Type of row pivot algorithm.


Detailed Description

Dual Row Pivot Abstract Base Class.

Abstract Base Class for describing an interface to an algorithm to choose row pivot in dual simplex algorithm. For some algorithms e.g. Dantzig choice then some functions may be null.

Definition at line 19 of file ClpDualRowPivot.hpp.


Constructor & Destructor Documentation

ClpDualRowPivot::ClpDualRowPivot  
 

Default Constructor.

ClpDualRowPivot::ClpDualRowPivot const ClpDualRowPivot &   
 

Copy constructor.

virtual ClpDualRowPivot::~ClpDualRowPivot   [virtual]
 

Destructor.


Member Function Documentation

virtual int ClpDualRowPivot::pivotRow   [pure virtual]
 

Returns pivot row, -1 if none.

Implemented in ClpDualRowDantzig, and ClpDualRowSteepest.

virtual double ClpDualRowPivot::updateWeights CoinIndexedVector *    input,
CoinIndexedVector *    spare,
CoinIndexedVector *    updatedColumn
[pure virtual]
 

Updates weights and returns pivot alpha.

Implemented in ClpDualRowDantzig, and ClpDualRowSteepest.

virtual void ClpDualRowPivot::updatePrimalSolution CoinIndexedVector *    input,
double    theta,
double &    changeInObjective
[pure virtual]
 

Updates primal solution (and maybe list of candidates) Uses input vector which it deletes Computes change in objective function Would be faster if we kept basic regions, but on other hand it means everything is always in sync.

Implemented in ClpDualRowDantzig, and ClpDualRowSteepest.

virtual void ClpDualRowPivot::saveWeights ClpSimplex   model,
int    mode
[virtual]
 

Saves any weights round factorization as pivot rows may change Will be empty unless steepest edge (will save model) May also recompute infeasibility stuff 1) before factorization 2) after good factorization (if weights empty may initialize) 3) after something happened but no factorization (e.g.

check for infeasible) 4) as 2 but restore weights from previous snapshot 5) for strong branching - initialize , infeasibilities

Reimplemented in ClpDualRowSteepest.

virtual void ClpDualRowPivot::checkAccuracy   [virtual]
 

checks accuracy and may re-initialize (may be empty)

virtual void ClpDualRowPivot::unrollWeights   [virtual]
 

Gets rid of last update (may be empty).

Reimplemented in ClpDualRowSteepest.

virtual void ClpDualRowPivot::clearArrays   [virtual]
 

Gets rid of all arrays (may be empty).

Reimplemented in ClpDualRowSteepest.

virtual bool ClpDualRowPivot::looksOptimal   const [inline, virtual]
 

Returns true if would not find any row.

Reimplemented in ClpDualRowSteepest.

Definition at line 62 of file ClpDualRowPivot.hpp.

ClpDualRowPivot& ClpDualRowPivot::operator= const ClpDualRowPivot &    rhs
 

Assignment operator.

virtual ClpDualRowPivot* ClpDualRowPivot::clone bool    copyData = true const [pure virtual]
 

Clone.

Implemented in ClpDualRowDantzig, and ClpDualRowSteepest.

ClpSimplex* ClpDualRowPivot::model   [inline]
 

Returns model.

Definition at line 89 of file ClpDualRowPivot.hpp.

References model_.

int ClpDualRowPivot::type   [inline]
 

Returns type (above 63 is extra information).

Definition at line 93 of file ClpDualRowPivot.hpp.

References type_.


Member Data Documentation

ClpSimplex* ClpDualRowPivot::model_ [protected]
 

Pointer to model.

Definition at line 104 of file ClpDualRowPivot.hpp.

Referenced by model().

int ClpDualRowPivot::type_ [protected]
 

Type of row pivot algorithm.

Definition at line 106 of file ClpDualRowPivot.hpp.

Referenced by type().


The documentation for this class was generated from the following file:
Generated on Fri Aug 6 02:01:33 2004 by doxygen1.3-rc2