Clp trunk
|
This is a very simple class to guide algorithms. More...
#include <ClpSolve.hpp>
Public Types | |
enum | SolveType { useDual = 0, usePrimal, usePrimalorSprint, useBarrier, useBarrierNoCross, automatic, notImplemented } |
enums for solve function More... | |
enum | PresolveType { presolveOn = 0, presolveOff, presolveNumber, presolveNumberCost } |
Public Member Functions | |
Constructors and destructor and copy | |
ClpSolve () | |
Default constructor. | |
ClpSolve (SolveType method, PresolveType presolveType, int numberPasses, int options[6], int extraInfo[6], int independentOptions[3]) | |
Constructor when you really know what you are doing. | |
void | generateCpp (FILE *fp) |
Generates code for above constructor. | |
ClpSolve (const ClpSolve &) | |
Copy constructor. | |
ClpSolve & | operator= (const ClpSolve &rhs) |
Assignment operator. This copies the data. | |
~ClpSolve () | |
Destructor. | |
Functions most useful to user | |
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 basis in primal 2 16 - switch off interrupt handling 3 32 - do not try and make plus minus one matrix 64 - do not use sprint even if problem looks good. | |
int | getSpecialOption (int which) const |
void | setSolveType (SolveType method, int extraInfo=-1) |
Solve types. | |
SolveType | getSolveType () |
void | setPresolveType (PresolveType amount, int extraInfo=-1) |
PresolveType | getPresolveType () |
int | getPresolvePasses () const |
int | getExtraInfo (int which) const |
Extra info for idiot (or sprint) | |
void | setInfeasibleReturn (bool trueFalse) |
Say to return at once if infeasible, default is to solve. | |
bool | infeasibleReturn () const |
bool | doDual () const |
Whether we want to do dual part of presolve. | |
void | setDoDual (bool doDual_) |
bool | doSingleton () const |
Whether we want to do singleton part of presolve. | |
void | setDoSingleton (bool doSingleton_) |
bool | doDoubleton () const |
Whether we want to do doubleton part of presolve. | |
void | setDoDoubleton (bool doDoubleton_) |
bool | doTripleton () const |
Whether we want to do tripleton part of presolve. | |
void | setDoTripleton (bool doTripleton_) |
bool | doTighten () const |
Whether we want to do tighten part of presolve. | |
void | setDoTighten (bool doTighten_) |
bool | doForcing () const |
Whether we want to do forcing part of presolve. | |
void | setDoForcing (bool doForcing_) |
bool | doImpliedFree () const |
Whether we want to do impliedfree part of presolve. | |
void | setDoImpliedFree (bool doImpliedfree) |
bool | doDupcol () const |
Whether we want to do dupcol part of presolve. | |
void | setDoDupcol (bool doDupcol_) |
bool | doDuprow () const |
Whether we want to do duprow part of presolve. | |
void | setDoDuprow (bool doDuprow_) |
bool | doSingletonColumn () const |
Whether we want to do singleton column part of presolve. | |
void | setDoSingletonColumn (bool doSingleton_) |
int | presolveActions () const |
Set whole group. | |
void | setPresolveActions (int action) |
int | substitution () const |
Largest column for substitution (normally 3) | |
void | setSubstitution (int value) |
This is a very simple class to guide algorithms.
It is used to tidy up passing parameters to initialSolve and maybe for output from that
Definition at line 20 of file ClpSolve.hpp.
enum ClpSolve::SolveType |
enums for solve function
useDual | |
usePrimal | |
usePrimalorSprint | |
useBarrier | |
useBarrierNoCross | |
automatic | |
notImplemented |
Definition at line 25 of file ClpSolve.hpp.
Definition at line 34 of file ClpSolve.hpp.
ClpSolve::ClpSolve | ( | ) |
Default constructor.
ClpSolve::ClpSolve | ( | SolveType | method, |
PresolveType | presolveType, | ||
int | numberPasses, | ||
int | options[6], | ||
int | extraInfo[6], | ||
int | independentOptions[3] | ||
) |
Constructor when you really know what you are doing.
ClpSolve::ClpSolve | ( | const ClpSolve & | ) |
Copy constructor.
ClpSolve::~ClpSolve | ( | ) |
Destructor.
void ClpSolve::generateCpp | ( | FILE * | fp | ) |
Generates code for above constructor.
void ClpSolve::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 basis in primal 2 16 - switch off interrupt handling 3 32 - do not try and make plus minus one matrix 64 - do not use sprint even if problem looks good.
which translation is: which: 0 - startup in Dual (nothing if basis exists).: 0 - no basis 1 - crash 2 - use initiative about idiot! but no crash 1 - startup in Primal (nothing if basis exists): 0 - use initiative 1 - use crash 2 - use idiot and look at further info 3 - use sprint and look at further info 4 - use all slack 5 - use initiative but no idiot 6 - use initiative but no sprint 7 - use initiative but no crash 8 - do allslack or idiot 9 - do allslack or sprint 10 - slp before 11 - no nothing and primal(0) 2 - interrupt handling - 0 yes, 1 no (for threadsafe) 3 - whether to make +- 1matrix - 0 yes, 1 no 4 - for barrier 0 - dense cholesky 1 - Wssmp allowing some long columns 2 - Wssmp not allowing long columns 3 - Wssmp using KKT 4 - Using Florida ordering 8 - bit set to do scaling 16 - set to be aggressive with gamma/delta? 32 - Use KKT 5 - for presolve 1 - switch off dual stuff 6 - for detailed printout (initially just presolve) 1 - presolve statistics
int ClpSolve::getSpecialOption | ( | int | which | ) | const |
void ClpSolve::setSolveType | ( | SolveType | method, |
int | extraInfo = -1 |
||
) |
Solve types.
SolveType ClpSolve::getSolveType | ( | ) |
void ClpSolve::setPresolveType | ( | PresolveType | amount, |
int | extraInfo = -1 |
||
) |
PresolveType ClpSolve::getPresolveType | ( | ) |
int ClpSolve::getPresolvePasses | ( | ) | const |
int ClpSolve::getExtraInfo | ( | int | which | ) | const |
Extra info for idiot (or sprint)
void ClpSolve::setInfeasibleReturn | ( | bool | trueFalse | ) |
Say to return at once if infeasible, default is to solve.
bool ClpSolve::infeasibleReturn | ( | ) | const [inline] |
Definition at line 119 of file ClpSolve.hpp.
bool ClpSolve::doDual | ( | ) | const [inline] |
Whether we want to do dual part of presolve.
Definition at line 123 of file ClpSolve.hpp.
void ClpSolve::setDoDual | ( | bool | doDual_ | ) | [inline] |
Definition at line 126 of file ClpSolve.hpp.
bool ClpSolve::doSingleton | ( | ) | const [inline] |
Whether we want to do singleton part of presolve.
Definition at line 131 of file ClpSolve.hpp.
void ClpSolve::setDoSingleton | ( | bool | doSingleton_ | ) | [inline] |
Definition at line 134 of file ClpSolve.hpp.
bool ClpSolve::doDoubleton | ( | ) | const [inline] |
Whether we want to do doubleton part of presolve.
Definition at line 139 of file ClpSolve.hpp.
void ClpSolve::setDoDoubleton | ( | bool | doDoubleton_ | ) | [inline] |
Definition at line 142 of file ClpSolve.hpp.
bool ClpSolve::doTripleton | ( | ) | const [inline] |
Whether we want to do tripleton part of presolve.
Definition at line 147 of file ClpSolve.hpp.
void ClpSolve::setDoTripleton | ( | bool | doTripleton_ | ) | [inline] |
Definition at line 150 of file ClpSolve.hpp.
bool ClpSolve::doTighten | ( | ) | const [inline] |
Whether we want to do tighten part of presolve.
Definition at line 155 of file ClpSolve.hpp.
void ClpSolve::setDoTighten | ( | bool | doTighten_ | ) | [inline] |
Definition at line 158 of file ClpSolve.hpp.
bool ClpSolve::doForcing | ( | ) | const [inline] |
Whether we want to do forcing part of presolve.
Definition at line 163 of file ClpSolve.hpp.
void ClpSolve::setDoForcing | ( | bool | doForcing_ | ) | [inline] |
Definition at line 166 of file ClpSolve.hpp.
bool ClpSolve::doImpliedFree | ( | ) | const [inline] |
Whether we want to do impliedfree part of presolve.
Definition at line 171 of file ClpSolve.hpp.
void ClpSolve::setDoImpliedFree | ( | bool | doImpliedfree | ) | [inline] |
Definition at line 174 of file ClpSolve.hpp.
bool ClpSolve::doDupcol | ( | ) | const [inline] |
Whether we want to do dupcol part of presolve.
Definition at line 179 of file ClpSolve.hpp.
void ClpSolve::setDoDupcol | ( | bool | doDupcol_ | ) | [inline] |
Definition at line 182 of file ClpSolve.hpp.
bool ClpSolve::doDuprow | ( | ) | const [inline] |
Whether we want to do duprow part of presolve.
Definition at line 187 of file ClpSolve.hpp.
void ClpSolve::setDoDuprow | ( | bool | doDuprow_ | ) | [inline] |
Definition at line 190 of file ClpSolve.hpp.
bool ClpSolve::doSingletonColumn | ( | ) | const [inline] |
Whether we want to do singleton column part of presolve.
Definition at line 195 of file ClpSolve.hpp.
void ClpSolve::setDoSingletonColumn | ( | bool | doSingleton_ | ) | [inline] |
Definition at line 198 of file ClpSolve.hpp.
int ClpSolve::presolveActions | ( | ) | const [inline] |
Set whole group.
Definition at line 203 of file ClpSolve.hpp.
void ClpSolve::setPresolveActions | ( | int | action | ) | [inline] |
Definition at line 206 of file ClpSolve.hpp.
int ClpSolve::substitution | ( | ) | const [inline] |
Largest column for substitution (normally 3)
Definition at line 210 of file ClpSolve.hpp.
void ClpSolve::setSubstitution | ( | int | value | ) | [inline] |
Definition at line 213 of file ClpSolve.hpp.