Go to the documentation of this file.
6 #ifndef AbcDualRowSteepest_H
7 #define AbcDualRowSteepest_H
10 class CoinIndexedVector;
31 virtual double updateWeights(CoinIndexedVector &input, CoinIndexedVector &updatedColumn);
32 virtual double updateWeights1(CoinIndexedVector &input, CoinIndexedVector &updateColumn);
35 virtual void updateWeights2(CoinIndexedVector &input, CoinIndexedVector &updateColumn);
44 CoinIndexedVector &updateColumn,
101 inline int mode()
const
161 #undef DEVEX_TRY_NORM
162 #define DEVEX_TRY_NORM 1.0e-8
163 #define DEVEX_ADD_ONE 1.0
AbcSimplex * model() const
Model.
virtual bool looksOptimal() const
Returns true if would not find any row.
virtual double updateWeights(CoinIndexedVector &input, CoinIndexedVector &updatedColumn)
Updates weights and returns pivot alpha.
virtual double updateWeights1(CoinIndexedVector &input, CoinIndexedVector &updateColumn)
Does most of work for weights and returns pivot alpha.
virtual AbcDualRowPivot * clone(bool copyData=true) const
Clone.
AbcDualRowSteepest(int mode=3)
Default Constructor 0 is uninitialized, 1 full, 2 is partial uninitialized, 3 starts as 2 but may swi...
virtual void clearArrays()
Gets rid of all arrays.
Dual Row Pivot Steepest Edge Algorithm Class.
Persistence
enums for persistence
virtual void saveWeights(AbcSimplex *model, int mode)
Saves any weights round factorization as pivot rows may change Save model May also recompute infeasib...
virtual void updateWeightsOnly(CoinIndexedVector &input)
Persistence persistence_
Life of weights.
Dual Row Pivot Abstract Base Class.
int state_
Status 0) Normal -1) Needs initialization 1) Weights are stored by sequence number.
void fill(const AbcDualRowSteepest &rhs)
Fill most values.
CoinIndexedVector * infeasible_
square of infeasibility array (just for infeasible rows)
Persistence persistence() const
virtual void updatePrimalSolution(CoinIndexedVector &input, double theta)
Updates primal solution (and maybe list of candidates) Uses input vector which it deletes.
virtual void updatePrimalSolutionAndWeights(CoinIndexedVector &weightsVector, CoinIndexedVector &updateColumn, double theta)
CoinIndexedVector * infeasible() const
Infeasible vector.
virtual ~AbcDualRowSteepest()
Destructor.
int mode_
If 0 then we are using uninitialized weights, 1 then full, if 2 then uninitialized partial,...
CoinIndexedVector * weights() const
Weights vector.
virtual int pivotRow()
Returns pivot row, -1 if none.
double factorizationRatio_
Ratio of size of factorization to number of rows.
CoinIndexedVector * savedWeights_
save weight array (so we can use checkpoint)
CoinIndexedVector * weights_
weight array
AbcDualRowSteepest & operator=(const AbcDualRowSteepest &rhs)
Assignment operator.
AbcSimplex * model_
Pointer to model.
void setPersistence(Persistence life)
Set/ get persistence.
virtual void updateWeights2(CoinIndexedVector &input, CoinIndexedVector &updateColumn)
Actually updates weights.
virtual void recomputeInfeasibilities()
Recompute infeasibilities.