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,1164 +0,0 @@
1
- /* $Id: CoinIndexedVector.hpp 1767 2015-01-05 12:36:13Z forrest $ */
2
- // Copyright (C) 2000, 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 CoinIndexedVector_H
7
- #define CoinIndexedVector_H
8
-
9
- #if defined(_MSC_VER)
10
- // Turn off compiler warning about long names
11
- # pragma warning(disable:4786)
12
- #endif
13
-
14
- #include <map>
15
- #include "CoinFinite.hpp"
16
- #ifndef CLP_NO_VECTOR
17
- #include "CoinPackedVectorBase.hpp"
18
- #endif
19
- #include "CoinSort.hpp"
20
- #include "CoinHelperFunctions.hpp"
21
- #include <cassert>
22
-
23
- #ifndef COIN_FLOAT
24
- #define COIN_INDEXED_TINY_ELEMENT 1.0e-50
25
- #define COIN_INDEXED_REALLY_TINY_ELEMENT 1.0e-100
26
- #else
27
- #define COIN_INDEXED_TINY_ELEMENT 1.0e-35
28
- #define COIN_INDEXED_REALLY_TINY_ELEMENT 1.0e-39
29
- #endif
30
-
31
- /** Indexed Vector
32
-
33
- This stores values unpacked but apart from that is a bit like CoinPackedVector.
34
- It is designed to be lightweight in normal use.
35
-
36
- It now has a "packed" mode when it is even more like CoinPackedVector
37
-
38
- Indices array has capacity_ extra chars which are zeroed and can
39
- be used for any purpose - but must be re-zeroed
40
-
41
- Stores vector of indices and associated element values.
42
- Supports sorting of indices.
43
-
44
- Does not support negative indices.
45
-
46
- Does NOT support testing for duplicates
47
-
48
- *** getElements is no longer supported
49
-
50
- Here is a sample usage:
51
- @verbatim
52
- const int ne = 4;
53
- int inx[ne] = { 1, 4, 0, 2 }
54
- double el[ne] = { 10., 40., 1., 50. }
55
-
56
- // Create vector and set its valuex1
57
- CoinIndexedVector r(ne,inx,el);
58
-
59
- // access as a full storage vector
60
- assert( r[ 0]==1. );
61
- assert( r[ 1]==10.);
62
- assert( r[ 2]==50.);
63
- assert( r[ 3]==0. );
64
- assert( r[ 4]==40.);
65
-
66
- // sort Elements in increasing order
67
- r.sortIncrElement();
68
-
69
- // access each index and element
70
- assert( r.getIndices ()[0]== 0 );
71
- assert( r.getIndices ()[1]== 1 );
72
- assert( r.getIndices ()[2]== 4 );
73
- assert( r.getIndices ()[3]== 2 );
74
-
75
- // access as a full storage vector
76
- assert( r[ 0]==1. );
77
- assert( r[ 1]==10.);
78
- assert( r[ 2]==50.);
79
- assert( r[ 3]==0. );
80
- assert( r[ 4]==40.);
81
-
82
- // Tests for equality and equivalence
83
- CoinIndexedVector r1;
84
- r1=r;
85
- assert( r==r1 );
86
- assert( r.equivalent(r1) );
87
- r.sortIncrElement();
88
- assert( r!=r1 );
89
- assert( r.equivalent(r1) );
90
-
91
- // Add indexed vectors.
92
- // Similarly for subtraction, multiplication,
93
- // and division.
94
- CoinIndexedVector add = r + r1;
95
- assert( add[0] == 1.+ 1. );
96
- assert( add[1] == 10.+10. );
97
- assert( add[2] == 50.+50. );
98
- assert( add[3] == 0.+ 0. );
99
- assert( add[4] == 40.+40. );
100
-
101
- assert( r.sum() == 10.+40.+1.+50. );
102
- @endverbatim
103
- */
104
- class CoinIndexedVector {
105
- friend void CoinIndexedVectorUnitTest();
106
-
107
- public:
108
- /**@name Get methods. */
109
- //@{
110
- /// Get the size
111
- inline int getNumElements() const { return nElements_; }
112
- /// Get indices of elements
113
- inline const int * getIndices() const { return indices_; }
114
- /// Get element values
115
- // ** No longer supported virtual const double * getElements() const ;
116
- /// Get indices of elements
117
- inline int * getIndices() { return indices_; }
118
- /** Get the vector as a dense vector. This is normal storage method.
119
- The user should not not delete [] this.
120
- */
121
- inline double * denseVector() const { return elements_; }
122
- /// For very temporary use when user needs to borrow a dense vector
123
- inline void setDenseVector(double * array)
124
- { elements_ = array;}
125
- /// For very temporary use when user needs to borrow an index vector
126
- inline void setIndexVector(int * array)
127
- { indices_ = array;}
128
- /** Access the i'th element of the full storage vector.
129
- */
130
- double & operator[](int i) const;
131
-
132
- //@}
133
-
134
- //-------------------------------------------------------------------
135
- // Set indices and elements
136
- //-------------------------------------------------------------------
137
- /**@name Set methods */
138
- //@{
139
- /// Set the size
140
- inline void setNumElements(int value) { nElements_ = value;
141
- if (!nElements_) packedMode_=false;}
142
- /// Reset the vector (as if were just created an empty vector). This leaves arrays!
143
- void clear();
144
- /// Reset the vector (as if were just created an empty vector)
145
- void empty();
146
- /** Assignment operator. */
147
- CoinIndexedVector & operator=(const CoinIndexedVector &);
148
- #ifndef CLP_NO_VECTOR
149
- /** Assignment operator from a CoinPackedVectorBase. <br>
150
- <strong>NOTE</strong>: This assumes no duplicates */
151
- CoinIndexedVector & operator=(const CoinPackedVectorBase & rhs);
152
- #endif
153
- /** Copy the contents of one vector into another. If multiplier is 1
154
- It is the equivalent of = but if vectors are same size does
155
- not re-allocate memory just clears and copies */
156
- void copy(const CoinIndexedVector & rhs, double multiplier=1.0);
157
-
158
- /** Borrow ownership of the arguments to this vector.
159
- Size is the length of the unpacked elements vector. */
160
- void borrowVector(int size, int numberIndices, int* inds, double* elems);
161
-
162
- /** Return ownership of the arguments to this vector.
163
- State after is empty .
164
- */
165
- void returnVector();
166
-
167
- /** Set vector numberIndices, indices, and elements.
168
- NumberIndices is the length of both the indices and elements vectors.
169
- The indices and elements vectors are copied into this class instance's
170
- member data. Assumed to have no duplicates */
171
- void setVector(int numberIndices, const int * inds, const double * elems);
172
-
173
- /** Set vector size, indices, and elements.
174
- Size is the length of the unpacked elements vector.
175
- The indices and elements vectors are copied into this class instance's
176
- member data. We do not check for duplicate indices */
177
- void setVector(int size, int numberIndices, const int * inds, const double * elems);
178
-
179
- /** Elements set to have the same scalar value */
180
- void setConstant(int size, const int * inds, double elems);
181
-
182
- /** Indices are not specified and are taken to be 0,1,...,size-1 */
183
- void setFull(int size, const double * elems);
184
-
185
- /** Set an existing element in the indexed vector
186
- The first argument is the "index" into the elements() array
187
- */
188
- void setElement(int index, double element);
189
-
190
- /// Insert an element into the vector
191
- void insert(int index, double element);
192
- /// Insert a nonzero element into the vector
193
- inline void quickInsert(int index, double element)
194
- {
195
- assert (!elements_[index]);
196
- indices_[nElements_++] = index;
197
- assert (nElements_<=capacity_);
198
- elements_[index] = element;
199
- }
200
- /** Insert or if exists add an element into the vector
201
- Any resulting zero elements will be made tiny */
202
- void add(int index, double element);
203
- /** Insert or if exists add an element into the vector
204
- Any resulting zero elements will be made tiny.
205
- This version does no checking */
206
- inline void quickAdd(int index, double element)
207
- {
208
- if (elements_[index]) {
209
- element += elements_[index];
210
- if ((element > 0 ? element : -element) >= COIN_INDEXED_TINY_ELEMENT) {
211
- elements_[index] = element;
212
- } else {
213
- elements_[index] = 1.0e-100;
214
- }
215
- } else if ((element > 0 ? element : -element) >= COIN_INDEXED_TINY_ELEMENT) {
216
- indices_[nElements_++] = index;
217
- assert (nElements_<=capacity_);
218
- elements_[index] = element;
219
- }
220
- }
221
- /** Insert or if exists add an element into the vector
222
- Any resulting zero elements will be made tiny.
223
- This knows element is nonzero
224
- This version does no checking */
225
- inline void quickAddNonZero(int index, double element)
226
- {
227
- assert (element);
228
- if (elements_[index]) {
229
- element += elements_[index];
230
- if ((element > 0 ? element : -element) >= COIN_INDEXED_TINY_ELEMENT) {
231
- elements_[index] = element;
232
- } else {
233
- elements_[index] = COIN_DBL_MIN;
234
- }
235
- } else {
236
- indices_[nElements_++] = index;
237
- assert (nElements_<=capacity_);
238
- elements_[index] = element;
239
- }
240
- }
241
- /** Makes nonzero tiny.
242
- This version does no checking */
243
- inline void zero(int index)
244
- {
245
- if (elements_[index])
246
- elements_[index] = COIN_DBL_MIN;
247
- }
248
- /** set all small values to zero and return number remaining
249
- - < tolerance => 0.0 */
250
- int clean(double tolerance);
251
- /// Same but packs down
252
- int cleanAndPack(double tolerance);
253
- /// Same but packs down and is safe (i.e. if order is odd)
254
- int cleanAndPackSafe(double tolerance);
255
- /// Mark as packed
256
- inline void setPacked()
257
- { packedMode_ = true;}
258
- #ifndef NDEBUG
259
- /// For debug check vector is clear i.e. no elements
260
- void checkClear();
261
- /// For debug check vector is clean i.e. elements match indices
262
- void checkClean();
263
- #else
264
- inline void checkClear() {};
265
- inline void checkClean() {};
266
- #endif
267
- /// Scan dense region and set up indices (returns number found)
268
- int scan();
269
- /** Scan dense region from start to < end and set up indices
270
- returns number found
271
- */
272
- int scan(int start, int end);
273
- /** Scan dense region and set up indices (returns number found).
274
- Only ones >= tolerance */
275
- int scan(double tolerance);
276
- /** Scan dense region from start to < end and set up indices
277
- returns number found. Only >= tolerance
278
- */
279
- int scan(int start, int end, double tolerance);
280
- /// These are same but pack down
281
- int scanAndPack();
282
- int scanAndPack(int start, int end);
283
- int scanAndPack(double tolerance);
284
- int scanAndPack(int start, int end, double tolerance);
285
- /// Create packed array
286
- void createPacked(int number, const int * indices,
287
- const double * elements);
288
- /// Create unpacked array
289
- void createUnpacked(int number, const int * indices,
290
- const double * elements);
291
- /// Create unpacked singleton
292
- void createOneUnpackedElement(int index, double element);
293
- /// This is mainly for testing - goes from packed to indexed
294
- void expand();
295
- #ifndef CLP_NO_VECTOR
296
- /// Append a CoinPackedVector to the end
297
- void append(const CoinPackedVectorBase & caboose);
298
- #endif
299
- /// Append a CoinIndexedVector to the end (with extra space)
300
- void append(const CoinIndexedVector & caboose);
301
- /// Append a CoinIndexedVector to the end and modify indices
302
- void append(CoinIndexedVector & other,int adjustIndex,bool zapElements=false);
303
-
304
- /// Swap values in positions i and j of indices and elements
305
- void swap(int i, int j);
306
-
307
- /// Throw away all entries in rows >= newSize
308
- void truncate(int newSize);
309
- /// Print out
310
- void print() const;
311
- //@}
312
- /**@name Arithmetic operators. */
313
- //@{
314
- /// add <code>value</code> to every entry
315
- void operator+=(double value);
316
- /// subtract <code>value</code> from every entry
317
- void operator-=(double value);
318
- /// multiply every entry by <code>value</code>
319
- void operator*=(double value);
320
- /// divide every entry by <code>value</code> (** 0 vanishes)
321
- void operator/=(double value);
322
- //@}
323
-
324
- /**@name Comparison operators on two indexed vectors */
325
- //@{
326
- #ifndef CLP_NO_VECTOR
327
- /** Equal. Returns true if vectors have same length and corresponding
328
- element of each vector is equal. */
329
- bool operator==(const CoinPackedVectorBase & rhs) const;
330
- /// Not equal
331
- bool operator!=(const CoinPackedVectorBase & rhs) const;
332
- #endif
333
- /** Equal. Returns true if vectors have same length and corresponding
334
- element of each vector is equal. */
335
- bool operator==(const CoinIndexedVector & rhs) const;
336
- /// Not equal
337
- bool operator!=(const CoinIndexedVector & rhs) const;
338
- /// Equal with a tolerance (returns -1 or position of inequality).
339
- int isApproximatelyEqual(const CoinIndexedVector & rhs, double tolerance=1.0e-8) const;
340
- //@}
341
-
342
- /**@name Index methods */
343
- //@{
344
- /// Get value of maximum index
345
- int getMaxIndex() const;
346
- /// Get value of minimum index
347
- int getMinIndex() const;
348
- //@}
349
-
350
-
351
- /**@name Sorting */
352
- //@{
353
- /** Sort the indexed storage vector (increasing indices). */
354
- void sort()
355
- { std::sort(indices_,indices_+nElements_); }
356
-
357
- void sortIncrIndex()
358
- { std::sort(indices_,indices_+nElements_); }
359
-
360
- void sortDecrIndex();
361
-
362
- void sortIncrElement();
363
-
364
- void sortDecrElement();
365
- void sortPacked();
366
-
367
- //@}
368
-
369
- //#############################################################################
370
-
371
- /**@name Arithmetic operators on packed vectors.
372
-
373
- <strong>NOTE</strong>: These methods operate on those positions where at
374
- least one of the arguments has a value listed. At those positions the
375
- appropriate operation is executed, Otherwise the result of the operation is
376
- considered 0.<br>
377
- <strong>NOTE 2</strong>: Because these methods return an object (they can't
378
- return a reference, though they could return a pointer...) they are
379
- <em>very</em> inefficient...
380
- */
381
- //@{
382
- /// Return the sum of two indexed vectors
383
- CoinIndexedVector operator+(
384
- const CoinIndexedVector& op2);
385
-
386
- /// Return the difference of two indexed vectors
387
- CoinIndexedVector operator-(
388
- const CoinIndexedVector& op2);
389
-
390
- /// Return the element-wise product of two indexed vectors
391
- CoinIndexedVector operator*(
392
- const CoinIndexedVector& op2);
393
-
394
- /// Return the element-wise ratio of two indexed vectors (0.0/0.0 => 0.0) (0 vanishes)
395
- CoinIndexedVector operator/(
396
- const CoinIndexedVector& op2);
397
- /// The sum of two indexed vectors
398
- void operator+=(const CoinIndexedVector& op2);
399
-
400
- /// The difference of two indexed vectors
401
- void operator-=( const CoinIndexedVector& op2);
402
-
403
- /// The element-wise product of two indexed vectors
404
- void operator*=(const CoinIndexedVector& op2);
405
-
406
- /// The element-wise ratio of two indexed vectors (0.0/0.0 => 0.0) (0 vanishes)
407
- void operator/=(const CoinIndexedVector& op2);
408
- //@}
409
-
410
- /**@name Memory usage */
411
- //@{
412
- /** Reserve space.
413
- If one knows the eventual size of the indexed vector,
414
- then it may be more efficient to reserve the space.
415
- */
416
- void reserve(int n);
417
- /** capacity returns the size which could be accomodated without
418
- having to reallocate storage.
419
- */
420
- inline int capacity() const { return capacity_; }
421
- inline void setCapacity(int value)
422
- { capacity_ = value; }
423
- /// Sets packed mode
424
- inline void setPackedMode(bool yesNo)
425
- { packedMode_=yesNo;}
426
- /// Gets packed mode
427
- inline bool packedMode() const
428
- { return packedMode_;}
429
- //@}
430
-
431
- /**@name Constructors and destructors */
432
- //@{
433
- /** Default constructor */
434
- CoinIndexedVector();
435
- /** Alternate Constructors - set elements to vector of doubles */
436
- CoinIndexedVector(int size, const int * inds, const double * elems);
437
- /** Alternate Constructors - set elements to same scalar value */
438
- CoinIndexedVector(int size, const int * inds, double element);
439
- /** Alternate Constructors - construct full storage with indices 0 through
440
- size-1. */
441
- CoinIndexedVector(int size, const double * elements);
442
- /** Alternate Constructors - just size */
443
- CoinIndexedVector(int size);
444
- /** Copy constructor. */
445
- CoinIndexedVector(const CoinIndexedVector &);
446
- /** Copy constructor.2 */
447
- CoinIndexedVector(const CoinIndexedVector *);
448
- #ifndef CLP_NO_VECTOR
449
- /** Copy constructor <em>from a PackedVectorBase</em>. */
450
- CoinIndexedVector(const CoinPackedVectorBase & rhs);
451
- #endif
452
- /** Destructor */
453
- ~CoinIndexedVector ();
454
- //@}
455
-
456
- private:
457
- /**@name Private methods */
458
- //@{
459
- /// Copy internal data
460
- void gutsOfSetVector(int size,
461
- const int * inds, const double * elems);
462
- void gutsOfSetVector(int size, int numberIndices,
463
- const int * inds, const double * elems);
464
- void gutsOfSetPackedVector(int size, int numberIndices,
465
- const int * inds, const double * elems);
466
- ///
467
- void gutsOfSetConstant(int size,
468
- const int * inds, double value);
469
- //@}
470
-
471
- protected:
472
- /**@name Private member data */
473
- //@{
474
- /// Vector indices
475
- int * indices_;
476
- ///Vector elements
477
- double * elements_;
478
- /// Size of indices and packed elements vectors
479
- int nElements_;
480
- /// Amount of memory allocated for indices_, and elements_.
481
- int capacity_;
482
- /// Offset to get where new allocated array
483
- int offset_;
484
- /// If true then is operating in packed mode
485
- bool packedMode_;
486
- //@}
487
- };
488
-
489
- //#############################################################################
490
- /** A function that tests the methods in the CoinIndexedVector class. The
491
- only reason for it not to be a member method is that this way it doesn't
492
- have to be compiled into the library. And that's a gain, because the
493
- library should be compiled with optimization on, but this method should be
494
- compiled with debugging. */
495
- void
496
- CoinIndexedVectorUnitTest();
497
- /** Pointer with length in bytes
498
-
499
- This has a pointer to an array and the number of bytes in array.
500
- If number of bytes==-1 then
501
- CoinConditionalNew deletes existing pointer and returns new pointer
502
- of correct size (and number bytes still -1).
503
- CoinConditionalDelete deletes existing pointer and NULLs it.
504
- So behavior is as normal (apart from New deleting pointer which will have
505
- no effect with good coding practices.
506
- If number of bytes >=0 then
507
- CoinConditionalNew just returns existing pointer if array big enough
508
- otherwise deletes existing pointer, allocates array with spare 1%+64 bytes
509
- and updates number of bytes
510
- CoinConditionalDelete sets number of bytes = -size-2 and then array
511
- returns NULL
512
- */
513
- class CoinArrayWithLength {
514
-
515
- public:
516
- /**@name Get methods. */
517
- //@{
518
- /// Get the size
519
- inline int getSize() const
520
- { return size_; }
521
- /// Get the size
522
- inline int rawSize() const
523
- { return size_; }
524
- /// See if persistence already on
525
- inline bool switchedOn() const
526
- { return size_!=-1; }
527
- /// Get the capacity (just read it)
528
- inline int capacity() const
529
- { return (size_>-2) ? size_ : (-size_)-2; }
530
- /// Set the capacity to >=0 if <=-2
531
- inline void setCapacity()
532
- { if (size_<=-2) size_ = (-size_)-2; }
533
- /// Get Array
534
- inline const char * array() const
535
- { return (size_>-2) ? array_ : NULL; }
536
- //@}
537
-
538
- /**@name Set methods */
539
- //@{
540
- /// Set the size
541
- inline void setSize(int value)
542
- { size_ = value; }
543
- /// Set the size to -1
544
- inline void switchOff()
545
- { size_ = -1; }
546
- /// Set the size to -2 and alignment
547
- inline void switchOn(int alignment=3)
548
- { size_ = -2; alignment_=alignment;}
549
- /// Does what is needed to set persistence
550
- void setPersistence(int flag,int currentLength);
551
- /// Zero out array
552
- void clear();
553
- /// Swaps memory between two members
554
- void swap(CoinArrayWithLength & other);
555
- /// Extend a persistent array keeping data (size in bytes)
556
- void extend(int newSize);
557
- //@}
558
-
559
- /**@name Condition methods */
560
- //@{
561
- /// Conditionally gets new array
562
- char * conditionalNew(long sizeWanted);
563
- /// Conditionally deletes
564
- void conditionalDelete();
565
- //@}
566
-
567
- /**@name Constructors and destructors */
568
- //@{
569
- /** Default constructor - NULL*/
570
- inline CoinArrayWithLength()
571
- : array_(NULL),size_(-1),offset_(0),alignment_(0)
572
- { }
573
- /** Alternate Constructor - length in bytes - size_ -1 */
574
- inline CoinArrayWithLength(int size)
575
- : size_(-1),offset_(0),alignment_(0)
576
- { array_=new char [size];}
577
- /** Alternate Constructor - length in bytes
578
- mode - 0 size_ set to size
579
- mode>0 size_ set to size and zeroed
580
- if size<=0 just does alignment
581
- If abs(mode) >2 then align on that as power of 2
582
- */
583
- CoinArrayWithLength(int size, int mode);
584
- /** Copy constructor. */
585
- CoinArrayWithLength(const CoinArrayWithLength & rhs);
586
- /** Copy constructor.2 */
587
- CoinArrayWithLength(const CoinArrayWithLength * rhs);
588
- /** Assignment operator. */
589
- CoinArrayWithLength& operator=(const CoinArrayWithLength & rhs);
590
- /** Assignment with length (if -1 use internal length) */
591
- void copy(const CoinArrayWithLength & rhs, int numberBytes=-1);
592
- /** Assignment with length - does not copy */
593
- void allocate(const CoinArrayWithLength & rhs, int numberBytes);
594
- /** Destructor */
595
- ~CoinArrayWithLength ();
596
- /// Get array with alignment
597
- void getArray(int size);
598
- /// Really get rid of array with alignment
599
- void reallyFreeArray();
600
- /// Get enough space (if more needed then do at least needed)
601
- void getCapacity(int numberBytes,int numberIfNeeded=-1);
602
- //@}
603
-
604
- protected:
605
- /**@name Private member data */
606
- //@{
607
- /// Array
608
- char * array_;
609
- /// Size of array in bytes
610
- CoinBigIndex size_;
611
- /// Offset of array
612
- int offset_;
613
- /// Alignment wanted (power of 2)
614
- int alignment_;
615
- //@}
616
- };
617
- /// double * version
618
-
619
- class CoinDoubleArrayWithLength : public CoinArrayWithLength {
620
-
621
- public:
622
- /**@name Get methods. */
623
- //@{
624
- /// Get the size
625
- inline int getSize() const
626
- { return size_/CoinSizeofAsInt(double); }
627
- /// Get Array
628
- inline double * array() const
629
- { return reinterpret_cast<double *> ((size_>-2) ? array_ : NULL); }
630
- //@}
631
-
632
- /**@name Set methods */
633
- //@{
634
- /// Set the size
635
- inline void setSize(int value)
636
- { size_ = value*CoinSizeofAsInt(double); }
637
- //@}
638
-
639
- /**@name Condition methods */
640
- //@{
641
- /// Conditionally gets new array
642
- inline double * conditionalNew(int sizeWanted)
643
- { return reinterpret_cast<double *> ( CoinArrayWithLength::conditionalNew(sizeWanted>=0 ? static_cast<long> ((sizeWanted)*CoinSizeofAsInt(double)) : -1)); }
644
- //@}
645
-
646
- /**@name Constructors and destructors */
647
- //@{
648
- /** Default constructor - NULL*/
649
- inline CoinDoubleArrayWithLength()
650
- { array_=NULL; size_=-1;}
651
- /** Alternate Constructor - length in bytes - size_ -1 */
652
- inline CoinDoubleArrayWithLength(int size)
653
- { array_=new char [size*CoinSizeofAsInt(double)]; size_=-1;}
654
- /** Alternate Constructor - length in bytes
655
- mode - 0 size_ set to size
656
- 1 size_ set to size and zeroed
657
- */
658
- inline CoinDoubleArrayWithLength(int size, int mode)
659
- : CoinArrayWithLength(size*CoinSizeofAsInt(double),mode) {}
660
- /** Copy constructor. */
661
- inline CoinDoubleArrayWithLength(const CoinDoubleArrayWithLength & rhs)
662
- : CoinArrayWithLength(rhs) {}
663
- /** Copy constructor.2 */
664
- inline CoinDoubleArrayWithLength(const CoinDoubleArrayWithLength * rhs)
665
- : CoinArrayWithLength(rhs) {}
666
- /** Assignment operator. */
667
- inline CoinDoubleArrayWithLength& operator=(const CoinDoubleArrayWithLength & rhs)
668
- { CoinArrayWithLength::operator=(rhs); return *this;}
669
- //@}
670
- };
671
- /// CoinFactorizationDouble * version
672
-
673
- class CoinFactorizationDoubleArrayWithLength : public CoinArrayWithLength {
674
-
675
- public:
676
- /**@name Get methods. */
677
- //@{
678
- /// Get the size
679
- inline int getSize() const
680
- { return size_/CoinSizeofAsInt(CoinFactorizationDouble); }
681
- /// Get Array
682
- inline CoinFactorizationDouble * array() const
683
- { return reinterpret_cast<CoinFactorizationDouble *> ((size_>-2) ? array_ : NULL); }
684
- //@}
685
-
686
- /**@name Set methods */
687
- //@{
688
- /// Set the size
689
- inline void setSize(int value)
690
- { size_ = value*CoinSizeofAsInt(CoinFactorizationDouble); }
691
- //@}
692
-
693
- /**@name Condition methods */
694
- //@{
695
- /// Conditionally gets new array
696
- inline CoinFactorizationDouble * conditionalNew(int sizeWanted)
697
- { return reinterpret_cast<CoinFactorizationDouble *> (CoinArrayWithLength::conditionalNew(sizeWanted>=0 ? static_cast<long> (( sizeWanted)*CoinSizeofAsInt(CoinFactorizationDouble)) : -1)); }
698
- //@}
699
-
700
- /**@name Constructors and destructors */
701
- //@{
702
- /** Default constructor - NULL*/
703
- inline CoinFactorizationDoubleArrayWithLength()
704
- { array_=NULL; size_=-1;}
705
- /** Alternate Constructor - length in bytes - size_ -1 */
706
- inline CoinFactorizationDoubleArrayWithLength(int size)
707
- { array_=new char [size*CoinSizeofAsInt(CoinFactorizationDouble)]; size_=-1;}
708
- /** Alternate Constructor - length in bytes
709
- mode - 0 size_ set to size
710
- 1 size_ set to size and zeroed
711
- */
712
- inline CoinFactorizationDoubleArrayWithLength(int size, int mode)
713
- : CoinArrayWithLength(size*CoinSizeofAsInt(CoinFactorizationDouble),mode) {}
714
- /** Copy constructor. */
715
- inline CoinFactorizationDoubleArrayWithLength(const CoinFactorizationDoubleArrayWithLength & rhs)
716
- : CoinArrayWithLength(rhs) {}
717
- /** Copy constructor.2 */
718
- inline CoinFactorizationDoubleArrayWithLength(const CoinFactorizationDoubleArrayWithLength * rhs)
719
- : CoinArrayWithLength(rhs) {}
720
- /** Assignment operator. */
721
- inline CoinFactorizationDoubleArrayWithLength& operator=(const CoinFactorizationDoubleArrayWithLength & rhs)
722
- { CoinArrayWithLength::operator=(rhs); return *this;}
723
- //@}
724
- };
725
- /// CoinFactorizationLongDouble * version
726
-
727
- class CoinFactorizationLongDoubleArrayWithLength : public CoinArrayWithLength {
728
-
729
- public:
730
- /**@name Get methods. */
731
- //@{
732
- /// Get the size
733
- inline int getSize() const
734
- { return size_/CoinSizeofAsInt(long double); }
735
- /// Get Array
736
- inline long double * array() const
737
- { return reinterpret_cast<long double *> ((size_>-2) ? array_ : NULL); }
738
- //@}
739
-
740
- /**@name Set methods */
741
- //@{
742
- /// Set the size
743
- inline void setSize(int value)
744
- { size_ = value*CoinSizeofAsInt(long double); }
745
- //@}
746
-
747
- /**@name Condition methods */
748
- //@{
749
- /// Conditionally gets new array
750
- inline long double * conditionalNew(int sizeWanted)
751
- { return reinterpret_cast<long double *> (CoinArrayWithLength::conditionalNew(sizeWanted>=0 ? static_cast<long> (( sizeWanted)*CoinSizeofAsInt(long double)) : -1)); }
752
- //@}
753
-
754
- /**@name Constructors and destructors */
755
- //@{
756
- /** Default constructor - NULL*/
757
- inline CoinFactorizationLongDoubleArrayWithLength()
758
- { array_=NULL; size_=-1;}
759
- /** Alternate Constructor - length in bytes - size_ -1 */
760
- inline CoinFactorizationLongDoubleArrayWithLength(int size)
761
- { array_=new char [size*CoinSizeofAsInt(long double)]; size_=-1;}
762
- /** Alternate Constructor - length in bytes
763
- mode - 0 size_ set to size
764
- 1 size_ set to size and zeroed
765
- */
766
- inline CoinFactorizationLongDoubleArrayWithLength(int size, int mode)
767
- : CoinArrayWithLength(size*CoinSizeofAsInt(long double),mode) {}
768
- /** Copy constructor. */
769
- inline CoinFactorizationLongDoubleArrayWithLength(const CoinFactorizationLongDoubleArrayWithLength & rhs)
770
- : CoinArrayWithLength(rhs) {}
771
- /** Copy constructor.2 */
772
- inline CoinFactorizationLongDoubleArrayWithLength(const CoinFactorizationLongDoubleArrayWithLength * rhs)
773
- : CoinArrayWithLength(rhs) {}
774
- /** Assignment operator. */
775
- inline CoinFactorizationLongDoubleArrayWithLength& operator=(const CoinFactorizationLongDoubleArrayWithLength & rhs)
776
- { CoinArrayWithLength::operator=(rhs); return *this;}
777
- //@}
778
- };
779
- /// int * version
780
-
781
- class CoinIntArrayWithLength : public CoinArrayWithLength {
782
-
783
- public:
784
- /**@name Get methods. */
785
- //@{
786
- /// Get the size
787
- inline int getSize() const
788
- { return size_/CoinSizeofAsInt(int); }
789
- /// Get Array
790
- inline int * array() const
791
- { return reinterpret_cast<int *> ((size_>-2) ? array_ : NULL); }
792
- //@}
793
-
794
- /**@name Set methods */
795
- //@{
796
- /// Set the size
797
- inline void setSize(int value)
798
- { size_ = value*CoinSizeofAsInt(int); }
799
- //@}
800
-
801
- /**@name Condition methods */
802
- //@{
803
- /// Conditionally gets new array
804
- inline int * conditionalNew(int sizeWanted)
805
- { return reinterpret_cast<int *> (CoinArrayWithLength::conditionalNew(sizeWanted>=0 ? static_cast<long> (( sizeWanted)*CoinSizeofAsInt(int)) : -1)); }
806
- //@}
807
-
808
- /**@name Constructors and destructors */
809
- //@{
810
- /** Default constructor - NULL*/
811
- inline CoinIntArrayWithLength()
812
- { array_=NULL; size_=-1;}
813
- /** Alternate Constructor - length in bytes - size_ -1 */
814
- inline CoinIntArrayWithLength(int size)
815
- { array_=new char [size*CoinSizeofAsInt(int)]; size_=-1;}
816
- /** Alternate Constructor - length in bytes
817
- mode - 0 size_ set to size
818
- 1 size_ set to size and zeroed
819
- */
820
- inline CoinIntArrayWithLength(int size, int mode)
821
- : CoinArrayWithLength(size*CoinSizeofAsInt(int),mode) {}
822
- /** Copy constructor. */
823
- inline CoinIntArrayWithLength(const CoinIntArrayWithLength & rhs)
824
- : CoinArrayWithLength(rhs) {}
825
- /** Copy constructor.2 */
826
- inline CoinIntArrayWithLength(const CoinIntArrayWithLength * rhs)
827
- : CoinArrayWithLength(rhs) {}
828
- /** Assignment operator. */
829
- inline CoinIntArrayWithLength& operator=(const CoinIntArrayWithLength & rhs)
830
- { CoinArrayWithLength::operator=(rhs); return *this;}
831
- //@}
832
- };
833
- /// CoinBigIndex * version
834
-
835
- class CoinBigIndexArrayWithLength : public CoinArrayWithLength {
836
-
837
- public:
838
- /**@name Get methods. */
839
- //@{
840
- /// Get the size
841
- inline int getSize() const
842
- { return size_/CoinSizeofAsInt(CoinBigIndex); }
843
- /// Get Array
844
- inline CoinBigIndex * array() const
845
- { return reinterpret_cast<CoinBigIndex *> ((size_>-2) ? array_ : NULL); }
846
- //@}
847
-
848
- /**@name Set methods */
849
- //@{
850
- /// Set the size
851
- inline void setSize(int value)
852
- { size_ = value*CoinSizeofAsInt(CoinBigIndex); }
853
- //@}
854
-
855
- /**@name Condition methods */
856
- //@{
857
- /// Conditionally gets new array
858
- inline CoinBigIndex * conditionalNew(int sizeWanted)
859
- { return reinterpret_cast<CoinBigIndex *> (CoinArrayWithLength::conditionalNew(sizeWanted>=0 ? static_cast<long> (( sizeWanted)*CoinSizeofAsInt(CoinBigIndex)) : -1)); }
860
- //@}
861
-
862
- /**@name Constructors and destructors */
863
- //@{
864
- /** Default constructor - NULL*/
865
- inline CoinBigIndexArrayWithLength()
866
- { array_=NULL; size_=-1;}
867
- /** Alternate Constructor - length in bytes - size_ -1 */
868
- inline CoinBigIndexArrayWithLength(int size)
869
- { array_=new char [size*CoinSizeofAsInt(CoinBigIndex)]; size_=-1;}
870
- /** Alternate Constructor - length in bytes
871
- mode - 0 size_ set to size
872
- 1 size_ set to size and zeroed
873
- */
874
- inline CoinBigIndexArrayWithLength(int size, int mode)
875
- : CoinArrayWithLength(size*CoinSizeofAsInt(CoinBigIndex),mode) {}
876
- /** Copy constructor. */
877
- inline CoinBigIndexArrayWithLength(const CoinBigIndexArrayWithLength & rhs)
878
- : CoinArrayWithLength(rhs) {}
879
- /** Copy constructor.2 */
880
- inline CoinBigIndexArrayWithLength(const CoinBigIndexArrayWithLength * rhs)
881
- : CoinArrayWithLength(rhs) {}
882
- /** Assignment operator. */
883
- inline CoinBigIndexArrayWithLength& operator=(const CoinBigIndexArrayWithLength & rhs)
884
- { CoinArrayWithLength::operator=(rhs); return *this;}
885
- //@}
886
- };
887
- /// unsigned int * version
888
-
889
- class CoinUnsignedIntArrayWithLength : public CoinArrayWithLength {
890
-
891
- public:
892
- /**@name Get methods. */
893
- //@{
894
- /// Get the size
895
- inline int getSize() const
896
- { return size_/CoinSizeofAsInt(unsigned int); }
897
- /// Get Array
898
- inline unsigned int * array() const
899
- { return reinterpret_cast<unsigned int *> ((size_>-2) ? array_ : NULL); }
900
- //@}
901
-
902
- /**@name Set methods */
903
- //@{
904
- /// Set the size
905
- inline void setSize(int value)
906
- { size_ = value*CoinSizeofAsInt(unsigned int); }
907
- //@}
908
-
909
- /**@name Condition methods */
910
- //@{
911
- /// Conditionally gets new array
912
- inline unsigned int * conditionalNew(int sizeWanted)
913
- { return reinterpret_cast<unsigned int *> (CoinArrayWithLength::conditionalNew(sizeWanted>=0 ? static_cast<long> (( sizeWanted)*CoinSizeofAsInt(unsigned int)) : -1)); }
914
- //@}
915
-
916
- /**@name Constructors and destructors */
917
- //@{
918
- /** Default constructor - NULL*/
919
- inline CoinUnsignedIntArrayWithLength()
920
- { array_=NULL; size_=-1;}
921
- /** Alternate Constructor - length in bytes - size_ -1 */
922
- inline CoinUnsignedIntArrayWithLength(int size)
923
- { array_=new char [size*CoinSizeofAsInt(unsigned int)]; size_=-1;}
924
- /** Alternate Constructor - length in bytes
925
- mode - 0 size_ set to size
926
- 1 size_ set to size and zeroed
927
- */
928
- inline CoinUnsignedIntArrayWithLength(int size, int mode)
929
- : CoinArrayWithLength(size*CoinSizeofAsInt(unsigned int),mode) {}
930
- /** Copy constructor. */
931
- inline CoinUnsignedIntArrayWithLength(const CoinUnsignedIntArrayWithLength & rhs)
932
- : CoinArrayWithLength(rhs) {}
933
- /** Copy constructor.2 */
934
- inline CoinUnsignedIntArrayWithLength(const CoinUnsignedIntArrayWithLength * rhs)
935
- : CoinArrayWithLength(rhs) {}
936
- /** Assignment operator. */
937
- inline CoinUnsignedIntArrayWithLength& operator=(const CoinUnsignedIntArrayWithLength & rhs)
938
- { CoinArrayWithLength::operator=(rhs); return *this;}
939
- //@}
940
- };
941
- /// void * version
942
-
943
- class CoinVoidStarArrayWithLength : public CoinArrayWithLength {
944
-
945
- public:
946
- /**@name Get methods. */
947
- //@{
948
- /// Get the size
949
- inline int getSize() const
950
- { return size_/CoinSizeofAsInt(void *); }
951
- /// Get Array
952
- inline void ** array() const
953
- { return reinterpret_cast<void **> ((size_>-2) ? array_ : NULL); }
954
- //@}
955
-
956
- /**@name Set methods */
957
- //@{
958
- /// Set the size
959
- inline void setSize(int value)
960
- { size_ = value*CoinSizeofAsInt(void *); }
961
- //@}
962
-
963
- /**@name Condition methods */
964
- //@{
965
- /// Conditionally gets new array
966
- inline void ** conditionalNew(int sizeWanted)
967
- { return reinterpret_cast<void **> ( CoinArrayWithLength::conditionalNew(sizeWanted>=0 ? static_cast<long> ((sizeWanted)*CoinSizeofAsInt(void *)) : -1)); }
968
- //@}
969
-
970
- /**@name Constructors and destructors */
971
- //@{
972
- /** Default constructor - NULL*/
973
- inline CoinVoidStarArrayWithLength()
974
- { array_=NULL; size_=-1;}
975
- /** Alternate Constructor - length in bytes - size_ -1 */
976
- inline CoinVoidStarArrayWithLength(int size)
977
- { array_=new char [size*CoinSizeofAsInt(void *)]; size_=-1;}
978
- /** Alternate Constructor - length in bytes
979
- mode - 0 size_ set to size
980
- 1 size_ set to size and zeroed
981
- */
982
- inline CoinVoidStarArrayWithLength(int size, int mode)
983
- : CoinArrayWithLength(size*CoinSizeofAsInt(void *),mode) {}
984
- /** Copy constructor. */
985
- inline CoinVoidStarArrayWithLength(const CoinVoidStarArrayWithLength & rhs)
986
- : CoinArrayWithLength(rhs) {}
987
- /** Copy constructor.2 */
988
- inline CoinVoidStarArrayWithLength(const CoinVoidStarArrayWithLength * rhs)
989
- : CoinArrayWithLength(rhs) {}
990
- /** Assignment operator. */
991
- inline CoinVoidStarArrayWithLength& operator=(const CoinVoidStarArrayWithLength & rhs)
992
- { CoinArrayWithLength::operator=(rhs); return *this;}
993
- //@}
994
- };
995
- /// arbitrary version
996
-
997
- class CoinArbitraryArrayWithLength : public CoinArrayWithLength {
998
-
999
- public:
1000
- /**@name Get methods. */
1001
- //@{
1002
- /// Get the size
1003
- inline int getSize() const
1004
- { return size_/lengthInBytes_; }
1005
- /// Get Array
1006
- inline void ** array() const
1007
- { return reinterpret_cast<void **> ((size_>-2) ? array_ : NULL); }
1008
- //@}
1009
-
1010
- /**@name Set methods */
1011
- //@{
1012
- /// Set the size
1013
- inline void setSize(int value)
1014
- { size_ = value*lengthInBytes_; }
1015
- //@}
1016
-
1017
- /**@name Condition methods */
1018
- //@{
1019
- /// Conditionally gets new array
1020
- inline char * conditionalNew(int length, int sizeWanted)
1021
- { lengthInBytes_=length;return reinterpret_cast<char *> ( CoinArrayWithLength::conditionalNew(sizeWanted>=0 ? static_cast<long>
1022
- ((sizeWanted)*lengthInBytes_) : -1)); }
1023
- //@}
1024
-
1025
- /**@name Constructors and destructors */
1026
- //@{
1027
- /** Default constructor - NULL*/
1028
- inline CoinArbitraryArrayWithLength(int length=1)
1029
- { array_=NULL; size_=-1;lengthInBytes_=length;}
1030
- /** Alternate Constructor - length in bytes - size_ -1 */
1031
- inline CoinArbitraryArrayWithLength(int length, int size)
1032
- { array_=new char [size*length]; size_=-1; lengthInBytes_=length;}
1033
- /** Alternate Constructor - length in bytes
1034
- mode - 0 size_ set to size
1035
- 1 size_ set to size and zeroed
1036
- */
1037
- inline CoinArbitraryArrayWithLength(int length, int size, int mode)
1038
- : CoinArrayWithLength(size*length,mode) {lengthInBytes_=length;}
1039
- /** Copy constructor. */
1040
- inline CoinArbitraryArrayWithLength(const CoinArbitraryArrayWithLength & rhs)
1041
- : CoinArrayWithLength(rhs) {}
1042
- /** Copy constructor.2 */
1043
- inline CoinArbitraryArrayWithLength(const CoinArbitraryArrayWithLength * rhs)
1044
- : CoinArrayWithLength(rhs) {}
1045
- /** Assignment operator. */
1046
- inline CoinArbitraryArrayWithLength& operator=(const CoinArbitraryArrayWithLength & rhs)
1047
- { CoinArrayWithLength::operator=(rhs); return *this;}
1048
- //@}
1049
-
1050
- protected:
1051
- /**@name Private member data */
1052
- //@{
1053
- /// Length in bytes
1054
- int lengthInBytes_;
1055
- //@}
1056
- };
1057
- class CoinPartitionedVector : public CoinIndexedVector {
1058
-
1059
- public:
1060
- #ifndef COIN_PARTITIONS
1061
- #define COIN_PARTITIONS 8
1062
- #endif
1063
- /**@name Get methods. */
1064
- //@{
1065
- /// Get the size of a partition
1066
- inline int getNumElements(int partition) const { assert (partition<COIN_PARTITIONS);
1067
- return numberElementsPartition_[partition]; }
1068
- /// Get number of partitions
1069
- inline int getNumPartitions() const
1070
- { return numberPartitions_; }
1071
- /// Get the size
1072
- inline int getNumElements() const { return nElements_; }
1073
- /// Get starts
1074
- inline int startPartition(int partition) const { assert (partition<=COIN_PARTITIONS);
1075
- return startPartition_[partition]; }
1076
- /// Get starts
1077
- inline const int * startPartitions() const
1078
- { return startPartition_; }
1079
- //@}
1080
-
1081
- //-------------------------------------------------------------------
1082
- // Set indices and elements
1083
- //-------------------------------------------------------------------
1084
- /**@name Set methods */
1085
- //@{
1086
- /// Set the size of a partition
1087
- inline void setNumElementsPartition(int partition, int value) { assert (partition<COIN_PARTITIONS);
1088
- if (numberPartitions_) numberElementsPartition_[partition]=value; }
1089
- /// Set the size of a partition (just for a tiny while)
1090
- inline void setTempNumElementsPartition(int partition, int value) { assert (partition<COIN_PARTITIONS);
1091
- numberElementsPartition_[partition]=value; }
1092
- /// Add up number of elements in partitions
1093
- void computeNumberElements();
1094
- /// Add up number of elements in partitions and pack and get rid of partitions
1095
- void compact();
1096
- /** Reserve space.
1097
- */
1098
- void reserve(int n);
1099
- /// Setup partitions (needs end as well)
1100
- void setPartitions(int number,const int * starts);
1101
- /// Reset the vector (as if were just created an empty vector). Gets rid of partitions
1102
- void clearAndReset();
1103
- /// Reset the vector (as if were just created an empty vector). Keeps partitions
1104
- void clearAndKeep();
1105
- /// Clear a partition.
1106
- void clearPartition(int partition);
1107
- #ifndef NDEBUG
1108
- /// For debug check vector is clear i.e. no elements
1109
- void checkClear();
1110
- /// For debug check vector is clean i.e. elements match indices
1111
- void checkClean();
1112
- #else
1113
- inline void checkClear() {};
1114
- inline void checkClean() {};
1115
- #endif
1116
- /// Scan dense region and set up indices (returns number found)
1117
- int scan(int partition, double tolerance=0.0);
1118
- /** Scan dense region from start to < end and set up indices
1119
- returns number found
1120
- */
1121
- /// Print out
1122
- void print() const;
1123
- //@}
1124
-
1125
- /**@name Sorting */
1126
- //@{
1127
- /** Sort the indexed storage vector (increasing indices). */
1128
- void sort();
1129
- //@}
1130
-
1131
- /**@name Constructors and destructors (not all wriiten) */
1132
- //@{
1133
- /** Default constructor */
1134
- CoinPartitionedVector();
1135
- /** Alternate Constructors - set elements to vector of doubles */
1136
- CoinPartitionedVector(int size, const int * inds, const double * elems);
1137
- /** Alternate Constructors - set elements to same scalar value */
1138
- CoinPartitionedVector(int size, const int * inds, double element);
1139
- /** Alternate Constructors - construct full storage with indices 0 through
1140
- size-1. */
1141
- CoinPartitionedVector(int size, const double * elements);
1142
- /** Alternate Constructors - just size */
1143
- CoinPartitionedVector(int size);
1144
- /** Copy constructor. */
1145
- CoinPartitionedVector(const CoinPartitionedVector &);
1146
- /** Copy constructor.2 */
1147
- CoinPartitionedVector(const CoinPartitionedVector *);
1148
- /** Assignment operator. */
1149
- CoinPartitionedVector & operator=(const CoinPartitionedVector &);
1150
- /** Destructor */
1151
- ~CoinPartitionedVector ();
1152
- //@}
1153
- protected:
1154
- /**@name Private member data */
1155
- //@{
1156
- /// Starts
1157
- int startPartition_[COIN_PARTITIONS+1];
1158
- /// Size of indices in a partition
1159
- int numberElementsPartition_[COIN_PARTITIONS];
1160
- /// Number of partitions (0 means off)
1161
- int numberPartitions_;
1162
- //@}
1163
- };
1164
- #endif