6#ifndef ClpDualRowSteepest_H
7#define ClpDualRowSteepest_H
10class CoinIndexedVector;
32 CoinIndexedVector *spare,
33 CoinIndexedVector *spare2,
34 CoinIndexedVector *updatedColumn);
42 double &changeInObjective);
Dual Row Pivot Abstract Base Class.
ClpSimplex * model()
Returns model.
Dual Row Pivot Steepest Edge Algorithm Class.
ClpDualRowSteepest & operator=(const ClpDualRowSteepest &rhs)
Assignment operator.
virtual void maximumPivotsChanged()
Called when maximum pivots changes.
Persistence
enums for persistence
virtual double updateWeights(CoinIndexedVector *input, CoinIndexedVector *spare, CoinIndexedVector *spare2, CoinIndexedVector *updatedColumn)
Updates weights and returns pivot alpha.
void fill(const ClpDualRowSteepest &rhs)
Fill most values.
CoinIndexedVector * savedWeights()
Get saved weights.
void setPersistence(Persistence life)
Set/ get persistence.
ClpDualRowSteepest(const ClpDualRowSteepest &)
Copy constructor.
virtual int pivotRow()
Returns pivot row, -1 if none.
CoinIndexedVector * infeasible_
square of infeasibility array (just for infeasible rows)
Persistence persistence() const
virtual void updatePrimalSolution(CoinIndexedVector *input, double theta, double &changeInObjective)
Updates primal solution (and maybe list of candidates) Uses input vector which it deletes Computes ch...
int * dubiousWeights_
Dubious weights.
CoinIndexedVector * savedWeights_
save weight array (so we can use checkpoint)
Persistence persistence_
Life of weights.
double * weights_
weight array
virtual ~ClpDualRowSteepest()
Destructor.
void passInSavedWeights(const CoinIndexedVector *saved)
Pass in saved weights.
ClpDualRowSteepest(int mode=3)
Default Constructor 0 is uninitialized, 1 full, 2 is partial uninitialized, 3 starts as 2 but may swi...
virtual void unrollWeights()
Gets rid of last update.
virtual ClpDualRowPivot * clone(bool copyData=true) const
Clone.
int mode_
If 0 then we are using uninitialized weights, 1 then full, if 2 then uninitialized partial,...
virtual void saveWeights(ClpSimplex *model, int mode)
Saves any weights round factorization as pivot rows may change Save model May also recompute infeasib...
void setMode(int mode)
Set mode.
virtual void clearArrays()
Gets rid of all arrays.
int state_
Status 0) Normal -1) Needs initialization 1) Weights are stored by sequence number.
CoinIndexedVector * alternateWeights_
alternate weight array (so we can unroll)
virtual bool looksOptimal() const
Returns true if would not find any row.
This solves LPs using the simplex method.