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.
- checksums.yaml +4 -4
- data/README.md +5 -5
- data/Rakefile +0 -2
- data/lib/ruby-cbc.rb +1 -1
- data/lib/ruby-cbc/problem.rb +6 -8
- data/lib/ruby-cbc/version.rb +1 -1
- data/ruby-cbc.gemspec +3 -2
- metadata +17 -287
- data/ext/ruby-cbc/cbc.i +0 -15
- data/ext/ruby-cbc/cbc_wrap.c +0 -4618
- data/ext/ruby-cbc/extconf.rb +0 -60
- data/ext/ruby-cbc/install/bin/cbc +0 -0
- data/ext/ruby-cbc/install/bin/clp +0 -0
- data/ext/ruby-cbc/install/include/coin/CbcBranchActual.hpp +0 -24
- data/ext/ruby-cbc/install/include/coin/CbcBranchAllDifferent.hpp +0 -62
- data/ext/ruby-cbc/install/include/coin/CbcBranchBase.hpp +0 -78
- data/ext/ruby-cbc/install/include/coin/CbcBranchCut.hpp +0 -183
- data/ext/ruby-cbc/install/include/coin/CbcBranchDecision.hpp +0 -129
- data/ext/ruby-cbc/install/include/coin/CbcBranchDefaultDecision.hpp +0 -100
- data/ext/ruby-cbc/install/include/coin/CbcBranchDynamic.hpp +0 -206
- data/ext/ruby-cbc/install/include/coin/CbcBranchLotsize.hpp +0 -242
- data/ext/ruby-cbc/install/include/coin/CbcBranchToFixLots.hpp +0 -94
- data/ext/ruby-cbc/install/include/coin/CbcBranchingObject.hpp +0 -236
- data/ext/ruby-cbc/install/include/coin/CbcClique.hpp +0 -303
- data/ext/ruby-cbc/install/include/coin/CbcCompare.hpp +0 -39
- data/ext/ruby-cbc/install/include/coin/CbcCompareActual.hpp +0 -14
- data/ext/ruby-cbc/install/include/coin/CbcCompareBase.hpp +0 -142
- data/ext/ruby-cbc/install/include/coin/CbcCompareDefault.hpp +0 -120
- data/ext/ruby-cbc/install/include/coin/CbcCompareDepth.hpp +0 -47
- data/ext/ruby-cbc/install/include/coin/CbcCompareEstimate.hpp +0 -48
- data/ext/ruby-cbc/install/include/coin/CbcCompareObjective.hpp +0 -49
- data/ext/ruby-cbc/install/include/coin/CbcConfig.h +0 -14
- data/ext/ruby-cbc/install/include/coin/CbcConsequence.hpp +0 -49
- data/ext/ruby-cbc/install/include/coin/CbcCountRowCut.hpp +0 -168
- data/ext/ruby-cbc/install/include/coin/CbcCutGenerator.hpp +0 -482
- data/ext/ruby-cbc/install/include/coin/CbcCutModifier.hpp +0 -57
- data/ext/ruby-cbc/install/include/coin/CbcCutSubsetModifier.hpp +0 -66
- data/ext/ruby-cbc/install/include/coin/CbcDummyBranchingObject.hpp +0 -83
- data/ext/ruby-cbc/install/include/coin/CbcEventHandler.hpp +0 -245
- data/ext/ruby-cbc/install/include/coin/CbcFathom.hpp +0 -137
- data/ext/ruby-cbc/install/include/coin/CbcFathomDynamicProgramming.hpp +0 -169
- data/ext/ruby-cbc/install/include/coin/CbcFeasibilityBase.hpp +0 -56
- data/ext/ruby-cbc/install/include/coin/CbcFixVariable.hpp +0 -67
- data/ext/ruby-cbc/install/include/coin/CbcFollowOn.hpp +0 -207
- data/ext/ruby-cbc/install/include/coin/CbcFullNodeInfo.hpp +0 -161
- data/ext/ruby-cbc/install/include/coin/CbcGeneral.hpp +0 -60
- data/ext/ruby-cbc/install/include/coin/CbcGeneralDepth.hpp +0 -279
- data/ext/ruby-cbc/install/include/coin/CbcHeuristic.hpp +0 -682
- data/ext/ruby-cbc/install/include/coin/CbcHeuristicDINS.hpp +0 -96
- data/ext/ruby-cbc/install/include/coin/CbcHeuristicDW.hpp +0 -309
- data/ext/ruby-cbc/install/include/coin/CbcHeuristicDive.hpp +0 -192
- data/ext/ruby-cbc/install/include/coin/CbcHeuristicDiveCoefficient.hpp +0 -52
- data/ext/ruby-cbc/install/include/coin/CbcHeuristicDiveFractional.hpp +0 -52
- data/ext/ruby-cbc/install/include/coin/CbcHeuristicDiveGuided.hpp +0 -55
- data/ext/ruby-cbc/install/include/coin/CbcHeuristicDiveLineSearch.hpp +0 -52
- data/ext/ruby-cbc/install/include/coin/CbcHeuristicDivePseudoCost.hpp +0 -60
- data/ext/ruby-cbc/install/include/coin/CbcHeuristicDiveVectorLength.hpp +0 -52
- data/ext/ruby-cbc/install/include/coin/CbcHeuristicFPump.hpp +0 -340
- data/ext/ruby-cbc/install/include/coin/CbcHeuristicGreedy.hpp +0 -280
- data/ext/ruby-cbc/install/include/coin/CbcHeuristicLocal.hpp +0 -271
- data/ext/ruby-cbc/install/include/coin/CbcHeuristicPivotAndFix.hpp +0 -58
- data/ext/ruby-cbc/install/include/coin/CbcHeuristicRENS.hpp +0 -77
- data/ext/ruby-cbc/install/include/coin/CbcHeuristicRINS.hpp +0 -102
- data/ext/ruby-cbc/install/include/coin/CbcHeuristicRandRound.hpp +0 -58
- data/ext/ruby-cbc/install/include/coin/CbcHeuristicVND.hpp +0 -94
- data/ext/ruby-cbc/install/include/coin/CbcLinked.hpp +0 -1406
- data/ext/ruby-cbc/install/include/coin/CbcMessage.hpp +0 -94
- data/ext/ruby-cbc/install/include/coin/CbcMipStartIO.hpp +0 -26
- data/ext/ruby-cbc/install/include/coin/CbcModel.hpp +0 -2952
- data/ext/ruby-cbc/install/include/coin/CbcNWay.hpp +0 -166
- data/ext/ruby-cbc/install/include/coin/CbcNode.hpp +0 -351
- data/ext/ruby-cbc/install/include/coin/CbcNodeInfo.hpp +0 -349
- data/ext/ruby-cbc/install/include/coin/CbcObject.hpp +0 -272
- data/ext/ruby-cbc/install/include/coin/CbcObjectUpdateData.hpp +0 -64
- data/ext/ruby-cbc/install/include/coin/CbcOrClpParam.cpp +0 -4134
- data/ext/ruby-cbc/install/include/coin/CbcOrClpParam.hpp +0 -532
- data/ext/ruby-cbc/install/include/coin/CbcParam.hpp +0 -324
- data/ext/ruby-cbc/install/include/coin/CbcPartialNodeInfo.hpp +0 -110
- data/ext/ruby-cbc/install/include/coin/CbcSOS.hpp +0 -279
- data/ext/ruby-cbc/install/include/coin/CbcSimpleInteger.hpp +0 -286
- data/ext/ruby-cbc/install/include/coin/CbcSimpleIntegerDynamicPseudoCost.hpp +0 -564
- data/ext/ruby-cbc/install/include/coin/CbcSimpleIntegerPseudoCost.hpp +0 -114
- data/ext/ruby-cbc/install/include/coin/CbcSolver.hpp +0 -447
- data/ext/ruby-cbc/install/include/coin/CbcStrategy.hpp +0 -258
- data/ext/ruby-cbc/install/include/coin/CbcSubProblem.hpp +0 -83
- data/ext/ruby-cbc/install/include/coin/CbcTree.hpp +0 -490
- data/ext/ruby-cbc/install/include/coin/CbcTreeLocal.hpp +0 -372
- data/ext/ruby-cbc/install/include/coin/Cbc_C_Interface.h +0 -381
- data/ext/ruby-cbc/install/include/coin/Cgl012cut.hpp +0 -464
- data/ext/ruby-cbc/install/include/coin/CglAllDifferent.hpp +0 -115
- data/ext/ruby-cbc/install/include/coin/CglClique.hpp +0 -308
- data/ext/ruby-cbc/install/include/coin/CglConfig.h +0 -19
- data/ext/ruby-cbc/install/include/coin/CglCutGenerator.hpp +0 -121
- data/ext/ruby-cbc/install/include/coin/CglDuplicateRow.hpp +0 -189
- data/ext/ruby-cbc/install/include/coin/CglFlowCover.hpp +0 -371
- data/ext/ruby-cbc/install/include/coin/CglGMI.hpp +0 -364
- data/ext/ruby-cbc/install/include/coin/CglGMIParam.hpp +0 -313
- data/ext/ruby-cbc/install/include/coin/CglGomory.hpp +0 -204
- data/ext/ruby-cbc/install/include/coin/CglKnapsackCover.hpp +0 -310
- data/ext/ruby-cbc/install/include/coin/CglLandP.hpp +0 -306
- data/ext/ruby-cbc/install/include/coin/CglLandPValidator.hpp +0 -130
- data/ext/ruby-cbc/install/include/coin/CglLiftAndProject.hpp +0 -104
- data/ext/ruby-cbc/install/include/coin/CglMessage.hpp +0 -50
- data/ext/ruby-cbc/install/include/coin/CglMixedIntegerRounding.hpp +0 -429
- data/ext/ruby-cbc/install/include/coin/CglMixedIntegerRounding2.hpp +0 -427
- data/ext/ruby-cbc/install/include/coin/CglOddHole.hpp +0 -160
- data/ext/ruby-cbc/install/include/coin/CglParam.hpp +0 -93
- data/ext/ruby-cbc/install/include/coin/CglPreProcess.hpp +0 -492
- data/ext/ruby-cbc/install/include/coin/CglProbing.hpp +0 -543
- data/ext/ruby-cbc/install/include/coin/CglRedSplit.hpp +0 -448
- data/ext/ruby-cbc/install/include/coin/CglRedSplit2.hpp +0 -494
- data/ext/ruby-cbc/install/include/coin/CglRedSplit2Param.hpp +0 -495
- data/ext/ruby-cbc/install/include/coin/CglRedSplitParam.hpp +0 -272
- data/ext/ruby-cbc/install/include/coin/CglResidualCapacity.hpp +0 -240
- data/ext/ruby-cbc/install/include/coin/CglSimpleRounding.hpp +0 -174
- data/ext/ruby-cbc/install/include/coin/CglStored.hpp +0 -125
- data/ext/ruby-cbc/install/include/coin/CglTreeInfo.hpp +0 -180
- data/ext/ruby-cbc/install/include/coin/CglTwomir.hpp +0 -565
- data/ext/ruby-cbc/install/include/coin/CglZeroHalf.hpp +0 -133
- data/ext/ruby-cbc/install/include/coin/ClpAmplObjective.hpp +0 -113
- data/ext/ruby-cbc/install/include/coin/ClpCholeskyBase.hpp +0 -294
- data/ext/ruby-cbc/install/include/coin/ClpCholeskyDense.hpp +0 -162
- data/ext/ruby-cbc/install/include/coin/ClpConfig.h +0 -17
- data/ext/ruby-cbc/install/include/coin/ClpConstraint.hpp +0 -125
- data/ext/ruby-cbc/install/include/coin/ClpConstraintAmpl.hpp +0 -108
- data/ext/ruby-cbc/install/include/coin/ClpConstraintLinear.hpp +0 -110
- data/ext/ruby-cbc/install/include/coin/ClpConstraintQuadratic.hpp +0 -119
- data/ext/ruby-cbc/install/include/coin/ClpDualRowDantzig.hpp +0 -71
- data/ext/ruby-cbc/install/include/coin/ClpDualRowPivot.hpp +0 -129
- data/ext/ruby-cbc/install/include/coin/ClpDualRowSteepest.hpp +0 -153
- data/ext/ruby-cbc/install/include/coin/ClpDummyMatrix.hpp +0 -183
- data/ext/ruby-cbc/install/include/coin/ClpDynamicExampleMatrix.hpp +0 -186
- data/ext/ruby-cbc/install/include/coin/ClpDynamicMatrix.hpp +0 -381
- data/ext/ruby-cbc/install/include/coin/ClpEventHandler.hpp +0 -187
- data/ext/ruby-cbc/install/include/coin/ClpFactorization.hpp +0 -432
- data/ext/ruby-cbc/install/include/coin/ClpGubDynamicMatrix.hpp +0 -247
- data/ext/ruby-cbc/install/include/coin/ClpGubMatrix.hpp +0 -358
- data/ext/ruby-cbc/install/include/coin/ClpInterior.hpp +0 -570
- data/ext/ruby-cbc/install/include/coin/ClpLinearObjective.hpp +0 -103
- data/ext/ruby-cbc/install/include/coin/ClpMatrixBase.hpp +0 -524
- data/ext/ruby-cbc/install/include/coin/ClpMessage.hpp +0 -131
- data/ext/ruby-cbc/install/include/coin/ClpModel.hpp +0 -1307
- data/ext/ruby-cbc/install/include/coin/ClpNetworkMatrix.hpp +0 -229
- data/ext/ruby-cbc/install/include/coin/ClpNode.hpp +0 -349
- data/ext/ruby-cbc/install/include/coin/ClpNonLinearCost.hpp +0 -401
- data/ext/ruby-cbc/install/include/coin/ClpObjective.hpp +0 -134
- data/ext/ruby-cbc/install/include/coin/ClpPackedMatrix.hpp +0 -638
- data/ext/ruby-cbc/install/include/coin/ClpParameters.hpp +0 -126
- data/ext/ruby-cbc/install/include/coin/ClpPdcoBase.hpp +0 -103
- data/ext/ruby-cbc/install/include/coin/ClpPlusMinusOneMatrix.hpp +0 -290
- data/ext/ruby-cbc/install/include/coin/ClpPresolve.hpp +0 -299
- data/ext/ruby-cbc/install/include/coin/ClpPrimalColumnDantzig.hpp +0 -72
- data/ext/ruby-cbc/install/include/coin/ClpPrimalColumnPivot.hpp +0 -155
- data/ext/ruby-cbc/install/include/coin/ClpPrimalColumnSteepest.hpp +0 -247
- data/ext/ruby-cbc/install/include/coin/ClpQuadraticObjective.hpp +0 -155
- data/ext/ruby-cbc/install/include/coin/ClpSimplex.hpp +0 -1797
- data/ext/ruby-cbc/install/include/coin/ClpSimplexDual.hpp +0 -300
- data/ext/ruby-cbc/install/include/coin/ClpSimplexNonlinear.hpp +0 -117
- data/ext/ruby-cbc/install/include/coin/ClpSimplexOther.hpp +0 -277
- data/ext/ruby-cbc/install/include/coin/ClpSimplexPrimal.hpp +0 -244
- data/ext/ruby-cbc/install/include/coin/ClpSolve.hpp +0 -446
- data/ext/ruby-cbc/install/include/coin/Clp_C_Interface.h +0 -525
- data/ext/ruby-cbc/install/include/coin/CoinAlloc.hpp +0 -176
- data/ext/ruby-cbc/install/include/coin/CoinBuild.hpp +0 -149
- data/ext/ruby-cbc/install/include/coin/CoinDenseFactorization.hpp +0 -419
- data/ext/ruby-cbc/install/include/coin/CoinDenseVector.hpp +0 -383
- data/ext/ruby-cbc/install/include/coin/CoinDistance.hpp +0 -48
- data/ext/ruby-cbc/install/include/coin/CoinError.hpp +0 -257
- data/ext/ruby-cbc/install/include/coin/CoinFactorization.hpp +0 -2044
- data/ext/ruby-cbc/install/include/coin/CoinFileIO.hpp +0 -166
- data/ext/ruby-cbc/install/include/coin/CoinFinite.hpp +0 -34
- data/ext/ruby-cbc/install/include/coin/CoinFloatEqual.hpp +0 -177
- data/ext/ruby-cbc/install/include/coin/CoinHelperFunctions.hpp +0 -1111
- data/ext/ruby-cbc/install/include/coin/CoinIndexedVector.hpp +0 -1164
- data/ext/ruby-cbc/install/include/coin/CoinLpIO.hpp +0 -805
- data/ext/ruby-cbc/install/include/coin/CoinMessage.hpp +0 -96
- data/ext/ruby-cbc/install/include/coin/CoinMessageHandler.hpp +0 -666
- data/ext/ruby-cbc/install/include/coin/CoinModel.hpp +0 -1054
- data/ext/ruby-cbc/install/include/coin/CoinModelUseful.hpp +0 -441
- data/ext/ruby-cbc/install/include/coin/CoinMpsIO.hpp +0 -1056
- data/ext/ruby-cbc/install/include/coin/CoinOslFactorization.hpp +0 -280
- data/ext/ruby-cbc/install/include/coin/CoinPackedMatrix.hpp +0 -947
- data/ext/ruby-cbc/install/include/coin/CoinPackedVector.hpp +0 -657
- data/ext/ruby-cbc/install/include/coin/CoinPackedVectorBase.hpp +0 -269
- data/ext/ruby-cbc/install/include/coin/CoinParam.hpp +0 -644
- data/ext/ruby-cbc/install/include/coin/CoinPragma.hpp +0 -26
- data/ext/ruby-cbc/install/include/coin/CoinPresolveDoubleton.hpp +0 -73
- data/ext/ruby-cbc/install/include/coin/CoinPresolveDual.hpp +0 -85
- data/ext/ruby-cbc/install/include/coin/CoinPresolveDupcol.hpp +0 -226
- data/ext/ruby-cbc/install/include/coin/CoinPresolveEmpty.hpp +0 -116
- data/ext/ruby-cbc/install/include/coin/CoinPresolveFixed.hpp +0 -181
- data/ext/ruby-cbc/install/include/coin/CoinPresolveForcing.hpp +0 -61
- data/ext/ruby-cbc/install/include/coin/CoinPresolveImpliedFree.hpp +0 -60
- data/ext/ruby-cbc/install/include/coin/CoinPresolveIsolated.hpp +0 -51
- data/ext/ruby-cbc/install/include/coin/CoinPresolveMatrix.hpp +0 -1842
- data/ext/ruby-cbc/install/include/coin/CoinPresolveMonitor.hpp +0 -105
- data/ext/ruby-cbc/install/include/coin/CoinPresolvePsdebug.hpp +0 -166
- data/ext/ruby-cbc/install/include/coin/CoinPresolveSingleton.hpp +0 -112
- data/ext/ruby-cbc/install/include/coin/CoinPresolveSubst.hpp +0 -101
- data/ext/ruby-cbc/install/include/coin/CoinPresolveTighten.hpp +0 -55
- data/ext/ruby-cbc/install/include/coin/CoinPresolveTripleton.hpp +0 -66
- data/ext/ruby-cbc/install/include/coin/CoinPresolveUseless.hpp +0 -63
- data/ext/ruby-cbc/install/include/coin/CoinPresolveZeros.hpp +0 -60
- data/ext/ruby-cbc/install/include/coin/CoinRational.hpp +0 -44
- data/ext/ruby-cbc/install/include/coin/CoinSearchTree.hpp +0 -465
- data/ext/ruby-cbc/install/include/coin/CoinShallowPackedVector.hpp +0 -148
- data/ext/ruby-cbc/install/include/coin/CoinSignal.hpp +0 -117
- data/ext/ruby-cbc/install/include/coin/CoinSimpFactorization.hpp +0 -431
- data/ext/ruby-cbc/install/include/coin/CoinSmartPtr.hpp +0 -528
- data/ext/ruby-cbc/install/include/coin/CoinSnapshot.hpp +0 -476
- data/ext/ruby-cbc/install/include/coin/CoinSort.hpp +0 -678
- data/ext/ruby-cbc/install/include/coin/CoinStructuredModel.hpp +0 -247
- data/ext/ruby-cbc/install/include/coin/CoinTime.hpp +0 -310
- data/ext/ruby-cbc/install/include/coin/CoinTypes.hpp +0 -64
- data/ext/ruby-cbc/install/include/coin/CoinUtility.hpp +0 -19
- data/ext/ruby-cbc/install/include/coin/CoinUtilsConfig.h +0 -34
- data/ext/ruby-cbc/install/include/coin/CoinWarmStart.hpp +0 -58
- data/ext/ruby-cbc/install/include/coin/CoinWarmStartBasis.hpp +0 -456
- data/ext/ruby-cbc/install/include/coin/CoinWarmStartDual.hpp +0 -166
- data/ext/ruby-cbc/install/include/coin/CoinWarmStartPrimalDual.hpp +0 -211
- data/ext/ruby-cbc/install/include/coin/CoinWarmStartVector.hpp +0 -488
- data/ext/ruby-cbc/install/include/coin/Coin_C_defines.h +0 -115
- data/ext/ruby-cbc/install/include/coin/Idiot.hpp +0 -298
- data/ext/ruby-cbc/install/include/coin/OsiAuxInfo.hpp +0 -206
- data/ext/ruby-cbc/install/include/coin/OsiBranchingObject.hpp +0 -1005
- data/ext/ruby-cbc/install/include/coin/OsiCbcSolverInterface.hpp +0 -764
- data/ext/ruby-cbc/install/include/coin/OsiChooseVariable.hpp +0 -534
- data/ext/ruby-cbc/install/include/coin/OsiClpSolverInterface.hpp +0 -1509
- data/ext/ruby-cbc/install/include/coin/OsiColCut.hpp +0 -324
- data/ext/ruby-cbc/install/include/coin/OsiCollections.hpp +0 -35
- data/ext/ruby-cbc/install/include/coin/OsiConfig.h +0 -19
- data/ext/ruby-cbc/install/include/coin/OsiCut.hpp +0 -245
- data/ext/ruby-cbc/install/include/coin/OsiCuts.hpp +0 -474
- data/ext/ruby-cbc/install/include/coin/OsiPresolve.hpp +0 -252
- data/ext/ruby-cbc/install/include/coin/OsiRowCut.hpp +0 -331
- data/ext/ruby-cbc/install/include/coin/OsiRowCutDebugger.hpp +0 -187
- data/ext/ruby-cbc/install/include/coin/OsiSolverBranch.hpp +0 -152
- data/ext/ruby-cbc/install/include/coin/OsiSolverInterface.hpp +0 -2143
- data/ext/ruby-cbc/install/include/coin/OsiSolverParameters.hpp +0 -142
- data/ext/ruby-cbc/install/include/coin/OsiUnitTests.hpp +0 -374
- data/ext/ruby-cbc/install/lib/libCbc.la +0 -35
- data/ext/ruby-cbc/install/lib/libCbc.so +0 -0
- data/ext/ruby-cbc/install/lib/libCbc.so.3 +0 -0
- data/ext/ruby-cbc/install/lib/libCbc.so.3.9.7 +0 -0
- data/ext/ruby-cbc/install/lib/libCbcSolver.la +0 -35
- data/ext/ruby-cbc/install/lib/libCbcSolver.so +0 -0
- data/ext/ruby-cbc/install/lib/libCbcSolver.so.3 +0 -0
- data/ext/ruby-cbc/install/lib/libCbcSolver.so.3.9.7 +0 -0
- data/ext/ruby-cbc/install/lib/libCgl.la +0 -35
- data/ext/ruby-cbc/install/lib/libCgl.so +0 -0
- data/ext/ruby-cbc/install/lib/libCgl.so.1 +0 -0
- data/ext/ruby-cbc/install/lib/libCgl.so.1.9.7 +0 -0
- data/ext/ruby-cbc/install/lib/libClp.la +0 -35
- data/ext/ruby-cbc/install/lib/libClp.so +0 -0
- data/ext/ruby-cbc/install/lib/libClp.so.1 +0 -0
- data/ext/ruby-cbc/install/lib/libClp.so.1.13.9 +0 -0
- data/ext/ruby-cbc/install/lib/libClpSolver.la +0 -35
- data/ext/ruby-cbc/install/lib/libClpSolver.so +0 -0
- data/ext/ruby-cbc/install/lib/libClpSolver.so.1 +0 -0
- data/ext/ruby-cbc/install/lib/libClpSolver.so.1.13.9 +0 -0
- data/ext/ruby-cbc/install/lib/libCoinUtils.la +0 -35
- data/ext/ruby-cbc/install/lib/libCoinUtils.so +0 -0
- data/ext/ruby-cbc/install/lib/libCoinUtils.so.3 +0 -0
- data/ext/ruby-cbc/install/lib/libCoinUtils.so.3.10.11 +0 -0
- data/ext/ruby-cbc/install/lib/libOsi.la +0 -35
- data/ext/ruby-cbc/install/lib/libOsi.so +0 -0
- data/ext/ruby-cbc/install/lib/libOsi.so.1 +0 -0
- data/ext/ruby-cbc/install/lib/libOsi.so.1.12.6 +0 -0
- data/ext/ruby-cbc/install/lib/libOsiCbc.la +0 -35
- data/ext/ruby-cbc/install/lib/libOsiCbc.so +0 -0
- data/ext/ruby-cbc/install/lib/libOsiCbc.so.3 +0 -0
- data/ext/ruby-cbc/install/lib/libOsiCbc.so.3.9.7 +0 -0
- data/ext/ruby-cbc/install/lib/libOsiClp.la +0 -35
- data/ext/ruby-cbc/install/lib/libOsiClp.so +0 -0
- data/ext/ruby-cbc/install/lib/libOsiClp.so.1 +0 -0
- data/ext/ruby-cbc/install/lib/libOsiClp.so.1.13.9 +0 -0
- data/ext/ruby-cbc/install/lib/libOsiCommonTests.la +0 -35
- data/ext/ruby-cbc/install/lib/libOsiCommonTests.so +0 -0
- data/ext/ruby-cbc/install/lib/libOsiCommonTests.so.1 +0 -0
- data/ext/ruby-cbc/install/lib/libOsiCommonTests.so.1.12.6 +0 -0
- data/ext/ruby-cbc/install/lib/pkgconfig/cbc.pc +0 -12
- data/ext/ruby-cbc/install/lib/pkgconfig/cgl.pc +0 -12
- data/ext/ruby-cbc/install/lib/pkgconfig/clp.pc +0 -12
- data/ext/ruby-cbc/install/lib/pkgconfig/coindatamiplib3.pc +0 -9
- data/ext/ruby-cbc/install/lib/pkgconfig/coindatasample.pc +0 -9
- data/ext/ruby-cbc/install/lib/pkgconfig/coinutils.pc +0 -12
- data/ext/ruby-cbc/install/lib/pkgconfig/osi-cbc.pc +0 -12
- data/ext/ruby-cbc/install/lib/pkgconfig/osi-clp.pc +0 -12
- data/ext/ruby-cbc/install/lib/pkgconfig/osi-unittests.pc +0 -12
- data/ext/ruby-cbc/install/lib/pkgconfig/osi.pc +0 -12
|
@@ -1,174 +0,0 @@
|
|
|
1
|
-
// $Id: CglSimpleRounding.hpp 1149 2013-10-21 18:23:53Z tkr $
|
|
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 CglSimpleRounding_H
|
|
7
|
-
#define CglSimpleRounding_H
|
|
8
|
-
|
|
9
|
-
#include <string>
|
|
10
|
-
|
|
11
|
-
#include "CglCutGenerator.hpp"
|
|
12
|
-
#include "CoinPackedMatrix.hpp"
|
|
13
|
-
|
|
14
|
-
/** Simple Rounding Cut Generator Class
|
|
15
|
-
|
|
16
|
-
This class generates simple rounding cuts via the following method:
|
|
17
|
-
For each contraint,
|
|
18
|
-
attempt to derive a <= inequality in all integer variables
|
|
19
|
-
by netting out any continuous variables.
|
|
20
|
-
Divide the resulting integer inequality through by
|
|
21
|
-
the greatest common denomimator (gcd) of the lhs coefficients.
|
|
22
|
-
Round down the rhs.
|
|
23
|
-
|
|
24
|
-
Warning: Use with careful attention to data precision.
|
|
25
|
-
|
|
26
|
-
(Reference: Nemhauser and Wolsey, Integer and Combinatorial Optimization, 1988, pg 211.)
|
|
27
|
-
*/
|
|
28
|
-
|
|
29
|
-
class CglSimpleRounding : public CglCutGenerator {
|
|
30
|
-
friend void CglSimpleRoundingUnitTest(const OsiSolverInterface * siP,
|
|
31
|
-
const std::string mpdDir );
|
|
32
|
-
|
|
33
|
-
public:
|
|
34
|
-
|
|
35
|
-
/**@name Generate Cuts */
|
|
36
|
-
//@{
|
|
37
|
-
/** Generate simple rounding cuts for the model accessed through the solver interface.
|
|
38
|
-
Insert generated cuts into the cut set cs.
|
|
39
|
-
*/
|
|
40
|
-
virtual void generateCuts( const OsiSolverInterface & si, OsiCuts & cs,
|
|
41
|
-
const CglTreeInfo info = CglTreeInfo());
|
|
42
|
-
//@}
|
|
43
|
-
|
|
44
|
-
/**@name Constructors and destructors */
|
|
45
|
-
//@{
|
|
46
|
-
/// Default constructor
|
|
47
|
-
CglSimpleRounding ();
|
|
48
|
-
|
|
49
|
-
/// Copy constructor
|
|
50
|
-
CglSimpleRounding (
|
|
51
|
-
const CglSimpleRounding &);
|
|
52
|
-
|
|
53
|
-
/// Clone
|
|
54
|
-
virtual CglCutGenerator * clone() const;
|
|
55
|
-
|
|
56
|
-
/// Assignment operator
|
|
57
|
-
CglSimpleRounding &
|
|
58
|
-
operator=(
|
|
59
|
-
const CglSimpleRounding& rhs);
|
|
60
|
-
|
|
61
|
-
/// Destructor
|
|
62
|
-
virtual
|
|
63
|
-
~CglSimpleRounding ();
|
|
64
|
-
/// Create C++ lines to get to current state
|
|
65
|
-
virtual std::string generateCpp( FILE * fp);
|
|
66
|
-
//@}
|
|
67
|
-
|
|
68
|
-
private:
|
|
69
|
-
|
|
70
|
-
// Private member methods
|
|
71
|
-
|
|
72
|
-
/**@name Private methods */
|
|
73
|
-
//@{
|
|
74
|
-
|
|
75
|
-
/// Derive a <= inequality in integer variables from the rowIndex-th constraint
|
|
76
|
-
bool deriveAnIntegerRow(
|
|
77
|
-
const OsiSolverInterface & si,
|
|
78
|
-
int rowIndex,
|
|
79
|
-
const CoinShallowPackedVector & matrixRow,
|
|
80
|
-
CoinPackedVector & irow,
|
|
81
|
-
double & b,
|
|
82
|
-
bool * negative) const;
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
/** Given a vector of doubles, x, with size elements and a positive tolerance,
|
|
86
|
-
dataTol, this method returns the smallest power of 10 needed so that
|
|
87
|
-
x[i]*10**power "is integer" for all i=0,...,size-1.
|
|
88
|
-
|
|
89
|
-
** change of definition of dataTol so that it refers to original
|
|
90
|
-
data, not to scaled data as that seems to lead to problems.
|
|
91
|
-
|
|
92
|
-
So if xScaled is x[i]*10**power and xInt is rounded(xScaled)
|
|
93
|
-
then fabs(xScaled-xInt) <= dataTol*10**power. This means that
|
|
94
|
-
dataTol should be smaller - say 1.0e-12 rather tahn 1.0e-8
|
|
95
|
-
|
|
96
|
-
Returns -number of times overflowed if the power is so big that it will
|
|
97
|
-
cause overflow (i.e. integer stored will be bigger than 2**31).
|
|
98
|
-
Test in cut generator.
|
|
99
|
-
*/
|
|
100
|
-
int power10ToMakeDoubleAnInt(
|
|
101
|
-
int size, // the length of the vector x
|
|
102
|
-
const double * x,
|
|
103
|
-
double dataTol ) const; // the precision of the data, i.e. the positive
|
|
104
|
-
// epsilon, which is equivalent to zero
|
|
105
|
-
|
|
106
|
-
/**@name Greatest common denominators methods */
|
|
107
|
-
//@{
|
|
108
|
-
/// Returns the greatest common denominator of two positive integers, a and b.
|
|
109
|
-
inline int gcd(int a, int b) const;
|
|
110
|
-
|
|
111
|
-
/** Returns the greatest common denominator of a vector of
|
|
112
|
-
positive integers, vi, of length n.
|
|
113
|
-
*/
|
|
114
|
-
inline int gcdv(int n, const int * const vi) const;
|
|
115
|
-
//@}
|
|
116
|
-
|
|
117
|
-
//@}
|
|
118
|
-
|
|
119
|
-
/**@name Private member data */
|
|
120
|
-
//@{
|
|
121
|
-
/// A value within an epsilon_ neighborhood of 0 is considered to be 0.
|
|
122
|
-
double epsilon_;
|
|
123
|
-
//@}
|
|
124
|
-
};
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
//-------------------------------------------------------------------
|
|
128
|
-
// Returns the greatest common denominator of two
|
|
129
|
-
// positive integers, a and b, found using Euclid's algorithm
|
|
130
|
-
//-------------------------------------------------------------------
|
|
131
|
-
int
|
|
132
|
-
CglSimpleRounding::gcd(int a, int b) const
|
|
133
|
-
{
|
|
134
|
-
if(a > b) {
|
|
135
|
-
// Swap a and b
|
|
136
|
-
int temp = a;
|
|
137
|
-
a = b;
|
|
138
|
-
b = temp;
|
|
139
|
-
}
|
|
140
|
-
int remainder = b % a;
|
|
141
|
-
if (remainder == 0) return a;
|
|
142
|
-
else return gcd(remainder,a);
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
//-------------------------------------------------------------------
|
|
146
|
-
// Returns the greatest common denominator of a vector of
|
|
147
|
-
// positive integers, vi, of length n.
|
|
148
|
-
//-------------------------------------------------------------------
|
|
149
|
-
int
|
|
150
|
-
CglSimpleRounding::gcdv(int n, const int* const vi) const
|
|
151
|
-
{
|
|
152
|
-
if (n==0)
|
|
153
|
-
abort();
|
|
154
|
-
|
|
155
|
-
if (n==1)
|
|
156
|
-
return vi[0];
|
|
157
|
-
|
|
158
|
-
int retval=gcd(vi[0], vi[1]);
|
|
159
|
-
for (int i=2; i<n; i++){
|
|
160
|
-
retval=gcd(retval,vi[i]);
|
|
161
|
-
}
|
|
162
|
-
return retval;
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
//#############################################################################
|
|
166
|
-
/** A function that tests the methods in the CglSimpleRounding class. The
|
|
167
|
-
only reason for it not to be a member method is that this way it doesn't
|
|
168
|
-
have to be compiled into the library. And that's a gain, because the
|
|
169
|
-
library should be compiled with optimization on, but this method should be
|
|
170
|
-
compiled with debugging. */
|
|
171
|
-
void CglSimpleRoundingUnitTest(const OsiSolverInterface * siP,
|
|
172
|
-
const std::string mpdDir );
|
|
173
|
-
|
|
174
|
-
#endif
|
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
// $Id: CglStored.hpp 1119 2013-04-06 20:24:18Z stefan $
|
|
2
|
-
// Copyright (C) 2005, International Business Machines
|
|
3
|
-
// Corporation and others. All Rights Reserved.
|
|
4
|
-
// This code is licensed under the terms of the Eclipse Public License (EPL).
|
|
5
|
-
|
|
6
|
-
#ifndef CglStored_H
|
|
7
|
-
#define CglStored_H
|
|
8
|
-
|
|
9
|
-
#include <string>
|
|
10
|
-
|
|
11
|
-
#include "CglCutGenerator.hpp"
|
|
12
|
-
|
|
13
|
-
class CoinWarmStartBasis;
|
|
14
|
-
class CglTreeProbingInfo;
|
|
15
|
-
/** Stored Cut Generator Class */
|
|
16
|
-
class CglStored : public CglCutGenerator {
|
|
17
|
-
|
|
18
|
-
public:
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
/**@name Generate Cuts */
|
|
22
|
-
//@{
|
|
23
|
-
/** Generate Mixed Integer Stored cuts for the model of the
|
|
24
|
-
solver interface, si.
|
|
25
|
-
|
|
26
|
-
Insert the generated cuts into OsiCut, cs.
|
|
27
|
-
|
|
28
|
-
This generator just looks at previously stored cuts
|
|
29
|
-
and inserts any that are violated by enough
|
|
30
|
-
*/
|
|
31
|
-
virtual void generateCuts( const OsiSolverInterface & si, OsiCuts & cs,
|
|
32
|
-
const CglTreeInfo info = CglTreeInfo());
|
|
33
|
-
//@}
|
|
34
|
-
|
|
35
|
-
/**@name Change criterion on whether to include cut.
|
|
36
|
-
Violations of more than this will be added to current cut list
|
|
37
|
-
(default 1.0e-5) */
|
|
38
|
-
//@{
|
|
39
|
-
/// Set
|
|
40
|
-
inline void setRequiredViolation(double value)
|
|
41
|
-
{ requiredViolation_=value;}
|
|
42
|
-
/// Get
|
|
43
|
-
inline double getRequiredViolation() const
|
|
44
|
-
{ return requiredViolation_;}
|
|
45
|
-
/// Takes over ownership of probing info
|
|
46
|
-
inline void setProbingInfo(CglTreeProbingInfo * info)
|
|
47
|
-
{ probingInfo_ = info;}
|
|
48
|
-
//@}
|
|
49
|
-
|
|
50
|
-
/**@name Cut stuff */
|
|
51
|
-
//@{
|
|
52
|
-
/// Add cuts
|
|
53
|
-
void addCut(const OsiCuts & cs);
|
|
54
|
-
/// Add a row cut
|
|
55
|
-
void addCut(const OsiRowCut & cut);
|
|
56
|
-
/// Add a row cut from a packed vector
|
|
57
|
-
void addCut(double lb, double ub, const CoinPackedVector & vector);
|
|
58
|
-
/// Add a row cut from elements
|
|
59
|
-
void addCut(double lb, double ub, int size, const int * colIndices, const double * elements);
|
|
60
|
-
inline int sizeRowCuts() const
|
|
61
|
-
{ return cuts_.sizeRowCuts();}
|
|
62
|
-
const OsiRowCut * rowCutPointer(int index) const
|
|
63
|
-
{ return cuts_.rowCutPtr(index);}
|
|
64
|
-
/// Save stuff
|
|
65
|
-
void saveStuff(double bestObjective, const double * bestSolution,
|
|
66
|
-
const double * lower, const double * upper);
|
|
67
|
-
/// Best solution (or NULL)
|
|
68
|
-
inline const double * bestSolution() const
|
|
69
|
-
{ return bestSolution_;}
|
|
70
|
-
/// Best objective
|
|
71
|
-
double bestObjective() const;
|
|
72
|
-
/// Tight lower bounds
|
|
73
|
-
const double * tightLower() const
|
|
74
|
-
{ return bounds_;}
|
|
75
|
-
/// Tight upper bounds
|
|
76
|
-
const double * tightUpper() const
|
|
77
|
-
{ return bounds_+numberColumns_;}
|
|
78
|
-
//@}
|
|
79
|
-
|
|
80
|
-
/**@name Constructors and destructors */
|
|
81
|
-
//@{
|
|
82
|
-
/// Default constructor
|
|
83
|
-
CglStored (int numberColumns=0);
|
|
84
|
-
|
|
85
|
-
/// Copy constructor
|
|
86
|
-
CglStored (const CglStored & rhs);
|
|
87
|
-
|
|
88
|
-
/// Constructor from file
|
|
89
|
-
CglStored (const char * fileName);
|
|
90
|
-
|
|
91
|
-
/// Clone
|
|
92
|
-
virtual CglCutGenerator * clone() const;
|
|
93
|
-
|
|
94
|
-
/// Assignment operator
|
|
95
|
-
CglStored &
|
|
96
|
-
operator=(const CglStored& rhs);
|
|
97
|
-
|
|
98
|
-
/// Destructor
|
|
99
|
-
virtual
|
|
100
|
-
~CglStored ();
|
|
101
|
-
//@}
|
|
102
|
-
|
|
103
|
-
protected:
|
|
104
|
-
|
|
105
|
-
// Protected member methods
|
|
106
|
-
|
|
107
|
-
// Protected member data
|
|
108
|
-
|
|
109
|
-
/**@name Protected member data */
|
|
110
|
-
//@{
|
|
111
|
-
/// Only add if more than this requiredViolation
|
|
112
|
-
double requiredViolation_;
|
|
113
|
-
/// Pointer to probing information
|
|
114
|
-
CglTreeProbingInfo * probingInfo_;
|
|
115
|
-
/// Cuts
|
|
116
|
-
OsiCuts cuts_;
|
|
117
|
-
/// Number of columns in model
|
|
118
|
-
int numberColumns_;
|
|
119
|
-
/// Best solution (objective at end)
|
|
120
|
-
double * bestSolution_;
|
|
121
|
-
/// Tight bounds
|
|
122
|
-
double * bounds_;
|
|
123
|
-
//@}
|
|
124
|
-
};
|
|
125
|
-
#endif
|
|
@@ -1,180 +0,0 @@
|
|
|
1
|
-
// $Id: CglTreeInfo.hpp 1201 2014-03-07 17:24:04Z 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 CglTreeInfo_H
|
|
7
|
-
#define CglTreeInfo_H
|
|
8
|
-
|
|
9
|
-
#include "OsiCuts.hpp"
|
|
10
|
-
#include "OsiSolverInterface.hpp"
|
|
11
|
-
#include "CoinHelperFunctions.hpp"
|
|
12
|
-
class CglStored;
|
|
13
|
-
/** Information about where the cut generator is invoked from. */
|
|
14
|
-
|
|
15
|
-
class CglTreeInfo {
|
|
16
|
-
public:
|
|
17
|
-
/// The level of the search tree node
|
|
18
|
-
int level;
|
|
19
|
-
/** How many times the cut generator was already invoked in this search tree
|
|
20
|
-
node */
|
|
21
|
-
int pass;
|
|
22
|
-
/** The number of rows in the original formulation. Some generators may not
|
|
23
|
-
want to consider already generated rows when generating new ones. */
|
|
24
|
-
int formulation_rows;
|
|
25
|
-
/** Options
|
|
26
|
-
1 - treat costed integers as important
|
|
27
|
-
2 - switch off some stuff as variables semi-integer
|
|
28
|
-
4 - set global cut flag if at root node
|
|
29
|
-
8 - set global cut flag if at root node and first pass
|
|
30
|
-
16 - set global cut flag and make cuts globally valid
|
|
31
|
-
32 - last round of cuts did nothing - maybe be more aggressive
|
|
32
|
-
64 - in preprocessing stage
|
|
33
|
-
128 - looks like solution
|
|
34
|
-
256 - want alternate cuts
|
|
35
|
-
512 - in sub tree (i.e. parent model)
|
|
36
|
-
1024 - in must call again mode or after everything mode
|
|
37
|
-
*/
|
|
38
|
-
int options;
|
|
39
|
-
/// Set true if in tree (to avoid ambiguity at first branch)
|
|
40
|
-
bool inTree;
|
|
41
|
-
/** Replacement array. Before Branch and Cut it may be beneficial to strengthen rows
|
|
42
|
-
rather than adding cuts. If this array is not NULL then the cut generator can
|
|
43
|
-
place a pointer to the stronger cut in this array which is number of rows in size.
|
|
44
|
-
|
|
45
|
-
A null (i.e. zero elements and free rhs) cut indicates that the row is useless
|
|
46
|
-
and can be removed.
|
|
47
|
-
|
|
48
|
-
The calling function can then replace those rows.
|
|
49
|
-
*/
|
|
50
|
-
OsiRowCut ** strengthenRow;
|
|
51
|
-
/// Optional pointer to thread specific random number generator
|
|
52
|
-
CoinThreadRandom * randomNumberGenerator;
|
|
53
|
-
/// Default constructor
|
|
54
|
-
CglTreeInfo ();
|
|
55
|
-
|
|
56
|
-
/// Copy constructor
|
|
57
|
-
CglTreeInfo (
|
|
58
|
-
const CglTreeInfo &);
|
|
59
|
-
/// Clone
|
|
60
|
-
virtual CglTreeInfo * clone() const;
|
|
61
|
-
|
|
62
|
-
/// Assignment operator
|
|
63
|
-
CglTreeInfo &
|
|
64
|
-
operator=(
|
|
65
|
-
const CglTreeInfo& rhs);
|
|
66
|
-
|
|
67
|
-
/// Destructor
|
|
68
|
-
virtual
|
|
69
|
-
~CglTreeInfo ();
|
|
70
|
-
/// Take action if cut generator can fix a variable (toValue -1 for down, +1 for up)
|
|
71
|
-
virtual bool fixes(int , int , int ,bool) {return false;}
|
|
72
|
-
/** Initalizes fixing arrays etc - returns >0 if we want to save info
|
|
73
|
-
0 if we don't and -1 if is to be used */
|
|
74
|
-
virtual int initializeFixing(const OsiSolverInterface * ) {return 0;}
|
|
75
|
-
|
|
76
|
-
};
|
|
77
|
-
|
|
78
|
-
/** Derived class to pick up probing info. */
|
|
79
|
-
typedef struct {
|
|
80
|
-
//unsigned int oneFixed:1; // nonzero if variable to 1 fixes all
|
|
81
|
-
//unsigned int sequence:31; // variable (in matrix) (but also see cliqueRow_)
|
|
82
|
-
unsigned int fixes;
|
|
83
|
-
} CliqueEntry;
|
|
84
|
-
|
|
85
|
-
class CglTreeProbingInfo : public CglTreeInfo {
|
|
86
|
-
public:
|
|
87
|
-
/// Default constructor
|
|
88
|
-
CglTreeProbingInfo ();
|
|
89
|
-
/// Constructor from model
|
|
90
|
-
CglTreeProbingInfo (const OsiSolverInterface * model);
|
|
91
|
-
|
|
92
|
-
/// Copy constructor
|
|
93
|
-
CglTreeProbingInfo (
|
|
94
|
-
const CglTreeProbingInfo &);
|
|
95
|
-
/// Clone
|
|
96
|
-
virtual CglTreeInfo * clone() const;
|
|
97
|
-
|
|
98
|
-
/// Assignment operator
|
|
99
|
-
CglTreeProbingInfo &
|
|
100
|
-
operator=(
|
|
101
|
-
const CglTreeProbingInfo& rhs);
|
|
102
|
-
|
|
103
|
-
/// Destructor
|
|
104
|
-
virtual
|
|
105
|
-
~CglTreeProbingInfo ();
|
|
106
|
-
OsiSolverInterface * analyze(const OsiSolverInterface & si, int createSolver=0,
|
|
107
|
-
int numberExtraCliques=0,const int * starts=NULL,
|
|
108
|
-
const CliqueEntry * entries=NULL,const char * type=NULL);
|
|
109
|
-
/** Take action if cut generator can fix a variable
|
|
110
|
-
(toValue -1 for down, +1 for up)
|
|
111
|
-
Returns true if still room, false if not */
|
|
112
|
-
virtual bool fixes(int variable, int toValue, int fixedVariable,bool fixedToLower);
|
|
113
|
-
/** Initalizes fixing arrays etc - returns >0 if we want to save info
|
|
114
|
-
0 if we don't and -1 if is to be used */
|
|
115
|
-
virtual int initializeFixing(const OsiSolverInterface * model) ;
|
|
116
|
-
/// Fix entries in a solver using implications
|
|
117
|
-
int fixColumns(OsiSolverInterface & si) const;
|
|
118
|
-
/// Fix entries in a solver using implications for one variable
|
|
119
|
-
int fixColumns(int iColumn, int value, OsiSolverInterface & si) const;
|
|
120
|
-
/// Packs down entries
|
|
121
|
-
int packDown();
|
|
122
|
-
/// Generate cuts from implications
|
|
123
|
-
void generateCuts(const OsiSolverInterface & si, OsiCuts & cs,
|
|
124
|
-
const CglTreeInfo info) const;
|
|
125
|
-
/// Entries for fixing variables
|
|
126
|
-
inline CliqueEntry * fixEntries()
|
|
127
|
-
{ convert(); return fixEntry_;}
|
|
128
|
-
/// Starts of integer variable going to zero
|
|
129
|
-
inline int * toZero()
|
|
130
|
-
{ convert(); return toZero_;}
|
|
131
|
-
/// Starts of integer variable going to one
|
|
132
|
-
inline int * toOne()
|
|
133
|
-
{ convert(); return toOne_;}
|
|
134
|
-
/// List of 0-1 integer variables
|
|
135
|
-
inline int * integerVariable() const
|
|
136
|
-
{ return integerVariable_;}
|
|
137
|
-
/// Backward look up
|
|
138
|
-
inline int * backward() const
|
|
139
|
-
{ return backward_;}
|
|
140
|
-
/// Number of variables
|
|
141
|
-
inline int numberVariables() const
|
|
142
|
-
{ return numberVariables_;}
|
|
143
|
-
/// Number of 0-1 variables
|
|
144
|
-
inline int numberIntegers() const
|
|
145
|
-
{ return numberIntegers_;}
|
|
146
|
-
private:
|
|
147
|
-
/// Converts to ordered
|
|
148
|
-
void convert();
|
|
149
|
-
protected:
|
|
150
|
-
/// Entries for fixing variables
|
|
151
|
-
CliqueEntry * fixEntry_;
|
|
152
|
-
/// Starts of integer variable going to zero
|
|
153
|
-
int * toZero_;
|
|
154
|
-
/// Starts of integer variable going to one
|
|
155
|
-
int * toOne_;
|
|
156
|
-
/// List of 0-1 integer variables
|
|
157
|
-
int * integerVariable_;
|
|
158
|
-
/// Backward look up
|
|
159
|
-
int * backward_;
|
|
160
|
-
/// Entries for fixing variable when collecting
|
|
161
|
-
int * fixingEntry_;
|
|
162
|
-
/// Number of variables
|
|
163
|
-
int numberVariables_;
|
|
164
|
-
/// Number of 0-1 variables
|
|
165
|
-
int numberIntegers_;
|
|
166
|
-
/// Maximum number in fixEntry_
|
|
167
|
-
int maximumEntries_;
|
|
168
|
-
/// Number entries in fixingEntry_ (and fixEntry_) or -2 if correct style
|
|
169
|
-
int numberEntries_;
|
|
170
|
-
};
|
|
171
|
-
inline int sequenceInCliqueEntry(const CliqueEntry & cEntry)
|
|
172
|
-
{ return cEntry.fixes&0x7fffffff;}
|
|
173
|
-
inline void setSequenceInCliqueEntry(CliqueEntry & cEntry,int sequence)
|
|
174
|
-
{ cEntry.fixes = sequence|(cEntry.fixes&0x80000000);}
|
|
175
|
-
inline bool oneFixesInCliqueEntry(const CliqueEntry & cEntry)
|
|
176
|
-
{ return (cEntry.fixes&0x80000000)!=0;}
|
|
177
|
-
inline void setOneFixesInCliqueEntry(CliqueEntry & cEntry,bool oneFixes)
|
|
178
|
-
{ cEntry.fixes = (oneFixes ? 0x80000000 : 0)|(cEntry.fixes&0x7fffffff);}
|
|
179
|
-
|
|
180
|
-
#endif
|