ruby-cbc 0.1.9 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (290) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +5 -5
  3. data/Rakefile +0 -2
  4. data/lib/ruby-cbc.rb +1 -1
  5. data/lib/ruby-cbc/problem.rb +6 -8
  6. data/lib/ruby-cbc/version.rb +1 -1
  7. data/ruby-cbc.gemspec +3 -2
  8. metadata +17 -287
  9. data/ext/ruby-cbc/cbc.i +0 -15
  10. data/ext/ruby-cbc/cbc_wrap.c +0 -4618
  11. data/ext/ruby-cbc/extconf.rb +0 -60
  12. data/ext/ruby-cbc/install/bin/cbc +0 -0
  13. data/ext/ruby-cbc/install/bin/clp +0 -0
  14. data/ext/ruby-cbc/install/include/coin/CbcBranchActual.hpp +0 -24
  15. data/ext/ruby-cbc/install/include/coin/CbcBranchAllDifferent.hpp +0 -62
  16. data/ext/ruby-cbc/install/include/coin/CbcBranchBase.hpp +0 -78
  17. data/ext/ruby-cbc/install/include/coin/CbcBranchCut.hpp +0 -183
  18. data/ext/ruby-cbc/install/include/coin/CbcBranchDecision.hpp +0 -129
  19. data/ext/ruby-cbc/install/include/coin/CbcBranchDefaultDecision.hpp +0 -100
  20. data/ext/ruby-cbc/install/include/coin/CbcBranchDynamic.hpp +0 -206
  21. data/ext/ruby-cbc/install/include/coin/CbcBranchLotsize.hpp +0 -242
  22. data/ext/ruby-cbc/install/include/coin/CbcBranchToFixLots.hpp +0 -94
  23. data/ext/ruby-cbc/install/include/coin/CbcBranchingObject.hpp +0 -236
  24. data/ext/ruby-cbc/install/include/coin/CbcClique.hpp +0 -303
  25. data/ext/ruby-cbc/install/include/coin/CbcCompare.hpp +0 -39
  26. data/ext/ruby-cbc/install/include/coin/CbcCompareActual.hpp +0 -14
  27. data/ext/ruby-cbc/install/include/coin/CbcCompareBase.hpp +0 -142
  28. data/ext/ruby-cbc/install/include/coin/CbcCompareDefault.hpp +0 -120
  29. data/ext/ruby-cbc/install/include/coin/CbcCompareDepth.hpp +0 -47
  30. data/ext/ruby-cbc/install/include/coin/CbcCompareEstimate.hpp +0 -48
  31. data/ext/ruby-cbc/install/include/coin/CbcCompareObjective.hpp +0 -49
  32. data/ext/ruby-cbc/install/include/coin/CbcConfig.h +0 -14
  33. data/ext/ruby-cbc/install/include/coin/CbcConsequence.hpp +0 -49
  34. data/ext/ruby-cbc/install/include/coin/CbcCountRowCut.hpp +0 -168
  35. data/ext/ruby-cbc/install/include/coin/CbcCutGenerator.hpp +0 -482
  36. data/ext/ruby-cbc/install/include/coin/CbcCutModifier.hpp +0 -57
  37. data/ext/ruby-cbc/install/include/coin/CbcCutSubsetModifier.hpp +0 -66
  38. data/ext/ruby-cbc/install/include/coin/CbcDummyBranchingObject.hpp +0 -83
  39. data/ext/ruby-cbc/install/include/coin/CbcEventHandler.hpp +0 -245
  40. data/ext/ruby-cbc/install/include/coin/CbcFathom.hpp +0 -137
  41. data/ext/ruby-cbc/install/include/coin/CbcFathomDynamicProgramming.hpp +0 -169
  42. data/ext/ruby-cbc/install/include/coin/CbcFeasibilityBase.hpp +0 -56
  43. data/ext/ruby-cbc/install/include/coin/CbcFixVariable.hpp +0 -67
  44. data/ext/ruby-cbc/install/include/coin/CbcFollowOn.hpp +0 -207
  45. data/ext/ruby-cbc/install/include/coin/CbcFullNodeInfo.hpp +0 -161
  46. data/ext/ruby-cbc/install/include/coin/CbcGeneral.hpp +0 -60
  47. data/ext/ruby-cbc/install/include/coin/CbcGeneralDepth.hpp +0 -279
  48. data/ext/ruby-cbc/install/include/coin/CbcHeuristic.hpp +0 -682
  49. data/ext/ruby-cbc/install/include/coin/CbcHeuristicDINS.hpp +0 -96
  50. data/ext/ruby-cbc/install/include/coin/CbcHeuristicDW.hpp +0 -309
  51. data/ext/ruby-cbc/install/include/coin/CbcHeuristicDive.hpp +0 -192
  52. data/ext/ruby-cbc/install/include/coin/CbcHeuristicDiveCoefficient.hpp +0 -52
  53. data/ext/ruby-cbc/install/include/coin/CbcHeuristicDiveFractional.hpp +0 -52
  54. data/ext/ruby-cbc/install/include/coin/CbcHeuristicDiveGuided.hpp +0 -55
  55. data/ext/ruby-cbc/install/include/coin/CbcHeuristicDiveLineSearch.hpp +0 -52
  56. data/ext/ruby-cbc/install/include/coin/CbcHeuristicDivePseudoCost.hpp +0 -60
  57. data/ext/ruby-cbc/install/include/coin/CbcHeuristicDiveVectorLength.hpp +0 -52
  58. data/ext/ruby-cbc/install/include/coin/CbcHeuristicFPump.hpp +0 -340
  59. data/ext/ruby-cbc/install/include/coin/CbcHeuristicGreedy.hpp +0 -280
  60. data/ext/ruby-cbc/install/include/coin/CbcHeuristicLocal.hpp +0 -271
  61. data/ext/ruby-cbc/install/include/coin/CbcHeuristicPivotAndFix.hpp +0 -58
  62. data/ext/ruby-cbc/install/include/coin/CbcHeuristicRENS.hpp +0 -77
  63. data/ext/ruby-cbc/install/include/coin/CbcHeuristicRINS.hpp +0 -102
  64. data/ext/ruby-cbc/install/include/coin/CbcHeuristicRandRound.hpp +0 -58
  65. data/ext/ruby-cbc/install/include/coin/CbcHeuristicVND.hpp +0 -94
  66. data/ext/ruby-cbc/install/include/coin/CbcLinked.hpp +0 -1406
  67. data/ext/ruby-cbc/install/include/coin/CbcMessage.hpp +0 -94
  68. data/ext/ruby-cbc/install/include/coin/CbcMipStartIO.hpp +0 -26
  69. data/ext/ruby-cbc/install/include/coin/CbcModel.hpp +0 -2952
  70. data/ext/ruby-cbc/install/include/coin/CbcNWay.hpp +0 -166
  71. data/ext/ruby-cbc/install/include/coin/CbcNode.hpp +0 -351
  72. data/ext/ruby-cbc/install/include/coin/CbcNodeInfo.hpp +0 -349
  73. data/ext/ruby-cbc/install/include/coin/CbcObject.hpp +0 -272
  74. data/ext/ruby-cbc/install/include/coin/CbcObjectUpdateData.hpp +0 -64
  75. data/ext/ruby-cbc/install/include/coin/CbcOrClpParam.cpp +0 -4134
  76. data/ext/ruby-cbc/install/include/coin/CbcOrClpParam.hpp +0 -532
  77. data/ext/ruby-cbc/install/include/coin/CbcParam.hpp +0 -324
  78. data/ext/ruby-cbc/install/include/coin/CbcPartialNodeInfo.hpp +0 -110
  79. data/ext/ruby-cbc/install/include/coin/CbcSOS.hpp +0 -279
  80. data/ext/ruby-cbc/install/include/coin/CbcSimpleInteger.hpp +0 -286
  81. data/ext/ruby-cbc/install/include/coin/CbcSimpleIntegerDynamicPseudoCost.hpp +0 -564
  82. data/ext/ruby-cbc/install/include/coin/CbcSimpleIntegerPseudoCost.hpp +0 -114
  83. data/ext/ruby-cbc/install/include/coin/CbcSolver.hpp +0 -447
  84. data/ext/ruby-cbc/install/include/coin/CbcStrategy.hpp +0 -258
  85. data/ext/ruby-cbc/install/include/coin/CbcSubProblem.hpp +0 -83
  86. data/ext/ruby-cbc/install/include/coin/CbcTree.hpp +0 -490
  87. data/ext/ruby-cbc/install/include/coin/CbcTreeLocal.hpp +0 -372
  88. data/ext/ruby-cbc/install/include/coin/Cbc_C_Interface.h +0 -381
  89. data/ext/ruby-cbc/install/include/coin/Cgl012cut.hpp +0 -464
  90. data/ext/ruby-cbc/install/include/coin/CglAllDifferent.hpp +0 -115
  91. data/ext/ruby-cbc/install/include/coin/CglClique.hpp +0 -308
  92. data/ext/ruby-cbc/install/include/coin/CglConfig.h +0 -19
  93. data/ext/ruby-cbc/install/include/coin/CglCutGenerator.hpp +0 -121
  94. data/ext/ruby-cbc/install/include/coin/CglDuplicateRow.hpp +0 -189
  95. data/ext/ruby-cbc/install/include/coin/CglFlowCover.hpp +0 -371
  96. data/ext/ruby-cbc/install/include/coin/CglGMI.hpp +0 -364
  97. data/ext/ruby-cbc/install/include/coin/CglGMIParam.hpp +0 -313
  98. data/ext/ruby-cbc/install/include/coin/CglGomory.hpp +0 -204
  99. data/ext/ruby-cbc/install/include/coin/CglKnapsackCover.hpp +0 -310
  100. data/ext/ruby-cbc/install/include/coin/CglLandP.hpp +0 -306
  101. data/ext/ruby-cbc/install/include/coin/CglLandPValidator.hpp +0 -130
  102. data/ext/ruby-cbc/install/include/coin/CglLiftAndProject.hpp +0 -104
  103. data/ext/ruby-cbc/install/include/coin/CglMessage.hpp +0 -50
  104. data/ext/ruby-cbc/install/include/coin/CglMixedIntegerRounding.hpp +0 -429
  105. data/ext/ruby-cbc/install/include/coin/CglMixedIntegerRounding2.hpp +0 -427
  106. data/ext/ruby-cbc/install/include/coin/CglOddHole.hpp +0 -160
  107. data/ext/ruby-cbc/install/include/coin/CglParam.hpp +0 -93
  108. data/ext/ruby-cbc/install/include/coin/CglPreProcess.hpp +0 -492
  109. data/ext/ruby-cbc/install/include/coin/CglProbing.hpp +0 -543
  110. data/ext/ruby-cbc/install/include/coin/CglRedSplit.hpp +0 -448
  111. data/ext/ruby-cbc/install/include/coin/CglRedSplit2.hpp +0 -494
  112. data/ext/ruby-cbc/install/include/coin/CglRedSplit2Param.hpp +0 -495
  113. data/ext/ruby-cbc/install/include/coin/CglRedSplitParam.hpp +0 -272
  114. data/ext/ruby-cbc/install/include/coin/CglResidualCapacity.hpp +0 -240
  115. data/ext/ruby-cbc/install/include/coin/CglSimpleRounding.hpp +0 -174
  116. data/ext/ruby-cbc/install/include/coin/CglStored.hpp +0 -125
  117. data/ext/ruby-cbc/install/include/coin/CglTreeInfo.hpp +0 -180
  118. data/ext/ruby-cbc/install/include/coin/CglTwomir.hpp +0 -565
  119. data/ext/ruby-cbc/install/include/coin/CglZeroHalf.hpp +0 -133
  120. data/ext/ruby-cbc/install/include/coin/ClpAmplObjective.hpp +0 -113
  121. data/ext/ruby-cbc/install/include/coin/ClpCholeskyBase.hpp +0 -294
  122. data/ext/ruby-cbc/install/include/coin/ClpCholeskyDense.hpp +0 -162
  123. data/ext/ruby-cbc/install/include/coin/ClpConfig.h +0 -17
  124. data/ext/ruby-cbc/install/include/coin/ClpConstraint.hpp +0 -125
  125. data/ext/ruby-cbc/install/include/coin/ClpConstraintAmpl.hpp +0 -108
  126. data/ext/ruby-cbc/install/include/coin/ClpConstraintLinear.hpp +0 -110
  127. data/ext/ruby-cbc/install/include/coin/ClpConstraintQuadratic.hpp +0 -119
  128. data/ext/ruby-cbc/install/include/coin/ClpDualRowDantzig.hpp +0 -71
  129. data/ext/ruby-cbc/install/include/coin/ClpDualRowPivot.hpp +0 -129
  130. data/ext/ruby-cbc/install/include/coin/ClpDualRowSteepest.hpp +0 -153
  131. data/ext/ruby-cbc/install/include/coin/ClpDummyMatrix.hpp +0 -183
  132. data/ext/ruby-cbc/install/include/coin/ClpDynamicExampleMatrix.hpp +0 -186
  133. data/ext/ruby-cbc/install/include/coin/ClpDynamicMatrix.hpp +0 -381
  134. data/ext/ruby-cbc/install/include/coin/ClpEventHandler.hpp +0 -187
  135. data/ext/ruby-cbc/install/include/coin/ClpFactorization.hpp +0 -432
  136. data/ext/ruby-cbc/install/include/coin/ClpGubDynamicMatrix.hpp +0 -247
  137. data/ext/ruby-cbc/install/include/coin/ClpGubMatrix.hpp +0 -358
  138. data/ext/ruby-cbc/install/include/coin/ClpInterior.hpp +0 -570
  139. data/ext/ruby-cbc/install/include/coin/ClpLinearObjective.hpp +0 -103
  140. data/ext/ruby-cbc/install/include/coin/ClpMatrixBase.hpp +0 -524
  141. data/ext/ruby-cbc/install/include/coin/ClpMessage.hpp +0 -131
  142. data/ext/ruby-cbc/install/include/coin/ClpModel.hpp +0 -1307
  143. data/ext/ruby-cbc/install/include/coin/ClpNetworkMatrix.hpp +0 -229
  144. data/ext/ruby-cbc/install/include/coin/ClpNode.hpp +0 -349
  145. data/ext/ruby-cbc/install/include/coin/ClpNonLinearCost.hpp +0 -401
  146. data/ext/ruby-cbc/install/include/coin/ClpObjective.hpp +0 -134
  147. data/ext/ruby-cbc/install/include/coin/ClpPackedMatrix.hpp +0 -638
  148. data/ext/ruby-cbc/install/include/coin/ClpParameters.hpp +0 -126
  149. data/ext/ruby-cbc/install/include/coin/ClpPdcoBase.hpp +0 -103
  150. data/ext/ruby-cbc/install/include/coin/ClpPlusMinusOneMatrix.hpp +0 -290
  151. data/ext/ruby-cbc/install/include/coin/ClpPresolve.hpp +0 -299
  152. data/ext/ruby-cbc/install/include/coin/ClpPrimalColumnDantzig.hpp +0 -72
  153. data/ext/ruby-cbc/install/include/coin/ClpPrimalColumnPivot.hpp +0 -155
  154. data/ext/ruby-cbc/install/include/coin/ClpPrimalColumnSteepest.hpp +0 -247
  155. data/ext/ruby-cbc/install/include/coin/ClpQuadraticObjective.hpp +0 -155
  156. data/ext/ruby-cbc/install/include/coin/ClpSimplex.hpp +0 -1797
  157. data/ext/ruby-cbc/install/include/coin/ClpSimplexDual.hpp +0 -300
  158. data/ext/ruby-cbc/install/include/coin/ClpSimplexNonlinear.hpp +0 -117
  159. data/ext/ruby-cbc/install/include/coin/ClpSimplexOther.hpp +0 -277
  160. data/ext/ruby-cbc/install/include/coin/ClpSimplexPrimal.hpp +0 -244
  161. data/ext/ruby-cbc/install/include/coin/ClpSolve.hpp +0 -446
  162. data/ext/ruby-cbc/install/include/coin/Clp_C_Interface.h +0 -525
  163. data/ext/ruby-cbc/install/include/coin/CoinAlloc.hpp +0 -176
  164. data/ext/ruby-cbc/install/include/coin/CoinBuild.hpp +0 -149
  165. data/ext/ruby-cbc/install/include/coin/CoinDenseFactorization.hpp +0 -419
  166. data/ext/ruby-cbc/install/include/coin/CoinDenseVector.hpp +0 -383
  167. data/ext/ruby-cbc/install/include/coin/CoinDistance.hpp +0 -48
  168. data/ext/ruby-cbc/install/include/coin/CoinError.hpp +0 -257
  169. data/ext/ruby-cbc/install/include/coin/CoinFactorization.hpp +0 -2044
  170. data/ext/ruby-cbc/install/include/coin/CoinFileIO.hpp +0 -166
  171. data/ext/ruby-cbc/install/include/coin/CoinFinite.hpp +0 -34
  172. data/ext/ruby-cbc/install/include/coin/CoinFloatEqual.hpp +0 -177
  173. data/ext/ruby-cbc/install/include/coin/CoinHelperFunctions.hpp +0 -1111
  174. data/ext/ruby-cbc/install/include/coin/CoinIndexedVector.hpp +0 -1164
  175. data/ext/ruby-cbc/install/include/coin/CoinLpIO.hpp +0 -805
  176. data/ext/ruby-cbc/install/include/coin/CoinMessage.hpp +0 -96
  177. data/ext/ruby-cbc/install/include/coin/CoinMessageHandler.hpp +0 -666
  178. data/ext/ruby-cbc/install/include/coin/CoinModel.hpp +0 -1054
  179. data/ext/ruby-cbc/install/include/coin/CoinModelUseful.hpp +0 -441
  180. data/ext/ruby-cbc/install/include/coin/CoinMpsIO.hpp +0 -1056
  181. data/ext/ruby-cbc/install/include/coin/CoinOslFactorization.hpp +0 -280
  182. data/ext/ruby-cbc/install/include/coin/CoinPackedMatrix.hpp +0 -947
  183. data/ext/ruby-cbc/install/include/coin/CoinPackedVector.hpp +0 -657
  184. data/ext/ruby-cbc/install/include/coin/CoinPackedVectorBase.hpp +0 -269
  185. data/ext/ruby-cbc/install/include/coin/CoinParam.hpp +0 -644
  186. data/ext/ruby-cbc/install/include/coin/CoinPragma.hpp +0 -26
  187. data/ext/ruby-cbc/install/include/coin/CoinPresolveDoubleton.hpp +0 -73
  188. data/ext/ruby-cbc/install/include/coin/CoinPresolveDual.hpp +0 -85
  189. data/ext/ruby-cbc/install/include/coin/CoinPresolveDupcol.hpp +0 -226
  190. data/ext/ruby-cbc/install/include/coin/CoinPresolveEmpty.hpp +0 -116
  191. data/ext/ruby-cbc/install/include/coin/CoinPresolveFixed.hpp +0 -181
  192. data/ext/ruby-cbc/install/include/coin/CoinPresolveForcing.hpp +0 -61
  193. data/ext/ruby-cbc/install/include/coin/CoinPresolveImpliedFree.hpp +0 -60
  194. data/ext/ruby-cbc/install/include/coin/CoinPresolveIsolated.hpp +0 -51
  195. data/ext/ruby-cbc/install/include/coin/CoinPresolveMatrix.hpp +0 -1842
  196. data/ext/ruby-cbc/install/include/coin/CoinPresolveMonitor.hpp +0 -105
  197. data/ext/ruby-cbc/install/include/coin/CoinPresolvePsdebug.hpp +0 -166
  198. data/ext/ruby-cbc/install/include/coin/CoinPresolveSingleton.hpp +0 -112
  199. data/ext/ruby-cbc/install/include/coin/CoinPresolveSubst.hpp +0 -101
  200. data/ext/ruby-cbc/install/include/coin/CoinPresolveTighten.hpp +0 -55
  201. data/ext/ruby-cbc/install/include/coin/CoinPresolveTripleton.hpp +0 -66
  202. data/ext/ruby-cbc/install/include/coin/CoinPresolveUseless.hpp +0 -63
  203. data/ext/ruby-cbc/install/include/coin/CoinPresolveZeros.hpp +0 -60
  204. data/ext/ruby-cbc/install/include/coin/CoinRational.hpp +0 -44
  205. data/ext/ruby-cbc/install/include/coin/CoinSearchTree.hpp +0 -465
  206. data/ext/ruby-cbc/install/include/coin/CoinShallowPackedVector.hpp +0 -148
  207. data/ext/ruby-cbc/install/include/coin/CoinSignal.hpp +0 -117
  208. data/ext/ruby-cbc/install/include/coin/CoinSimpFactorization.hpp +0 -431
  209. data/ext/ruby-cbc/install/include/coin/CoinSmartPtr.hpp +0 -528
  210. data/ext/ruby-cbc/install/include/coin/CoinSnapshot.hpp +0 -476
  211. data/ext/ruby-cbc/install/include/coin/CoinSort.hpp +0 -678
  212. data/ext/ruby-cbc/install/include/coin/CoinStructuredModel.hpp +0 -247
  213. data/ext/ruby-cbc/install/include/coin/CoinTime.hpp +0 -310
  214. data/ext/ruby-cbc/install/include/coin/CoinTypes.hpp +0 -64
  215. data/ext/ruby-cbc/install/include/coin/CoinUtility.hpp +0 -19
  216. data/ext/ruby-cbc/install/include/coin/CoinUtilsConfig.h +0 -34
  217. data/ext/ruby-cbc/install/include/coin/CoinWarmStart.hpp +0 -58
  218. data/ext/ruby-cbc/install/include/coin/CoinWarmStartBasis.hpp +0 -456
  219. data/ext/ruby-cbc/install/include/coin/CoinWarmStartDual.hpp +0 -166
  220. data/ext/ruby-cbc/install/include/coin/CoinWarmStartPrimalDual.hpp +0 -211
  221. data/ext/ruby-cbc/install/include/coin/CoinWarmStartVector.hpp +0 -488
  222. data/ext/ruby-cbc/install/include/coin/Coin_C_defines.h +0 -115
  223. data/ext/ruby-cbc/install/include/coin/Idiot.hpp +0 -298
  224. data/ext/ruby-cbc/install/include/coin/OsiAuxInfo.hpp +0 -206
  225. data/ext/ruby-cbc/install/include/coin/OsiBranchingObject.hpp +0 -1005
  226. data/ext/ruby-cbc/install/include/coin/OsiCbcSolverInterface.hpp +0 -764
  227. data/ext/ruby-cbc/install/include/coin/OsiChooseVariable.hpp +0 -534
  228. data/ext/ruby-cbc/install/include/coin/OsiClpSolverInterface.hpp +0 -1509
  229. data/ext/ruby-cbc/install/include/coin/OsiColCut.hpp +0 -324
  230. data/ext/ruby-cbc/install/include/coin/OsiCollections.hpp +0 -35
  231. data/ext/ruby-cbc/install/include/coin/OsiConfig.h +0 -19
  232. data/ext/ruby-cbc/install/include/coin/OsiCut.hpp +0 -245
  233. data/ext/ruby-cbc/install/include/coin/OsiCuts.hpp +0 -474
  234. data/ext/ruby-cbc/install/include/coin/OsiPresolve.hpp +0 -252
  235. data/ext/ruby-cbc/install/include/coin/OsiRowCut.hpp +0 -331
  236. data/ext/ruby-cbc/install/include/coin/OsiRowCutDebugger.hpp +0 -187
  237. data/ext/ruby-cbc/install/include/coin/OsiSolverBranch.hpp +0 -152
  238. data/ext/ruby-cbc/install/include/coin/OsiSolverInterface.hpp +0 -2143
  239. data/ext/ruby-cbc/install/include/coin/OsiSolverParameters.hpp +0 -142
  240. data/ext/ruby-cbc/install/include/coin/OsiUnitTests.hpp +0 -374
  241. data/ext/ruby-cbc/install/lib/libCbc.la +0 -35
  242. data/ext/ruby-cbc/install/lib/libCbc.so +0 -0
  243. data/ext/ruby-cbc/install/lib/libCbc.so.3 +0 -0
  244. data/ext/ruby-cbc/install/lib/libCbc.so.3.9.7 +0 -0
  245. data/ext/ruby-cbc/install/lib/libCbcSolver.la +0 -35
  246. data/ext/ruby-cbc/install/lib/libCbcSolver.so +0 -0
  247. data/ext/ruby-cbc/install/lib/libCbcSolver.so.3 +0 -0
  248. data/ext/ruby-cbc/install/lib/libCbcSolver.so.3.9.7 +0 -0
  249. data/ext/ruby-cbc/install/lib/libCgl.la +0 -35
  250. data/ext/ruby-cbc/install/lib/libCgl.so +0 -0
  251. data/ext/ruby-cbc/install/lib/libCgl.so.1 +0 -0
  252. data/ext/ruby-cbc/install/lib/libCgl.so.1.9.7 +0 -0
  253. data/ext/ruby-cbc/install/lib/libClp.la +0 -35
  254. data/ext/ruby-cbc/install/lib/libClp.so +0 -0
  255. data/ext/ruby-cbc/install/lib/libClp.so.1 +0 -0
  256. data/ext/ruby-cbc/install/lib/libClp.so.1.13.9 +0 -0
  257. data/ext/ruby-cbc/install/lib/libClpSolver.la +0 -35
  258. data/ext/ruby-cbc/install/lib/libClpSolver.so +0 -0
  259. data/ext/ruby-cbc/install/lib/libClpSolver.so.1 +0 -0
  260. data/ext/ruby-cbc/install/lib/libClpSolver.so.1.13.9 +0 -0
  261. data/ext/ruby-cbc/install/lib/libCoinUtils.la +0 -35
  262. data/ext/ruby-cbc/install/lib/libCoinUtils.so +0 -0
  263. data/ext/ruby-cbc/install/lib/libCoinUtils.so.3 +0 -0
  264. data/ext/ruby-cbc/install/lib/libCoinUtils.so.3.10.11 +0 -0
  265. data/ext/ruby-cbc/install/lib/libOsi.la +0 -35
  266. data/ext/ruby-cbc/install/lib/libOsi.so +0 -0
  267. data/ext/ruby-cbc/install/lib/libOsi.so.1 +0 -0
  268. data/ext/ruby-cbc/install/lib/libOsi.so.1.12.6 +0 -0
  269. data/ext/ruby-cbc/install/lib/libOsiCbc.la +0 -35
  270. data/ext/ruby-cbc/install/lib/libOsiCbc.so +0 -0
  271. data/ext/ruby-cbc/install/lib/libOsiCbc.so.3 +0 -0
  272. data/ext/ruby-cbc/install/lib/libOsiCbc.so.3.9.7 +0 -0
  273. data/ext/ruby-cbc/install/lib/libOsiClp.la +0 -35
  274. data/ext/ruby-cbc/install/lib/libOsiClp.so +0 -0
  275. data/ext/ruby-cbc/install/lib/libOsiClp.so.1 +0 -0
  276. data/ext/ruby-cbc/install/lib/libOsiClp.so.1.13.9 +0 -0
  277. data/ext/ruby-cbc/install/lib/libOsiCommonTests.la +0 -35
  278. data/ext/ruby-cbc/install/lib/libOsiCommonTests.so +0 -0
  279. data/ext/ruby-cbc/install/lib/libOsiCommonTests.so.1 +0 -0
  280. data/ext/ruby-cbc/install/lib/libOsiCommonTests.so.1.12.6 +0 -0
  281. data/ext/ruby-cbc/install/lib/pkgconfig/cbc.pc +0 -12
  282. data/ext/ruby-cbc/install/lib/pkgconfig/cgl.pc +0 -12
  283. data/ext/ruby-cbc/install/lib/pkgconfig/clp.pc +0 -12
  284. data/ext/ruby-cbc/install/lib/pkgconfig/coindatamiplib3.pc +0 -9
  285. data/ext/ruby-cbc/install/lib/pkgconfig/coindatasample.pc +0 -9
  286. data/ext/ruby-cbc/install/lib/pkgconfig/coinutils.pc +0 -12
  287. data/ext/ruby-cbc/install/lib/pkgconfig/osi-cbc.pc +0 -12
  288. data/ext/ruby-cbc/install/lib/pkgconfig/osi-clp.pc +0 -12
  289. data/ext/ruby-cbc/install/lib/pkgconfig/osi-unittests.pc +0 -12
  290. data/ext/ruby-cbc/install/lib/pkgconfig/osi.pc +0 -12
