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,528 +0,0 @@
1
- // Copyright (C) 2004, 2006 International Business Machines and others.
2
- // All Rights Reserved.
3
- // This code is published under the Eclipse Public License.
4
- //
5
- // $Id: CoinSmartPtr.hpp 1520 2012-01-29 00:43:31Z tkr $
6
- //
7
- // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13
8
- // Removed lots of debugging stuff and reformatted: Laszlo Ladanyi, IBM
9
- #ifndef CoinSmartPtr_hpp
10
- #define CoinSmartPtr_hpp
11
-
12
- #include <list>
13
- #include <cassert>
14
- #include <cstddef>
15
- #include <cstring>
16
-
17
- namespace Coin {
18
-
19
- //#########################################################################
20
-
21
- /** ReferencedObject class.
22
- * This is part of the implementation of an intrusive smart pointer
23
- * design. This class stores the reference count of all the smart
24
- * pointers that currently reference it. See the documentation for
25
- * the SmartPtr class for more details.
26
- *
27
- * A SmartPtr behaves much like a raw pointer, but manages the lifetime
28
- * of an object, deleting the object automatically. This class implements
29
- * a reference-counting, intrusive smart pointer design, where all
30
- * objects pointed to must inherit off of ReferencedObject, which
31
- * stores the reference count. Although this is intrusive (native types
32
- * and externally authored classes require wrappers to be referenced
33
- * by smart pointers), it is a safer design. A more detailed discussion of
34
- * these issues follows after the usage information.
35
- *
36
- * Usage Example:
37
- * Note: to use the SmartPtr, all objects to which you point MUST
38
- * inherit off of ReferencedObject.
39
- *
40
- * \verbatim
41
- *
42
- * In MyClass.hpp...
43
- *
44
- * #include "CoinSmartPtr.hpp"
45
-
46
- *
47
- * class MyClass : public Coin::ReferencedObject // must derive from ReferencedObject
48
- * {
49
- * ...
50
- * }
51
- *
52
- * In my_usage.cpp...
53
- *
54
- * #include "CoinSmartPtr.hpp"
55
- * #include "MyClass.hpp"
56
- *
57
- * void func(AnyObject& obj)
58
- * {
59
- * Coin::SmartPtr<MyClass> ptr_to_myclass = new MyClass(...);
60
- * // ptr_to_myclass now points to a new MyClass,
61
- * // and the reference count is 1
62
- *
63
- * ...
64
- *
65
- * obj.SetMyClass(ptr_to_myclass);
66
- * // Here, let's assume that AnyObject uses a
67
- * // SmartPtr<MyClass> internally here.
68
- * // Now, both ptr_to_myclass and the internal
69
- * // SmartPtr in obj point to the same MyClass object
70
- * // and its reference count is 2.
71
- *
72
- * ...
73
- *
74
- * // No need to delete ptr_to_myclass, this
75
- * // will be done automatically when the
76
- * // reference count drops to zero.
77
- *
78
- * }
79
- *
80
- * \endverbatim
81
- *
82
- * Other Notes:
83
- * The SmartPtr implements both dereference operators -> & *.
84
- * The SmartPtr does NOT implement a conversion operator to
85
- * the raw pointer. Use the GetRawPtr() method when this
86
- * is necessary. Make sure that the raw pointer is NOT
87
- * deleted.
88
- * The SmartPtr implements the comparison operators == & !=
89
- * for a variety of types. Use these instead of
90
- * \verbatim
91
- * if (GetRawPtr(smrt_ptr) == ptr) // Don't use this
92
- * \endverbatim
93
- * SmartPtr's, as currently implemented, do NOT handle circular references.
94
- * For example: consider a higher level object using SmartPtrs to point
95
- * to A and B, but A and B also point to each other (i.e. A has a
96
- * SmartPtr to B and B has a SmartPtr to A). In this scenario, when the
97
- * higher level object is finished with A and B, their reference counts
98
- * will never drop to zero (since they reference each other) and they
99
- * will not be deleted. This can be detected by memory leak tools like
100
- * valgrind. If the circular reference is necessary, the problem can be
101
- * overcome by a number of techniques:
102
- *
103
- * 1) A and B can have a method that "releases" each other, that is
104
- * they set their internal SmartPtrs to NULL.
105
- * \verbatim
106
- * void AClass::ReleaseCircularReferences()
107
- * {
108
- * smart_ptr_to_B = NULL;
109
- * }
110
- * \endverbatim
111
- * Then, the higher level class can call these methods before
112
- * it is done using A & B.
113
- *
114
- * 2) Raw pointers can be used in A and B to reference each other.
115
- * Here, an implicit assumption is made that the lifetime is
116
- * controlled by the higher level object and that A and B will
117
- * both exist in a controlled manner. Although this seems
118
- * dangerous, in many situations, this type of referencing
119
- * is very controlled and this is reasonably safe.
120
- *
121
- * 3) This SmartPtr class could be redesigned with the Weak/Strong
122
- * design concept. Here, the SmartPtr is identified as being
123
- * Strong (controls lifetime of the object) or Weak (merely
124
- * referencing the object). The Strong SmartPtr increments
125
- * (and decrements) the reference count in ReferencedObject
126
- * but the Weak SmartPtr does not. In the example above,
127
- * the higher level object would have Strong SmartPtrs to
128
- * A and B, but A and B would have Weak SmartPtrs to each
129
- * other. Then, when the higher level object was done with
130
- * A and B, they would be deleted. The Weak SmartPtrs in A
131
- * and B would not decrement the reference count and would,
132
- * of course, not delete the object. This idea is very similar
133
- * to item (2), where it is implied that the sequence of events
134
- * is controlled such that A and B will not call anything using
135
- * their pointers following the higher level delete (i.e. in
136
- * their destructors!). This is somehow safer, however, because
137
- * code can be written (however expensive) to perform run-time
138
- * detection of this situation. For example, the ReferencedObject
139
- * could store pointers to all Weak SmartPtrs that are referencing
140
- * it and, in its destructor, tell these pointers that it is
141
- * dying. They could then set themselves to NULL, or set an
142
- * internal flag to detect usage past this point.
143
- *
144
- * Comments on Non-Intrusive Design:
145
- * In a non-intrusive design, the reference count is stored somewhere other
146
- * than the object being referenced. This means, unless the reference
147
- * counting pointer is the first referencer, it must get a pointer to the
148
- * referenced object from another smart pointer (so it has access to the
149
- * reference count location). In this non-intrusive design, if we are
150
- * pointing to an object with a smart pointer (or a number of smart
151
- * pointers), and we then give another smart pointer the address through
152
- * a RAW pointer, we will have two independent, AND INCORRECT, reference
153
- * counts. To avoid this pitfall, we use an intrusive reference counting
154
- * technique where the reference count is stored in the object being
155
- * referenced.
156
- */
157
- class ReferencedObject {
158
- public:
159
- ReferencedObject() : reference_count_(0) {}
160
- virtual ~ReferencedObject() { assert(reference_count_ == 0); }
161
- inline int ReferenceCount() const { return reference_count_; }
162
- inline void AddRef() const { ++reference_count_; }
163
- inline void ReleaseRef() const { --reference_count_; }
164
-
165
- private:
166
- mutable int reference_count_;
167
- };
168
-
169
- //#########################################################################
170
-
171
-
172
- //#define IP_DEBUG_SMARTPTR
173
- #if COIN_IPOPT_CHECKLEVEL > 2
174
- # define IP_DEBUG_SMARTPTR
175
- #endif
176
- #ifdef IP_DEBUG_SMARTPTR
177
- # include "IpDebug.hpp"
178
- #endif
179
-
180
- /** Template class for Smart Pointers.
181
- * A SmartPtr behaves much like a raw pointer, but manages the lifetime
182
- * of an object, deleting the object automatically. This class implements
183
- * a reference-counting, intrusive smart pointer design, where all
184
- * objects pointed to must inherit off of ReferencedObject, which
185
- * stores the reference count. Although this is intrusive (native types
186
- * and externally authored classes require wrappers to be referenced
187
- * by smart pointers), it is a safer design. A more detailed discussion of
188
- * these issues follows after the usage information.
189
- *
190
- * Usage Example:
191
- * Note: to use the SmartPtr, all objects to which you point MUST
192
- * inherit off of ReferencedObject.
193
- *
194
- * \verbatim
195
- *
196
- * In MyClass.hpp...
197
- *
198
- * #include "CoinSmartPtr.hpp"
199
- *
200
- * class MyClass : public Coin::ReferencedObject // must derive from ReferencedObject
201
- * {
202
- * ...
203
- * }
204
- *
205
- * In my_usage.cpp...
206
- *
207
- * #include "CoinSmartPtr.hpp"
208
- * #include "MyClass.hpp"
209
- *
210
- * void func(AnyObject& obj)
211
- * {
212
- * SmartPtr<MyClass> ptr_to_myclass = new MyClass(...);
213
- * // ptr_to_myclass now points to a new MyClass,
214
- * // and the reference count is 1
215
- *
216
- * ...
217
- *
218
- * obj.SetMyClass(ptr_to_myclass);
219
- * // Here, let's assume that AnyObject uses a
220
- * // SmartPtr<MyClass> internally here.
221
- * // Now, both ptr_to_myclass and the internal
222
- * // SmartPtr in obj point to the same MyClass object
223
- * // and its reference count is 2.
224
- *
225
- * ...
226
- *
227
- * // No need to delete ptr_to_myclass, this
228
- * // will be done automatically when the
229
- * // reference count drops to zero.
230
- *
231
- * }
232
- *
233
- * \endverbatim
234
- *
235
- * It is not necessary to use SmartPtr's in all cases where an
236
- * object is used that has been allocated "into" a SmartPtr. It is
237
- * possible to just pass objects by reference or regular pointers,
238
- * even if lower down in the stack a SmartPtr is to be held on to.
239
- * Everything should work fine as long as a pointer created by "new"
240
- * is immediately passed into a SmartPtr, and if SmartPtr's are used
241
- * to hold on to objects.
242
- *
243
- * Other Notes:
244
- * The SmartPtr implements both dereference operators -> & *.
245
- * The SmartPtr does NOT implement a conversion operator to
246
- * the raw pointer. Use the GetRawPtr() method when this
247
- * is necessary. Make sure that the raw pointer is NOT
248
- * deleted.
249
- * The SmartPtr implements the comparison operators == & !=
250
- * for a variety of types. Use these instead of
251
- * \verbatim
252
- * if (GetRawPtr(smrt_ptr) == ptr) // Don't use this
253
- * \endverbatim
254
- * SmartPtr's, as currently implemented, do NOT handle circular references.
255
- * For example: consider a higher level object using SmartPtrs to point to
256
- * A and B, but A and B also point to each other (i.e. A has a SmartPtr
257
- * to B and B has a SmartPtr to A). In this scenario, when the higher
258
- * level object is finished with A and B, their reference counts will
259
- * never drop to zero (since they reference each other) and they
260
- * will not be deleted. This can be detected by memory leak tools like
261
- * valgrind. If the circular reference is necessary, the problem can be
262
- * overcome by a number of techniques:
263
- *
264
- * 1) A and B can have a method that "releases" each other, that is
265
- * they set their internal SmartPtrs to NULL.
266
- * \verbatim
267
- * void AClass::ReleaseCircularReferences()
268
- * {
269
- * smart_ptr_to_B = NULL;
270
- * }
271
- * \endverbatim
272
- * Then, the higher level class can call these methods before
273
- * it is done using A & B.
274
- *
275
- * 2) Raw pointers can be used in A and B to reference each other.
276
- * Here, an implicit assumption is made that the lifetime is
277
- * controlled by the higher level object and that A and B will
278
- * both exist in a controlled manner. Although this seems
279
- * dangerous, in many situations, this type of referencing
280
- * is very controlled and this is reasonably safe.
281
- *
282
- * 3) This SmartPtr class could be redesigned with the Weak/Strong
283
- * design concept. Here, the SmartPtr is identified as being
284
- * Strong (controls lifetime of the object) or Weak (merely
285
- * referencing the object). The Strong SmartPtr increments
286
- * (and decrements) the reference count in ReferencedObject
287
- * but the Weak SmartPtr does not. In the example above,
288
- * the higher level object would have Strong SmartPtrs to
289
- * A and B, but A and B would have Weak SmartPtrs to each
290
- * other. Then, when the higher level object was done with
291
- * A and B, they would be deleted. The Weak SmartPtrs in A
292
- * and B would not decrement the reference count and would,
293
- * of course, not delete the object. This idea is very similar
294
- * to item (2), where it is implied that the sequence of events
295
- * is controlled such that A and B will not call anything using
296
- * their pointers following the higher level delete (i.e. in
297
- * their destructors!). This is somehow safer, however, because
298
- * code can be written (however expensive) to perform run-time
299
- * detection of this situation. For example, the ReferencedObject
300
- * could store pointers to all Weak SmartPtrs that are referencing
301
- * it and, in its destructor, tell these pointers that it is
302
- * dying. They could then set themselves to NULL, or set an
303
- * internal flag to detect usage past this point.
304
- *
305
- * Comments on Non-Intrusive Design:
306
- * In a non-intrusive design, the reference count is stored somewhere other
307
- * than the object being referenced. This means, unless the reference
308
- * counting pointer is the first referencer, it must get a pointer to the
309
- * referenced object from another smart pointer (so it has access to the
310
- * reference count location). In this non-intrusive design, if we are
311
- * pointing to an object with a smart pointer (or a number of smart
312
- * pointers), and we then give another smart pointer the address through
313
- * a RAW pointer, we will have two independent, AND INCORRECT, reference
314
- * counts. To avoid this pitfall, we use an intrusive reference counting
315
- * technique where the reference count is stored in the object being
316
- * referenced.
317
- */
318
- template <class T>
319
- class SmartPtr {
320
- public:
321
- /** Returns the raw pointer contained. Use to get the value of the
322
- * raw ptr (i.e. to pass to other methods/functions, etc.) Note: This
323
- * method does NOT copy, therefore, modifications using this value
324
- * modify the underlying object contained by the SmartPtr, NEVER
325
- * delete this returned value.
326
- */
327
- T* GetRawPtr() const { return ptr_; }
328
-
329
- /** Returns true if the SmartPtr is NOT NULL.
330
- * Use this to check if the SmartPtr is not null
331
- * This is preferred to if(GetRawPtr(sp) != NULL)
332
- */
333
- bool IsValid() const { return ptr_ != NULL; }
334
-
335
- /** Returns true if the SmartPtr is NULL.
336
- * Use this to check if the SmartPtr IsNull.
337
- * This is preferred to if(GetRawPtr(sp) == NULL)
338
- */
339
- bool IsNull() const { return ptr_ == NULL; }
340
-
341
- private:
342
- /**@name Private Data/Methods */
343
- //@{
344
- /** Actual raw pointer to the object. */
345
- T* ptr_;
346
-
347
- /** Release the currently referenced object. */
348
- void ReleasePointer_() {
349
- if (ptr_) {
350
- ptr_->ReleaseRef();
351
- if (ptr_->ReferenceCount() == 0) {
352
- delete ptr_;
353
- }
354
- ptr_ = NULL;
355
- }
356
- }
357
-
358
- /** Set the value of the internal raw pointer from another raw
359
- * pointer, releasing the previously referenced object if necessary. */
360
- SmartPtr<T>& SetFromRawPtr_(T* rhs){
361
- ReleasePointer_(); // Release any old pointer
362
- if (rhs != NULL) {
363
- rhs->AddRef();
364
- ptr_ = rhs;
365
- }
366
- return *this;
367
- }
368
-
369
- /** Set the value of the internal raw pointer from a SmartPtr,
370
- * releasing the previously referenced object if necessary. */
371
- inline SmartPtr<T>& SetFromSmartPtr_(const SmartPtr<T>& rhs) {
372
- SetFromRawPtr_(rhs.GetRawPtr());
373
- return (*this);
374
- }
375
-
376
- //@}
377
-
378
- public:
379
- #define dbg_smartptr_verbosity 0
380
-
381
- /**@name Constructors/Destructors */
382
- //@{
383
- /** Default constructor, initialized to NULL */
384
- SmartPtr() : ptr_(NULL) {}
385
-
386
- /** Copy constructor, initialized from copy */
387
- SmartPtr(const SmartPtr<T>& copy) : ptr_(NULL) {
388
- (void) SetFromSmartPtr_(copy);
389
- }
390
-
391
- /** Constructor, initialized from T* ptr */
392
- SmartPtr(T* ptr) : ptr_(NULL) {
393
- (void) SetFromRawPtr_(ptr);
394
- }
395
-
396
- /** Destructor, automatically decrements the reference count, deletes
397
- * the object if necessary.*/
398
- ~SmartPtr() {
399
- ReleasePointer_();
400
- }
401
- //@}
402
-
403
- /**@name Overloaded operators. */
404
- //@{
405
- /** Overloaded arrow operator, allows the user to call
406
- * methods using the contained pointer. */
407
- T* operator->() const {
408
- #if COIN_COINUTILS_CHECKLEVEL > 0
409
- assert(ptr_);
410
- #endif
411
- return ptr_;
412
- }
413
-
414
- /** Overloaded dereference operator, allows the user
415
- * to dereference the contained pointer. */
416
- T& operator*() const {
417
- #if COIN_IPOPT_CHECKLEVEL > 0
418
- assert(ptr_);
419
- #endif
420
- return *ptr_;
421
- }
422
-
423
- /** Overloaded equals operator, allows the user to
424
- * set the value of the SmartPtr from a raw pointer */
425
- SmartPtr<T>& operator=(T* rhs) {
426
- return SetFromRawPtr_(rhs);
427
- }
428
-
429
- /** Overloaded equals operator, allows the user to
430
- * set the value of the SmartPtr from another
431
- * SmartPtr */
432
- SmartPtr<T>& operator=(const SmartPtr<T>& rhs) {
433
- return SetFromSmartPtr_(rhs);
434
- }
435
-
436
- /** Overloaded equality comparison operator, allows the
437
- * user to compare the value of two SmartPtrs */
438
- template <class U1, class U2>
439
- friend
440
- bool operator==(const SmartPtr<U1>& lhs, const SmartPtr<U2>& rhs);
441
-
442
- /** Overloaded equality comparison operator, allows the
443
- * user to compare the value of a SmartPtr with a raw pointer. */
444
- template <class U1, class U2>
445
- friend
446
- bool operator==(const SmartPtr<U1>& lhs, U2* raw_rhs);
447
-
448
- /** Overloaded equality comparison operator, allows the
449
- * user to compare the value of a raw pointer with a SmartPtr. */
450
- template <class U1, class U2>
451
- friend
452
- bool operator==(U1* lhs, const SmartPtr<U2>& raw_rhs);
453
-
454
- /** Overloaded in-equality comparison operator, allows the
455
- * user to compare the value of two SmartPtrs */
456
- template <class U1, class U2>
457
- friend
458
- bool operator!=(const SmartPtr<U1>& lhs, const SmartPtr<U2>& rhs);
459
-
460
- /** Overloaded in-equality comparison operator, allows the
461
- * user to compare the value of a SmartPtr with a raw pointer. */
462
- template <class U1, class U2>
463
- friend
464
- bool operator!=(const SmartPtr<U1>& lhs, U2* raw_rhs);
465
-
466
- /** Overloaded in-equality comparison operator, allows the
467
- * user to compare the value of a SmartPtr with a raw pointer. */
468
- template <class U1, class U2>
469
- friend
470
- bool operator!=(U1* lhs, const SmartPtr<U2>& raw_rhs);
471
- //@}
472
-
473
- };
474
-
475
- template <class U1, class U2>
476
- bool ComparePointers(const U1* lhs, const U2* rhs) {
477
- if (lhs == rhs) {
478
- return true;
479
- }
480
- // If lhs and rhs point to the same object with different interfaces
481
- // U1 and U2, we cannot guarantee that the value of the pointers will
482
- // be equivalent. We can guarantee this if we convert to void*.
483
- return static_cast<const void*>(lhs) == static_cast<const void*>(rhs);
484
- }
485
-
486
- } // namespace Coin
487
-
488
- //#############################################################################
489
-
490
- /**@name SmartPtr friends that are overloaded operators, so they are not in
491
- the Coin namespace. */
492
- //@{
493
- template <class U1, class U2>
494
- bool operator==(const Coin::SmartPtr<U1>& lhs, const Coin::SmartPtr<U2>& rhs) {
495
- return Coin::ComparePointers(lhs.GetRawPtr(), rhs.GetRawPtr());
496
- }
497
-
498
- template <class U1, class U2>
499
- bool operator==(const Coin::SmartPtr<U1>& lhs, U2* raw_rhs) {
500
- return Coin::ComparePointers(lhs.GetRawPtr(), raw_rhs);
501
- }
502
-
503
- template <class U1, class U2>
504
- bool operator==(U1* raw_lhs, const Coin::SmartPtr<U2>& rhs) {
505
- return Coin::ComparePointers(raw_lhs, rhs.GetRawPtr());
506
- }
507
-
508
- template <class U1, class U2>
509
- bool operator!=(const Coin::SmartPtr<U1>& lhs, const Coin::SmartPtr<U2>& rhs) {
510
- return ! operator==(lhs, rhs);
511
- }
512
-
513
- template <class U1, class U2>
514
- bool operator!=(const Coin::SmartPtr<U1>& lhs, U2* raw_rhs) {
515
- return ! operator==(lhs, raw_rhs);
516
- }
517
-
518
- template <class U1, class U2>
519
- bool operator!=(U1* raw_lhs, const Coin::SmartPtr<U2>& rhs) {
520
- return ! operator==(raw_lhs, rhs);
521
- }
522
- //@}
523
-
524
- #define CoinReferencedObject Coin::ReferencedObject
525
- #define CoinSmartPtr Coin::SmartPtr
526
- #define CoinComparePointers Coin::ComparePointers
527
-
528
- #endif