47 int numberPasses,
int options[6],
48 int extraInfo[6],
int independentOptions[3]);
120 return independentOptions_[0] != 0;
124 return (independentOptions_[1] & 1) == 0;
127 if (doDual_) independentOptions_[1] &= ~1;
128 else independentOptions_[1] |= 1;
132 return (independentOptions_[1] & 2) == 0;
135 if (doSingleton_) independentOptions_[1] &= ~2;
136 else independentOptions_[1] |= 2;
140 return (independentOptions_[1] & 4) == 0;
143 if (doDoubleton_) independentOptions_[1] &= ~4;
144 else independentOptions_[1] |= 4;
148 return (independentOptions_[1] & 8) == 0;
151 if (doTripleton_) independentOptions_[1] &= ~8;
152 else independentOptions_[1] |= 8;
156 return (independentOptions_[1] & 16) == 0;
159 if (doTighten_) independentOptions_[1] &= ~16;
160 else independentOptions_[1] |= 16;
164 return (independentOptions_[1] & 32) == 0;
167 if (doForcing_) independentOptions_[1] &= ~32;
168 else independentOptions_[1] |= 32;
172 return (independentOptions_[1] & 64) == 0;
175 if (doImpliedfree) independentOptions_[1] &= ~64;
176 else independentOptions_[1] |= 64;
180 return (independentOptions_[1] & 128) == 0;
183 if (doDupcol_) independentOptions_[1] &= ~128;
184 else independentOptions_[1] |= 128;
188 return (independentOptions_[1] & 256) == 0;
191 if (doDuprow_) independentOptions_[1] &= ~256;
192 else independentOptions_[1] |= 256;
196 return (independentOptions_[1] & 512) == 0;
199 if (doSingleton_) independentOptions_[1] &= ~512;
200 else independentOptions_[1] |= 512;
204 return (independentOptions_[1] & 1024) == 0;
207 if (doKill) independentOptions_[1] &= ~1024;
208 else independentOptions_[1] |= 1024;
212 return independentOptions_[1] & 0xffff;
215 independentOptions_[1] = (independentOptions_[1] & 0xffff0000) | (action & 0xffff);
219 return independentOptions_[2];
222 independentOptions_[2] = value;
247 int independentOptions_[3];
288 int cycle(
int in,
int out,
int wayIn,
int wayOut);
291 double lastObjective(
int back = 1)
const;
293 void setInfeasibility(
double value);
295 double lastInfeasibility(
int back = 1)
const;
297 void modifyObjective(
double value);
299 int lastIterationNumber(
int back = 1)
const;
301 void clearIterationNumbers();
304 oddState_ = - oddState_ - 1;
307 oddState_ = abs(oddState_);
317 return numberBadTimes_;
324 return numberReallyBadTimes_;
327 numberReallyBadTimes_++;
331 return numberTimesFlagged_;
334 numberTimesFlagged_ = 0;
337 numberTimesFlagged_++;
342 #define CLP_PROGRESS 5 351 #ifdef CLP_PROGRESS_WEIGHT 352 double objectiveWeight_[CLP_PROGRESS_WEIGHT];
355 double infeasibilityWeight_[CLP_PROGRESS_WEIGHT];
357 double realInfeasibilityWeight_[CLP_PROGRESS_WEIGHT];
363 double initialWeight_;
377 #ifdef CLP_PROGRESS_WEIGHT 378 int numberInfeasibilitiesWeight_[CLP_PROGRESS_WEIGHT];
381 int iterationNumberWeight_[CLP_PROGRESS_WEIGHT];
407 AbcSimplexProgress ( );
414 AbcSimplexProgress(
const AbcSimplexProgress &);
417 AbcSimplexProgress &
operator=(
const AbcSimplexProgress & rhs);
419 ~AbcSimplexProgress ( );
bool doSingletonColumn() const
Whether we want to do singleton column part of presolve.
This is a very simple class to guide algorithms.
bool doDupcol() const
Whether we want to do dupcol part of presolve.
void setDoSingletonColumn(bool doSingleton_)
bool doTripleton() const
Whether we want to do tripleton part of presolve.
bool doSingleton() const
Whether we want to do singleton part of presolve.
int getSpecialOption(int which) const
bool doImpliedFree() const
Whether we want to do impliedfree part of presolve.
ClpSimplex * model_
Pointer back to model so we can get information.
void setSpecialOption(int which, int value, int extraInfo=-1)
Special options - bits 0 4 - use crash (default allslack in dual, idiot in primal) 8 - all slack basi...
For saving extra information to see if looping.
void newOddState()
Odd state.
bool doDuprow() const
Whether we want to do duprow part of presolve.
void generateCpp(FILE *fp)
Generates code for above constructor.
void setDoTripleton(bool doTripleton_)
void setPresolveType(PresolveType amount, int extraInfo=-1)
ClpSolve()
Default constructor.
int numberReallyBadTimes_
Number really bad times.
int getPresolvePasses() const
int reallyBadTimes() const
number of really bad times
void incrementTimesFlagged()
void setDoForcing(bool doForcing_)
This solves LPs using the simplex method.
void setDoDupcol(bool doDupcol_)
bool doKillSmall() const
Whether we want to kill small substitutions.
void setDoTighten(bool doTighten_)
SolveType
enums for solve function
void setDoDual(bool doDual_)
void setDoSingleton(bool doSingleton_)
void setSolveType(SolveType method, int extraInfo=-1)
Solve types.
void incrementReallyBadTimes()
void setDoDuprow(bool doDuprow_)
int timesFlagged() const
number of times flagged
void setDoKillSmall(bool doKill)
int presolveActions() const
Set whole group.
ClpSolve & operator=(const ClpSolve &rhs)
Assignment operator. This copies the data.
bool infeasibleReturn() const
bool doDoubleton() const
Whether we want to do doubleton part of presolve.
void setInfeasibleReturn(bool trueFalse)
Say to return at once if infeasible, default is to solve.
int numberTimesFlagged_
Number of times no iterations as flagged.
bool doTighten() const
Whether we want to do tighten part of presolve.
int oddState_
If things are in an odd state.
int badTimes() const
number of bad times
void setDoImpliedFree(bool doImpliedfree)
void setPresolveActions(int action)
void setDoDoubleton(bool doDoubleton_)
bool doForcing() const
Whether we want to do forcing part of presolve.
PresolveType getPresolveType()
bool doDual() const
Whether we want to do dual part of presolve.
int numberBadTimes_
Number of times it looked like loop.
void setSubstitution(int value)
int substitution() const
Largest column for substitution (normally 3)
int getExtraInfo(int which) const
Extra info for idiot (or sprint)