@@ -1,247 +0,0 @@
1
- /* $Id: CoinStructuredModel.hpp 1691 2014-03-19 12:43:56Z forrest $ */
2
- // Copyright (C) 2008, International Business Machines
3
- // Corporation and others. All Rights Reserved.
4
- // This code is licensed under the terms of the Eclipse Public License (EPL).
5
-
6
- #ifndef CoinStructuredModel_H
7
- #define CoinStructuredModel_H
8
-
9
- #include "CoinModel.hpp"
10
- #include <vector>
11
-
12
- /**
13
- This is a model which is made up of Coin(Structured)Model blocks.
14
- */
15
- typedef struct CoinModelInfo2 {
16
- int rowBlock; // Which row block
17
- int columnBlock; // Which column block
18
- char matrix; // nonzero if matrix exists
19
- char rhs; // nonzero if non default rhs exists
20
- char rowName; // nonzero if row names exists
21
- char integer; // nonzero if integer information exists
22
- char bounds; // nonzero if non default bounds/objective exists
23
- char columnName; // nonzero if column names exists
24
- CoinModelInfo2() :
25
- rowBlock(0),
26
- columnBlock(0),
27
- matrix(0),
28
- rhs(0),
29
- rowName(0),
30
- integer(0),
31
- bounds(0),
32
- columnName(0)
33
- {}
34
- } CoinModelBlockInfo;
35
-
36
- class CoinStructuredModel : public CoinBaseModel {
37
-
38
- public:
39
- /**@name Useful methods for building model */
40
- //@{
41
- /** add a block from a CoinModel using names given as parameters
42
- returns number of errors (e.g. both have objectives but not same)
43
- */
44
- int addBlock(const std::string & rowBlock,
45
- const std::string & columnBlock,
46
- const CoinBaseModel & block);
47
- /** add a block from a CoinModel with names in model
48
- returns number of errors (e.g. both have objectives but not same)
49
- */
50
- int addBlock(const CoinBaseModel & block);
51
- /** add a block from a CoinModel using names given as parameters
52
- returns number of errors (e.g. both have objectives but not same)
53
- This passes in block - structured model takes ownership
54
- */
55
- int addBlock(const std::string & rowBlock,
56
- const std::string & columnBlock,
57
- CoinBaseModel * block);
58
- /** add a block using names
59
- */
60
- int addBlock(const std::string & rowBlock,
61
- const std::string & columnBlock,
62
- const CoinPackedMatrix & matrix,
63
- const double * rowLower, const double * rowUpper,
64
- const double * columnLower, const double * columnUpper,
65
- const double * objective);
66
-
67
- /** Write the problem in MPS format to a file with the given filename.
68
-
69
- \param compression can be set to three values to indicate what kind
70
- of file should be written
71
- <ul>
72
- <li> 0: plain text (default)
73
- <li> 1: gzip compressed (.gz is appended to \c filename)
74
- <li> 2: bzip2 compressed (.bz2 is appended to \c filename) (TODO)
75
- </ul>
76
- If the library was not compiled with the requested compression then
77
- writeMps falls back to writing a plain text file.
78
-
79
- \param formatType specifies the precision to used for values in the
80
- MPS file
81
- <ul>
82
- <li> 0: normal precision (default)
83
- <li> 1: extra accuracy
84
- <li> 2: IEEE hex
85
- </ul>
86
-
87
- \param numberAcross specifies whether 1 or 2 (default) values should be
88
- specified on every data line in the MPS file.
89
-
90
- not const as may change model e.g. fill in default bounds
91
- */
92
- int writeMps(const char *filename, int compression = 0,
93
- int formatType = 0, int numberAcross = 2, bool keepStrings=false) ;
94
- /// Read SMPS model
95
- int readSmps(const char *filename,
96
- bool keepNames = false,
97
- bool ignoreErrors = false);
98
-
99
- /** Decompose a CoinModel
100
- 1 - try D-W
101
- 2 - try Benders
102
- 3 - try Staircase
103
- Returns number of blocks or zero if no structure
104
- */
105
- int decompose(const CoinModel &model,int type,
106
- int maxBlocks=50, const char ** starts=NULL);
107
- /** Decompose a model specified as arrays + CoinPackedMatrix
108
- 1 - try D-W
109
- 2 - try Benders
110
- 3 - try Staircase
111
- Returns number of blocks or zero if no structure
112
- */
113
- int decompose(const CoinPackedMatrix & matrix,
114
- const double * rowLower, const double * rowUpper,
115
- const double * columnLower, const double * columnUpper,
116
- const double * objective, int type,int maxBlocks=50,
117
- int * starts=NULL,
118
- double objectiveOffset=0.0);
119
-
120
- //@}
121
-
122
-
123
- /**@name For getting information */
124
- //@{
125
- /// Return number of row blocks
126
- inline int numberRowBlocks() const
127
- { return numberRowBlocks_;}
128
- /// Return number of column blocks
129
- inline int numberColumnBlocks() const
130
- { return numberColumnBlocks_;}
131
- /// Return number of elementBlocks
132
- inline CoinBigIndex numberElementBlocks() const
133
- { return numberElementBlocks_;}
134
- /// Return number of elements
135
- CoinBigIndex numberElements() const;
136
- /// Return the i'th row block name
137
- inline const std::string & getRowBlock(int i) const
138
- { return rowBlockNames_[i];}
139
- /// Set i'th row block name
140
- inline void setRowBlock(int i,const std::string &name)
141
- { rowBlockNames_[i] = name;}
142
- /// Add or check a row block name and number of rows
143
- int addRowBlock(int numberRows,const std::string &name) ;
144
- /// Return a row block index given a row block name
145
- int rowBlock(const std::string &name) const;
146
- /// Return i'th the column block name
147
- inline const std::string & getColumnBlock(int i) const
148
- { return columnBlockNames_[i];}
149
- /// Set i'th column block name
150
- inline void setColumnBlock(int i,const std::string &name)
151
- { columnBlockNames_[i] = name;}
152
- /// Add or check a column block name and number of columns
153
- int addColumnBlock(int numberColumns,const std::string &name) ;
154
- /// Return a column block index given a column block name
155
- int columnBlock(const std::string &name) const;
156
- /// Return i'th block type
157
- inline const CoinModelBlockInfo & blockType(int i) const
158
- { return blockType_[i];}
159
- /// Return i'th block
160
- inline CoinBaseModel * block(int i) const
161
- { return blocks_[i];}
162
- /// Return block corresponding to row and column
163
- const CoinBaseModel * block(int row,int column) const;
164
- /// Return i'th block as CoinModel (or NULL)
165
- CoinModel * coinBlock(int i) const;
166
- /// Return block corresponding to row and column as CoinModel
167
- const CoinBaseModel * coinBlock(int row,int column) const;
168
- /// Return block number corresponding to row and column
169
- int blockIndex(int row,int column) const;
170
- /** Return model as a CoinModel block
171
- and fill in info structure and update counts
172
- */
173
- CoinModel * coinModelBlock(CoinModelBlockInfo & info) ;
174
- /// Sets given block into coinModelBlocks_
175
- void setCoinModel(CoinModel * block, int iBlock);
176
- /// Refresh info in blockType_
177
- void refresh(int iBlock);
178
- /** Fill pointers corresponding to row and column */
179
-
180
- CoinModelBlockInfo block(int row,int column,
181
- const double * & rowLower, const double * & rowUpper,
182
- const double * & columnLower, const double * & columnUpper,
183
- const double * & objective) const;
184
- /// Direction of optimization (1 - minimize, -1 - maximize, 0 - ignore
185
- inline double optimizationDirection() const {
186
- return optimizationDirection_;
187
- }
188
- /// Set direction of optimization (1 - minimize, -1 - maximize, 0 - ignore
189
- inline void setOptimizationDirection(double value)
190
- { optimizationDirection_=value;}
191
- //@}
192
-
193
- /**@name Constructors, destructor */
194
- //@{
195
- /** Default constructor. */
196
- CoinStructuredModel();
197
- /** Read a problem in MPS format from the given filename.
198
- May try and decompose
199
- */
200
- CoinStructuredModel(const char *fileName,int decompose=0,
201
- int maxBlocks=50);
202
- /** Destructor */
203
- virtual ~CoinStructuredModel();
204
- //@}
205
-
206
- /**@name Copy method */
207
- //@{
208
- /** The copy constructor. */
209
- CoinStructuredModel(const CoinStructuredModel&);
210
- /// =
211
- CoinStructuredModel& operator=(const CoinStructuredModel&);
212
- /// Clone
213
- virtual CoinBaseModel * clone() const;
214
- //@}
215
-
216
- private:
217
-
218
- /** Fill in info structure and update counts
219
- Returns number of inconsistencies on border
220
- */
221
- int fillInfo(CoinModelBlockInfo & info,const CoinModel * block);
222
- /** Fill in info structure and update counts
223
- */
224
- void fillInfo(CoinModelBlockInfo & info,const CoinStructuredModel * block);
225
- /**@name Data members */
226
- //@{
227
- /// Current number of row blocks
228
- int numberRowBlocks_;
229
- /// Current number of column blocks
230
- int numberColumnBlocks_;
231
- /// Current number of element blocks
232
- int numberElementBlocks_;
233
- /// Maximum number of element blocks
234
- int maximumElementBlocks_;
235
- /// Rowblock name
236
- std::vector<std::string> rowBlockNames_;
237
- /// Columnblock name
238
- std::vector<std::string> columnBlockNames_;
239
- /// Blocks
240
- CoinBaseModel ** blocks_;
241
- /// CoinModel copies of blocks or NULL if original CoinModel
242
- CoinModel ** coinModelBlocks_;
243
- /// Which parts of model are set in block
244
- CoinModelBlockInfo * blockType_;
245
- //@}
246
- };
247
- #endif
@@ -1,310 +0,0 @@
1
- /* $Id: CoinTime.hpp 1372 2011-01-03 23:31:00Z lou $ */
2
- // Copyright (C) 2002, International Business Machines
3
- // Corporation and others. All Rights Reserved.
4
- // This code is licensed under the terms of the Eclipse Public License (EPL).
5
-
6
- #ifndef _CoinTime_hpp
7
- #define _CoinTime_hpp
8
-
9
- // Uncomment the next three lines for thorough memory initialisation.
10
- // #ifndef ZEROFAULT
11
- // # define ZEROFAULT
12
- // #endif
13
-
14
- //#############################################################################
15
-
16
- #include <ctime>
17
- #if defined(_MSC_VER)
18
- // Turn off compiler warning about long names
19
- # pragma warning(disable:4786)
20
- #else
21
- // MacOS-X and FreeBSD needs sys/time.h
22
- #if defined(__MACH__) || defined (__FreeBSD__)
23
- #include <sys/time.h>
24
- #endif
25
- #if !defined(__MSVCRT__)
26
- #include <sys/resource.h>
27
- #endif
28
- #endif
29
-
30
- //#############################################################################
31
-
32
- #if defined(_MSC_VER)
33
-
34
- #if 0 // change this to 1 if want to use the win32 API
35
- #include <windows.h>
36
- #ifdef small
37
- /* for some unfathomable reason (to me) rpcndr.h (pulled in by windows.h) does a
38
- '#define small char' */
39
- #undef small
40
- #endif
41
- #define TWO_TO_THE_THIRTYTWO 4294967296.0
42
- #define DELTA_EPOCH_IN_SECS 11644473600.0
43
- inline double CoinGetTimeOfDay()
44
- {
45
- FILETIME ft;
46
-
47
- GetSystemTimeAsFileTime(&ft);
48
- double t = ft.dwHighDateTime * TWO_TO_THE_THIRTYTWO + ft.dwLowDateTime;
49
- t = t/10000000.0 - DELTA_EPOCH_IN_SECS;
50
- return t;
51
- }
52
- #else
53
- #include <sys/types.h>
54
- #include <sys/timeb.h>
55
- inline double CoinGetTimeOfDay()
56
- {
57
- struct _timeb timebuffer;
58
- #pragma warning(disable:4996)
59
- _ftime( &timebuffer ); // C4996
60
- #pragma warning(default:4996)
61
- return timebuffer.time + timebuffer.millitm/1000.0;
62
- }
63
- #endif
64
-
65
- #else
66
-
67
- #include <sys/time.h>
68
-
69
- inline double CoinGetTimeOfDay()
70
- {
71
- struct timeval tv;
72
- gettimeofday(&tv, NULL);
73
- return static_cast<double>(tv.tv_sec) + static_cast<int>(tv.tv_usec)/1000000.0;
74
- }
75
-
76
- #endif // _MSC_VER
77
-
78
- /**
79
- Query the elapsed wallclock time since the first call to this function. If
80
- a positive argument is passed to the function then the time of the first
81
- call is set to that value (this kind of argument is allowed only at the
82
- first call!). If a negative argument is passed to the function then it
83
- returns the time when it was set.
84
- */
85
-
86
- inline double CoinWallclockTime(double callType = 0)
87
- {
88
- double callTime = CoinGetTimeOfDay();
89
- static const double firstCall = callType > 0 ? callType : callTime;
90
- return callType < 0 ? firstCall : callTime - firstCall;
91
- }
92
-
93
- //#############################################################################
94
-
95
- //#define HAVE_SDK // if SDK under Win32 is installed, for CPU instead of elapsed time under Win
96
- #ifdef HAVE_SDK
97
- #include <windows.h>
98
- #ifdef small
99
- /* for some unfathomable reason (to me) rpcndr.h (pulled in by windows.h) does a
100
- '#define small char' */
101
- #undef small
102
- #endif
103
- #define TWO_TO_THE_THIRTYTWO 4294967296.0
104
- #endif
105
-
106
- static inline double CoinCpuTime()
107
- {
108
- double cpu_temp;
109
- #if defined(_MSC_VER) || defined(__MSVCRT__)
110
- #ifdef HAVE_SDK
111
- FILETIME creation;
112
- FILETIME exit;
113
- FILETIME kernel;
114
- FILETIME user;
115
- GetProcessTimes(GetCurrentProcess(), &creation, &exit, &kernel, &user);
116
- double t = user.dwHighDateTime * TWO_TO_THE_THIRTYTWO + user.dwLowDateTime;
117
- return t/10000000.0;
118
- #else
119
- unsigned int ticksnow; /* clock_t is same as int */
120
- ticksnow = (unsigned int)clock();
121
- cpu_temp = (double)((double)ticksnow/CLOCKS_PER_SEC);
122
- #endif
123
-
124
- #else
125
- struct rusage usage;
126
- # ifdef ZEROFAULT
127
- usage.ru_utime.tv_sec = 0 ;
128
- usage.ru_utime.tv_usec = 0 ;
129
- # endif
130
- getrusage(RUSAGE_SELF,&usage);
131
- cpu_temp = static_cast<double>(usage.ru_utime.tv_sec);
132
- cpu_temp += 1.0e-6*(static_cast<double> (usage.ru_utime.tv_usec));
133
- #endif
134
- return cpu_temp;
135
- }
136
-
137
- //#############################################################################
138
-
139
-
140
-
141
- static inline double CoinSysTime()
142
- {
143
- double sys_temp;
144
- #if defined(_MSC_VER) || defined(__MSVCRT__)
145
- sys_temp = 0.0;
146
- #else
147
- struct rusage usage;
148
- # ifdef ZEROFAULT
149
- usage.ru_utime.tv_sec = 0 ;
150
- usage.ru_utime.tv_usec = 0 ;
151
- # endif
152
- getrusage(RUSAGE_SELF,&usage);
153
- sys_temp = static_cast<double>(usage.ru_stime.tv_sec);
154
- sys_temp += 1.0e-6*(static_cast<double> (usage.ru_stime.tv_usec));
155
- #endif
156
- return sys_temp;
157
- }
158
-
159
- //#############################################################################
160
- // On most systems SELF seems to include children threads, This is for when it doesn't
161
- static inline double CoinCpuTimeJustChildren()
162
- {
163
- double cpu_temp;
164
- #if defined(_MSC_VER) || defined(__MSVCRT__)
165
- cpu_temp = 0.0;
166
- #else
167
- struct rusage usage;
168
- # ifdef ZEROFAULT
169
- usage.ru_utime.tv_sec = 0 ;
170
- usage.ru_utime.tv_usec = 0 ;
171
- # endif
172
- getrusage(RUSAGE_CHILDREN,&usage);
173
- cpu_temp = static_cast<double>(usage.ru_utime.tv_sec);
174
- cpu_temp += 1.0e-6*(static_cast<double> (usage.ru_utime.tv_usec));
175
- #endif
176
- return cpu_temp;
177
- }
178
- //#############################################################################
179
-
180
- #include <fstream>
181
-
182
- /**
183
- This class implements a timer that also implements a tracing functionality.
184
-
185
- The timer stores the start time of the timer, for how much time it was set to
186
- and when does it expire (start + limit = end). Queries can be made that tell
187
- whether the timer is expired, is past an absolute time, is past a percentage
188
- of the length of the timer. All times are given in seconds, but as double
189
- numbers, so there can be fractional values.
190
-
191
- The timer can also be initialized with a stream and a specification whether
192
- to write to or read from the stream. In the former case the result of every
193
- query is written into the stream, in the latter case timing is not tested at
194
- all, rather the supposed result is read out from the stream. This makes it
195
- possible to exactly retrace time sensitive program execution.
196
- */
197
- class CoinTimer
198
- {
199
- private:
200
- /// When the timer was initialized/reset/restarted
201
- double start;
202
- ///
203
- double limit;
204
- double end;
205
- #ifdef COIN_COMPILE_WITH_TRACING
206
- std::fstream* stream;
207
- bool write_stream;
208
- #endif
209
-
210
- private:
211
- #ifdef COIN_COMPILE_WITH_TRACING
212
- inline bool evaluate(bool b_tmp) const {
213
- int i_tmp = b_tmp;
214
- if (stream) {
215
- if (write_stream)
216
- (*stream) << i_tmp << "\n";
217
- else
218
- (*stream) >> i_tmp;
219
- }
220
- return i_tmp;
221
- }
222
- inline double evaluate(double d_tmp) const {
223
- if (stream) {
224
- if (write_stream)
225
- (*stream) << d_tmp << "\n";
226
- else
227
- (*stream) >> d_tmp;
228
- }
229
- return d_tmp;
230
- }
231
- #else
232
- inline bool evaluate(const bool b_tmp) const {
233
- return b_tmp;
234
- }
235
- inline double evaluate(const double d_tmp) const {
236
- return d_tmp;
237
- }
238
- #endif
239
-
240
- public:
241
- /// Default constructor creates a timer with no time limit and no tracing
242
- CoinTimer() :
243
- start(0), limit(1e100), end(1e100)
244
- #ifdef COIN_COMPILE_WITH_TRACING
245
- , stream(0), write_stream(true)
246
- #endif
247
- {}
248
-
249
- /// Create a timer with the given time limit and with no tracing
250
- CoinTimer(double lim) :
251
- start(CoinCpuTime()), limit(lim), end(start+lim)
252
- #ifdef COIN_COMPILE_WITH_TRACING
253
- , stream(0), write_stream(true)
254
- #endif
255
- {}
256
-
257
- #ifdef COIN_COMPILE_WITH_TRACING
258
- /** Create a timer with no time limit and with writing/reading the trace
259
- to/from the given stream, depending on the argument \c write. */
260
- CoinTimer(std::fstream* s, bool write) :
261
- start(0), limit(1e100), end(1e100),
262
- stream(s), write_stream(write) {}
263
-
264
- /** Create a timer with the given time limit and with writing/reading the
265
- trace to/from the given stream, depending on the argument \c write. */
266
- CoinTimer(double lim, std::fstream* s, bool w) :
267
- start(CoinCpuTime()), limit(lim), end(start+lim),
268
- stream(s), write_stream(w) {}
269
- #endif
270
-
271
- /// Restart the timer (keeping the same time limit)
272
- inline void restart() { start=CoinCpuTime(); end=start+limit; }
273
- /// An alternate name for \c restart()
274
- inline void reset() { restart(); }
275
- /// Reset (and restart) the timer and change its time limit
276
- inline void reset(double lim) { limit=lim; restart(); }
277
-
278
- /** Return whether the given percentage of the time limit has elapsed since
279
- the timer was started */
280
- inline bool isPastPercent(double pct) const {
281
- return evaluate(start + limit * pct < CoinCpuTime());
282
- }
283
- /** Return whether the given amount of time has elapsed since the timer was
284
- started */
285
- inline bool isPast(double lim) const {
286
- return evaluate(start + lim < CoinCpuTime());
287
- }
288
- /** Return whether the originally specified time limit has passed since the
289
- timer was started */
290
- inline bool isExpired() const {
291
- return evaluate(end < CoinCpuTime());
292
- }
293
-
294
- /** Return how much time is left on the timer */
295
- inline double timeLeft() const {
296
- return evaluate(end - CoinCpuTime());
297
- }
298
-
299
- /** Return how much time has elapsed */
300
- inline double timeElapsed() const {
301
- return evaluate(CoinCpuTime() - start);
302
- }
303
-
304
- inline void setLimit(double l) {
305
- limit = l;
306
- return;
307
- }
308
- };
309
-
310
- #endif