6 #ifndef AbcPrimalColumnSteepest_H 
    7 #define AbcPrimalColumnSteepest_H 
   97   inline int mode()
 const 
  143     return ((
reference_[i >> 5] >> (i & 31)) & 1) != 0;
 
  152       value &= ~(1 << bit);
 
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 
int mode_
0 is exact devex, 1 full steepest, 2 is partial exact devex 3 switches between 0 and 2 depending on f...
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)
virtual bool looksOptimal() const 
Returns true if would not find any column. 
CoinIndexedVector * alternateWeights_
alternate weight array (so we can unroll) 
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. 
CoinIndexedVector * infeasible_
square of infeasibility array (just for infeasible columns) 
int partialPricing(CoinIndexedVector *updates, int numberWanted, int numberLook)
Update djs doing partial pricing (dantzig) 
void initializeWeights()
Initialize weights. 
double * savedWeights_
save weight array (so we can use checkpoint) 
virtual AbcPrimalColumnPivot * clone(bool copyData=true) const 
Clone. 
virtual void saveWeights(AbcSimplex *model, int mode)
Save weights - this may initialize weights as well mode is - 1) before factorization 2) after factori...
unsigned int * reference_
bool reference(int i) const 
reference would be faster using AbcSimplex's status_, but I prefer to keep modularity. 
void setPersistence(Persistence life)
Set/ get persistence. 
Primal Column Pivot Steepest Edge Algorithm Class. 
double * weights_
weight array 
int numberSwitched_
Number of times switched from partial dantzig to 0/2. 
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. 
Persistence persistence_
Life of weights. 
virtual void clearArrays()
Gets rid of all arrays. 
int state_
Status 0) Normal -1) Needs initialization 1) Weights are stored by sequence number. 
int type()
Returns type (above 63 is extra information) 
AbcSimplex * model()
Returns model. 
virtual void unrollWeights()
Gets rid of last update. 
Persistence persistence() const 
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...