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,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
-