ruby-cbc 0.1.9 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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,565 +0,0 @@
1
- // $Id: CglTwomir.hpp 1119 2013-04-06 20:24:18Z 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
- #ifndef CglTwomir_H
7
- #define CglTwomir_H
8
- #include <string>
9
-
10
- #include "CglCutGenerator.hpp"
11
- #include "CoinFactorization.hpp"
12
-
13
- typedef struct
14
- {
15
-
16
- int nz; /* current length of arrays index[] and coeff[] */
17
- int max_nz; /* max length of arrays index[] and coeff[] */
18
- double *coeff; /* coefficient of each variable in the constraint */
19
- int *index; /* index of the variable (value in 0 ... nrow+ncol) */
20
- double rhs; /* rhs of the constraint */
21
- char sense; /* ?? is it necessary */
22
-
23
- } DGG_constraint_t;
24
-
25
- typedef struct{
26
- int n;
27
- DGG_constraint_t **c;
28
- int *ctype;
29
- double *alpha;
30
- } DGG_list_t;
31
-
32
- /******************** BASIS INFORMATION ADTs **********************************/
33
- typedef struct{
34
- int q_min;
35
- int q_max;
36
- int t_min;
37
- int t_max;
38
- int a_max;
39
- int max_elements;
40
- } cutParams;
41
-
42
- typedef struct
43
- {
44
- double gomory_threshold; /* factional variable must be this away from int */
45
- int ncol, /* number of columns in LP */
46
- nrow, /* number of constaints in LP */
47
- ninteger; /* number of integer variables in LP */
48
-
49
- int nbasic_col, /* number of basic columns in the LP */
50
- nbasic_row; /* number of basic rows in the LP */
51
-
52
- /* the following arrays are all of size (ncol+nrow) */
53
- int *info; /* description of each variable (see below) */
54
- double *lb; /* specifies the lower bound (if any) of each variable */
55
- double *ub; /* specifies the upper bound (if any) of each variable */
56
- double *x; /* current solution */
57
- double *rc; /* current reduced cost */
58
- double *opt_x;
59
-
60
- cutParams cparams;
61
- } DGG_data_t;
62
-
63
- /* the following macros allow us to decode the info of the DGG_data
64
- type. The encoding is as follows,
65
- bit 1 : if the variable is basic or not (non-basic).
66
- bit 2 : if the variable is integer or or not (rational).
67
- bit 3 : if the variable is structural or not (artifical).
68
- bit 4 : if the variable is non-basic and at its upper bound
69
- (else if non-basic at lower bound). */
70
-
71
- #define DGG_isBasic(data,idx) ((data->info[idx])&1)
72
- #define DGG_isInteger(data,idx) ((data->info[idx] >> 1)&1)
73
- #define DGG_isStructural(data,idx) ((data->info[idx] >> 2)&1)
74
- #define DGG_isEqualityConstraint(data,idx) ((data->info[idx] >> 3)&1)
75
- #define DGG_isNonBasicAtUB(data,idx) ((data->info[idx] >> 4)&1)
76
- #define DGG_isNonBasicAtLB(data,idx) ((data->info[idx] >> 5)&1)
77
- #define DGG_isConstraintBoundedAbove(data,idx) ((data->info[idx] >> 6)&1)
78
- #define DGG_isConstraintBoundedBelow(data,idx) ((data->info[idx] >> 7)&1)
79
-
80
- #define DGG_setIsBasic(data,idx) ((data->info[idx]) |= 1)
81
- #define DGG_setIsInteger(data,idx) ((data->info[idx]) |= (1<<1))
82
- #define DGG_setIsStructural(data,idx) ((data->info[idx]) |= (1<<2))
83
- #define DGG_setEqualityConstraint(data,idx) ((data->info[idx]) |= (1<<3))
84
- #define DGG_setIsNonBasicAtUB(data,idx) ((data->info[idx]) |= (1<<4))
85
- #define DGG_setIsNonBasicAtLB(data,idx) ((data->info[idx]) |= (1<<5))
86
- #define DGG_setIsConstraintBoundedAbove(data,idx) ((data->info[idx]) |= (1<<6))
87
- #define DGG_setIsConstraintBoundedBelow(data,idx) ((data->info[idx]) |= (1<<7))
88
-
89
- class CoinWarmStartBasis;
90
- /** Twostep MIR Cut Generator Class */
91
- class CglTwomir : public CglCutGenerator {
92
-
93
- friend void CglTwomirUnitTest(const OsiSolverInterface * siP,
94
- const std::string mpdDir );
95
-
96
-
97
- public:
98
-
99
- /// Problem name
100
- std::string probname_;
101
-
102
- /**@name Generate Cuts */
103
- //@{
104
- /** Generate Two step MIR cuts either from the tableau rows or from the
105
- formulation rows
106
- */
107
- virtual void generateCuts( const OsiSolverInterface & si, OsiCuts & cs,
108
- const CglTreeInfo info = CglTreeInfo());
109
- /// Return true if needs optimal basis to do cuts (will return true)
110
- virtual bool needsOptimalBasis() const;
111
-
112
- /**@name Change criterion on which scalings to use (default = 1,1,1,1) */
113
- //@{
114
- /// Set
115
- void setMirScale (int tmin, int tmax) {t_min_ = tmin; t_max_ = tmax;}
116
- void setTwomirScale (int qmin, int qmax) {q_min_ = qmin; q_max_ = qmax;}
117
- void setAMax (int a) {a_max_ = a;}
118
- void setMaxElements (int n) {max_elements_ = n;}
119
- void setMaxElementsRoot (int n) {max_elements_root_ = n;}
120
- void setCutTypes (bool mir, bool twomir, bool tab, bool form)
121
- { do_mir_ = mir; do_2mir_ = twomir; do_tab_ = tab; do_form_ = form;}
122
- void setFormulationRows (int n) {form_nrows_ = n;}
123
-
124
- /// Get
125
- int getTmin() const {return t_min_;}
126
- int getTmax() const {return t_max_;}
127
- int getQmin() const {return q_min_;}
128
- int getQmax() const {return q_max_;}
129
- int getAmax() const {return a_max_;}
130
- int getMaxElements() const {return max_elements_;}
131
- int getMaxElementsRoot() const {return max_elements_root_;}
132
- int getIfMir() const { return do_mir_;}
133
- int getIfTwomir() const { return do_2mir_;}
134
- int getIfTableau() const { return do_tab_;}
135
- int getIfFormulation() const { return do_form_;}
136
- //@}
137
-
138
- /**@name Change criterion on which variables to look at. All ones
139
- more than "away" away from integrality will be investigated
140
- (default 0.05) */
141
- //@{
142
- /// Set away
143
- void setAway(double value);
144
- /// Get away
145
- double getAway() const;
146
- /// Set away at root
147
- void setAwayAtRoot(double value);
148
- /// Get away at root
149
- double getAwayAtRoot() const;
150
- /// Return maximum length of cut in tree
151
- virtual int maximumLengthOfCutInTree() const
152
- { return max_elements_;}
153
- //@}
154
-
155
- /**@name Change way TwoMir works */
156
- //@{
157
- /// Pass in a copy of original solver (clone it)
158
- void passInOriginalSolver(OsiSolverInterface * solver);
159
- /// Returns original solver
160
- inline OsiSolverInterface * originalSolver() const
161
- { return originalSolver_;}
162
- /// Set type - 0 normal, 1 add original matrix one, 2 replace
163
- inline void setTwomirType(int type)
164
- { twomirType_=type;}
165
- /// Return type
166
- inline int twomirType() const
167
- { return twomirType_;}
168
- //@}
169
-
170
- /**@name Constructors and destructors */
171
- //@{
172
- /// Default constructor
173
- CglTwomir ();
174
-
175
- /// Copy constructor
176
- CglTwomir (const CglTwomir &);
177
-
178
- /// Clone
179
- virtual CglCutGenerator * clone() const;
180
-
181
- /// Assignment operator
182
- CglTwomir & operator=(const CglTwomir& rhs);
183
-
184
- /// Destructor
185
- virtual ~CglTwomir ();
186
- /// Create C++ lines to get to current state
187
- virtual std::string generateCpp( FILE * fp);
188
- /// This can be used to refresh any inforamtion
189
- virtual void refreshSolver(OsiSolverInterface * solver);
190
- //@}
191
-
192
- private:
193
- // Private member data
194
- /**@name Private member data */
195
- //@{
196
- /// Threadsafe random number generator
197
- CoinThreadRandom randomNumberGenerator_;
198
- /// Original solver
199
- OsiSolverInterface * originalSolver_;
200
- /// Only investigate if more than this away from integrality
201
- double away_;
202
- /// Only investigate if more than this away from integrality (at root)
203
- double awayAtRoot_;
204
- /// Type - 0 normal, 1 add original matrix one, 2 replace
205
- int twomirType_;
206
- bool do_mir_;
207
- bool do_2mir_;
208
- bool do_tab_;
209
- bool do_form_;
210
-
211
- int t_min_; /// t_min - first value of t to use for tMIR inequalities
212
- int t_max_; /// t_max - last value of t to use for tMIR inequalities
213
- int q_min_; /// q_min - first value of t to use for 2-Step tMIR inequalities
214
- int q_max_; /// q_max - last value of t to use for 2-Step tMIR inequalities
215
- int a_max_; /// a_max - maximum value of bhat/alpha
216
- int max_elements_; /// Maximum number of elements in cut
217
- int max_elements_root_; /// Maximum number of elements in cut at root
218
- int form_nrows_; //number of rows on which formulation cuts will be generated
219
- //@}
220
- };
221
-
222
- //#############################################################################
223
-
224
- /*
225
- #include <stdlib.h>
226
- #include <stdio.h>
227
- #include <stdarg.h>
228
- #include <math.h>
229
- #include <float.h>
230
- #include <cassert>
231
- #include <iostream.h>
232
- */
233
-
234
- /******************** DEBUG DEFINITIONS ***************************************/
235
-
236
- #define DGG_DEBUG_DGG 1
237
- #define DGG_TRACE_ERRORS 0
238
- #define DGG_DISPLAY 0
239
- #define DGG_AUTO_CHECK_CUT_OFF_OPTIMAL 1
240
-
241
- /******************** CONFIGURATION DEFAULTS **********************************/
242
-
243
- #define DGG_DEFAULT_METHOD 2
244
- #define DGG_DEFAULT_TMIN 1
245
- #define DGG_DEFAULT_TMAX 1
246
- #define DGG_DEFAULT_TAUMIN 2
247
- #define DGG_DEFAULT_TAUMAX 6
248
- #define DGG_DEFAULT_MAX_CUTS 500
249
- #define DGG_DEFAULT_IMPROVEMENT_THRESH 0.001
250
- #define DGG_DEFAULT_NBELOW_THRESH INT_MAX
251
- #define DGG_DEFAULT_NROOT_ROUNDS 2
252
- #define DGG_DEFAULT_NEGATIVE_SCALED_TWOSTEPS 0
253
- #define DGG_DEFAULT_ALPHA_RULE 0
254
- #define DGG_DEFAULT_CUT_INC 250
255
- #define DGG_DEFAULT_CUT_FORM 0
256
- #define DGG_DEFAULT_NICEFY 0
257
- #define DGG_DEFAULT_ONLY_DELAYED 0
258
- #define DGG_DEFAULT_DELAYED_FREQ 9999999
259
- #define DGG_DEFAULT_LPROWS_FREQ 9999999
260
- #define DGG_DEFAULT_WHICH_FORMULATION_CUTS 2
261
-
262
- /******************** SOLVER CONFIGURATION DEFINITIONS ************************/
263
-
264
- #define DGG_OSI 0
265
- #define DGG_CPX 1
266
- #define DGG_QSO 2
267
-
268
- /* determines the solver to be used */
269
- #define DGG_SOLVER DGG_OSI
270
-
271
- /* adds checking routines to make sure solver works as expected */
272
- #define DGG_DEBUG_SOLVER 0
273
-
274
- /* turn off screen output from solver */
275
- #define DGG_SOLVER_SCREEN_FLAG 0
276
-
277
- /******************** CUT DEFINITIONS *****************************************/
278
-
279
- /* internal names for cut types */
280
- #define DGG_TMIR_CUT 1
281
- #define DGG_2STEP_CUT 2
282
-
283
- /* internal names for alpha-selection rules */
284
- #define DGG_ALPHA_MIN_SUM 0
285
- #define DGG_ALPHA_RANDOM_01 1
286
- #define DGG_ALPHA_RANDOM_COEFF 2
287
- #define DGG_ALPHA_ALL 3
288
- #define DGG_ALPHA_MAX_STEEP 5
289
-
290
- /******************** PRECISION & NUMERICAL ISSUES DEFINITIONS ****************/
291
-
292
- /* how steep a cut must be before adding it to the lp */
293
- #define DGG_MIN_STEEPNESS 1.0e-4
294
- #define DGG_MAX_L2NORM 1.0e7
295
-
296
- /* 0 = min steepness, 1 = max norm */
297
- #define DGG_NORM_CRITERIA 1
298
-
299
- /* internal representation of +infinity */
300
- #define UB_MAX DBL_MAX
301
-
302
- /* used to define how fractional a basic-integer variable must be
303
- before choosing to use it to generate a TMIR cut on.
304
- OSI's default is 1.0e-7 */
305
- #define DGG_GOMORY_THRESH 0.005
306
-
307
- #define DGG_RHS_THRESH 0.005
308
-
309
- /* used for comparing variables to their upper bounds.
310
- OSI's default is 1.0e-7.
311
- We set it to 1.0e6 because e-7 seems too sensitive.
312
- In fact, with e-7 the problem dsbmip.mps complains. */
313
- #define DGG_BOUND_THRESH 1.0e-6
314
-
315
- /* used for comparing the lhs (activity) value of a tableau row
316
- with the rhs. This is only used for debugging purposes. */
317
- #define DGG_EQUALITY_THRESH 1.0e-5
318
-
319
- /* used for comparing a variable's lower bound to 0.0
320
- and determining if we need to shift the variable */
321
- #define DGG_SHIFT_THRESH 1.0e-6
322
-
323
- /* used for determing how far from an integer is still an integer.
324
- This value is used for comparing coefficients to integers.
325
- OSI's default is 1.0e-10. */
326
- #define DGG_INTEGRALITY_THRESH 1.0e-10
327
-
328
- /* the min value that a coeff can have in the tableau row
329
- before being set to zero. */
330
- #define CBC_CHECK_CUT
331
- #ifndef CBC_CHECK_CUT
332
- #define DGG_MIN_TABLEAU_COEFFICIENT 1.0e-8
333
- #else
334
- #define DGG_MIN_TABLEAU_COEFFICIENT 1.0e-12
335
- #endif
336
-
337
- /* smallest value rho is allowed to have for a simple 2-step MIR
338
- (ie: not an extended two-step MIR) */
339
- #define DGG_MIN_RHO 1.0e-7
340
- #define DGG_MIN_ALPHA 1.0e-7
341
-
342
- /* when a slack is null: used to check if a cut is satisfied or not. */
343
- #define DGG_NULL_SLACK 1.0e-5
344
-
345
- /* nicefy constants */
346
- #define DGG_NICEFY_MIN_ABSVALUE 1.0e-13
347
- #define DGG_NICEFY_MIN_FIX 1.0e-7
348
- #define DGG_NICEFY_MAX_PADDING 1.0e-6
349
- #define DGG_NICEFY_MAX_RATIO 1.0e9
350
-
351
-
352
- /******************** ERROR-CATCHING MACROS ***********************************/
353
- #if DGG_TRACE_ERRORS > 0
354
-
355
- #define __DGG_PRINT_LOC__(F) fprintf(((F==0)?stdout:F), " in %s (%s:%d)\n", __func__, __FILE__, __LINE__)
356
-
357
- #define DGG_THROW(A,REST...) {\
358
- fprintf(stdout, ##REST); \
359
- __DGG_PRINT_LOC__(stdout); \
360
- return (A);}
361
-
362
- #define DGG_IF_EXIT(A,B,REST...) {\
363
- if(A) {\
364
- fprintf(stdout, ##REST); \
365
- __DGG_PRINT_LOC__(stdout); \
366
- exit(B);}}
367
-
368
- #define DGG_CHECKRVAL(A,B) {\
369
- if(A) {\
370
- __DGG_PRINT_LOC__(stdout); \
371
- return B; } }
372
-
373
- #define DGG_CHECKRVAL1(A,B) {\
374
- if(A) {\
375
- __DGG_PRINT_LOC__(stdout); \
376
- rval = B; goto CLEANUP; } }
377
-
378
- #define DGG_WARNING(A, REST...) {\
379
- if(A) {\
380
- fprintf(stdout, ##REST); \
381
- __DGG_PRINT_LOC__(stdout); \
382
- }}
383
-
384
- #define DGG_TEST(A,B,REST...) {\
385
- if(A) DGG_THROW(B,##REST) }
386
-
387
- #define DGG_TEST2(A,B,C,REST) {DGG_TEST(A,B,C,REST) }
388
- #define DGG_TEST3(A,B,C,D,REST) {DGG_TEST(A,B,C,D,REST) }
389
-
390
- #else
391
-
392
- #define DGG_IF_EXIT(A,B,REST) {if(A) {fprintf(stdout, REST);exit(B);}}
393
-
394
- #define DGG_THROW(A,B) return(A)
395
-
396
- #define DGG_CHECKRVAL(A,B) { if(A) return(B); }
397
- #define DGG_CHECKRVAL1(A,B){ if(A) { rval = B; goto CLEANUP; } }
398
-
399
- #define DGG_TEST(A,B,REST) { if(A) return(B);}
400
- #define DGG_TEST2(A,B,REST,C) { DGG_TEST(A,B,REST) }
401
- #define DGG_TEST3(A,B,REST,C,D) { DGG_TEST(A,B,REST) }
402
-
403
- #endif
404
-
405
- /******************** SIMPLE MACROS AND FUNCTIONS *****************************/
406
-
407
- #define DGG_MIN(a,b) ( (a<b)?a:b )
408
- #define DGG_MAX(a,b) ( (a>b)?a:b )
409
- #define KREM(vht,alpha,tau) (DGG_MIN( ceil(vht / alpha), tau ) - 1)
410
- #define LMIN(vht, d, bht) (DGG_MIN( floor(d*bht/bht), d))
411
- #define ABOV(v) (v - floor(v))
412
- #define QINT(vht,bht,tau) ( (int)floor( (vht*(tau-1))/bht ) )
413
- #define V2I(bht,tau,i) ( ((i+1)*bht / tau) )
414
-
415
- int DGG_is_even(double vht, double bht, int tau, int q);
416
- double frac_part(double value);
417
- int DGG_is_a_multiple_of_b(double a, double b);
418
-
419
-
420
- /* free function for DGG_data_t. Frees internal arrays and data structure */
421
- int DGG_freeData( DGG_data_t *data );
422
-
423
- /******************** CONSTRAINT ADTs *****************************************/
424
- DGG_constraint_t* DGG_newConstraint(int max_arrays);
425
- void DGG_freeConstraint(DGG_constraint_t *c);
426
- DGG_constraint_t *DGG_copyConstraint(DGG_constraint_t *c);
427
- void DGG_scaleConstraint(DGG_constraint_t *c, int t);
428
-
429
- /******************** CONFIGURATION *******************************************/
430
- void DGG_list_init (DGG_list_t *l);
431
- int DGG_list_addcut (DGG_list_t *l, DGG_constraint_t *cut, int ctype, double alpha);
432
- void DGG_list_delcut (DGG_list_t *l, int i);
433
- void DGG_list_free(DGG_list_t *l);
434
-
435
- /******************* SOLVER SPECIFIC METHODS **********************************/
436
- DGG_data_t *DGG_getData(const void *solver_ptr);
437
-
438
- /******************* CONSTRAINT MANIPULATION **********************************/
439
-
440
- /* DGG_transformConstraint: manipulates a constraint in the following way:
441
-
442
- packs everything in output
443
-
444
- 1 - variables at their upper bounds are substituted for their
445
- complements. This is done by adjusting the coefficients and
446
- the right hand side (simple substitution).
447
-
448
- 2 - variables with non-zero lower bounds are shifted. */
449
-
450
- int DGG_transformConstraint( DGG_data_t *data,
451
- double **x_out,
452
- double **rc_out,
453
- char **isint_out,
454
- DGG_constraint_t *constraint );
455
-
456
- /* DGG_unTransformConstraint :
457
-
458
- 1 - Undoes step (1) of DGG_transformConstraint
459
- 2 - Undoes step (2) of DGG_transformConstraint */
460
-
461
- int DGG_unTransformConstraint( DGG_data_t *data,
462
- DGG_constraint_t *constraint );
463
-
464
- /* substitutes each slack variable by the structural variables which
465
- define it. This function, hence, changes the constraint 'cut'. */
466
-
467
- int DGG_substituteSlacks( const void *solver_ptr,
468
- DGG_data_t *data,
469
- DGG_constraint_t *cut );
470
-
471
- int DGG_nicefyConstraint( const void *solver_ptr,
472
- DGG_data_t *data,
473
- DGG_constraint_t *cut);
474
-
475
- /******************* CUT GENERATION *******************************************/
476
- int DGG_getFormulaConstraint( int row_idx,
477
- const void *solver_ptr,
478
- DGG_data_t *data,
479
- DGG_constraint_t* row );
480
-
481
- int DGG_getTableauConstraint( int index,
482
- const void *solver_ptr,
483
- DGG_data_t *data,
484
- DGG_constraint_t* tabrow,
485
- const int * colIsBasic,
486
- const int * rowIsBasic,
487
- CoinFactorization & factorization,
488
- int mode );
489
-
490
- DGG_constraint_t* DGG_getSlackExpression(const void *solver_ptr, DGG_data_t* data, int row_index);
491
-
492
- int DGG_generateTabRowCuts( DGG_list_t *list,
493
- DGG_data_t *data,
494
- const void *solver_ptr );
495
-
496
- int DGG_generateFormulationCuts( DGG_list_t *list,
497
- DGG_data_t *data,
498
- const void *solver_ptr,
499
- int nrows,
500
- CoinThreadRandom & generator);
501
-
502
-
503
- int DGG_generateFormulationCutsFromBase( DGG_constraint_t *base,
504
- double slack,
505
- DGG_list_t *list,
506
- DGG_data_t *data,
507
- const void *solver_ptr,
508
- CoinThreadRandom & generator);
509
-
510
- int DGG_generateCutsFromBase( DGG_constraint_t *base,
511
- DGG_list_t *list,
512
- DGG_data_t *data,
513
- const void *solver_ptr );
514
-
515
- int DGG_buildMir( char *isint,
516
- DGG_constraint_t *base,
517
- DGG_constraint_t **cut_out );
518
-
519
- int DGG_build2step( double alpha,
520
- char *isint,
521
- DGG_constraint_t *base,
522
- DGG_constraint_t **cut_out );
523
-
524
- int DGG_addMirToList ( DGG_constraint_t *base,
525
- char *isint,
526
- double *x,
527
- DGG_list_t *list,
528
- DGG_data_t *data,
529
- DGG_constraint_t *orig_base );
530
-
531
- int DGG_add2stepToList ( DGG_constraint_t *base,
532
- char *isint,
533
- double *x,
534
- double *rc,
535
- DGG_list_t *list,
536
- DGG_data_t *data,
537
- DGG_constraint_t *orig_base );
538
-
539
- /******************* CUT INFORMATION ******************************************/
540
-
541
- double DGG_cutLHS(DGG_constraint_t *c, double *x);
542
- int DGG_isCutDesirable(DGG_constraint_t *c, DGG_data_t *d);
543
-
544
- /******************* TEST / DEBUGGING ROUTINES ********************************/
545
-
546
- int DGG_isConstraintViolated(DGG_data_t *d, DGG_constraint_t *c);
547
-
548
- int DGG_isBaseTrivial(DGG_data_t *d, DGG_constraint_t* c);
549
- int DGG_is2stepValid(double alpha, double bht);
550
-
551
- int DGG_cutsOffPoint(double *x, DGG_constraint_t *cut);
552
-
553
- //#############################################################################
554
- /** A function that tests the methods in the CglTwomir class. The
555
- only reason for it not to be a member method is that this way it doesn't
556
- have to be compiled into the library. And that's a gain, because the
557
- library should be compiled with optimization on, but this method should be
558
- compiled with debugging. */
559
- void CglTwomirUnitTest(const OsiSolverInterface * siP,
560
- const std::string mpdDir);
561
-
562
-
563
- #endif
564
-
565
-