Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef ClpSimplexPrimal_H
00012 #define ClpSimplexPrimal_H
00013
00014 #include "ClpSimplex.hpp"
00015
00023 class ClpSimplexPrimal : public ClpSimplex {
00024
00025 public:
00026
00115 int primal(int ifValuesPass = 0, int startFinishOptions = 0);
00117
00120
00121 void alwaysOptimal(bool onOff);
00122 bool alwaysOptimal() const;
00127 void exactOutgoing(bool onOff);
00128 bool exactOutgoing() const;
00130
00145 int whileIterating(int valuesOption);
00146
00165 int pivotResult(int ifValuesPass = 0);
00166
00167
00172 int updatePrimalsInPrimal(CoinIndexedVector * rowArray,
00173 double theta,
00174 double & objectiveChange,
00175 int valuesPass);
00184 void primalRow(CoinIndexedVector * rowArray,
00185 CoinIndexedVector * rhsArray,
00186 CoinIndexedVector * spareArray,
00187 int valuesPass);
00195 void primalColumn(CoinIndexedVector * updateArray,
00196 CoinIndexedVector * spareRow1,
00197 CoinIndexedVector * spareRow2,
00198 CoinIndexedVector * spareColumn1,
00199 CoinIndexedVector * spareColumn2);
00200
00203 int checkUnbounded(CoinIndexedVector * ray, CoinIndexedVector * spare,
00204 double changeCost);
00215 void statusOfProblemInPrimal(int & lastCleaned, int type,
00216 ClpSimplexProgress * progress,
00217 bool doFactorization,
00218 int ifValuesPass,
00219 ClpSimplex * saveModel = NULL);
00221 void perturb(int type);
00223 bool unPerturb();
00225 int unflag();
00231 int nextSuperBasic(int superBasicType, CoinIndexedVector * columnArray);
00232
00234 void primalRay(CoinIndexedVector * rowArray);
00236 void clearAll();
00237
00239 int lexSolve();
00240
00242 };
00243 #endif
00244