ruby-cbc 0.1.9 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (290) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +5 -5
  3. data/Rakefile +0 -2
  4. data/lib/ruby-cbc.rb +1 -1
  5. data/lib/ruby-cbc/problem.rb +6 -8
  6. data/lib/ruby-cbc/version.rb +1 -1
  7. data/ruby-cbc.gemspec +3 -2
  8. metadata +17 -287
  9. data/ext/ruby-cbc/cbc.i +0 -15
  10. data/ext/ruby-cbc/cbc_wrap.c +0 -4618
  11. data/ext/ruby-cbc/extconf.rb +0 -60
  12. data/ext/ruby-cbc/install/bin/cbc +0 -0
  13. data/ext/ruby-cbc/install/bin/clp +0 -0
  14. data/ext/ruby-cbc/install/include/coin/CbcBranchActual.hpp +0 -24
  15. data/ext/ruby-cbc/install/include/coin/CbcBranchAllDifferent.hpp +0 -62
  16. data/ext/ruby-cbc/install/include/coin/CbcBranchBase.hpp +0 -78
  17. data/ext/ruby-cbc/install/include/coin/CbcBranchCut.hpp +0 -183
  18. data/ext/ruby-cbc/install/include/coin/CbcBranchDecision.hpp +0 -129
  19. data/ext/ruby-cbc/install/include/coin/CbcBranchDefaultDecision.hpp +0 -100
  20. data/ext/ruby-cbc/install/include/coin/CbcBranchDynamic.hpp +0 -206
  21. data/ext/ruby-cbc/install/include/coin/CbcBranchLotsize.hpp +0 -242
  22. data/ext/ruby-cbc/install/include/coin/CbcBranchToFixLots.hpp +0 -94
  23. data/ext/ruby-cbc/install/include/coin/CbcBranchingObject.hpp +0 -236
  24. data/ext/ruby-cbc/install/include/coin/CbcClique.hpp +0 -303
  25. data/ext/ruby-cbc/install/include/coin/CbcCompare.hpp +0 -39
  26. data/ext/ruby-cbc/install/include/coin/CbcCompareActual.hpp +0 -14
  27. data/ext/ruby-cbc/install/include/coin/CbcCompareBase.hpp +0 -142
  28. data/ext/ruby-cbc/install/include/coin/CbcCompareDefault.hpp +0 -120
  29. data/ext/ruby-cbc/install/include/coin/CbcCompareDepth.hpp +0 -47
  30. data/ext/ruby-cbc/install/include/coin/CbcCompareEstimate.hpp +0 -48
  31. data/ext/ruby-cbc/install/include/coin/CbcCompareObjective.hpp +0 -49
  32. data/ext/ruby-cbc/install/include/coin/CbcConfig.h +0 -14
  33. data/ext/ruby-cbc/install/include/coin/CbcConsequence.hpp +0 -49
  34. data/ext/ruby-cbc/install/include/coin/CbcCountRowCut.hpp +0 -168
  35. data/ext/ruby-cbc/install/include/coin/CbcCutGenerator.hpp +0 -482
  36. data/ext/ruby-cbc/install/include/coin/CbcCutModifier.hpp +0 -57
  37. data/ext/ruby-cbc/install/include/coin/CbcCutSubsetModifier.hpp +0 -66
  38. data/ext/ruby-cbc/install/include/coin/CbcDummyBranchingObject.hpp +0 -83
  39. data/ext/ruby-cbc/install/include/coin/CbcEventHandler.hpp +0 -245
  40. data/ext/ruby-cbc/install/include/coin/CbcFathom.hpp +0 -137
  41. data/ext/ruby-cbc/install/include/coin/CbcFathomDynamicProgramming.hpp +0 -169
  42. data/ext/ruby-cbc/install/include/coin/CbcFeasibilityBase.hpp +0 -56
  43. data/ext/ruby-cbc/install/include/coin/CbcFixVariable.hpp +0 -67
  44. data/ext/ruby-cbc/install/include/coin/CbcFollowOn.hpp +0 -207
  45. data/ext/ruby-cbc/install/include/coin/CbcFullNodeInfo.hpp +0 -161
  46. data/ext/ruby-cbc/install/include/coin/CbcGeneral.hpp +0 -60
  47. data/ext/ruby-cbc/install/include/coin/CbcGeneralDepth.hpp +0 -279
  48. data/ext/ruby-cbc/install/include/coin/CbcHeuristic.hpp +0 -682
  49. data/ext/ruby-cbc/install/include/coin/CbcHeuristicDINS.hpp +0 -96
  50. data/ext/ruby-cbc/install/include/coin/CbcHeuristicDW.hpp +0 -309
  51. data/ext/ruby-cbc/install/include/coin/CbcHeuristicDive.hpp +0 -192
  52. data/ext/ruby-cbc/install/include/coin/CbcHeuristicDiveCoefficient.hpp +0 -52
  53. data/ext/ruby-cbc/install/include/coin/CbcHeuristicDiveFractional.hpp +0 -52
  54. data/ext/ruby-cbc/install/include/coin/CbcHeuristicDiveGuided.hpp +0 -55
  55. data/ext/ruby-cbc/install/include/coin/CbcHeuristicDiveLineSearch.hpp +0 -52
  56. data/ext/ruby-cbc/install/include/coin/CbcHeuristicDivePseudoCost.hpp +0 -60
  57. data/ext/ruby-cbc/install/include/coin/CbcHeuristicDiveVectorLength.hpp +0 -52
  58. data/ext/ruby-cbc/install/include/coin/CbcHeuristicFPump.hpp +0 -340
  59. data/ext/ruby-cbc/install/include/coin/CbcHeuristicGreedy.hpp +0 -280
  60. data/ext/ruby-cbc/install/include/coin/CbcHeuristicLocal.hpp +0 -271
  61. data/ext/ruby-cbc/install/include/coin/CbcHeuristicPivotAndFix.hpp +0 -58
  62. data/ext/ruby-cbc/install/include/coin/CbcHeuristicRENS.hpp +0 -77
  63. data/ext/ruby-cbc/install/include/coin/CbcHeuristicRINS.hpp +0 -102
  64. data/ext/ruby-cbc/install/include/coin/CbcHeuristicRandRound.hpp +0 -58
  65. data/ext/ruby-cbc/install/include/coin/CbcHeuristicVND.hpp +0 -94
  66. data/ext/ruby-cbc/install/include/coin/CbcLinked.hpp +0 -1406
  67. data/ext/ruby-cbc/install/include/coin/CbcMessage.hpp +0 -94
  68. data/ext/ruby-cbc/install/include/coin/CbcMipStartIO.hpp +0 -26
  69. data/ext/ruby-cbc/install/include/coin/CbcModel.hpp +0 -2952
  70. data/ext/ruby-cbc/install/include/coin/CbcNWay.hpp +0 -166
  71. data/ext/ruby-cbc/install/include/coin/CbcNode.hpp +0 -351
  72. data/ext/ruby-cbc/install/include/coin/CbcNodeInfo.hpp +0 -349
  73. data/ext/ruby-cbc/install/include/coin/CbcObject.hpp +0 -272
  74. data/ext/ruby-cbc/install/include/coin/CbcObjectUpdateData.hpp +0 -64
  75. data/ext/ruby-cbc/install/include/coin/CbcOrClpParam.cpp +0 -4134
  76. data/ext/ruby-cbc/install/include/coin/CbcOrClpParam.hpp +0 -532
  77. data/ext/ruby-cbc/install/include/coin/CbcParam.hpp +0 -324
  78. data/ext/ruby-cbc/install/include/coin/CbcPartialNodeInfo.hpp +0 -110
  79. data/ext/ruby-cbc/install/include/coin/CbcSOS.hpp +0 -279
  80. data/ext/ruby-cbc/install/include/coin/CbcSimpleInteger.hpp +0 -286
  81. data/ext/ruby-cbc/install/include/coin/CbcSimpleIntegerDynamicPseudoCost.hpp +0 -564
  82. data/ext/ruby-cbc/install/include/coin/CbcSimpleIntegerPseudoCost.hpp +0 -114
  83. data/ext/ruby-cbc/install/include/coin/CbcSolver.hpp +0 -447
  84. data/ext/ruby-cbc/install/include/coin/CbcStrategy.hpp +0 -258
  85. data/ext/ruby-cbc/install/include/coin/CbcSubProblem.hpp +0 -83
  86. data/ext/ruby-cbc/install/include/coin/CbcTree.hpp +0 -490
  87. data/ext/ruby-cbc/install/include/coin/CbcTreeLocal.hpp +0 -372
  88. data/ext/ruby-cbc/install/include/coin/Cbc_C_Interface.h +0 -381
  89. data/ext/ruby-cbc/install/include/coin/Cgl012cut.hpp +0 -464
  90. data/ext/ruby-cbc/install/include/coin/CglAllDifferent.hpp +0 -115
  91. data/ext/ruby-cbc/install/include/coin/CglClique.hpp +0 -308
  92. data/ext/ruby-cbc/install/include/coin/CglConfig.h +0 -19
  93. data/ext/ruby-cbc/install/include/coin/CglCutGenerator.hpp +0 -121
  94. data/ext/ruby-cbc/install/include/coin/CglDuplicateRow.hpp +0 -189
  95. data/ext/ruby-cbc/install/include/coin/CglFlowCover.hpp +0 -371
  96. data/ext/ruby-cbc/install/include/coin/CglGMI.hpp +0 -364
  97. data/ext/ruby-cbc/install/include/coin/CglGMIParam.hpp +0 -313
  98. data/ext/ruby-cbc/install/include/coin/CglGomory.hpp +0 -204
  99. data/ext/ruby-cbc/install/include/coin/CglKnapsackCover.hpp +0 -310
  100. data/ext/ruby-cbc/install/include/coin/CglLandP.hpp +0 -306
  101. data/ext/ruby-cbc/install/include/coin/CglLandPValidator.hpp +0 -130
  102. data/ext/ruby-cbc/install/include/coin/CglLiftAndProject.hpp +0 -104
  103. data/ext/ruby-cbc/install/include/coin/CglMessage.hpp +0 -50
  104. data/ext/ruby-cbc/install/include/coin/CglMixedIntegerRounding.hpp +0 -429
  105. data/ext/ruby-cbc/install/include/coin/CglMixedIntegerRounding2.hpp +0 -427
  106. data/ext/ruby-cbc/install/include/coin/CglOddHole.hpp +0 -160
  107. data/ext/ruby-cbc/install/include/coin/CglParam.hpp +0 -93
  108. data/ext/ruby-cbc/install/include/coin/CglPreProcess.hpp +0 -492
  109. data/ext/ruby-cbc/install/include/coin/CglProbing.hpp +0 -543
  110. data/ext/ruby-cbc/install/include/coin/CglRedSplit.hpp +0 -448
  111. data/ext/ruby-cbc/install/include/coin/CglRedSplit2.hpp +0 -494
  112. data/ext/ruby-cbc/install/include/coin/CglRedSplit2Param.hpp +0 -495
  113. data/ext/ruby-cbc/install/include/coin/CglRedSplitParam.hpp +0 -272
  114. data/ext/ruby-cbc/install/include/coin/CglResidualCapacity.hpp +0 -240
  115. data/ext/ruby-cbc/install/include/coin/CglSimpleRounding.hpp +0 -174
  116. data/ext/ruby-cbc/install/include/coin/CglStored.hpp +0 -125
  117. data/ext/ruby-cbc/install/include/coin/CglTreeInfo.hpp +0 -180
  118. data/ext/ruby-cbc/install/include/coin/CglTwomir.hpp +0 -565
  119. data/ext/ruby-cbc/install/include/coin/CglZeroHalf.hpp +0 -133
  120. data/ext/ruby-cbc/install/include/coin/ClpAmplObjective.hpp +0 -113
  121. data/ext/ruby-cbc/install/include/coin/ClpCholeskyBase.hpp +0 -294
  122. data/ext/ruby-cbc/install/include/coin/ClpCholeskyDense.hpp +0 -162
  123. data/ext/ruby-cbc/install/include/coin/ClpConfig.h +0 -17
  124. data/ext/ruby-cbc/install/include/coin/ClpConstraint.hpp +0 -125
  125. data/ext/ruby-cbc/install/include/coin/ClpConstraintAmpl.hpp +0 -108
  126. data/ext/ruby-cbc/install/include/coin/ClpConstraintLinear.hpp +0 -110
  127. data/ext/ruby-cbc/install/include/coin/ClpConstraintQuadratic.hpp +0 -119
  128. data/ext/ruby-cbc/install/include/coin/ClpDualRowDantzig.hpp +0 -71
  129. data/ext/ruby-cbc/install/include/coin/ClpDualRowPivot.hpp +0 -129
  130. data/ext/ruby-cbc/install/include/coin/ClpDualRowSteepest.hpp +0 -153
  131. data/ext/ruby-cbc/install/include/coin/ClpDummyMatrix.hpp +0 -183
  132. data/ext/ruby-cbc/install/include/coin/ClpDynamicExampleMatrix.hpp +0 -186
  133. data/ext/ruby-cbc/install/include/coin/ClpDynamicMatrix.hpp +0 -381
  134. data/ext/ruby-cbc/install/include/coin/ClpEventHandler.hpp +0 -187
  135. data/ext/ruby-cbc/install/include/coin/ClpFactorization.hpp +0 -432
  136. data/ext/ruby-cbc/install/include/coin/ClpGubDynamicMatrix.hpp +0 -247
  137. data/ext/ruby-cbc/install/include/coin/ClpGubMatrix.hpp +0 -358
  138. data/ext/ruby-cbc/install/include/coin/ClpInterior.hpp +0 -570
  139. data/ext/ruby-cbc/install/include/coin/ClpLinearObjective.hpp +0 -103
  140. data/ext/ruby-cbc/install/include/coin/ClpMatrixBase.hpp +0 -524
  141. data/ext/ruby-cbc/install/include/coin/ClpMessage.hpp +0 -131
  142. data/ext/ruby-cbc/install/include/coin/ClpModel.hpp +0 -1307
  143. data/ext/ruby-cbc/install/include/coin/ClpNetworkMatrix.hpp +0 -229
  144. data/ext/ruby-cbc/install/include/coin/ClpNode.hpp +0 -349
  145. data/ext/ruby-cbc/install/include/coin/ClpNonLinearCost.hpp +0 -401
  146. data/ext/ruby-cbc/install/include/coin/ClpObjective.hpp +0 -134
  147. data/ext/ruby-cbc/install/include/coin/ClpPackedMatrix.hpp +0 -638
  148. data/ext/ruby-cbc/install/include/coin/ClpParameters.hpp +0 -126
  149. data/ext/ruby-cbc/install/include/coin/ClpPdcoBase.hpp +0 -103
  150. data/ext/ruby-cbc/install/include/coin/ClpPlusMinusOneMatrix.hpp +0 -290
  151. data/ext/ruby-cbc/install/include/coin/ClpPresolve.hpp +0 -299
  152. data/ext/ruby-cbc/install/include/coin/ClpPrimalColumnDantzig.hpp +0 -72
  153. data/ext/ruby-cbc/install/include/coin/ClpPrimalColumnPivot.hpp +0 -155
  154. data/ext/ruby-cbc/install/include/coin/ClpPrimalColumnSteepest.hpp +0 -247
  155. data/ext/ruby-cbc/install/include/coin/ClpQuadraticObjective.hpp +0 -155
  156. data/ext/ruby-cbc/install/include/coin/ClpSimplex.hpp +0 -1797
  157. data/ext/ruby-cbc/install/include/coin/ClpSimplexDual.hpp +0 -300
  158. data/ext/ruby-cbc/install/include/coin/ClpSimplexNonlinear.hpp +0 -117
  159. data/ext/ruby-cbc/install/include/coin/ClpSimplexOther.hpp +0 -277
  160. data/ext/ruby-cbc/install/include/coin/ClpSimplexPrimal.hpp +0 -244
  161. data/ext/ruby-cbc/install/include/coin/ClpSolve.hpp +0 -446
  162. data/ext/ruby-cbc/install/include/coin/Clp_C_Interface.h +0 -525
  163. data/ext/ruby-cbc/install/include/coin/CoinAlloc.hpp +0 -176
  164. data/ext/ruby-cbc/install/include/coin/CoinBuild.hpp +0 -149
  165. data/ext/ruby-cbc/install/include/coin/CoinDenseFactorization.hpp +0 -419
  166. data/ext/ruby-cbc/install/include/coin/CoinDenseVector.hpp +0 -383
  167. data/ext/ruby-cbc/install/include/coin/CoinDistance.hpp +0 -48
  168. data/ext/ruby-cbc/install/include/coin/CoinError.hpp +0 -257
  169. data/ext/ruby-cbc/install/include/coin/CoinFactorization.hpp +0 -2044
  170. data/ext/ruby-cbc/install/include/coin/CoinFileIO.hpp +0 -166
  171. data/ext/ruby-cbc/install/include/coin/CoinFinite.hpp +0 -34
  172. data/ext/ruby-cbc/install/include/coin/CoinFloatEqual.hpp +0 -177
  173. data/ext/ruby-cbc/install/include/coin/CoinHelperFunctions.hpp +0 -1111
  174. data/ext/ruby-cbc/install/include/coin/CoinIndexedVector.hpp +0 -1164
  175. data/ext/ruby-cbc/install/include/coin/CoinLpIO.hpp +0 -805
  176. data/ext/ruby-cbc/install/include/coin/CoinMessage.hpp +0 -96
  177. data/ext/ruby-cbc/install/include/coin/CoinMessageHandler.hpp +0 -666
  178. data/ext/ruby-cbc/install/include/coin/CoinModel.hpp +0 -1054
  179. data/ext/ruby-cbc/install/include/coin/CoinModelUseful.hpp +0 -441
  180. data/ext/ruby-cbc/install/include/coin/CoinMpsIO.hpp +0 -1056
  181. data/ext/ruby-cbc/install/include/coin/CoinOslFactorization.hpp +0 -280
  182. data/ext/ruby-cbc/install/include/coin/CoinPackedMatrix.hpp +0 -947
  183. data/ext/ruby-cbc/install/include/coin/CoinPackedVector.hpp +0 -657
  184. data/ext/ruby-cbc/install/include/coin/CoinPackedVectorBase.hpp +0 -269
  185. data/ext/ruby-cbc/install/include/coin/CoinParam.hpp +0 -644
  186. data/ext/ruby-cbc/install/include/coin/CoinPragma.hpp +0 -26
  187. data/ext/ruby-cbc/install/include/coin/CoinPresolveDoubleton.hpp +0 -73
  188. data/ext/ruby-cbc/install/include/coin/CoinPresolveDual.hpp +0 -85
  189. data/ext/ruby-cbc/install/include/coin/CoinPresolveDupcol.hpp +0 -226
  190. data/ext/ruby-cbc/install/include/coin/CoinPresolveEmpty.hpp +0 -116
  191. data/ext/ruby-cbc/install/include/coin/CoinPresolveFixed.hpp +0 -181
  192. data/ext/ruby-cbc/install/include/coin/CoinPresolveForcing.hpp +0 -61
  193. data/ext/ruby-cbc/install/include/coin/CoinPresolveImpliedFree.hpp +0 -60
  194. data/ext/ruby-cbc/install/include/coin/CoinPresolveIsolated.hpp +0 -51
  195. data/ext/ruby-cbc/install/include/coin/CoinPresolveMatrix.hpp +0 -1842
  196. data/ext/ruby-cbc/install/include/coin/CoinPresolveMonitor.hpp +0 -105
  197. data/ext/ruby-cbc/install/include/coin/CoinPresolvePsdebug.hpp +0 -166
  198. data/ext/ruby-cbc/install/include/coin/CoinPresolveSingleton.hpp +0 -112
  199. data/ext/ruby-cbc/install/include/coin/CoinPresolveSubst.hpp +0 -101
  200. data/ext/ruby-cbc/install/include/coin/CoinPresolveTighten.hpp +0 -55
  201. data/ext/ruby-cbc/install/include/coin/CoinPresolveTripleton.hpp +0 -66
  202. data/ext/ruby-cbc/install/include/coin/CoinPresolveUseless.hpp +0 -63
  203. data/ext/ruby-cbc/install/include/coin/CoinPresolveZeros.hpp +0 -60
  204. data/ext/ruby-cbc/install/include/coin/CoinRational.hpp +0 -44
  205. data/ext/ruby-cbc/install/include/coin/CoinSearchTree.hpp +0 -465
  206. data/ext/ruby-cbc/install/include/coin/CoinShallowPackedVector.hpp +0 -148
  207. data/ext/ruby-cbc/install/include/coin/CoinSignal.hpp +0 -117
  208. data/ext/ruby-cbc/install/include/coin/CoinSimpFactorization.hpp +0 -431
  209. data/ext/ruby-cbc/install/include/coin/CoinSmartPtr.hpp +0 -528
  210. data/ext/ruby-cbc/install/include/coin/CoinSnapshot.hpp +0 -476
  211. data/ext/ruby-cbc/install/include/coin/CoinSort.hpp +0 -678
  212. data/ext/ruby-cbc/install/include/coin/CoinStructuredModel.hpp +0 -247
  213. data/ext/ruby-cbc/install/include/coin/CoinTime.hpp +0 -310
  214. data/ext/ruby-cbc/install/include/coin/CoinTypes.hpp +0 -64
  215. data/ext/ruby-cbc/install/include/coin/CoinUtility.hpp +0 -19
  216. data/ext/ruby-cbc/install/include/coin/CoinUtilsConfig.h +0 -34
  217. data/ext/ruby-cbc/install/include/coin/CoinWarmStart.hpp +0 -58
  218. data/ext/ruby-cbc/install/include/coin/CoinWarmStartBasis.hpp +0 -456
  219. data/ext/ruby-cbc/install/include/coin/CoinWarmStartDual.hpp +0 -166
  220. data/ext/ruby-cbc/install/include/coin/CoinWarmStartPrimalDual.hpp +0 -211
  221. data/ext/ruby-cbc/install/include/coin/CoinWarmStartVector.hpp +0 -488
  222. data/ext/ruby-cbc/install/include/coin/Coin_C_defines.h +0 -115
  223. data/ext/ruby-cbc/install/include/coin/Idiot.hpp +0 -298
  224. data/ext/ruby-cbc/install/include/coin/OsiAuxInfo.hpp +0 -206
  225. data/ext/ruby-cbc/install/include/coin/OsiBranchingObject.hpp +0 -1005
  226. data/ext/ruby-cbc/install/include/coin/OsiCbcSolverInterface.hpp +0 -764
  227. data/ext/ruby-cbc/install/include/coin/OsiChooseVariable.hpp +0 -534
  228. data/ext/ruby-cbc/install/include/coin/OsiClpSolverInterface.hpp +0 -1509
  229. data/ext/ruby-cbc/install/include/coin/OsiColCut.hpp +0 -324
  230. data/ext/ruby-cbc/install/include/coin/OsiCollections.hpp +0 -35
  231. data/ext/ruby-cbc/install/include/coin/OsiConfig.h +0 -19
  232. data/ext/ruby-cbc/install/include/coin/OsiCut.hpp +0 -245
  233. data/ext/ruby-cbc/install/include/coin/OsiCuts.hpp +0 -474
  234. data/ext/ruby-cbc/install/include/coin/OsiPresolve.hpp +0 -252
  235. data/ext/ruby-cbc/install/include/coin/OsiRowCut.hpp +0 -331
  236. data/ext/ruby-cbc/install/include/coin/OsiRowCutDebugger.hpp +0 -187
  237. data/ext/ruby-cbc/install/include/coin/OsiSolverBranch.hpp +0 -152
  238. data/ext/ruby-cbc/install/include/coin/OsiSolverInterface.hpp +0 -2143
  239. data/ext/ruby-cbc/install/include/coin/OsiSolverParameters.hpp +0 -142
  240. data/ext/ruby-cbc/install/include/coin/OsiUnitTests.hpp +0 -374
  241. data/ext/ruby-cbc/install/lib/libCbc.la +0 -35
  242. data/ext/ruby-cbc/install/lib/libCbc.so +0 -0
  243. data/ext/ruby-cbc/install/lib/libCbc.so.3 +0 -0
  244. data/ext/ruby-cbc/install/lib/libCbc.so.3.9.7 +0 -0
  245. data/ext/ruby-cbc/install/lib/libCbcSolver.la +0 -35
  246. data/ext/ruby-cbc/install/lib/libCbcSolver.so +0 -0
  247. data/ext/ruby-cbc/install/lib/libCbcSolver.so.3 +0 -0
  248. data/ext/ruby-cbc/install/lib/libCbcSolver.so.3.9.7 +0 -0
  249. data/ext/ruby-cbc/install/lib/libCgl.la +0 -35
  250. data/ext/ruby-cbc/install/lib/libCgl.so +0 -0
  251. data/ext/ruby-cbc/install/lib/libCgl.so.1 +0 -0
  252. data/ext/ruby-cbc/install/lib/libCgl.so.1.9.7 +0 -0
  253. data/ext/ruby-cbc/install/lib/libClp.la +0 -35
  254. data/ext/ruby-cbc/install/lib/libClp.so +0 -0
  255. data/ext/ruby-cbc/install/lib/libClp.so.1 +0 -0
  256. data/ext/ruby-cbc/install/lib/libClp.so.1.13.9 +0 -0
  257. data/ext/ruby-cbc/install/lib/libClpSolver.la +0 -35
  258. data/ext/ruby-cbc/install/lib/libClpSolver.so +0 -0
  259. data/ext/ruby-cbc/install/lib/libClpSolver.so.1 +0 -0
  260. data/ext/ruby-cbc/install/lib/libClpSolver.so.1.13.9 +0 -0
  261. data/ext/ruby-cbc/install/lib/libCoinUtils.la +0 -35
  262. data/ext/ruby-cbc/install/lib/libCoinUtils.so +0 -0
  263. data/ext/ruby-cbc/install/lib/libCoinUtils.so.3 +0 -0
  264. data/ext/ruby-cbc/install/lib/libCoinUtils.so.3.10.11 +0 -0
  265. data/ext/ruby-cbc/install/lib/libOsi.la +0 -35
  266. data/ext/ruby-cbc/install/lib/libOsi.so +0 -0
  267. data/ext/ruby-cbc/install/lib/libOsi.so.1 +0 -0
  268. data/ext/ruby-cbc/install/lib/libOsi.so.1.12.6 +0 -0
  269. data/ext/ruby-cbc/install/lib/libOsiCbc.la +0 -35
  270. data/ext/ruby-cbc/install/lib/libOsiCbc.so +0 -0
  271. data/ext/ruby-cbc/install/lib/libOsiCbc.so.3 +0 -0
  272. data/ext/ruby-cbc/install/lib/libOsiCbc.so.3.9.7 +0 -0
  273. data/ext/ruby-cbc/install/lib/libOsiClp.la +0 -35
  274. data/ext/ruby-cbc/install/lib/libOsiClp.so +0 -0
  275. data/ext/ruby-cbc/install/lib/libOsiClp.so.1 +0 -0
  276. data/ext/ruby-cbc/install/lib/libOsiClp.so.1.13.9 +0 -0
  277. data/ext/ruby-cbc/install/lib/libOsiCommonTests.la +0 -35
  278. data/ext/ruby-cbc/install/lib/libOsiCommonTests.so +0 -0
  279. data/ext/ruby-cbc/install/lib/libOsiCommonTests.so.1 +0 -0
  280. data/ext/ruby-cbc/install/lib/libOsiCommonTests.so.1.12.6 +0 -0
  281. data/ext/ruby-cbc/install/lib/pkgconfig/cbc.pc +0 -12
  282. data/ext/ruby-cbc/install/lib/pkgconfig/cgl.pc +0 -12
  283. data/ext/ruby-cbc/install/lib/pkgconfig/clp.pc +0 -12
  284. data/ext/ruby-cbc/install/lib/pkgconfig/coindatamiplib3.pc +0 -9
  285. data/ext/ruby-cbc/install/lib/pkgconfig/coindatasample.pc +0 -9
  286. data/ext/ruby-cbc/install/lib/pkgconfig/coinutils.pc +0 -12
  287. data/ext/ruby-cbc/install/lib/pkgconfig/osi-cbc.pc +0 -12
  288. data/ext/ruby-cbc/install/lib/pkgconfig/osi-clp.pc +0 -12
  289. data/ext/ruby-cbc/install/lib/pkgconfig/osi-unittests.pc +0 -12
  290. data/ext/ruby-cbc/install/lib/pkgconfig/osi.pc +0 -12
