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,244 +0,0 @@
1
- /* $Id: ClpSimplexPrimal.hpp 1665 2011-01-04 17:55:54Z lou $ */
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
- Authors
7
-
8
- John Forrest
9
-
10
- */
11
- #ifndef ClpSimplexPrimal_H
12
- #define ClpSimplexPrimal_H
13
-
14
- #include "ClpSimplex.hpp"
15
-
16
- /** This solves LPs using the primal simplex method
17
-
18
- It inherits from ClpSimplex. It has no data of its own and
19
- is never created - only cast from a ClpSimplex object at algorithm time.
20
-
21
- */
22
-
23
- class ClpSimplexPrimal : public ClpSimplex {
24
-
25
- public:
26
-
27
- /**@name Description of algorithm */
28
- //@{
29
- /** Primal algorithm
30
-
31
- Method
32
-
33
- It tries to be a single phase approach with a weight of 1.0 being
34
- given to getting optimal and a weight of infeasibilityCost_ being
35
- given to getting primal feasible. In this version I have tried to
36
- be clever in a stupid way. The idea of fake bounds in dual
37
- seems to work so the primal analogue would be that of getting
38
- bounds on reduced costs (by a presolve approach) and using
39
- these for being above or below feasible region. I decided to waste
40
- memory and keep these explicitly. This allows for non-linear
41
- costs! I have not tested non-linear costs but will be glad
42
- to do something if a reasonable example is provided.
43
-
44
- The code is designed to take advantage of sparsity so arrays are
45
- seldom zeroed out from scratch or gone over in their entirety.
46
- The only exception is a full scan to find incoming variable for
47
- Dantzig row choice. For steepest edge we keep an updated list
48
- of dual infeasibilities (actually squares).
49
- On easy problems we don't need full scan - just
50
- pick first reasonable. This method has not been coded.
51
-
52
- One problem is how to tackle degeneracy and accuracy. At present
53
- I am using the modification of costs which I put in OSL and which was
54
- extended by Gill et al. I am still not sure whether we will also
55
- need explicit perturbation.
56
-
57
- The flow of primal is three while loops as follows:
58
-
59
- while (not finished) {
60
-
61
- while (not clean solution) {
62
-
63
- Factorize and/or clean up solution by changing bounds so
64
- primal feasible. If looks finished check fake primal bounds.
65
- Repeat until status is iterating (-1) or finished (0,1,2)
66
-
67
- }
68
-
69
- while (status==-1) {
70
-
71
- Iterate until no pivot in or out or time to re-factorize.
72
-
73
- Flow is:
74
-
75
- choose pivot column (incoming variable). if none then
76
- we are primal feasible so looks as if done but we need to
77
- break and check bounds etc.
78
-
79
- Get pivot column in tableau
80
-
81
- Choose outgoing row. If we don't find one then we look
82
- primal unbounded so break and check bounds etc. (Also the
83
- pivot tolerance is larger after any iterations so that may be
84
- reason)
85
-
86
- If we do find outgoing row, we may have to adjust costs to
87
- keep going forwards (anti-degeneracy). Check pivot will be stable
88
- and if unstable throw away iteration and break to re-factorize.
89
- If minor error re-factorize after iteration.
90
-
91
- Update everything (this may involve changing bounds on
92
- variables to stay primal feasible.
93
-
94
- }
95
-
96
- }
97
-
98
- TODO's (or maybe not)
99
-
100
- At present we never check we are going forwards. I overdid that in
101
- OSL so will try and make a last resort.
102
-
103
- Needs partial scan pivot in option.
104
-
105
- May need other anti-degeneracy measures, especially if we try and use
106
- loose tolerances as a way to solve in fewer iterations.
107
-
108
- I like idea of dynamic scaling. This gives opportunity to decouple
109
- different implications of scaling for accuracy, iteration count and
110
- feasibility tolerance.
111
-
112
- for use of exotic parameter startFinishoptions see Clpsimplex.hpp
113
- */
114
-
115
- int primal(int ifValuesPass = 0, int startFinishOptions = 0);
116
- //@}
117
-
118
- /**@name For advanced users */
119
- //@{
120
- /// Do not change infeasibility cost and always say optimal
121
- void alwaysOptimal(bool onOff);
122
- bool alwaysOptimal() const;
123
- /** Normally outgoing variables can go out to slightly negative
124
- values (but within tolerance) - this is to help stability and
125
- and degeneracy. This can be switched off
126
- */
127
- void exactOutgoing(bool onOff);
128
- bool exactOutgoing() const;
129
- //@}
130
-
131
- /**@name Functions used in primal */
132
- //@{
133
- /** This has the flow between re-factorizations
134
-
135
- Returns a code to say where decision to exit was made
136
- Problem status set to:
137
-
138
- -2 re-factorize
139
- -4 Looks optimal/infeasible
140
- -5 Looks unbounded
141
- +3 max iterations
142
-
143
- valuesOption has original value of valuesPass
144
- */
145
- int whileIterating(int valuesOption);
146
-
147
- /** Do last half of an iteration. This is split out so people can
148
- force incoming variable. If solveType_ is 2 then this may
149
- re-factorize while normally it would exit to re-factorize.
150
- Return codes
151
- Reasons to come out (normal mode/user mode):
152
- -1 normal
153
- -2 factorize now - good iteration/ NA
154
- -3 slight inaccuracy - refactorize - iteration done/ same but factor done
155
- -4 inaccuracy - refactorize - no iteration/ NA
156
- -5 something flagged - go round again/ pivot not possible
157
- +2 looks unbounded
158
- +3 max iterations (iteration done)
159
-
160
- With solveType_ ==2 this should
161
- Pivot in a variable and choose an outgoing one. Assumes primal
162
- feasible - will not go through a bound. Returns step length in theta
163
- Returns ray in ray_
164
- */
165
- int pivotResult(int ifValuesPass = 0);
166
-
167
-
168
- /** The primals are updated by the given array.
169
- Returns number of infeasibilities.
170
- After rowArray will have cost changes for use next iteration
171
- */
172
- int updatePrimalsInPrimal(CoinIndexedVector * rowArray,
173
- double theta,
174
- double & objectiveChange,
175
- int valuesPass);
176
- /**
177
- Row array has pivot column
178
- This chooses pivot row.
179
- Rhs array is used for distance to next bound (for speed)
180
- For speed, we may need to go to a bucket approach when many
181
- variables go through bounds
182
- If valuesPass non-zero then compute dj for direction
183
- */
184
- void primalRow(CoinIndexedVector * rowArray,
185
- CoinIndexedVector * rhsArray,
186
- CoinIndexedVector * spareArray,
187
- int valuesPass);
188
- /**
189
- Chooses primal pivot column
190
- updateArray has cost updates (also use pivotRow_ from last iteration)
191
- Would be faster with separate region to scan
192
- and will have this (with square of infeasibility) when steepest
193
- For easy problems we can just choose one of the first columns we look at
194
- */
195
- void primalColumn(CoinIndexedVector * updateArray,
196
- CoinIndexedVector * spareRow1,
197
- CoinIndexedVector * spareRow2,
198
- CoinIndexedVector * spareColumn1,
199
- CoinIndexedVector * spareColumn2);
200
-
201
- /** Checks if tentative optimal actually means unbounded in primal
202
- Returns -3 if not, 2 if is unbounded */
203
- int checkUnbounded(CoinIndexedVector * ray, CoinIndexedVector * spare,
204
- double changeCost);
205
- /** Refactorizes if necessary
206
- Checks if finished. Updates status.
207
- lastCleaned refers to iteration at which some objective/feasibility
208
- cleaning too place.
209
-
210
- type - 0 initial so set up save arrays etc
211
- - 1 normal -if good update save
212
- - 2 restoring from saved
213
- saveModel is normally NULL but may not be if doing Sprint
214
- */
215
- void statusOfProblemInPrimal(int & lastCleaned, int type,
216
- ClpSimplexProgress * progress,
217
- bool doFactorization,
218
- int ifValuesPass,
219
- ClpSimplex * saveModel = NULL);
220
- /// Perturbs problem (method depends on perturbation())
221
- void perturb(int type);
222
- /// Take off effect of perturbation and say whether to try dual
223
- bool unPerturb();
224
- /// Unflag all variables and return number unflagged
225
- int unflag();
226
- /** Get next superbasic -1 if none,
227
- Normal type is 1
228
- If type is 3 then initializes sorted list
229
- if 2 uses list.
230
- */
231
- int nextSuperBasic(int superBasicType, CoinIndexedVector * columnArray);
232
-
233
- /// Create primal ray
234
- void primalRay(CoinIndexedVector * rowArray);
235
- /// Clears all bits and clears rowArray[1] etc
236
- void clearAll();
237
-
238
- /// Sort of lexicographic resolve
239
- int lexSolve();
240
-
241
- //@}
242
- };
243
- #endif
244
-
@@ -1,446 +0,0 @@
1
- /* $Id: ClpSolve.hpp 2078 2015-01-05 12:39:49Z 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
- Authors
7
-
8
- John Forrest
9
-
10
- */
11
- #ifndef ClpSolve_H
12
- #define ClpSolve_H
13
-
14
- /**
15
- This is a very simple class to guide algorithms. It is used to tidy up
16
- passing parameters to initialSolve and maybe for output from that
17
-
18
- */
19
-
20
- class ClpSolve {
21
-
22
- public:
23
-
24
- /** enums for solve function */
25
- enum SolveType {
26
- useDual = 0,
27
- usePrimal,
28
- usePrimalorSprint,
29
- useBarrier,
30
- useBarrierNoCross,
31
- automatic,
32
- tryDantzigWolfe,
33
- tryBenders,
34
- notImplemented
35
- };
36
- enum PresolveType {
37
- presolveOn = 0,
38
- presolveOff,
39
- presolveNumber,
40
- presolveNumberCost
41
- };
42
-
43
- /**@name Constructors and destructor and copy */
44
- //@{
45
- /// Default constructor
46
- ClpSolve ( );
47
- /// Constructor when you really know what you are doing
48
- ClpSolve ( SolveType method, PresolveType presolveType,
49
- int numberPasses, int options[6],
50
- int extraInfo[6], int independentOptions[3]);
51
- /// Generates code for above constructor
52
- void generateCpp(FILE * fp);
53
- /// Copy constructor.
54
- ClpSolve(const ClpSolve &);
55
- /// Assignment operator. This copies the data
56
- ClpSolve & operator=(const ClpSolve & rhs);
57
- /// Destructor
58
- ~ClpSolve ( );
59
- //@}
60
-
61
- /**@name Functions most useful to user */
62
- //@{
63
- /** Special options - bits
64
- 0 4 - use crash (default allslack in dual, idiot in primal)
65
- 8 - all slack basis in primal
66
- 2 16 - switch off interrupt handling
67
- 3 32 - do not try and make plus minus one matrix
68
- 64 - do not use sprint even if problem looks good
69
- */
70
- /** which translation is:
71
- which:
72
- 0 - startup in Dual (nothing if basis exists).:
73
- 0 - no basis
74
- 1 - crash
75
- 2 - use initiative about idiot! but no crash
76
- 1 - startup in Primal (nothing if basis exists):
77
- 0 - use initiative
78
- 1 - use crash
79
- 2 - use idiot and look at further info
80
- 3 - use sprint and look at further info
81
- 4 - use all slack
82
- 5 - use initiative but no idiot
83
- 6 - use initiative but no sprint
84
- 7 - use initiative but no crash
85
- 8 - do allslack or idiot
86
- 9 - do allslack or sprint
87
- 10 - slp before
88
- 11 - no nothing and primal(0)
89
- 2 - interrupt handling - 0 yes, 1 no (for threadsafe)
90
- 3 - whether to make +- 1matrix - 0 yes, 1 no
91
- 4 - for barrier
92
- 0 - dense cholesky
93
- 1 - Wssmp allowing some long columns
94
- 2 - Wssmp not allowing long columns
95
- 3 - Wssmp using KKT
96
- 4 - Using Florida ordering
97
- 8 - bit set to do scaling
98
- 16 - set to be aggressive with gamma/delta?
99
- 32 - Use KKT
100
- 5 - for presolve
101
- 1 - switch off dual stuff
102
- 6 - extra switches
103
-
104
- */
105
- void setSpecialOption(int which, int value, int extraInfo = -1);
106
- int getSpecialOption(int which) const;
107
-
108
- /// Solve types
109
- void setSolveType(SolveType method, int extraInfo = -1);
110
- SolveType getSolveType();
111
-
112
- // Presolve types
113
- void setPresolveType(PresolveType amount, int extraInfo = -1);
114
- PresolveType getPresolveType();
115
- int getPresolvePasses() const;
116
- /// Extra info for idiot (or sprint)
117
- int getExtraInfo(int which) const;
118
- /** Say to return at once if infeasible,
119
- default is to solve */
120
- void setInfeasibleReturn(bool trueFalse);
121
- inline bool infeasibleReturn() const {
122
- return independentOptions_[0] != 0;
123
- }
124
- /// Whether we want to do dual part of presolve
125
- inline bool doDual() const {
126
- return (independentOptions_[1] & 1) == 0;
127
- }
128
- inline void setDoDual(bool doDual_) {
129
- if (doDual_) independentOptions_[1] &= ~1;
130
- else independentOptions_[1] |= 1;
131
- }
132
- /// Whether we want to do singleton part of presolve
133
- inline bool doSingleton() const {
134
- return (independentOptions_[1] & 2) == 0;
135
- }
136
- inline void setDoSingleton(bool doSingleton_) {
137
- if (doSingleton_) independentOptions_[1] &= ~2;
138
- else independentOptions_[1] |= 2;
139
- }
140
- /// Whether we want to do doubleton part of presolve
141
- inline bool doDoubleton() const {
142
- return (independentOptions_[1] & 4) == 0;
143
- }
144
- inline void setDoDoubleton(bool doDoubleton_) {
145
- if (doDoubleton_) independentOptions_[1] &= ~4;
146
- else independentOptions_[1] |= 4;
147
- }
148
- /// Whether we want to do tripleton part of presolve
149
- inline bool doTripleton() const {
150
- return (independentOptions_[1] & 8) == 0;
151
- }
152
- inline void setDoTripleton(bool doTripleton_) {
153
- if (doTripleton_) independentOptions_[1] &= ~8;
154
- else independentOptions_[1] |= 8;
155
- }
156
- /// Whether we want to do tighten part of presolve
157
- inline bool doTighten() const {
158
- return (independentOptions_[1] & 16) == 0;
159
- }
160
- inline void setDoTighten(bool doTighten_) {
161
- if (doTighten_) independentOptions_[1] &= ~16;
162
- else independentOptions_[1] |= 16;
163
- }
164
- /// Whether we want to do forcing part of presolve
165
- inline bool doForcing() const {
166
- return (independentOptions_[1] & 32) == 0;
167
- }
168
- inline void setDoForcing(bool doForcing_) {
169
- if (doForcing_) independentOptions_[1] &= ~32;
170
- else independentOptions_[1] |= 32;
171
- }
172
- /// Whether we want to do impliedfree part of presolve
173
- inline bool doImpliedFree() const {
174
- return (independentOptions_[1] & 64) == 0;
175
- }
176
- inline void setDoImpliedFree(bool doImpliedfree) {
177
- if (doImpliedfree) independentOptions_[1] &= ~64;
178
- else independentOptions_[1] |= 64;
179
- }
180
- /// Whether we want to do dupcol part of presolve
181
- inline bool doDupcol() const {
182
- return (independentOptions_[1] & 128) == 0;
183
- }
184
- inline void setDoDupcol(bool doDupcol_) {
185
- if (doDupcol_) independentOptions_[1] &= ~128;
186
- else independentOptions_[1] |= 128;
187
- }
188
- /// Whether we want to do duprow part of presolve
189
- inline bool doDuprow() const {
190
- return (independentOptions_[1] & 256) == 0;
191
- }
192
- inline void setDoDuprow(bool doDuprow_) {
193
- if (doDuprow_) independentOptions_[1] &= ~256;
194
- else independentOptions_[1] |= 256;
195
- }
196
- /// Whether we want to do singleton column part of presolve
197
- inline bool doSingletonColumn() const {
198
- return (independentOptions_[1] & 512) == 0;
199
- }
200
- inline void setDoSingletonColumn(bool doSingleton_) {
201
- if (doSingleton_) independentOptions_[1] &= ~512;
202
- else independentOptions_[1] |= 512;
203
- }
204
- /// Whether we want to kill small substitutions
205
- inline bool doKillSmall() const {
206
- return (independentOptions_[1] & 8192) == 0;
207
- }
208
- inline void setDoKillSmall(bool doKill) {
209
- if (doKill) independentOptions_[1] &= ~8192;
210
- else independentOptions_[1] |= 8192;
211
- }
212
- /// Set whole group
213
- inline int presolveActions() const {
214
- return independentOptions_[1] & 0xffff;
215
- }
216
- inline void setPresolveActions(int action) {
217
- independentOptions_[1] = (independentOptions_[1] & 0xffff0000) | (action & 0xffff);
218
- }
219
- /// Largest column for substitution (normally 3)
220
- inline int substitution() const {
221
- return independentOptions_[2];
222
- }
223
- inline void setSubstitution(int value) {
224
- independentOptions_[2] = value;
225
- }
226
- inline void setIndependentOption(int type,int value) {
227
- independentOptions_[type] = value;
228
- }
229
- inline int independentOption(int type) const {
230
- return independentOptions_[type];
231
- }
232
- //@}
233
-
234
- ////////////////// data //////////////////
235
- private:
236
-
237
- /**@name data.
238
- */
239
- //@{
240
- /// Solve type
241
- SolveType method_;
242
- /// Presolve type
243
- PresolveType presolveType_;
244
- /// Amount of presolve
245
- int numberPasses_;
246
- /// Options - last is switch for OsiClp
247
- int options_[7];
248
- /// Extra information
249
- int extraInfo_[7];
250
- /** Extra algorithm dependent options
251
- 0 - if set return from clpsolve if infeasible
252
- 1 - To be copied over to presolve options
253
- 2 - max substitution level
254
- If Dantzig Wolfe/benders 0 is number blocks, 2 is #passes (notional)
255
- */
256
- int independentOptions_[3];
257
- //@}
258
- };
259
-
260
- /// For saving extra information to see if looping.
261
- class ClpSimplexProgress {
262
-
263
- public:
264
-
265
-
266
- /**@name Constructors and destructor and copy */
267
- //@{
268
- /// Default constructor
269
- ClpSimplexProgress ( );
270
-
271
- /// Constructor from model
272
- ClpSimplexProgress ( ClpSimplex * model );
273
-
274
- /// Copy constructor.
275
- ClpSimplexProgress(const ClpSimplexProgress &);
276
-
277
- /// Assignment operator. This copies the data
278
- ClpSimplexProgress & operator=(const ClpSimplexProgress & rhs);
279
- /// Destructor
280
- ~ClpSimplexProgress ( );
281
- /// Resets as much as possible
282
- void reset();
283
- /// Fill from model
284
- void fillFromModel ( ClpSimplex * model );
285
-
286
- //@}
287
-
288
- /**@name Check progress */
289
- //@{
290
- /** Returns -1 if okay, -n+1 (n number of times bad) if bad but action taken,
291
- >=0 if give up and use as problem status
292
- */
293
- int looping ( );
294
- /// Start check at beginning of whileIterating
295
- void startCheck();
296
- /// Returns cycle length in whileIterating
297
- int cycle(int in, int out, int wayIn, int wayOut);
298
-
299
- /// Returns previous objective (if -1) - current if (0)
300
- double lastObjective(int back = 1) const;
301
- /// Set real primal infeasibility and move back
302
- void setInfeasibility(double value);
303
- /// Returns real primal infeasibility (if -1) - current if (0)
304
- double lastInfeasibility(int back = 1) const;
305
- /// Returns number of primal infeasibilities (if -1) - current if (0)
306
- int numberInfeasibilities(int back = 1) const;
307
- /// Modify objective e.g. if dual infeasible in dual
308
- void modifyObjective(double value);
309
- /// Returns previous iteration number (if -1) - current if (0)
310
- int lastIterationNumber(int back = 1) const;
311
- /// clears all iteration numbers (to switch off panic)
312
- void clearIterationNumbers();
313
- /// Odd state
314
- inline void newOddState() {
315
- oddState_ = - oddState_ - 1;
316
- }
317
- inline void endOddState() {
318
- oddState_ = abs(oddState_);
319
- }
320
- inline void clearOddState() {
321
- oddState_ = 0;
322
- }
323
- inline int oddState() const {
324
- return oddState_;
325
- }
326
- /// number of bad times
327
- inline int badTimes() const {
328
- return numberBadTimes_;
329
- }
330
- inline void clearBadTimes() {
331
- numberBadTimes_ = 0;
332
- }
333
- /// number of really bad times
334
- inline int reallyBadTimes() const {
335
- return numberReallyBadTimes_;
336
- }
337
- inline void incrementReallyBadTimes() {
338
- numberReallyBadTimes_++;
339
- }
340
- /// number of times flagged
341
- inline int timesFlagged() const {
342
- return numberTimesFlagged_;
343
- }
344
- inline void clearTimesFlagged() {
345
- numberTimesFlagged_ = 0;
346
- }
347
- inline void incrementTimesFlagged() {
348
- numberTimesFlagged_++;
349
- }
350
-
351
- //@}
352
- /**@name Data */
353
- #define CLP_PROGRESS 5
354
- //#define CLP_PROGRESS_WEIGHT 10
355
- //@{
356
- /// Objective values
357
- double objective_[CLP_PROGRESS];
358
- /// Sum of infeasibilities for algorithm
359
- double infeasibility_[CLP_PROGRESS];
360
- /// Sum of real primal infeasibilities for primal
361
- double realInfeasibility_[CLP_PROGRESS];
362
- #ifdef CLP_PROGRESS_WEIGHT
363
- /// Objective values for weights
364
- double objectiveWeight_[CLP_PROGRESS_WEIGHT];
365
- /// Sum of infeasibilities for algorithm for weights
366
- double infeasibilityWeight_[CLP_PROGRESS_WEIGHT];
367
- /// Sum of real primal infeasibilities for primal for weights
368
- double realInfeasibilityWeight_[CLP_PROGRESS_WEIGHT];
369
- /// Drop for weights
370
- double drop_;
371
- /// Best? for weights
372
- double best_;
373
- #endif
374
- /// Initial weight for weights
375
- double initialWeight_;
376
- #define CLP_CYCLE 12
377
- /// For cycle checking
378
- //double obj_[CLP_CYCLE];
379
- int in_[CLP_CYCLE];
380
- int out_[CLP_CYCLE];
381
- char way_[CLP_CYCLE];
382
- /// Pointer back to model so we can get information
383
- ClpSimplex * model_;
384
- /// Number of infeasibilities
385
- int numberInfeasibilities_[CLP_PROGRESS];
386
- /// Iteration number at which occurred
387
- int iterationNumber_[CLP_PROGRESS];
388
- #ifdef CLP_PROGRESS_WEIGHT
389
- /// Number of infeasibilities for weights
390
- int numberInfeasibilitiesWeight_[CLP_PROGRESS_WEIGHT];
391
- /// Iteration number at which occurred for weights
392
- int iterationNumberWeight_[CLP_PROGRESS_WEIGHT];
393
- #endif
394
- /// Number of times checked (so won't stop too early)
395
- int numberTimes_;
396
- /// Number of times it looked like loop
397
- int numberBadTimes_;
398
- /// Number really bad times
399
- int numberReallyBadTimes_;
400
- /// Number of times no iterations as flagged
401
- int numberTimesFlagged_;
402
- /// If things are in an odd state
403
- int oddState_;
404
- //@}
405
- };
406
-
407
- #include "ClpConfig.h"
408
- #if CLP_HAS_ABC
409
- #include "AbcCommon.hpp"
410
- /// For saving extra information to see if looping.
411
- class AbcSimplexProgress : public ClpSimplexProgress {
412
-
413
- public:
414
-
415
-
416
- /**@name Constructors and destructor and copy */
417
- //@{
418
- /// Default constructor
419
- AbcSimplexProgress ( );
420
-
421
- /// Constructor from model
422
- AbcSimplexProgress ( ClpSimplex * model );
423
-
424
- /// Copy constructor.
425
- AbcSimplexProgress(const AbcSimplexProgress &);
426
-
427
- /// Assignment operator. This copies the data
428
- AbcSimplexProgress & operator=(const AbcSimplexProgress & rhs);
429
- /// Destructor
430
- ~AbcSimplexProgress ( );
431
-
432
- //@}
433
-
434
- /**@name Check progress */
435
- //@{
436
- /** Returns -1 if okay, -n+1 (n number of times bad) if bad but action taken,
437
- >=0 if give up and use as problem status
438
- */
439
- int looping ( );
440
-
441
- //@}
442
- /**@name Data */
443
- //@}
444
- };
445
- #endif
446
- #endif