12#ifndef CglResidualCapacity_H
13#define CglResidualCapacity_H
19#include "CoinError.hpp"
50 const std::string mpdDir );
97 virtual void generateCuts(
const OsiSolverInterface & si, OsiCuts & cs,
151 const int rowLen,
const int* ind,
152 const double* coef,
const char sense,
154 const double* colLowerBound,
155 const double* colUpperBound)
const;
158 const int rowLen,
const int* ind,
161 const double* colLowerBound,
162 const double* colUpperBound)
const;
167 const double* colUpperBound,
168 const double* colLowerBound,
169 const CoinPackedMatrix& matrixByRow,
171 const double* coefByRow,
173 const CoinBigIndex* rowStarts,
174 const int* rowLengths,
180 const int rowLen,
const int* ind,
184 const double* colUpperBound,
185 const double* colLowerBound,
186 OsiRowCut& resCapCut)
const;
237 const std::string mpdDir);
void CglResidualCapacityUnitTest(const OsiSolverInterface *siP, const std::string mpdDir)
A function that tests the methods in the CglResidualCapacity class.
CglCutGenerator()
Default constructor.
int doPreproc_
Controls the preprocessing of the matrix to identify rows suitable for cut generation.
void setEpsilon(double value)
Set Epsilon.
CglResidualCapacity & operator=(const CglResidualCapacity &rhs)
Assignment operator.
void resCapPreprocess(const OsiSolverInterface &si)
double getEpsilon() const
Get Epsilon.
bool getDoPreproc() const
Get doPreproc.
friend void CglResidualCapacityUnitTest(const OsiSolverInterface *siP, const std::string mpdDir)
A function that tests the methods in the CglResidualCapacity class.
double TOLERANCE_
If violation of a cut is greater that this number, the cut is accepted, default value: 1....
void setDoPreproc(int value)
Set doPreproc.
CglResidualCapacity(const CglResidualCapacity &)
Copy constructor.
bool resCapSeparation(const OsiSolverInterface &si, const int rowLen, const int *ind, const double *coef, const double rhs, const double *xlp, const double *colUpperBound, const double *colLowerBound, OsiRowCut &resCapCut) const
void gutsOfConstruct(const double tolerance)
void generateResCapCuts(const OsiSolverInterface &si, const double *xlp, const double *colUpperBound, const double *colLowerBound, const CoinPackedMatrix &matrixByRow, const double *LHS, const double *coefByRow, const int *colInds, const CoinBigIndex *rowStarts, const int *rowLengths, OsiCuts &cs) const
@ ROW_G
row of the type -a_1 c_1 - - a_k c_k + d z_1 + + d z_p >= b, where c_i are continuous variables and z...
@ ROW_L
row of the type a_1 c_1 + + a_k c_k - d z_1 - - d z_p <= b, where c_i are continuous variables and z_...
@ ROW_OTHER
Other types of rows.
@ ROW_BOTH
equation that can be treated as ROW_L and ROW_G
CglResidualCapacity(const double tolerance)
Alternate Constructor.
bool treatAsLessThan(const OsiSolverInterface &si, const int rowLen, const int *ind, const double *coef, const double rhs, const double *colLowerBound, const double *colUpperBound) const
void gutsOfCopy(const CglResidualCapacity &rhs)
virtual void generateCuts(const OsiSolverInterface &si, OsiCuts &cs, const CglTreeInfo info=CglTreeInfo())
Generate Residual Capacity cuts for the model data contained in si.
RowType determineRowType(const OsiSolverInterface &si, const int rowLen, const int *ind, const double *coef, const char sense, const double rhs, const double *colLowerBound, const double *colUpperBound) const
CglResidualCapacity()
Default constructor.
virtual void refreshPrep()
This is to refresh preprocessing.
void setTolerance(double value)
Set Tolerance.
virtual CglCutGenerator * clone() const
Clone.
double getTolerance() const
Get Tolerance.
double EPSILON_
Tolerance used for numerical purposes, default value: 1.e-6.
virtual ~CglResidualCapacity()
Destructor.
Information about where the cut generator is invoked from.