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,176 +0,0 @@
1
- /* $Id: CoinAlloc.hpp 1438 2011-06-09 18:14:12Z stefan $ */
2
- // Copyright (C) 2007, 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 CoinAlloc_hpp
7
- #define CoinAlloc_hpp
8
-
9
- #include "CoinUtilsConfig.h"
10
- #include <cstdlib>
11
-
12
- #if !defined(COINUTILS_MEMPOOL_MAXPOOLED)
13
- # define COINUTILS_MEMPOOL_MAXPOOLED -1
14
- #endif
15
-
16
- #if (COINUTILS_MEMPOOL_MAXPOOLED >= 0)
17
-
18
- #ifndef COINUTILS_MEMPOOL_ALIGNMENT
19
- #define COINUTILS_MEMPOOL_ALIGNMENT 16
20
- #endif
21
-
22
- /* Note:
23
- This memory pool implementation assumes that sizeof(size_t) and
24
- sizeof(void*) are both <= COINUTILS_MEMPOOL_ALIGNMENT.
25
- Choosing an alignment of 4 will cause segfault on 64-bit platforms and may
26
- lead to bad performance on 32-bit platforms. So 8 is a mnimum recommended
27
- alignment. Probably 16 does not waste too much space either and may be even
28
- better for performance. One must play with it.
29
- */
30
-
31
- //#############################################################################
32
-
33
- #if (COINUTILS_MEMPOOL_ALIGNMENT == 16)
34
- static const std::size_t CoinAllocPtrShift = 4;
35
- static const std::size_t CoinAllocRoundMask = ~((std::size_t)15);
36
- #elif (COINUTILS_MEMPOOL_ALIGNMENT == 8)
37
- static const std::size_t CoinAllocPtrShift = 3;
38
- static const std::size_t CoinAllocRoundMask = ~((std::size_t)7);
39
- #else
40
- #error "COINUTILS_MEMPOOL_ALIGNMENT must be defined as 8 or 16 (or this code needs to be changed :-)"
41
- #endif
42
-
43
- //#############################################################################
44
-
45
- #ifndef COIN_MEMPOOL_SAVE_BLOCKHEADS
46
- # define COIN_MEMPOOL_SAVE_BLOCKHEADS 0
47
- #endif
48
-
49
- //#############################################################################
50
-
51
- class CoinMempool
52
- {
53
- private:
54
- #if (COIN_MEMPOOL_SAVE_BLOCKHEADS == 1)
55
- char** block_heads;
56
- std::size_t block_num;
57
- std::size_t max_block_num;
58
- #endif
59
- #if defined(COINUTILS_PTHREADS) && (COINUTILS_PTHREAD == 1)
60
- pthread_mutex_t mutex_;
61
- #endif
62
- int last_block_size_;
63
- char* first_free_;
64
- const std::size_t entry_size_;
65
-
66
- private:
67
- CoinMempool(const CoinMempool&);
68
- CoinMempool& operator=(const CoinMempool&);
69
-
70
- private:
71
- char* allocate_new_block();
72
- inline void lock_mutex() {
73
- #if defined(COINUTILS_PTHREADS) && (COINUTILS_PTHREAD == 1)
74
- pthread_mutex_lock(&mutex_);
75
- #endif
76
- }
77
- inline void unlock_mutex() {
78
- #if defined(COINUTILS_PTHREADS) && (COINUTILS_PTHREAD == 1)
79
- pthread_mutex_unlock(&mutex_);
80
- #endif
81
- }
82
-
83
- public:
84
- CoinMempool(std::size_t size = 0);
85
- ~CoinMempool();
86
-
87
- char* alloc();
88
- inline void dealloc(char *p)
89
- {
90
- char** pp = (char**)p;
91
- lock_mutex();
92
- *pp = first_free_;
93
- first_free_ = p;
94
- unlock_mutex();
95
- }
96
- };
97
-
98
- //#############################################################################
99
-
100
- /** A memory pool allocator.
101
-
102
- If a request arrives for allocating \c n bytes then it is first
103
- rounded up to the nearest multiple of \c sizeof(void*) (this is \c
104
- n_roundup), then one more \c sizeof(void*) is added to this
105
- number. If the result is no more than maxpooled_ then
106
- the appropriate pool is used to get a chunk of memory, if not,
107
- then malloc is used. In either case, the size of the allocated
108
- chunk is written into the first \c sizeof(void*) bytes and a
109
- pointer pointing afterwards is returned.
110
- */
111
-
112
- class CoinAlloc
113
- {
114
- private:
115
- CoinMempool* pool_;
116
- int maxpooled_;
117
- public:
118
- CoinAlloc();
119
- ~CoinAlloc() {}
120
-
121
- inline void* alloc(const std::size_t n)
122
- {
123
- if (maxpooled_ <= 0) {
124
- return std::malloc(n);
125
- }
126
- char *p = NULL;
127
- const std::size_t to_alloc =
128
- ((n+COINUTILS_MEMPOOL_ALIGNMENT-1) & CoinAllocRoundMask) +
129
- COINUTILS_MEMPOOL_ALIGNMENT;
130
- CoinMempool* pool = NULL;
131
- if (maxpooled_ > 0 && to_alloc >= (size_t)maxpooled_) {
132
- p = static_cast<char*>(std::malloc(to_alloc));
133
- if (p == NULL) throw std::bad_alloc();
134
- } else {
135
- pool = pool_ + (to_alloc >> CoinAllocPtrShift);
136
- p = pool->alloc();
137
- }
138
- *((CoinMempool**)p) = pool;
139
- return static_cast<void*>(p+COINUTILS_MEMPOOL_ALIGNMENT);
140
- }
141
-
142
- inline void dealloc(void* p)
143
- {
144
- if (maxpooled_ <= 0) {
145
- std::free(p);
146
- return;
147
- }
148
- if (p) {
149
- char* base = static_cast<char*>(p)-COINUTILS_MEMPOOL_ALIGNMENT;
150
- CoinMempool* pool = *((CoinMempool**)base);
151
- if (!pool) {
152
- std::free(base);
153
- } else {
154
- pool->dealloc(base);
155
- }
156
- }
157
- }
158
- };
159
-
160
- extern CoinAlloc CoinAllocator;
161
-
162
- //#############################################################################
163
-
164
- #if defined(COINUTILS_MEMPOOL_OVERRIDE_NEW) && (COINUTILS_MEMPOOL_OVERRIDE_NEW == 1)
165
- void* operator new(std::size_t size) throw (std::bad_alloc);
166
- void* operator new[](std::size_t) throw (std::bad_alloc);
167
- void operator delete(void*) throw();
168
- void operator delete[](void*) throw();
169
- void* operator new(std::size_t, const std::nothrow_t&) throw();
170
- void* operator new[](std::size_t, const std::nothrow_t&) throw();
171
- void operator delete(void*, const std::nothrow_t&) throw();
172
- void operator delete[](void*, const std::nothrow_t&) throw();
173
- #endif
174
-
175
- #endif /*(COINUTILS_MEMPOOL_MAXPOOLED >= 0)*/
176
- #endif
@@ -1,149 +0,0 @@
1
- /* $Id: CoinBuild.hpp 1416 2011-04-17 09:57:29Z stefan $ */
2
- // Copyright (C) 2005, 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 CoinBuild_H
7
- #define CoinBuild_H
8
-
9
-
10
- #include "CoinPragma.hpp"
11
- #include "CoinTypes.hpp"
12
- #include "CoinFinite.hpp"
13
-
14
-
15
- /**
16
- In many cases it is natural to build a model by adding one row at a time. In Coin this
17
- is inefficient so this class gives some help. An instance of CoinBuild can be built up
18
- more efficiently and then added to the Clp/OsiModel in one go.
19
-
20
- It may be more efficient to have fewer arrays and re-allocate them but this should
21
- give a large gain over addRow.
22
-
23
- I have now extended it to columns.
24
-
25
- */
26
-
27
- class CoinBuild {
28
-
29
- public:
30
- /**@name Useful methods */
31
- //@{
32
- /// add a row
33
- void addRow(int numberInRow, const int * columns,
34
- const double * elements, double rowLower=-COIN_DBL_MAX,
35
- double rowUpper=COIN_DBL_MAX);
36
- /// add a column
37
- void addColumn(int numberInColumn, const int * rows,
38
- const double * elements,
39
- double columnLower=0.0,
40
- double columnUpper=COIN_DBL_MAX, double objectiveValue=0.0);
41
- /// add a column
42
- inline void addCol(int numberInColumn, const int * rows,
43
- const double * elements,
44
- double columnLower=0.0,
45
- double columnUpper=COIN_DBL_MAX, double objectiveValue=0.0)
46
- { addColumn(numberInColumn, rows, elements, columnLower, columnUpper, objectiveValue);}
47
- /// Return number of rows or maximum found so far
48
- inline int numberRows() const
49
- { return (type_==0) ? numberItems_ : numberOther_;}
50
- /// Return number of columns or maximum found so far
51
- inline int numberColumns() const
52
- { return (type_==1) ? numberItems_ : numberOther_;}
53
- /// Return number of elements
54
- inline CoinBigIndex numberElements() const
55
- { return numberElements_;}
56
- /** Returns number of elements in a row and information in row
57
- */
58
- int row(int whichRow, double & rowLower, double & rowUpper,
59
- const int * & indices, const double * & elements) const;
60
- /** Returns number of elements in current row and information in row
61
- Used as rows may be stored in a chain
62
- */
63
- int currentRow(double & rowLower, double & rowUpper,
64
- const int * & indices, const double * & elements) const;
65
- /// Set current row
66
- void setCurrentRow(int whichRow);
67
- /// Returns current row number
68
- int currentRow() const;
69
- /** Returns number of elements in a column and information in column
70
- */
71
- int column(int whichColumn,
72
- double & columnLower, double & columnUpper,double & objectiveValue,
73
- const int * & indices, const double * & elements) const;
74
- /** Returns number of elements in current column and information in column
75
- Used as columns may be stored in a chain
76
- */
77
- int currentColumn( double & columnLower, double & columnUpper,double & objectiveValue,
78
- const int * & indices, const double * & elements) const;
79
- /// Set current column
80
- void setCurrentColumn(int whichColumn);
81
- /// Returns current column number
82
- int currentColumn() const;
83
- /// Returns type
84
- inline int type() const
85
- { return type_;}
86
- //@}
87
-
88
-
89
- /**@name Constructors, destructor */
90
- //@{
91
- /** Default constructor. */
92
- CoinBuild();
93
- /** Constructor with type 0==for addRow, 1== for addColumn. */
94
- CoinBuild(int type);
95
- /** Destructor */
96
- ~CoinBuild();
97
- //@}
98
-
99
- /**@name Copy method */
100
- //@{
101
- /** The copy constructor. */
102
- CoinBuild(const CoinBuild&);
103
- /// =
104
- CoinBuild& operator=(const CoinBuild&);
105
- //@}
106
- private:
107
- /// Set current
108
- void setMutableCurrent(int which) const;
109
- /// add a item
110
- void addItem(int numberInItem, const int * indices,
111
- const double * elements,
112
- double itemLower,
113
- double itemUpper, double objectiveValue);
114
- /** Returns number of elements in a item and information in item
115
- */
116
- int item(int whichItem,
117
- double & itemLower, double & itemUpper,double & objectiveValue,
118
- const int * & indices, const double * & elements) const;
119
- /** Returns number of elements in current item and information in item
120
- Used as items may be stored in a chain
121
- */
122
- int currentItem( double & itemLower, double & itemUpper,double & objectiveValue,
123
- const int * & indices, const double * & elements) const;
124
- /// Set current item
125
- void setCurrentItem(int whichItem);
126
- /// Returns current item number
127
- int currentItem() const;
128
-
129
- private:
130
- /**@name Data members */
131
- //@{
132
- /// Current number of items
133
- int numberItems_;
134
- /// Current number of other dimension i.e. Columns if addRow (i.e. max)
135
- int numberOther_;
136
- /// Current number of elements
137
- CoinBigIndex numberElements_;
138
- /// Current item pointer
139
- mutable double * currentItem_;
140
- /// First item pointer
141
- double * firstItem_;
142
- /// Last item pointer
143
- double * lastItem_;
144
- /// Type of build - 0 for row, 1 for column, -1 unset
145
- int type_;
146
- //@}
147
- };
148
-
149
- #endif
@@ -1,419 +0,0 @@
1
- /* $Id: CoinDenseFactorization.hpp 1759 2014-11-18 11:07:23Z forrest $ */
2
- // Copyright (C) 2008, 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
-
7
- /*
8
- Authors
9
-
10
- John Forrest
11
-
12
- */
13
- #ifndef CoinDenseFactorization_H
14
- #define CoinDenseFactorization_H
15
-
16
- #include <iostream>
17
- #include <string>
18
- #include <cassert>
19
- #include "CoinTypes.hpp"
20
- #include "CoinIndexedVector.hpp"
21
- #include "CoinFactorization.hpp"
22
- #if COIN_FACTORIZATION_DENSE_CODE == 2
23
- #undef COIN_FACTORIZATION_DENSE_CODE
24
- #endif
25
- class CoinPackedMatrix;
26
- /// Abstract base class which also has some scalars so can be used from Dense or Simp
27
- class CoinOtherFactorization {
28
-
29
- public:
30
-
31
- /**@name Constructors and destructor and copy */
32
- //@{
33
- /// Default constructor
34
- CoinOtherFactorization ( );
35
- /// Copy constructor
36
- CoinOtherFactorization ( const CoinOtherFactorization &other);
37
-
38
- /// Destructor
39
- virtual ~CoinOtherFactorization ( );
40
- /// = copy
41
- CoinOtherFactorization & operator = ( const CoinOtherFactorization & other );
42
-
43
- /// Clone
44
- virtual CoinOtherFactorization * clone() const = 0;
45
- //@}
46
-
47
- /**@name general stuff such as status */
48
- //@{
49
- /// Returns status
50
- inline int status ( ) const {
51
- return status_;
52
- }
53
- /// Sets status
54
- inline void setStatus ( int value)
55
- { status_=value; }
56
- /// Returns number of pivots since factorization
57
- inline int pivots ( ) const {
58
- return numberPivots_;
59
- }
60
- /// Sets number of pivots since factorization
61
- inline void setPivots ( int value )
62
- { numberPivots_=value; }
63
- /// Set number of Rows after factorization
64
- inline void setNumberRows(int value)
65
- { numberRows_ = value; }
66
- /// Number of Rows after factorization
67
- inline int numberRows ( ) const {
68
- return numberRows_;
69
- }
70
- /// Total number of columns in factorization
71
- inline int numberColumns ( ) const {
72
- return numberColumns_;
73
- }
74
- /// Number of good columns in factorization
75
- inline int numberGoodColumns ( ) const {
76
- return numberGoodU_;
77
- }
78
- /// Allows change of pivot accuracy check 1.0 == none >1.0 relaxed
79
- inline void relaxAccuracyCheck(double value)
80
- { relaxCheck_ = value;}
81
- inline double getAccuracyCheck() const
82
- { return relaxCheck_;}
83
- /// Maximum number of pivots between factorizations
84
- inline int maximumPivots ( ) const {
85
- return maximumPivots_ ;
86
- }
87
- /// Set maximum pivots
88
- virtual void maximumPivots ( int value );
89
-
90
- /// Pivot tolerance
91
- inline double pivotTolerance ( ) const {
92
- return pivotTolerance_ ;
93
- }
94
- void pivotTolerance ( double value );
95
- /// Zero tolerance
96
- inline double zeroTolerance ( ) const {
97
- return zeroTolerance_ ;
98
- }
99
- void zeroTolerance ( double value );
100
- #ifndef COIN_FAST_CODE
101
- /// Whether slack value is +1 or -1
102
- inline double slackValue ( ) const {
103
- return slackValue_ ;
104
- }
105
- void slackValue ( double value );
106
- #endif
107
- /// Returns array to put basis elements in
108
- virtual CoinFactorizationDouble * elements() const;
109
- /// Returns pivot row
110
- virtual int * pivotRow() const;
111
- /// Returns work area
112
- virtual CoinFactorizationDouble * workArea() const;
113
- /// Returns int work area
114
- virtual int * intWorkArea() const;
115
- /// Number of entries in each row
116
- virtual int * numberInRow() const;
117
- /// Number of entries in each column
118
- virtual int * numberInColumn() const;
119
- /// Returns array to put basis starts in
120
- virtual CoinBigIndex * starts() const;
121
- /// Returns permute back
122
- virtual int * permuteBack() const;
123
- /** Get solve mode e.g. 0 C++ code, 1 Lapack, 2 choose
124
- If 4 set then values pass
125
- if 8 set then has iterated
126
- */
127
- inline int solveMode() const
128
- { return solveMode_ ;}
129
- /** Set solve mode e.g. 0 C++ code, 1 Lapack, 2 choose
130
- If 4 set then values pass
131
- if 8 set then has iterated
132
- */
133
- inline void setSolveMode(int value)
134
- { solveMode_ = value;}
135
- /// Returns true if wants tableauColumn in replaceColumn
136
- virtual bool wantsTableauColumn() const;
137
- /** Useful information for factorization
138
- 0 - iteration number
139
- whereFrom is 0 for factorize and 1 for replaceColumn
140
- */
141
- virtual void setUsefulInformation(const int * info,int whereFrom);
142
- /// Get rid of all memory
143
- virtual void clearArrays() {}
144
- //@}
145
- /**@name virtual general stuff such as permutation */
146
- //@{
147
- /// Returns array to put basis indices in
148
- virtual int * indices() const = 0;
149
- /// Returns permute in
150
- virtual int * permute() const = 0;
151
- /// Total number of elements in factorization
152
- virtual int numberElements ( ) const = 0;
153
- //@}
154
- /**@name Do factorization - public */
155
- //@{
156
- /// Gets space for a factorization
157
- virtual void getAreas ( int numberRows,
158
- int numberColumns,
159
- CoinBigIndex maximumL,
160
- CoinBigIndex maximumU ) = 0;
161
-
162
- /// PreProcesses column ordered copy of basis
163
- virtual void preProcess ( ) = 0;
164
- /** Does most of factorization returning status
165
- 0 - OK
166
- -99 - needs more memory
167
- -1 - singular - use numberGoodColumns and redo
168
- */
169
- virtual int factor ( ) = 0;
170
- /// Does post processing on valid factorization - putting variables on correct rows
171
- virtual void postProcess(const int * sequence, int * pivotVariable) = 0;
172
- /// Makes a non-singular basis by replacing variables
173
- virtual void makeNonSingular(int * sequence, int numberColumns) = 0;
174
- //@}
175
-
176
- /**@name rank one updates which do exist */
177
- //@{
178
-
179
- /** Replaces one Column to basis,
180
- returns 0=OK, 1=Probably OK, 2=singular, 3=no room
181
- If checkBeforeModifying is true will do all accuracy checks
182
- before modifying factorization. Whether to set this depends on
183
- speed considerations. You could just do this on first iteration
184
- after factorization and thereafter re-factorize
185
- partial update already in U */
186
- virtual int replaceColumn ( CoinIndexedVector * regionSparse,
187
- int pivotRow,
188
- double pivotCheck ,
189
- bool checkBeforeModifying=false,
190
- double acceptablePivot=1.0e-8)=0;
191
- //@}
192
-
193
- /**@name various uses of factorization (return code number elements)
194
- which user may want to know about */
195
- //@{
196
- /** Updates one column (FTRAN) from regionSparse2
197
- Tries to do FT update
198
- number returned is negative if no room
199
- regionSparse starts as zero and is zero at end.
200
- Note - if regionSparse2 packed on input - will be packed on output
201
- */
202
- virtual int updateColumnFT ( CoinIndexedVector * regionSparse,
203
- CoinIndexedVector * regionSparse2,
204
- bool noPermute=false) = 0;
205
- /** This version has same effect as above with FTUpdate==false
206
- so number returned is always >=0 */
207
- virtual int updateColumn ( CoinIndexedVector * regionSparse,
208
- CoinIndexedVector * regionSparse2,
209
- bool noPermute=false) const = 0;
210
- /// does FTRAN on two columns
211
- virtual int updateTwoColumnsFT(CoinIndexedVector * regionSparse1,
212
- CoinIndexedVector * regionSparse2,
213
- CoinIndexedVector * regionSparse3,
214
- bool noPermute=false) = 0;
215
- /** Updates one column (BTRAN) from regionSparse2
216
- regionSparse starts as zero and is zero at end
217
- Note - if regionSparse2 packed on input - will be packed on output
218
- */
219
- virtual int updateColumnTranspose ( CoinIndexedVector * regionSparse,
220
- CoinIndexedVector * regionSparse2) const = 0;
221
- //@}
222
-
223
- ////////////////// data //////////////////
224
- protected:
225
-
226
- /**@name data */
227
- //@{
228
- /// Pivot tolerance
229
- double pivotTolerance_;
230
- /// Zero tolerance
231
- double zeroTolerance_;
232
- #ifndef COIN_FAST_CODE
233
- /// Whether slack value is +1 or -1
234
- double slackValue_;
235
- #else
236
- #ifndef slackValue_
237
- #define slackValue_ -1.0
238
- #endif
239
- #endif
240
- /// Relax check on accuracy in replaceColumn
241
- double relaxCheck_;
242
- /// Number of elements after factorization
243
- CoinBigIndex factorElements_;
244
- /// Number of Rows in factorization
245
- int numberRows_;
246
- /// Number of Columns in factorization
247
- int numberColumns_;
248
- /// Number factorized in U (not row singletons)
249
- int numberGoodU_;
250
- /// Maximum number of pivots before factorization
251
- int maximumPivots_;
252
- /// Number pivots since last factorization
253
- int numberPivots_;
254
- /// Status of factorization
255
- int status_;
256
- /// Maximum rows ever (i.e. use to copy arrays etc)
257
- int maximumRows_;
258
- /// Maximum length of iterating area
259
- CoinBigIndex maximumSpace_;
260
- /// Pivot row
261
- int * pivotRow_;
262
- /** Elements of factorization and updates
263
- length is maxR*maxR+maxSpace
264
- will always be long enough so can have nR*nR ints in maxSpace
265
- */
266
- CoinFactorizationDouble * elements_;
267
- /// Work area of numberRows_
268
- CoinFactorizationDouble * workArea_;
269
- /** Solve mode e.g. 0 C++ code, 1 Lapack, 2 choose
270
- If 4 set then values pass
271
- if 8 set then has iterated
272
- */
273
- int solveMode_;
274
- //@}
275
- };
276
- /** This deals with Factorization and Updates
277
- This is a simple dense version so other people can write a better one
278
-
279
- I am assuming that 32 bits is enough for number of rows or columns, but CoinBigIndex
280
- may be redefined to get 64 bits.
281
- */
282
-
283
-
284
-
285
- class CoinDenseFactorization : public CoinOtherFactorization {
286
- friend void CoinDenseFactorizationUnitTest( const std::string & mpsDir );
287
-
288
- public:
289
-
290
- /**@name Constructors and destructor and copy */
291
- //@{
292
- /// Default constructor
293
- CoinDenseFactorization ( );
294
- /// Copy constructor
295
- CoinDenseFactorization ( const CoinDenseFactorization &other);
296
-
297
- /// Destructor
298
- virtual ~CoinDenseFactorization ( );
299
- /// = copy
300
- CoinDenseFactorization & operator = ( const CoinDenseFactorization & other );
301
- /// Clone
302
- virtual CoinOtherFactorization * clone() const ;
303
- //@}
304
-
305
- /**@name Do factorization - public */
306
- //@{
307
- /// Gets space for a factorization
308
- virtual void getAreas ( int numberRows,
309
- int numberColumns,
310
- CoinBigIndex maximumL,
311
- CoinBigIndex maximumU );
312
-
313
- /// PreProcesses column ordered copy of basis
314
- virtual void preProcess ( );
315
- /** Does most of factorization returning status
316
- 0 - OK
317
- -99 - needs more memory
318
- -1 - singular - use numberGoodColumns and redo
319
- */
320
- virtual int factor ( );
321
- /// Does post processing on valid factorization - putting variables on correct rows
322
- virtual void postProcess(const int * sequence, int * pivotVariable);
323
- /// Makes a non-singular basis by replacing variables
324
- virtual void makeNonSingular(int * sequence, int numberColumns);
325
- //@}
326
-
327
- /**@name general stuff such as number of elements */
328
- //@{
329
- /// Total number of elements in factorization
330
- virtual inline int numberElements ( ) const {
331
- return numberRows_*(numberColumns_+numberPivots_);
332
- }
333
- /// Returns maximum absolute value in factorization
334
- double maximumCoefficient() const;
335
- //@}
336
-
337
- /**@name rank one updates which do exist */
338
- //@{
339
-
340
- /** Replaces one Column to basis,
341
- returns 0=OK, 1=Probably OK, 2=singular, 3=no room
342
- If checkBeforeModifying is true will do all accuracy checks
343
- before modifying factorization. Whether to set this depends on
344
- speed considerations. You could just do this on first iteration
345
- after factorization and thereafter re-factorize
346
- partial update already in U */
347
- virtual int replaceColumn ( CoinIndexedVector * regionSparse,
348
- int pivotRow,
349
- double pivotCheck ,
350
- bool checkBeforeModifying=false,
351
- double acceptablePivot=1.0e-8);
352
- //@}
353
-
354
- /**@name various uses of factorization (return code number elements)
355
- which user may want to know about */
356
- //@{
357
- /** Updates one column (FTRAN) from regionSparse2
358
- Tries to do FT update
359
- number returned is negative if no room
360
- regionSparse starts as zero and is zero at end.
361
- Note - if regionSparse2 packed on input - will be packed on output
362
- */
363
- virtual inline int updateColumnFT ( CoinIndexedVector * regionSparse,
364
- CoinIndexedVector * regionSparse2,
365
- bool = false)
366
- { return updateColumn(regionSparse,regionSparse2);}
367
- /** This version has same effect as above with FTUpdate==false
368
- so number returned is always >=0 */
369
- virtual int updateColumn ( CoinIndexedVector * regionSparse,
370
- CoinIndexedVector * regionSparse2,
371
- bool noPermute=false) const;
372
- /// does FTRAN on two columns
373
- virtual int updateTwoColumnsFT(CoinIndexedVector * regionSparse1,
374
- CoinIndexedVector * regionSparse2,
375
- CoinIndexedVector * regionSparse3,
376
- bool noPermute=false);
377
- /** Updates one column (BTRAN) from regionSparse2
378
- regionSparse starts as zero and is zero at end
379
- Note - if regionSparse2 packed on input - will be packed on output
380
- */
381
- virtual int updateColumnTranspose ( CoinIndexedVector * regionSparse,
382
- CoinIndexedVector * regionSparse2) const;
383
- //@}
384
- /// *** Below this user may not want to know about
385
-
386
- /**@name various uses of factorization
387
- which user may not want to know about (left over from my LP code) */
388
- //@{
389
- /// Get rid of all memory
390
- inline void clearArrays()
391
- { gutsOfDestructor();}
392
- /// Returns array to put basis indices in
393
- virtual inline int * indices() const
394
- { return reinterpret_cast<int *> (elements_+numberRows_*numberRows_);}
395
- /// Returns permute in
396
- virtual inline int * permute() const
397
- { return NULL;/*pivotRow_*/;}
398
- //@}
399
-
400
- /// The real work of desstructor
401
- void gutsOfDestructor();
402
- /// The real work of constructor
403
- void gutsOfInitialize();
404
- /// The real work of copy
405
- void gutsOfCopy(const CoinDenseFactorization &other);
406
-
407
- //@}
408
- protected:
409
- /** Returns accuracy status of replaceColumn
410
- returns 0=OK, 1=Probably OK, 2=singular */
411
- int checkPivot(double saveFromU, double oldPivot) const;
412
- ////////////////// data //////////////////
413
- protected:
414
-
415
- /**@name data */
416
- //@{
417
- //@}
418
- };
419
- #endif