# ClpSolve Class Reference

This is a very simple class to guide algorithms. More...

`#include <ClpSolve.hpp>`

List of all members.

## 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_)
bool | doKillSmall () const
| Whether we want to kill small substitutions.
void | setDoKillSmall (bool doKill)
int | presolveActions () const
| Set whole group.
void | setPresolveActions (int action)
int | substitution () const
| Largest column for substitution (normally 3).
void | setSubstitution (int value)
## Private Attributes
data.
SolveType | method_
| Solve type.
PresolveType | presolveType_
| Presolve type.
int | numberPasses_
| Amount of presolve.
int | options_ [7]
| Options - last is switch for OsiClp.
int | extraInfo_ [7]
| Extra information.
int | independentOptions_ [3]
| Extra algorithm dependent options 0 - if set return from clpsolve if infeasible 1 - To be copied over to presolve options 2 - max substitution level.

## Detailed Description

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.

## Member Enumeration Documentation

enum ClpSolve::SolveType

enums for solve function

Enumerator:

  useDual |
  usePrimal |
  usePrimalorSprint |
  useBarrier |
  useBarrierNoCross |
  automatic |
  notImplemented |

Definition at line 25 of file ClpSolve.hpp.

enum ClpSolve::PresolveType

Enumerator:

  presolveOn |
  presolveOff |
  presolveNumber |
  presolveNumberCost |

Definition at line 34 of file ClpSolve.hpp.

## Constructor & Destructor Documentation

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.

## Member Function Documentation

void ClpSolve::generateCpp | ( | FILE * | fp | ) |

Generates code for above constructor.

ClpSolve& ClpSolve::operator= | ( | const ClpSolve & | rhs | ) |

Assignment operator. This copies the data.

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.

bool ClpSolve::doKillSmall | ( |  | ) | const`[inline]`

Whether we want to kill small substitutions.

Definition at line 203 of file ClpSolve.hpp.

void ClpSolve::setDoKillSmall | ( | bool | doKill | ) | `[inline]`

Definition at line 206 of file ClpSolve.hpp.

int ClpSolve::presolveActions | ( |  | ) | const`[inline]`

Set whole group.

Definition at line 211 of file ClpSolve.hpp.

void ClpSolve::setPresolveActions | ( | int | action | ) | `[inline]`

Definition at line 214 of file ClpSolve.hpp.

int ClpSolve::substitution | ( |  | ) | const`[inline]`

Largest column for substitution (normally 3).

Definition at line 218 of file ClpSolve.hpp.

void ClpSolve::setSubstitution | ( | int | value | ) | `[inline]`

Definition at line 221 of file ClpSolve.hpp.

## Member Data Documentation

SolveType ClpSolve::method_`[private]`

Solve type.

Definition at line 233 of file ClpSolve.hpp.

PresolveType ClpSolve::presolveType_`[private]`

Presolve type.

Definition at line 235 of file ClpSolve.hpp.

int ClpSolve::numberPasses_`[private]`

Amount of presolve.

Definition at line 237 of file ClpSolve.hpp.

int ClpSolve::options_[7]`[private]`

Options - last is switch for OsiClp.

Definition at line 239 of file ClpSolve.hpp.

int ClpSolve::extraInfo_[7]`[private]`

Extra information.

Definition at line 241 of file ClpSolve.hpp.

int ClpSolve::independentOptions_[3]`[private]`

Extra algorithm dependent options 0 - if set return from clpsolve if infeasible 1 - To be copied over to presolve options 2 - max substitution level.

Definition at line 247 of file ClpSolve.hpp.

The documentation for this class was generated from the following file:

- /home/coin/svn-release/Clp-1.15.11/Clp/src/ClpSolve.hpp

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines