6 #ifndef AbcDualRowSteepest_H
7 #define AbcDualRowSteepest_H
10 class CoinIndexedVector;
33 virtual double updateWeights(CoinIndexedVector & input,CoinIndexedVector & updatedColumn);
34 virtual double updateWeights1(CoinIndexedVector & input,CoinIndexedVector & updateColumn);
37 virtual void updateWeights2(CoinIndexedVector & input,CoinIndexedVector & updateColumn);
46 CoinIndexedVector & updateColumn,
103 inline int mode()
const {
112 return persistence_ ;
116 {
return infeasible_;}
132 double factorizationRatio_;
145 CoinIndexedVector * weights_;
147 CoinIndexedVector * infeasible_;
149 CoinIndexedVector * savedWeights_;
154 #undef DEVEX_TRY_NORM
155 #define DEVEX_TRY_NORM 1.0e-8
156 #define DEVEX_ADD_ONE 1.0
virtual void updateWeights2(CoinIndexedVector &input, CoinIndexedVector &updateColumn)
Actually updates weights.
virtual ~AbcDualRowSteepest()
Destructor.
AbcSimplex * model() const
Model.
virtual void updatePrimalSolutionAndWeights(CoinIndexedVector &weightsVector, CoinIndexedVector &updateColumn, double theta)
virtual void updatePrimalSolution(CoinIndexedVector &input, double theta)
Updates primal solution (and maybe list of candidates) Uses input vector which it deletes...
Persistence
enums for persistence
virtual bool looksOptimal() const
Returns true if would not find any row.
Dual Row Pivot Steepest Edge Algorithm Class.
virtual int pivotRow()
Returns pivot row, -1 if none.
AbcDualRowSteepest & operator=(const AbcDualRowSteepest &rhs)
Assignment operator.
virtual void recomputeInfeasibilities()
Recompute infeasibilities.
void setPersistence(Persistence life)
Set/ get persistence.
Dual Row Pivot Abstract Base Class.
CoinIndexedVector * infeasible() const
Infeasible vector.
AbcSimplex * model_
Pointer to model.
virtual void clearArrays()
Gets rid of all arrays.
virtual AbcDualRowPivot * clone(bool copyData=true) const
Clone.
virtual double updateWeights(CoinIndexedVector &input, CoinIndexedVector &updatedColumn)
Updates weights and returns pivot alpha.
virtual void saveWeights(AbcSimplex *model, int mode)
Saves any weights round factorization as pivot rows may change Save model May also recompute infeasib...
Persistence persistence() const
AbcDualRowSteepest(int mode=3)
Default Constructor 0 is uninitialized, 1 full, 2 is partial uninitialized, 3 starts as 2 but may swi...
CoinIndexedVector * weights() const
Weights vector.
virtual void updateWeightsOnly(CoinIndexedVector &input)
virtual double updateWeights1(CoinIndexedVector &input, CoinIndexedVector &updateColumn)
Does most of work for weights and returns pivot alpha.
void fill(const AbcDualRowSteepest &rhs)
Fill most values.