6 #ifndef AbcPrimalColumnSteepest_H 7 #define AbcPrimalColumnSteepest_H 97 inline int mode()
const 143 return ((reference_[i >> 5] >> (i & 31)) & 1) != 0;
147 unsigned int &value = reference_[i >> 5];
152 value &= ~(1 << bit);
178 double *savedWeights_;
180 unsigned int *reference_;
207 int savedPivotSequence_;
209 int savedSequenceOut_;
213 int sizeFactorization_;
void checkAccuracy(int sequence, double relativeTolerance, CoinIndexedVector *rowArray1)
Checks accuracy - just for debug.
virtual void updateWeights(CoinIndexedVector *input)
Updates weights - part 1 - also checks accuracy.
void djsAndDevex(CoinIndexedVector *updates, CoinIndexedVector *spareRow2, CoinIndexedVector *spareColumn1)
Update djs, weights for Devex using djs.
Persistence
enums for persistence
AbcPrimalColumnSteepest(int mode=3)
Default Constructor 0 is exact devex, 1 full steepest, 2 is partial exact devex 3 switches between 0 ...
AbcPrimalColumnSteepest & operator=(const AbcPrimalColumnSteepest &rhs)
Assignment operator.
virtual ~AbcPrimalColumnSteepest()
Destructor.
void setReference(int i, bool trueFalse)
Primal Column Pivot Abstract Base Class.
void justDjs(CoinIndexedVector *updates, CoinIndexedVector *spareColumn1)
Just update djs.
virtual void maximumPivotsChanged()
Called when maximum pivots changes.
void djsAndDevex2(CoinIndexedVector *updates, CoinIndexedVector *spareColumn1)
Update djs, weights for Devex using pivot row.
int partialPricing(CoinIndexedVector *updates, int numberWanted, int numberLook)
Update djs doing partial pricing (dantzig)
void initializeWeights()
Initialize weights.
virtual void saveWeights(AbcSimplex *model, int mode)
Save weights - this may initialize weights as well mode is - 1) before factorization 2) after factori...
void setPersistence(Persistence life)
Set/ get persistence.
Primal Column Pivot Steepest Edge Algorithm Class.
Persistence persistence() const
virtual int pivotColumn(CoinPartitionedVector *updates, CoinPartitionedVector *spareRow2, CoinPartitionedVector *spareColumn1)
Returns pivot column, -1 if none.
void justDevex(CoinIndexedVector *updates, CoinIndexedVector *spareColumn1)
Update weights for Devex.
virtual bool looksOptimal() const
Returns true if would not find any column.
virtual void clearArrays()
Gets rid of all arrays.
int type()
Returns type (above 63 is extra information)
virtual AbcPrimalColumnPivot * clone(bool copyData=true) const
Clone.
AbcSimplex * model()
Returns model.
bool reference(int i) const
reference would be faster using AbcSimplex's status_, but I prefer to keep modularity.
virtual void unrollWeights()
Gets rid of last update.
int doSteepestWork(CoinPartitionedVector *updates, CoinPartitionedVector *spareRow2, CoinPartitionedVector *spareColumn1, int type)
Does steepest work type - 0 - just djs 1 - just steepest 2 - both using scaleFactor 3 - both using ex...