@@ -1,14 +0,0 @@
1
- /* src/config_cbc.h. Generated by configure. */
2
- /* src/config_cbc.h.in. */
3
-
4
- /* Version number of project */
5
- #define CBC_VERSION "2.9.7"
6
-
7
- /* Major Version number of project */
8
- #define CBC_VERSION_MAJOR 2
9
-
10
- /* Minor Version number of project */
11
- #define CBC_VERSION_MINOR 9
12
-
13
- /* Release Version number of project */
14
- #define CBC_VERSION_RELEASE 7
@@ -1,49 +0,0 @@
1
- // $Id: CbcConsequence.hpp 1899 2013-04-09 18:12:08Z stefan $
2
- // Copyright (C) 2002, International Business Machines
3
- // Corporation and others. All Rights Reserved.
4
- // This code is licensed under the terms of the Eclipse Public License (EPL).
5
-
6
- // Edwin 11/12/2009 carved from CbcBranchBase
7
-
8
- #ifndef CbcConsequence_H
9
- #define CbcConsequence_H
10
-
11
- class OsiSolverInterface;
12
-
13
- /** Abstract base class for consequent bounds.
14
- When a variable is branched on it normally interacts with other variables by
15
- means of equations. There are cases where we want to step outside LP and do something
16
- more directly e.g. fix bounds. This class is for that.
17
-
18
- At present it need not be virtual as only instance is CbcFixVariable, but ...
19
-
20
- */
21
-
22
- class CbcConsequence {
23
-
24
- public:
25
-
26
- // Default Constructor
27
- CbcConsequence ();
28
-
29
- // Copy constructor
30
- CbcConsequence ( const CbcConsequence & rhs);
31
-
32
- // Assignment operator
33
- CbcConsequence & operator=( const CbcConsequence & rhs);
34
-
35
- /// Clone
36
- virtual CbcConsequence * clone() const = 0;
37
-
38
- /// Destructor
39
- virtual ~CbcConsequence ();
40
-
41
- /** Apply to an LP solver. Action depends on state
42
- */
43
- virtual void applyToSolver(OsiSolverInterface * solver, int state) const = 0;
44
-
45
- protected:
46
- };
47
-
48
- #endif
49
-
@@ -1,168 +0,0 @@
1
- /* $Id: CbcCountRowCut.hpp 2094 2014-11-18 11:15:36Z forrest $ */
2
- // Copyright (C) 2002, International Business Machines
3
- // Corporation and others. All Rights Reserved.
4
- // This code is licensed under the terms of the Eclipse Public License (EPL).
5
-
6
- #ifndef CbcCountRowCut_H
7
- #define CbcCountRowCut_H
8
-
9
-
10
- class OsiCuts;
11
- class OsiRowCut;
12
- class CbcNodeInfo;
13
-
14
- //#############################################################################
15
- /** \brief OsiRowCut augmented with bookkeeping
16
-
17
- CbcCountRowCut is an OsiRowCut object augmented with bookkeeping
18
- information: a reference count and information that specifies the
19
- the generator that created the cut and the node to which it's associated.
20
-
21
- The general principles for handling the reference count are as follows:
22
- <ul>
23
- <li> Once it's determined how the node will branch, increment the
24
- reference count under the assumption that all children will use
25
- all cuts currently tight at the node and will survive to be placed
26
- in the search tree.
27
- <li> As this assumption is proven incorrect (a cut becomes loose, or a
28
- child is fathomed), decrement the reference count accordingly.
29
- </ul>
30
- When all possible uses of a cut have been demonstrated to be unnecessary,
31
- the reference count (#numberPointingToThis_) will fall to zero. The
32
- CbcCountRowCut object (and its included OsiRowCut object) are then deleted.
33
- */
34
-
35
- class CbcCountRowCut : public OsiRowCut {
36
-
37
- public:
38
-
39
- /** @name Constructors & destructors */
40
- //@{
41
-
42
- /// Default Constructor
43
- CbcCountRowCut ();
44
-
45
- /// `Copy' constructor using an OsiRowCut
46
- CbcCountRowCut ( const OsiRowCut &);
47
-
48
- /// `Copy' constructor using an OsiRowCut and an CbcNodeInfo
49
- CbcCountRowCut(const OsiRowCut &, CbcNodeInfo *, int whichOne,
50
- int whichGenerator = -1, int numberPointingToThis = 0);
51
-
52
- /** Destructor
53
-
54
- \note The destructor will reach out (via #owner_) and NULL the
55
- reference to the cut in the owner's
56
- \link CbcNodeInfo::cuts_ cuts_ \endlink list.
57
- */
58
- virtual ~CbcCountRowCut ();
59
- //@}
60
-
61
- /// Increment the number of references
62
- void increment(int change = 1);
63
-
64
- /// Decrement the number of references and return the number left.
65
- int decrement(int change = 1);
66
-
67
- /** \brief Set the information associating this cut with a node
68
-
69
- An CbcNodeInfo object and an index in the cut set of the node.
70
- For locally valid cuts, the node will be the search tree node where the
71
- cut was generated. For globally valid cuts, it's the node where the cut
72
- was activated.
73
- */
74
- void setInfo(CbcNodeInfo *, int whichOne);
75
-
76
- /// Number of other CbcNodeInfo objects pointing to this row cut
77
- inline int numberPointingToThis() {
78
- return numberPointingToThis_;
79
- }
80
-
81
- /// Which generator for cuts - as user order
82
- inline int whichCutGenerator() const {
83
- return whichCutGenerator_;
84
- }
85
-
86
- /// Returns true if can drop cut if slack basic
87
- bool canDropCut(const OsiSolverInterface * solver, int row) const;
88
-
89
- #ifdef CHECK_CUT_COUNTS
90
- // Just for printing sanity checks
91
- int tempNumber_;
92
- #endif
93
-
94
- private:
95
-
96
- /// Standard copy is illegal (reference counts would be incorrect)
97
- CbcCountRowCut(const CbcCountRowCut &);
98
-
99
- /// Standard assignment is illegal (reference counts would be incorrect)
100
- CbcCountRowCut & operator=(const CbcCountRowCut& rhs);
101
-
102
- /// Backward pointer to owning CbcNodeInfo
103
- CbcNodeInfo * owner_;
104
-
105
- /// Index of cut in owner's cut set
106
- /// (\link CbcNodeInfo::cuts_ cuts_ \endlink).
107
- int ownerCut_;
108
-
109
- /// Number of other CbcNodeInfo objects pointing to this cut
110
- int numberPointingToThis_;
111
-
112
- /** Which generator created this cut
113
- (add 10000 if globally valid)
114
- if -1 then from global cut pool
115
- -2 cut branch
116
- -3 unknown
117
- */
118
- int whichCutGenerator_;
119
-
120
- };
121
- /**
122
- Really for Conflict cuts to -
123
- a) stop duplicates
124
- b) allow half baked cuts
125
- The whichRow_ field in OsiRowCut2 is used for a type
126
- 0 - normal
127
- 1 - processed cut (conflict)
128
- 2 - unprocessed cut i.e. dual ray computation
129
- */
130
- // for hashing
131
- typedef struct {
132
- int index, next;
133
- } CoinHashLink;
134
- class CbcRowCuts {
135
- public:
136
-
137
- CbcRowCuts(int initialMaxSize=0, int hashMultiplier=4 );
138
- ~CbcRowCuts();
139
- CbcRowCuts(const CbcRowCuts& rhs);
140
- CbcRowCuts& operator=(const CbcRowCuts& rhs);
141
- inline OsiRowCut2 * cut(int sequence) const
142
- { return rowCut_[sequence];}
143
- inline int numberCuts() const
144
- { return numberCuts_;}
145
- inline int sizeRowCuts() const
146
- { return numberCuts_;}
147
- inline OsiRowCut * rowCutPtr(int sequence)
148
- { return rowCut_[sequence];}
149
- void eraseRowCut(int sequence);
150
- // Return 0 if added, 1 if not, -1 if not added because of space
151
- int addCutIfNotDuplicate(const OsiRowCut & cut,int whichType=0);
152
- // Return 0 if added, 1 if not, -1 if not added because of space
153
- int addCutIfNotDuplicateWhenGreedy(const OsiRowCut & cut,int whichType=0);
154
- // Add in cuts as normal cuts (and delete)
155
- void addCuts(OsiCuts & cs);
156
- // Truncate
157
- void truncate(int numberAfter);
158
- private:
159
- OsiRowCut2 ** rowCut_;
160
- /// Hash table
161
- CoinHashLink *hash_;
162
- int size_;
163
- int hashMultiplier_;
164
- int numberCuts_;
165
- int lastHash_;
166
- };
167
- #endif
168
-
@@ -1,482 +0,0 @@
1
- /* $Id: CbcCutGenerator.hpp 2081 2014-09-25 11:31:17Z forrest $ */
2
- // Copyright (C) 2003, International Business Machines
3
- // Corporation and others. All Rights Reserved.
4
- // This code is licensed under the terms of the Eclipse Public License (EPL).
5
-
6
- #ifndef CbcCutGenerator_H
7
- #define CbcCutGenerator_H
8
-
9
- #include "OsiSolverInterface.hpp"
10
- #include "OsiCuts.hpp"
11
- #include "CglCutGenerator.hpp"
12
- #include "CbcCutModifier.hpp"
13
-
14
- class CbcModel;
15
- class OsiRowCut;
16
- class OsiRowCutDebugger;
17
-
18
- //#############################################################################
19
-
20
- /** Interface between Cbc and Cut Generation Library.
21
-
22
- \c CbcCutGenerator is intended to provide an intelligent interface between
23
- Cbc and the cutting plane algorithms in the CGL. A \c CbcCutGenerator is
24
- bound to a \c CglCutGenerator and to an \c CbcModel. It contains parameters
25
- which control when and how the \c generateCuts method of the
26
- \c CglCutGenerator will be called.
27
-
28
- The builtin decision criteria available to use when deciding whether to
29
- generate cuts are limited: every <i>X</i> nodes, when a solution is found,
30
- and when a subproblem is found to be infeasible. The idea is that the class
31
- will grow more intelligent with time.
32
-
33
- \todo Add a pointer to function member which will allow a client to install
34
- their own decision algorithm to decide whether or not to call the CGL
35
- \p generateCuts method. Create a default decision method that looks
36
- at the builtin criteria.
37
-
38
- \todo It strikes me as not good that generateCuts contains code specific to
39
- individual CGL algorithms. Another set of pointer to function members,
40
- so that the client can specify the cut generation method as well as
41
- pre- and post-generation methods? Taken a bit further, should this
42
- class contain a bunch of pointer to function members, one for each
43
- of the places where the cut generator might be referenced?
44
- Initialization, root node, search tree node, discovery of solution,
45
- and termination all come to mind. Initialization and termination would
46
- also be useful for instrumenting cbc.
47
- */
48
-
49
- class CbcCutGenerator {
50
-
51
- public:
52
-
53
- /** \name Generate Cuts */
54
- //@{
55
- /** Generate cuts for the client model.
56
-
57
- Evaluate the state of the client model and decide whether to generate cuts.
58
- The generated cuts are inserted into and returned in the collection of cuts
59
- \p cs.
60
-
61
- If \p fullScan is !=0, the generator is obliged to call the CGL
62
- \c generateCuts routine. Otherwise, it is free to make a local decision.
63
- Negative fullScan says things like at integer solution
64
- The current implementation uses \c whenCutGenerator_ to decide.
65
-
66
- The routine returns true if reoptimisation is needed (because the state of
67
- the solver interface has been modified).
68
-
69
- If node then can find out depth
70
- */
71
- bool generateCuts( OsiCuts &cs, int fullScan, OsiSolverInterface * solver,
72
- CbcNode * node);
73
- //@}
74
-
75
-
76
- /**@name Constructors and destructors */
77
- //@{
78
- /// Default constructor
79
- CbcCutGenerator ();
80
-
81
- /// Normal constructor
82
- CbcCutGenerator(CbcModel * model, CglCutGenerator * generator,
83
- int howOften = 1, const char * name = NULL,
84
- bool normal = true, bool atSolution = false,
85
- bool infeasible = false, int howOftenInsub = -100,
86
- int whatDepth = -1, int whatDepthInSub = -1, int switchOffIfLessThan = 0);
87
-
88
- /// Copy constructor
89
- CbcCutGenerator (const CbcCutGenerator &);
90
-
91
- /// Assignment operator
92
- CbcCutGenerator & operator=(const CbcCutGenerator& rhs);
93
-
94
- /// Destructor
95
- ~CbcCutGenerator ();
96
- //@}
97
-
98
- /**@name Gets and sets */
99
- //@{
100
- /** Set the client model.
101
-
102
- In addition to setting the client model, refreshModel also calls
103
- the \c refreshSolver method of the CglCutGenerator object.
104
- */
105
- void refreshModel(CbcModel * model);
106
-
107
- /// return name of generator
108
- inline const char * cutGeneratorName() const {
109
- return generatorName_;
110
- }
111
-
112
- /// Create C++ lines to show how to tune
113
- void generateTuning( FILE * fp);
114
- /** Set the cut generation interval
115
-
116
- Set the number of nodes evaluated between calls to the Cgl object's
117
- \p generateCuts routine.
118
-
119
- If \p value is positive, cuts will always be generated at the specified
120
- interval.
121
- If \p value is negative, cuts will initially be generated at the specified
122
- interval, but Cbc may adjust the value depending on the success of cuts
123
- produced by this generator.
124
-
125
- A value of -100 disables the generator, while a value of -99 means
126
- just at root.
127
- */
128
- void setHowOften(int value) ;
129
-
130
- /// Get the cut generation interval.
131
- inline int howOften() const {
132
- return whenCutGenerator_;
133
- }
134
- /// Get the cut generation interval.in sub tree
135
- inline int howOftenInSub() const {
136
- return whenCutGeneratorInSub_;
137
- }
138
- /// Get level of cut inaccuracy (0 means exact e.g. cliques)
139
- inline int inaccuracy() const {
140
- return inaccuracy_;
141
- }
142
- /// Set level of cut inaccuracy (0 means exact e.g. cliques)
143
- inline void setInaccuracy(int level) {
144
- inaccuracy_ = level;
145
- }
146
-
147
- /** Set the cut generation depth
148
-
149
- Set the depth criterion for calls to the Cgl object's
150
- \p generateCuts routine. Only active if > 0.
151
-
152
- If whenCutGenerator is positive and this is positive then this overrides.
153
- If whenCutGenerator is -1 then this is used as criterion if any cuts
154
- were generated at root node.
155
- If whenCutGenerator is anything else this is ignored.
156
- */
157
- void setWhatDepth(int value) ;
158
- /// Set the cut generation depth in sub tree
159
- void setWhatDepthInSub(int value) ;
160
- /// Get the cut generation depth criterion.
161
- inline int whatDepth() const {
162
- return depthCutGenerator_;
163
- }
164
- /// Get the cut generation depth criterion.in sub tree
165
- inline int whatDepthInSub() const {
166
- return depthCutGeneratorInSub_;
167
- }
168
- /// Set maximum number of times to enter
169
- inline void setMaximumTries(int value)
170
- { maximumTries_ = value;}
171
- /// Get maximum number of times to enter
172
- inline int maximumTries() const
173
- { return maximumTries_;}
174
-
175
- /// Get switches
176
- inline int switches() const {
177
- return switches_;
178
- }
179
- /// Set switches (for copying from virgin state)
180
- inline void setSwitches(int value) {
181
- switches_ = value;
182
- }
183
- /// Get whether the cut generator should be called in the normal place
184
- inline bool normal() const {
185
- return (switches_&1) != 0;
186
- }
187
- /// Set whether the cut generator should be called in the normal place
188
- inline void setNormal(bool value) {
189
- switches_ &= ~1;
190
- switches_ |= value ? 1 : 0;
191
- }
192
- /// Get whether the cut generator should be called when a solution is found
193
- inline bool atSolution() const {
194
- return (switches_&2) != 0;
195
- }
196
- /// Set whether the cut generator should be called when a solution is found
197
- inline void setAtSolution(bool value) {
198
- switches_ &= ~2;
199
- switches_ |= value ? 2 : 0;
200
- }
201
- /** Get whether the cut generator should be called when the subproblem is
202
- found to be infeasible.
203
- */
204
- inline bool whenInfeasible() const {
205
- return (switches_&4) != 0;
206
- }
207
- /** Set whether the cut generator should be called when the subproblem is
208
- found to be infeasible.
209
- */
210
- inline void setWhenInfeasible(bool value) {
211
- switches_ &= ~4;
212
- switches_ |= value ? 4 : 0;
213
- }
214
- /// Get whether the cut generator is being timed
215
- inline bool timing() const {
216
- return (switches_&64) != 0;
217
- }
218
- /// Set whether the cut generator is being timed
219
- inline void setTiming(bool value) {
220
- switches_ &= ~64;
221
- switches_ |= value ? 64 : 0;
222
- timeInCutGenerator_ = 0.0;
223
- }
224
- /// Return time taken in cut generator
225
- inline double timeInCutGenerator() const {
226
- return timeInCutGenerator_;
227
- }
228
- inline void incrementTimeInCutGenerator(double value) {
229
- timeInCutGenerator_ += value;
230
- }
231
- /// Get the \c CglCutGenerator corresponding to this \c CbcCutGenerator.
232
- inline CglCutGenerator * generator() const {
233
- return generator_;
234
- }
235
- /// Number times cut generator entered
236
- inline int numberTimesEntered() const {
237
- return numberTimes_;
238
- }
239
- inline void setNumberTimesEntered(int value) {
240
- numberTimes_ = value;
241
- }
242
- inline void incrementNumberTimesEntered(int value = 1) {
243
- numberTimes_ += value;
244
- }
245
- /// Total number of cuts added
246
- inline int numberCutsInTotal() const {
247
- return numberCuts_;
248
- }
249
- inline void setNumberCutsInTotal(int value) {
250
- numberCuts_ = value;
251
- }
252
- inline void incrementNumberCutsInTotal(int value = 1) {
253
- numberCuts_ += value;
254
- }
255
- /// Total number of elements added
256
- inline int numberElementsInTotal() const {
257
- return numberElements_;
258
- }
259
- inline void setNumberElementsInTotal(int value) {
260
- numberElements_ = value;
261
- }
262
- inline void incrementNumberElementsInTotal(int value = 1) {
263
- numberElements_ += value;
264
- }
265
- /// Total number of column cuts
266
- inline int numberColumnCuts() const {
267
- return numberColumnCuts_;
268
- }
269
- inline void setNumberColumnCuts(int value) {
270
- numberColumnCuts_ = value;
271
- }
272
- inline void incrementNumberColumnCuts(int value = 1) {
273
- numberColumnCuts_ += value;
274
- }
275
- /// Total number of cuts active after (at end of n cut passes at each node)
276
- inline int numberCutsActive() const {
277
- return numberCutsActive_;
278
- }
279
- inline void setNumberCutsActive(int value) {
280
- numberCutsActive_ = value;
281
- }
282
- inline void incrementNumberCutsActive(int value = 1) {
283
- numberCutsActive_ += value;
284
- }
285
- inline void setSwitchOffIfLessThan(int value) {
286
- switchOffIfLessThan_ = value;
287
- }
288
- inline int switchOffIfLessThan() const {
289
- return switchOffIfLessThan_;
290
- }
291
- /// Say if optimal basis needed
292
- inline bool needsOptimalBasis() const {
293
- return (switches_&128) != 0;
294
- }
295
- /// Set if optimal basis needed
296
- inline void setNeedsOptimalBasis(bool yesNo) {
297
- switches_ &= ~128;
298
- switches_ |= yesNo ? 128 : 0;
299
- }
300
- /// Whether generator MUST be called again if any cuts (i.e. ignore break from loop)
301
- inline bool mustCallAgain() const {
302
- return (switches_&8) != 0;
303
- }
304
- /// Set whether generator MUST be called again if any cuts (i.e. ignore break from loop)
305
- inline void setMustCallAgain(bool yesNo) {
306
- switches_ &= ~8;
307
- switches_ |= yesNo ? 8 : 0;
308
- }
309
- /// Whether generator switched off for moment
310
- inline bool switchedOff() const {
311
- return (switches_&16) != 0;
312
- }
313
- /// Set whether generator switched off for moment
314
- inline void setSwitchedOff(bool yesNo) {
315
- switches_ &= ~16;
316
- switches_ |= yesNo ? 16 : 0;
317
- }
318
- /// Whether last round of cuts did little
319
- inline bool ineffectualCuts() const {
320
- return (switches_&512) != 0;
321
- }
322
- /// Set whether last round of cuts did little
323
- inline void setIneffectualCuts(bool yesNo) {
324
- switches_ &= ~512;
325
- switches_ |= yesNo ? 512 : 0;
326
- }
327
- /// Whether to use if any cuts generated
328
- inline bool whetherToUse() const {
329
- return (switches_&1024) != 0;
330
- }
331
- /// Set whether to use if any cuts generated
332
- inline void setWhetherToUse(bool yesNo) {
333
- switches_ &= ~1024;
334
- switches_ |= yesNo ? 1024 : 0;
335
- }
336
- /// Whether in must call again mode (or after others)
337
- inline bool whetherInMustCallAgainMode() const {
338
- return (switches_&2048) != 0;
339
- }
340
- /// Set whether in must call again mode (or after others)
341
- inline void setWhetherInMustCallAgainMode(bool yesNo) {
342
- switches_ &= ~2048;
343
- switches_ |= yesNo ? 2048 : 0;
344
- }
345
- /// Whether to call at end
346
- inline bool whetherCallAtEnd() const {
347
- return (switches_&4096) != 0;
348
- }
349
- /// Set whether to call at end
350
- inline void setWhetherCallAtEnd(bool yesNo) {
351
- switches_ &= ~4096;
352
- switches_ |= yesNo ? 4096 : 0;
353
- }
354
- /// Whether needs refresh on copy
355
- inline bool needsRefresh() const {
356
- return (switches_&8192) != 0;
357
- }
358
- /// Set whether needs refresh on copy
359
- inline void setNeedsRefresh(bool yesNo) {
360
- switches_ &= ~8192;
361
- switches_ |= yesNo ? 8192 : 0;
362
- }
363
- /// Number of cuts generated at root
364
- inline int numberCutsAtRoot() const {
365
- return numberCutsAtRoot_;
366
- }
367
- inline void setNumberCutsAtRoot(int value) {
368
- numberCutsAtRoot_ = value;
369
- }
370
- /// Number of cuts active at root
371
- inline int numberActiveCutsAtRoot() const {
372
- return numberActiveCutsAtRoot_;
373
- }
374
- inline void setNumberActiveCutsAtRoot(int value) {
375
- numberActiveCutsAtRoot_ = value;
376
- }
377
- /// Number of short cuts at root
378
- inline int numberShortCutsAtRoot() const {
379
- return numberShortCutsAtRoot_;
380
- }
381
- inline void setNumberShortCutsAtRoot(int value) {
382
- numberShortCutsAtRoot_ = value;
383
- }
384
- /// Set model
385
- inline void setModel(CbcModel * model) {
386
- model_ = model;
387
- }
388
- /// Whether global cuts at root
389
- inline bool globalCutsAtRoot() const {
390
- return (switches_&32) != 0;
391
- }
392
- /// Set whether global cuts at root
393
- inline void setGlobalCutsAtRoot(bool yesNo) {
394
- switches_ &= ~32;
395
- switches_ |= yesNo ? 32 : 0;
396
- }
397
- /// Whether global cuts
398
- inline bool globalCuts() const {
399
- return (switches_&256) != 0;
400
- }
401
- /// Set whether global cuts
402
- inline void setGlobalCuts(bool yesNo) {
403
- switches_ &= ~256;
404
- switches_ |= yesNo ? 256 : 0;
405
- }
406
- /// Add in statistics from other
407
- void addStatistics(const CbcCutGenerator * other);
408
- /// Scale back statistics by factor
409
- void scaleBackStatistics(int factor);
410
- //@}
411
-
412
- private:
413
- /**@name Private gets and sets */
414
- //@{
415
- //@}
416
- /// Saved cuts
417
- OsiCuts savedCuts_;
418
- /// Time in cut generator
419
- double timeInCutGenerator_;
420
- /// The client model
421
- CbcModel *model_;
422
-
423
- // The CglCutGenerator object
424
- CglCutGenerator * generator_;
425
-
426
- /// Name of generator
427
- char * generatorName_;
428
-
429
- /** Number of nodes between calls to the CglCutGenerator::generateCuts
430
- routine.
431
- */
432
- int whenCutGenerator_;
433
- /** Number of nodes between calls to the CglCutGenerator::generateCuts
434
- routine in sub tree.
435
- */
436
- int whenCutGeneratorInSub_;
437
- /** If first pass at root produces fewer than this cuts then switch off
438
- */
439
- int switchOffIfLessThan_;
440
-
441
- /** Depth at which to call the CglCutGenerator::generateCuts
442
- routine (If >0 then overrides when and is called if depth%depthCutGenerator==0).
443
- */
444
- int depthCutGenerator_;
445
-
446
- /** Depth at which to call the CglCutGenerator::generateCuts
447
- routine (If >0 then overrides when and is called if depth%depthCutGenerator==0).
448
- In sub tree.
449
- */
450
- int depthCutGeneratorInSub_;
451
-
452
- /// Level of cut inaccuracy (0 means exact e.g. cliques)
453
- int inaccuracy_;
454
- /// Number times cut generator entered
455
- int numberTimes_;
456
- /// Total number of cuts added
457
- int numberCuts_;
458
- /// Total number of elements added
459
- int numberElements_;
460
- /// Total number of column cuts added
461
- int numberColumnCuts_;
462
- /// Total number of cuts active after (at end of n cut passes at each node)
463
- int numberCutsActive_;
464
- /// Number of cuts generated at root
465
- int numberCutsAtRoot_;
466
- /// Number of cuts active at root
467
- int numberActiveCutsAtRoot_;
468
- /// Number of short cuts at root
469
- int numberShortCutsAtRoot_;
470
- /// Switches - see gets and sets
471
- int switches_;
472
- /// Maximum number of times to enter
473
- int maximumTries_;
474
- };
475
-
476
- // How often to do if mostly switched off (A)
477
- # define SCANCUTS 1000
478
- // How often to do if mostly switched off (probing B)
479
- # define SCANCUTS_PROBING 1000
480
-
481
- #endif
482
-