Go to the documentation of this file.
5 #ifndef OsiSolverBranch_H
6 #define OsiSolverBranch_H
9 #include "CoinWarmStartBasis.hpp"
23 void addBranch(
int iColumn,
double value);
27 void addBranch(
int way,
int numberTighterLower,
const int * whichLower,
const double * newLower,
28 int numberTighterUpper,
const int * whichUpper,
const double * newUpper);
30 void addBranch(
int way,
int numberColumns,
const double * oldLower,
const double * newLower,
31 const double * oldUpper,
const double * newUpper);
41 inline const int *
which()
const
90 const double * upperBefore);
96 inline const CoinWarmStartBasis &
basis()
const
124 const double * upperBefore);
void restoreResult(OsiSolverInterface &solver) const
Restore result.
~OsiSolverResult()
Destructor.
const OsiSolverBranch & fixed() const
Extra fixed.
const double * bounds() const
Bounds.
double * primalSolution_
Primal solution (numberColumns)
~OsiSolverBranch()
Destructor.
const int * which() const
Which variables.
void applyBounds(OsiSolverInterface &solver, int way) const
Apply bounds.
void createResult(const OsiSolverInterface &solver, const double *lowerBefore, const double *upperBefore)
Create result.
int start_[5]
Start of lower first, upper first, lower second, upper second.
double * dualSolution_
Dual solution (numberRows)
const CoinWarmStartBasis & basis() const
Get basis.
const double * primalSolution() const
Primal solution.
OsiSolverResult(const OsiSolverResult &rhs)
Copy constructor.
OsiSolverBranch & operator=(const OsiSolverBranch &rhs)
Assignment operator.
OsiSolverResult & operator=(const OsiSolverResult &rhs)
Assignment operator.
OsiSolverBranch(const OsiSolverBranch &rhs)
Copy constructor.
double * bound_
New bounds.
double objectiveValue_
Value of objective (if >= OsiSolverInterface::getInfinity() then infeasible)
double objectiveValue() const
Objective value (as minimization)
OsiSolverResult()
Default Constructor.
const double * dualSolution() const
Dual solution.
OsiSolverBranch fixed_
Which extra variables have been fixed (only way==-1 counts)
const int * starts() const
Starts.
CoinWarmStartBasis basis_
Warm start information.
OsiSolverResult(const OsiSolverInterface &solver, const double *lowerBefore, const double *upperBefore)
Constructor from solver.
int * indices_
Column numbers (if >= numberColumns treat as rows)
void addBranch(int way, int numberColumns, const double *oldLower, const double *newLower, const double *oldUpper, const double *newUpper)
Add bounds - way =-1 is first , +1 is second.
void addBranch(int way, int numberTighterLower, const int *whichLower, const double *newLower, int numberTighterUpper, const int *whichUpper, const double *newUpper)
Add bounds - way =-1 is first , +1 is second.
OsiSolverBranch()
Default Constructor.
Abstract Base Class for describing an interface to a solver.
void addBranch(int iColumn, double value)
Add a simple branch (i.e. first sets ub of floor(value), second lb of ceil(value))
bool feasibleOneWay(const OsiSolverInterface &solver) const
Returns true if current solution satsifies one side of branch.