00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #include "OsiCuts.hpp"
00012
00018
00019 void WipeMakeInfeas (OsiCuts &cs) {
00020
00021
00022
00023
00024 OsiColCut *infeascut = new OsiColCut;
00025
00026 if (infeascut) {
00027 int i=0;
00028 double
00029 upper = -1.,
00030 lower = 1.;
00031
00032 infeascut -> setLbs (1, &i, &lower);
00033 infeascut -> setUbs (1, &i, &upper);
00034
00035 cs.insert (infeascut);
00036 delete infeascut;
00037 }
00038 }
00039
00044
00045 bool isWiped (OsiCuts &cs) {
00046
00047 if (cs.sizeColCuts () == 0)
00048
00049 return false;
00050
00051 CoinPackedVector
00052 lbs = cs.colCutPtr (cs.sizeColCuts () - 1) -> lbs (),
00053 ubs = cs.colCutPtr (cs.sizeColCuts () - 1) -> ubs ();
00054
00055 return ((lbs.getNumElements () == 1) &&
00056 (ubs.getNumElements () == 1) &&
00057 (*(lbs.getIndices ()) == 0) &&
00058 (*(lbs.getElements ()) == 1.) &&
00059 (*(ubs.getIndices ()) == 0) &&
00060 (*(ubs.getElements ()) == -1.));
00061 }