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,183 +0,0 @@
|
|
|
1
|
-
/* $Id: ClpDummyMatrix.hpp 1665 2011-01-04 17:55:54Z lou $ */
|
|
2
|
-
// Copyright (C) 2003, 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 ClpDummyMatrix_H
|
|
7
|
-
#define ClpDummyMatrix_H
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
#include "CoinPragma.hpp"
|
|
11
|
-
|
|
12
|
-
#include "ClpMatrixBase.hpp"
|
|
13
|
-
|
|
14
|
-
/** This implements a dummy matrix as derived from ClpMatrixBase.
|
|
15
|
-
This is so you can do ClpPdco but may come in useful elsewhere.
|
|
16
|
-
It just has dimensions but no data
|
|
17
|
-
*/
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
class ClpDummyMatrix : public ClpMatrixBase {
|
|
21
|
-
|
|
22
|
-
public:
|
|
23
|
-
/**@name Useful methods */
|
|
24
|
-
//@{
|
|
25
|
-
/// Return a complete CoinPackedMatrix
|
|
26
|
-
virtual CoinPackedMatrix * getPackedMatrix() const;
|
|
27
|
-
/** Whether the packed matrix is column major ordered or not. */
|
|
28
|
-
virtual bool isColOrdered() const {
|
|
29
|
-
return true;
|
|
30
|
-
}
|
|
31
|
-
/** Number of entries in the packed matrix. */
|
|
32
|
-
virtual CoinBigIndex getNumElements() const {
|
|
33
|
-
return numberElements_;
|
|
34
|
-
}
|
|
35
|
-
/** Number of columns. */
|
|
36
|
-
virtual int getNumCols() const {
|
|
37
|
-
return numberColumns_;
|
|
38
|
-
}
|
|
39
|
-
/** Number of rows. */
|
|
40
|
-
virtual int getNumRows() const {
|
|
41
|
-
return numberRows_;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
/** A vector containing the elements in the packed matrix. Note that there
|
|
45
|
-
might be gaps in this list, entries that do not belong to any
|
|
46
|
-
major-dimension vector. To get the actual elements one should look at
|
|
47
|
-
this vector together with vectorStarts and vectorLengths. */
|
|
48
|
-
virtual const double * getElements() const;
|
|
49
|
-
/** A vector containing the minor indices of the elements in the packed
|
|
50
|
-
matrix. Note that there might be gaps in this list, entries that do not
|
|
51
|
-
belong to any major-dimension vector. To get the actual elements one
|
|
52
|
-
should look at this vector together with vectorStarts and
|
|
53
|
-
vectorLengths. */
|
|
54
|
-
virtual const int * getIndices() const;
|
|
55
|
-
|
|
56
|
-
virtual const CoinBigIndex * getVectorStarts() const;
|
|
57
|
-
/** The lengths of the major-dimension vectors. */
|
|
58
|
-
virtual const int * getVectorLengths() const;
|
|
59
|
-
|
|
60
|
-
/** Delete the columns whose indices are listed in <code>indDel</code>. */
|
|
61
|
-
virtual void deleteCols(const int numDel, const int * indDel);
|
|
62
|
-
/** Delete the rows whose indices are listed in <code>indDel</code>. */
|
|
63
|
-
virtual void deleteRows(const int numDel, const int * indDel);
|
|
64
|
-
/** Returns a new matrix in reverse order without gaps */
|
|
65
|
-
virtual ClpMatrixBase * reverseOrderedCopy() const;
|
|
66
|
-
/// Returns number of elements in column part of basis
|
|
67
|
-
virtual CoinBigIndex countBasis(const int * whichColumn,
|
|
68
|
-
int & numberColumnBasic);
|
|
69
|
-
/// Fills in column part of basis
|
|
70
|
-
virtual void fillBasis(ClpSimplex * model,
|
|
71
|
-
const int * whichColumn,
|
|
72
|
-
int & numberColumnBasic,
|
|
73
|
-
int * row, int * start,
|
|
74
|
-
int * rowCount, int * columnCount,
|
|
75
|
-
CoinFactorizationDouble * element);
|
|
76
|
-
/** Unpacks a column into an CoinIndexedvector
|
|
77
|
-
*/
|
|
78
|
-
virtual void unpack(const ClpSimplex * model, CoinIndexedVector * rowArray,
|
|
79
|
-
int column) const ;
|
|
80
|
-
/** Unpacks a column into an CoinIndexedvector
|
|
81
|
-
** in packed foramt
|
|
82
|
-
Note that model is NOT const. Bounds and objective could
|
|
83
|
-
be modified if doing column generation (just for this variable) */
|
|
84
|
-
virtual void unpackPacked(ClpSimplex * model,
|
|
85
|
-
CoinIndexedVector * rowArray,
|
|
86
|
-
int column) const;
|
|
87
|
-
/** Adds multiple of a column into an CoinIndexedvector
|
|
88
|
-
You can use quickAdd to add to vector */
|
|
89
|
-
virtual void add(const ClpSimplex * model, CoinIndexedVector * rowArray,
|
|
90
|
-
int column, double multiplier) const ;
|
|
91
|
-
/** Adds multiple of a column into an array */
|
|
92
|
-
virtual void add(const ClpSimplex * model, double * array,
|
|
93
|
-
int column, double multiplier) const;
|
|
94
|
-
/// Allow any parts of a created CoinMatrix to be deleted
|
|
95
|
-
/// Allow any parts of a created CoinPackedMatrix to be deleted
|
|
96
|
-
virtual void releasePackedMatrix() const {}
|
|
97
|
-
//@}
|
|
98
|
-
|
|
99
|
-
/**@name Matrix times vector methods */
|
|
100
|
-
//@{
|
|
101
|
-
/** Return <code>y + A * scalar *x</code> in <code>y</code>.
|
|
102
|
-
@pre <code>x</code> must be of size <code>numColumns()</code>
|
|
103
|
-
@pre <code>y</code> must be of size <code>numRows()</code> */
|
|
104
|
-
virtual void times(double scalar,
|
|
105
|
-
const double * x, double * y) const;
|
|
106
|
-
/// And for scaling
|
|
107
|
-
virtual void times(double scalar,
|
|
108
|
-
const double * x, double * y,
|
|
109
|
-
const double * rowScale,
|
|
110
|
-
const double * columnScale) const;
|
|
111
|
-
/** Return <code>y + x * scalar * A</code> in <code>y</code>.
|
|
112
|
-
@pre <code>x</code> must be of size <code>numRows()</code>
|
|
113
|
-
@pre <code>y</code> must be of size <code>numColumns()</code> */
|
|
114
|
-
virtual void transposeTimes(double scalar,
|
|
115
|
-
const double * x, double * y) const;
|
|
116
|
-
/// And for scaling
|
|
117
|
-
virtual void transposeTimes(double scalar,
|
|
118
|
-
const double * x, double * y,
|
|
119
|
-
const double * rowScale,
|
|
120
|
-
const double * columnScale) const;
|
|
121
|
-
|
|
122
|
-
using ClpMatrixBase::transposeTimes ;
|
|
123
|
-
/** Return <code>x * scalar * A + y</code> in <code>z</code>.
|
|
124
|
-
Can use y as temporary array (will be empty at end)
|
|
125
|
-
Note - If x packed mode - then z packed mode */
|
|
126
|
-
virtual void transposeTimes(const ClpSimplex * model, double scalar,
|
|
127
|
-
const CoinIndexedVector * x,
|
|
128
|
-
CoinIndexedVector * y,
|
|
129
|
-
CoinIndexedVector * z) const;
|
|
130
|
-
/** Return <code>x *A</code> in <code>z</code> but
|
|
131
|
-
just for indices in y.
|
|
132
|
-
Note - If x packed mode - then z packed mode
|
|
133
|
-
Squashes small elements and knows about ClpSimplex */
|
|
134
|
-
virtual void subsetTransposeTimes(const ClpSimplex * model,
|
|
135
|
-
const CoinIndexedVector * x,
|
|
136
|
-
const CoinIndexedVector * y,
|
|
137
|
-
CoinIndexedVector * z) const;
|
|
138
|
-
//@}
|
|
139
|
-
|
|
140
|
-
/**@name Other */
|
|
141
|
-
//@{
|
|
142
|
-
//@}
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
/**@name Constructors, destructor */
|
|
146
|
-
//@{
|
|
147
|
-
/** Default constructor. */
|
|
148
|
-
ClpDummyMatrix();
|
|
149
|
-
/// Constructor with data
|
|
150
|
-
ClpDummyMatrix(int numberColumns, int numberRows,
|
|
151
|
-
int numberElements);
|
|
152
|
-
/** Destructor */
|
|
153
|
-
virtual ~ClpDummyMatrix();
|
|
154
|
-
//@}
|
|
155
|
-
|
|
156
|
-
/**@name Copy method */
|
|
157
|
-
//@{
|
|
158
|
-
/** The copy constructor. */
|
|
159
|
-
ClpDummyMatrix(const ClpDummyMatrix&);
|
|
160
|
-
/** The copy constructor from an CoinDummyMatrix. */
|
|
161
|
-
ClpDummyMatrix(const CoinPackedMatrix&);
|
|
162
|
-
|
|
163
|
-
ClpDummyMatrix& operator=(const ClpDummyMatrix&);
|
|
164
|
-
/// Clone
|
|
165
|
-
virtual ClpMatrixBase * clone() const ;
|
|
166
|
-
//@}
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
protected:
|
|
170
|
-
/**@name Data members
|
|
171
|
-
The data members are protected to allow access for derived classes. */
|
|
172
|
-
//@{
|
|
173
|
-
/// Number of rows
|
|
174
|
-
int numberRows_;
|
|
175
|
-
/// Number of columns
|
|
176
|
-
int numberColumns_;
|
|
177
|
-
/// Number of elements
|
|
178
|
-
int numberElements_;
|
|
179
|
-
|
|
180
|
-
//@}
|
|
181
|
-
};
|
|
182
|
-
|
|
183
|
-
#endif
|
|
@@ -1,186 +0,0 @@
|
|
|
1
|
-
/* $Id: ClpDynamicExampleMatrix.hpp 1936 2013-04-09 10:29:27Z forrest $ */
|
|
2
|
-
// Copyright (C) 2004, 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 ClpDynamicExampleMatrix_H
|
|
7
|
-
#define ClpDynamicExampleMatrix_H
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
#include "CoinPragma.hpp"
|
|
11
|
-
|
|
12
|
-
#include "ClpDynamicMatrix.hpp"
|
|
13
|
-
class ClpSimplex;
|
|
14
|
-
/** This implements a dynamic matrix when we have a limit on the number of
|
|
15
|
-
"interesting rows". This version inherits from ClpDynamicMatrix and knows that
|
|
16
|
-
the real matrix is gub. This acts just like ClpDynamicMatrix but generates columns.
|
|
17
|
-
This "generates" columns by choosing from stored set. It is maent as a starting point
|
|
18
|
-
as to how you could use shortest path to generate columns.
|
|
19
|
-
|
|
20
|
-
So it has its own copy of all data needed. It populates ClpDynamicWatrix with enough
|
|
21
|
-
to allow for gub keys and active variables. In turn ClpDynamicMatrix populates
|
|
22
|
-
a CoinPackedMatrix with active columns and rows.
|
|
23
|
-
|
|
24
|
-
As there is one copy here and one in ClpDynamicmatrix these names end in Gen_
|
|
25
|
-
|
|
26
|
-
It is obviously more efficient to just use ClpDynamicMatrix but the ideas is to
|
|
27
|
-
show how much code a user would have to write.
|
|
28
|
-
|
|
29
|
-
This does not work very well with bounds
|
|
30
|
-
|
|
31
|
-
*/
|
|
32
|
-
|
|
33
|
-
class ClpDynamicExampleMatrix : public ClpDynamicMatrix {
|
|
34
|
-
|
|
35
|
-
public:
|
|
36
|
-
/**@name Main functions provided */
|
|
37
|
-
//@{
|
|
38
|
-
/// Partial pricing
|
|
39
|
-
virtual void partialPricing(ClpSimplex * model, double start, double end,
|
|
40
|
-
int & bestSequence, int & numberWanted);
|
|
41
|
-
|
|
42
|
-
/** Creates a variable. This is called after partial pricing and will modify matrix.
|
|
43
|
-
Will update bestSequence.
|
|
44
|
-
*/
|
|
45
|
-
virtual void createVariable(ClpSimplex * model, int & bestSequence);
|
|
46
|
-
/** If addColumn forces compression then this allows descendant to know what to do.
|
|
47
|
-
If >= then entry stayed in, if -1 then entry went out to lower bound.of zero.
|
|
48
|
-
Entries at upper bound (really nonzero) never go out (at present).
|
|
49
|
-
*/
|
|
50
|
-
virtual void packDown(const int * in, int numberToPack);
|
|
51
|
-
//@}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
/**@name Constructors, destructor */
|
|
56
|
-
//@{
|
|
57
|
-
/** Default constructor. */
|
|
58
|
-
ClpDynamicExampleMatrix();
|
|
59
|
-
/** This is the real constructor.
|
|
60
|
-
It assumes factorization frequency will not be changed.
|
|
61
|
-
This resizes model !!!!
|
|
62
|
-
The contents of original matrix in model will be taken over and original matrix
|
|
63
|
-
will be sanitized so can be deleted (to avoid a very small memory leak)
|
|
64
|
-
*/
|
|
65
|
-
ClpDynamicExampleMatrix(ClpSimplex * model, int numberSets,
|
|
66
|
-
int numberColumns, const int * starts,
|
|
67
|
-
const double * lower, const double * upper,
|
|
68
|
-
const int * startColumn, const int * row,
|
|
69
|
-
const double * element, const double * cost,
|
|
70
|
-
const double * columnLower = NULL, const double * columnUpper = NULL,
|
|
71
|
-
const unsigned char * status = NULL,
|
|
72
|
-
const unsigned char * dynamicStatus = NULL,
|
|
73
|
-
int numberIds = 0, const int *ids = NULL);
|
|
74
|
-
#if 0
|
|
75
|
-
/// This constructor just takes over ownership (except for lower, upper)
|
|
76
|
-
ClpDynamicExampleMatrix(ClpSimplex * model, int numberSets,
|
|
77
|
-
int numberColumns, int * starts,
|
|
78
|
-
const double * lower, const double * upper,
|
|
79
|
-
int * startColumn, int * row,
|
|
80
|
-
double * element, double * cost,
|
|
81
|
-
double * columnLower = NULL, double * columnUpper = NULL,
|
|
82
|
-
const unsigned char * status = NULL,
|
|
83
|
-
const unsigned char * dynamicStatus = NULL,
|
|
84
|
-
int numberIds = 0, const int *ids = NULL);
|
|
85
|
-
#endif
|
|
86
|
-
/** Destructor */
|
|
87
|
-
virtual ~ClpDynamicExampleMatrix();
|
|
88
|
-
//@}
|
|
89
|
-
|
|
90
|
-
/**@name Copy method */
|
|
91
|
-
//@{
|
|
92
|
-
/** The copy constructor. */
|
|
93
|
-
ClpDynamicExampleMatrix(const ClpDynamicExampleMatrix&);
|
|
94
|
-
ClpDynamicExampleMatrix& operator=(const ClpDynamicExampleMatrix&);
|
|
95
|
-
/// Clone
|
|
96
|
-
virtual ClpMatrixBase * clone() const ;
|
|
97
|
-
//@}
|
|
98
|
-
/**@name gets and sets */
|
|
99
|
-
//@{
|
|
100
|
-
/// Starts of each column
|
|
101
|
-
inline CoinBigIndex * startColumnGen() const {
|
|
102
|
-
return startColumnGen_;
|
|
103
|
-
}
|
|
104
|
-
/// rows
|
|
105
|
-
inline int * rowGen() const {
|
|
106
|
-
return rowGen_;
|
|
107
|
-
}
|
|
108
|
-
/// elements
|
|
109
|
-
inline double * elementGen() const {
|
|
110
|
-
return elementGen_;
|
|
111
|
-
}
|
|
112
|
-
/// costs
|
|
113
|
-
inline double * costGen() const {
|
|
114
|
-
return costGen_;
|
|
115
|
-
}
|
|
116
|
-
/// full starts
|
|
117
|
-
inline int * fullStartGen() const {
|
|
118
|
-
return fullStartGen_;
|
|
119
|
-
}
|
|
120
|
-
/// ids in next level matrix
|
|
121
|
-
inline int * idGen() const {
|
|
122
|
-
return idGen_;
|
|
123
|
-
}
|
|
124
|
-
/// Optional lower bounds on columns
|
|
125
|
-
inline double * columnLowerGen() const {
|
|
126
|
-
return columnLowerGen_;
|
|
127
|
-
}
|
|
128
|
-
/// Optional upper bounds on columns
|
|
129
|
-
inline double * columnUpperGen() const {
|
|
130
|
-
return columnUpperGen_;
|
|
131
|
-
}
|
|
132
|
-
/// size
|
|
133
|
-
inline int numberColumns() const {
|
|
134
|
-
return numberColumns_;
|
|
135
|
-
}
|
|
136
|
-
inline void setDynamicStatusGen(int sequence, DynamicStatus status) {
|
|
137
|
-
unsigned char & st_byte = dynamicStatusGen_[sequence];
|
|
138
|
-
st_byte = static_cast<unsigned char>(st_byte & ~7);
|
|
139
|
-
st_byte = static_cast<unsigned char>(st_byte | status);
|
|
140
|
-
}
|
|
141
|
-
inline DynamicStatus getDynamicStatusGen(int sequence) const {
|
|
142
|
-
return static_cast<DynamicStatus> (dynamicStatusGen_[sequence] & 7);
|
|
143
|
-
}
|
|
144
|
-
/// Whether flagged
|
|
145
|
-
inline bool flaggedGen(int i) const {
|
|
146
|
-
return (dynamicStatusGen_[i] & 8) != 0;
|
|
147
|
-
}
|
|
148
|
-
inline void setFlaggedGen(int i) {
|
|
149
|
-
dynamicStatusGen_[i] = static_cast<unsigned char>(dynamicStatusGen_[i] | 8);
|
|
150
|
-
}
|
|
151
|
-
inline void unsetFlagged(int i) {
|
|
152
|
-
dynamicStatusGen_[i] = static_cast<unsigned char>(dynamicStatusGen_[i] & ~8);
|
|
153
|
-
}
|
|
154
|
-
//@}
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
protected:
|
|
158
|
-
/**@name Data members
|
|
159
|
-
The data members are protected to allow access for derived classes. */
|
|
160
|
-
//@{
|
|
161
|
-
/// size
|
|
162
|
-
int numberColumns_;
|
|
163
|
-
/// Starts of each column
|
|
164
|
-
CoinBigIndex * startColumnGen_;
|
|
165
|
-
/// rows
|
|
166
|
-
int * rowGen_;
|
|
167
|
-
/// elements
|
|
168
|
-
double * elementGen_;
|
|
169
|
-
/// costs
|
|
170
|
-
double * costGen_;
|
|
171
|
-
/// start of each set
|
|
172
|
-
int * fullStartGen_;
|
|
173
|
-
/// for status and which bound
|
|
174
|
-
unsigned char * dynamicStatusGen_;
|
|
175
|
-
/** identifier for each variable up one level (startColumn_, etc). This is
|
|
176
|
-
of length maximumGubColumns_. For this version it is just sequence number
|
|
177
|
-
at this level */
|
|
178
|
-
int * idGen_;
|
|
179
|
-
/// Optional lower bounds on columns
|
|
180
|
-
double * columnLowerGen_;
|
|
181
|
-
/// Optional upper bounds on columns
|
|
182
|
-
double * columnUpperGen_;
|
|
183
|
-
//@}
|
|
184
|
-
};
|
|
185
|
-
|
|
186
|
-
#endif
|
|
@@ -1,381 +0,0 @@
|
|
|
1
|
-
/* $Id: ClpDynamicMatrix.hpp 1755 2011-06-28 18:24:31Z lou $ */
|
|
2
|
-
// Copyright (C) 2004, 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 ClpDynamicMatrix_H
|
|
7
|
-
#define ClpDynamicMatrix_H
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
#include "CoinPragma.hpp"
|
|
11
|
-
|
|
12
|
-
#include "ClpPackedMatrix.hpp"
|
|
13
|
-
class ClpSimplex;
|
|
14
|
-
/** This implements a dynamic matrix when we have a limit on the number of
|
|
15
|
-
"interesting rows". This version inherits from ClpPackedMatrix and knows that
|
|
16
|
-
the real matrix is gub. A later version could use shortest path to generate columns.
|
|
17
|
-
|
|
18
|
-
*/
|
|
19
|
-
|
|
20
|
-
class ClpDynamicMatrix : public ClpPackedMatrix {
|
|
21
|
-
|
|
22
|
-
public:
|
|
23
|
-
/// enums for status of various sorts
|
|
24
|
-
enum DynamicStatus {
|
|
25
|
-
soloKey = 0x00,
|
|
26
|
-
inSmall = 0x01,
|
|
27
|
-
atUpperBound = 0x02,
|
|
28
|
-
atLowerBound = 0x03
|
|
29
|
-
};
|
|
30
|
-
/**@name Main functions provided */
|
|
31
|
-
//@{
|
|
32
|
-
/// Partial pricing
|
|
33
|
-
virtual void partialPricing(ClpSimplex * model, double start, double end,
|
|
34
|
-
int & bestSequence, int & numberWanted);
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
update information for a pivot (and effective rhs)
|
|
38
|
-
*/
|
|
39
|
-
virtual int updatePivot(ClpSimplex * model, double oldInValue, double oldOutValue);
|
|
40
|
-
/** Returns effective RHS offset if it is being used. This is used for long problems
|
|
41
|
-
or big dynamic or anywhere where going through full columns is
|
|
42
|
-
expensive. This may re-compute */
|
|
43
|
-
virtual double * rhsOffset(ClpSimplex * model, bool forceRefresh = false,
|
|
44
|
-
bool check = false);
|
|
45
|
-
|
|
46
|
-
using ClpPackedMatrix::times ;
|
|
47
|
-
/** Return <code>y + A * scalar *x</code> in <code>y</code>.
|
|
48
|
-
@pre <code>x</code> must be of size <code>numColumns()</code>
|
|
49
|
-
@pre <code>y</code> must be of size <code>numRows()</code> */
|
|
50
|
-
virtual void times(double scalar,
|
|
51
|
-
const double * x, double * y) const;
|
|
52
|
-
/// Modifies rhs offset
|
|
53
|
-
void modifyOffset(int sequence, double amount);
|
|
54
|
-
/// Gets key value when none in small
|
|
55
|
-
double keyValue(int iSet) const;
|
|
56
|
-
/**
|
|
57
|
-
mode=0 - Set up before "updateTranspose" and "transposeTimes" for duals using extended
|
|
58
|
-
updates array (and may use other if dual values pass)
|
|
59
|
-
mode=1 - Update dual solution after "transposeTimes" using extended rows.
|
|
60
|
-
mode=2 - Compute all djs and compute key dual infeasibilities
|
|
61
|
-
mode=3 - Report on key dual infeasibilities
|
|
62
|
-
mode=4 - Modify before updateTranspose in partial pricing
|
|
63
|
-
*/
|
|
64
|
-
virtual void dualExpanded(ClpSimplex * model, CoinIndexedVector * array,
|
|
65
|
-
double * other, int mode);
|
|
66
|
-
/**
|
|
67
|
-
mode=0 - Create list of non-key basics in pivotVariable_ using
|
|
68
|
-
number as numberBasic in and out
|
|
69
|
-
mode=1 - Set all key variables as basic
|
|
70
|
-
mode=2 - return number extra rows needed, number gives maximum number basic
|
|
71
|
-
mode=3 - before replaceColumn
|
|
72
|
-
mode=4 - return 1 if can do primal, 2 if dual, 3 if both
|
|
73
|
-
mode=5 - save any status stuff (when in good state)
|
|
74
|
-
mode=6 - restore status stuff
|
|
75
|
-
mode=7 - flag given variable (normally sequenceIn)
|
|
76
|
-
mode=8 - unflag all variables
|
|
77
|
-
mode=9 - synchronize costs
|
|
78
|
-
mode=10 - return 1 if there may be changing bounds on variable (column generation)
|
|
79
|
-
mode=11 - make sure set is clean (used when a variable rejected - but not flagged)
|
|
80
|
-
mode=12 - after factorize but before permute stuff
|
|
81
|
-
mode=13 - at end of simplex to delete stuff
|
|
82
|
-
*/
|
|
83
|
-
virtual int generalExpanded(ClpSimplex * model, int mode, int & number);
|
|
84
|
-
/** Purely for column generation and similar ideas. Allows
|
|
85
|
-
matrix and any bounds or costs to be updated (sensibly).
|
|
86
|
-
Returns non-zero if any changes.
|
|
87
|
-
*/
|
|
88
|
-
virtual int refresh(ClpSimplex * model);
|
|
89
|
-
/** Creates a variable. This is called after partial pricing and will modify matrix.
|
|
90
|
-
Will update bestSequence.
|
|
91
|
-
*/
|
|
92
|
-
virtual void createVariable(ClpSimplex * model, int & bestSequence);
|
|
93
|
-
/// Returns reduced cost of a variable
|
|
94
|
-
virtual double reducedCost( ClpSimplex * model, int sequence) const;
|
|
95
|
-
/// Does gub crash
|
|
96
|
-
void gubCrash();
|
|
97
|
-
/// Writes out model (without names)
|
|
98
|
-
void writeMps(const char * name);
|
|
99
|
-
/// Populates initial matrix from dynamic status
|
|
100
|
-
void initialProblem();
|
|
101
|
-
/** Adds in a column to gub structure (called from descendant) and returns sequence */
|
|
102
|
-
int addColumn(int numberEntries, const int * row, const double * element,
|
|
103
|
-
double cost, double lower, double upper, int iSet,
|
|
104
|
-
DynamicStatus status);
|
|
105
|
-
/** If addColumn forces compression then this allows descendant to know what to do.
|
|
106
|
-
If >=0 then entry stayed in, if -1 then entry went out to lower bound.of zero.
|
|
107
|
-
Entries at upper bound (really nonzero) never go out (at present).
|
|
108
|
-
*/
|
|
109
|
-
virtual void packDown(const int * , int ) {}
|
|
110
|
-
/// Gets lower bound (to simplify coding)
|
|
111
|
-
inline double columnLower(int sequence) const {
|
|
112
|
-
if (columnLower_) return columnLower_[sequence];
|
|
113
|
-
else return 0.0;
|
|
114
|
-
}
|
|
115
|
-
/// Gets upper bound (to simplify coding)
|
|
116
|
-
inline double columnUpper(int sequence) const {
|
|
117
|
-
if (columnUpper_) return columnUpper_[sequence];
|
|
118
|
-
else return COIN_DBL_MAX;
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
//@}
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
/**@name Constructors, destructor */
|
|
126
|
-
//@{
|
|
127
|
-
/** Default constructor. */
|
|
128
|
-
ClpDynamicMatrix();
|
|
129
|
-
/** This is the real constructor.
|
|
130
|
-
It assumes factorization frequency will not be changed.
|
|
131
|
-
This resizes model !!!!
|
|
132
|
-
The contents of original matrix in model will be taken over and original matrix
|
|
133
|
-
will be sanitized so can be deleted (to avoid a very small memory leak)
|
|
134
|
-
*/
|
|
135
|
-
ClpDynamicMatrix(ClpSimplex * model, int numberSets,
|
|
136
|
-
int numberColumns, const int * starts,
|
|
137
|
-
const double * lower, const double * upper,
|
|
138
|
-
const CoinBigIndex * startColumn, const int * row,
|
|
139
|
-
const double * element, const double * cost,
|
|
140
|
-
const double * columnLower = NULL, const double * columnUpper = NULL,
|
|
141
|
-
const unsigned char * status = NULL,
|
|
142
|
-
const unsigned char * dynamicStatus = NULL);
|
|
143
|
-
|
|
144
|
-
/** Destructor */
|
|
145
|
-
virtual ~ClpDynamicMatrix();
|
|
146
|
-
//@}
|
|
147
|
-
|
|
148
|
-
/**@name Copy method */
|
|
149
|
-
//@{
|
|
150
|
-
/** The copy constructor. */
|
|
151
|
-
ClpDynamicMatrix(const ClpDynamicMatrix&);
|
|
152
|
-
/** The copy constructor from an CoinPackedMatrix. */
|
|
153
|
-
ClpDynamicMatrix(const CoinPackedMatrix&);
|
|
154
|
-
|
|
155
|
-
ClpDynamicMatrix& operator=(const ClpDynamicMatrix&);
|
|
156
|
-
/// Clone
|
|
157
|
-
virtual ClpMatrixBase * clone() const ;
|
|
158
|
-
//@}
|
|
159
|
-
/**@name gets and sets */
|
|
160
|
-
//@{
|
|
161
|
-
/// Status of row slacks
|
|
162
|
-
inline ClpSimplex::Status getStatus(int sequence) const {
|
|
163
|
-
return static_cast<ClpSimplex::Status> (status_[sequence] & 7);
|
|
164
|
-
}
|
|
165
|
-
inline void setStatus(int sequence, ClpSimplex::Status status) {
|
|
166
|
-
unsigned char & st_byte = status_[sequence];
|
|
167
|
-
st_byte = static_cast<unsigned char>(st_byte & ~7);
|
|
168
|
-
st_byte = static_cast<unsigned char>(st_byte | status);
|
|
169
|
-
}
|
|
170
|
-
/// Whether flagged slack
|
|
171
|
-
inline bool flaggedSlack(int i) const {
|
|
172
|
-
return (status_[i] & 8) != 0;
|
|
173
|
-
}
|
|
174
|
-
inline void setFlaggedSlack(int i) {
|
|
175
|
-
status_[i] = static_cast<unsigned char>(status_[i] | 8);
|
|
176
|
-
}
|
|
177
|
-
inline void unsetFlaggedSlack(int i) {
|
|
178
|
-
status_[i] = static_cast<unsigned char>(status_[i] & ~8);
|
|
179
|
-
}
|
|
180
|
-
/// Number of sets (dynamic rows)
|
|
181
|
-
inline int numberSets() const {
|
|
182
|
-
return numberSets_;
|
|
183
|
-
}
|
|
184
|
-
/// Number of possible gub variables
|
|
185
|
-
inline int numberGubEntries() const
|
|
186
|
-
{ return startSet_[numberSets_];}
|
|
187
|
-
/// Sets
|
|
188
|
-
inline int * startSets() const
|
|
189
|
-
{ return startSet_;}
|
|
190
|
-
/// Whether flagged
|
|
191
|
-
inline bool flagged(int i) const {
|
|
192
|
-
return (dynamicStatus_[i] & 8) != 0;
|
|
193
|
-
}
|
|
194
|
-
inline void setFlagged(int i) {
|
|
195
|
-
dynamicStatus_[i] = static_cast<unsigned char>(dynamicStatus_[i] | 8);
|
|
196
|
-
}
|
|
197
|
-
inline void unsetFlagged(int i) {
|
|
198
|
-
dynamicStatus_[i] = static_cast<unsigned char>(dynamicStatus_[i] & ~8);
|
|
199
|
-
}
|
|
200
|
-
inline void setDynamicStatus(int sequence, DynamicStatus status) {
|
|
201
|
-
unsigned char & st_byte = dynamicStatus_[sequence];
|
|
202
|
-
st_byte = static_cast<unsigned char>(st_byte & ~7);
|
|
203
|
-
st_byte = static_cast<unsigned char>(st_byte | status);
|
|
204
|
-
}
|
|
205
|
-
inline DynamicStatus getDynamicStatus(int sequence) const {
|
|
206
|
-
return static_cast<DynamicStatus> (dynamicStatus_[sequence] & 7);
|
|
207
|
-
}
|
|
208
|
-
/// Saved value of objective offset
|
|
209
|
-
inline double objectiveOffset() const {
|
|
210
|
-
return objectiveOffset_;
|
|
211
|
-
}
|
|
212
|
-
/// Starts of each column
|
|
213
|
-
inline CoinBigIndex * startColumn() const {
|
|
214
|
-
return startColumn_;
|
|
215
|
-
}
|
|
216
|
-
/// rows
|
|
217
|
-
inline int * row() const {
|
|
218
|
-
return row_;
|
|
219
|
-
}
|
|
220
|
-
/// elements
|
|
221
|
-
inline double * element() const {
|
|
222
|
-
return element_;
|
|
223
|
-
}
|
|
224
|
-
/// costs
|
|
225
|
-
inline double * cost() const {
|
|
226
|
-
return cost_;
|
|
227
|
-
}
|
|
228
|
-
/// ids of active columns (just index here)
|
|
229
|
-
inline int * id() const {
|
|
230
|
-
return id_;
|
|
231
|
-
}
|
|
232
|
-
/// Optional lower bounds on columns
|
|
233
|
-
inline double * columnLower() const {
|
|
234
|
-
return columnLower_;
|
|
235
|
-
}
|
|
236
|
-
/// Optional upper bounds on columns
|
|
237
|
-
inline double * columnUpper() const {
|
|
238
|
-
return columnUpper_;
|
|
239
|
-
}
|
|
240
|
-
/// Lower bounds on sets
|
|
241
|
-
inline double * lowerSet() const {
|
|
242
|
-
return lowerSet_;
|
|
243
|
-
}
|
|
244
|
-
/// Upper bounds on sets
|
|
245
|
-
inline double * upperSet() const {
|
|
246
|
-
return upperSet_;
|
|
247
|
-
}
|
|
248
|
-
/// size
|
|
249
|
-
inline int numberGubColumns() const {
|
|
250
|
-
return numberGubColumns_;
|
|
251
|
-
}
|
|
252
|
-
/// first free
|
|
253
|
-
inline int firstAvailable() const {
|
|
254
|
-
return firstAvailable_;
|
|
255
|
-
}
|
|
256
|
-
/// first dynamic
|
|
257
|
-
inline int firstDynamic() const {
|
|
258
|
-
return firstDynamic_;
|
|
259
|
-
}
|
|
260
|
-
/// number of columns in dynamic model
|
|
261
|
-
inline int lastDynamic() const {
|
|
262
|
-
return lastDynamic_;
|
|
263
|
-
}
|
|
264
|
-
/// number of rows in original model
|
|
265
|
-
inline int numberStaticRows() const {
|
|
266
|
-
return numberStaticRows_;
|
|
267
|
-
}
|
|
268
|
-
/// size of working matrix (max)
|
|
269
|
-
inline int numberElements() const {
|
|
270
|
-
return numberElements_;
|
|
271
|
-
}
|
|
272
|
-
inline int * keyVariable() const {
|
|
273
|
-
return keyVariable_;
|
|
274
|
-
}
|
|
275
|
-
/// Switches off dj checking each factorization (for BIG models)
|
|
276
|
-
void switchOffCheck();
|
|
277
|
-
/// Status region for gub slacks
|
|
278
|
-
inline unsigned char * gubRowStatus() const {
|
|
279
|
-
return status_;
|
|
280
|
-
}
|
|
281
|
-
/// Status region for gub variables
|
|
282
|
-
inline unsigned char * dynamicStatus() const {
|
|
283
|
-
return dynamicStatus_;
|
|
284
|
-
}
|
|
285
|
-
/// Returns which set a variable is in
|
|
286
|
-
int whichSet (int sequence) const;
|
|
287
|
-
//@}
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
protected:
|
|
291
|
-
/**@name Data members
|
|
292
|
-
The data members are protected to allow access for derived classes. */
|
|
293
|
-
//@{
|
|
294
|
-
/// Sum of dual infeasibilities
|
|
295
|
-
double sumDualInfeasibilities_;
|
|
296
|
-
/// Sum of primal infeasibilities
|
|
297
|
-
double sumPrimalInfeasibilities_;
|
|
298
|
-
/// Sum of Dual infeasibilities using tolerance based on error in duals
|
|
299
|
-
double sumOfRelaxedDualInfeasibilities_;
|
|
300
|
-
/// Sum of Primal infeasibilities using tolerance based on error in primals
|
|
301
|
-
double sumOfRelaxedPrimalInfeasibilities_;
|
|
302
|
-
/// Saved best dual on gub row in pricing
|
|
303
|
-
double savedBestGubDual_;
|
|
304
|
-
/// Saved best set in pricing
|
|
305
|
-
int savedBestSet_;
|
|
306
|
-
/// Backward pointer to pivot row !!!
|
|
307
|
-
int * backToPivotRow_;
|
|
308
|
-
/// Key variable of set (only accurate if none in small problem)
|
|
309
|
-
mutable int * keyVariable_;
|
|
310
|
-
/// Backward pointer to extra row
|
|
311
|
-
int * toIndex_;
|
|
312
|
-
// Reverse pointer from index to set
|
|
313
|
-
int * fromIndex_;
|
|
314
|
-
/// Number of sets (dynamic rows)
|
|
315
|
-
int numberSets_;
|
|
316
|
-
/// Number of active sets
|
|
317
|
-
int numberActiveSets_;
|
|
318
|
-
/// Saved value of objective offset
|
|
319
|
-
double objectiveOffset_;
|
|
320
|
-
/// Lower bounds on sets
|
|
321
|
-
double * lowerSet_;
|
|
322
|
-
/// Upper bounds on sets
|
|
323
|
-
double * upperSet_;
|
|
324
|
-
/// Status of slack on set
|
|
325
|
-
unsigned char * status_;
|
|
326
|
-
/// Pointer back to model
|
|
327
|
-
ClpSimplex * model_;
|
|
328
|
-
/// first free
|
|
329
|
-
int firstAvailable_;
|
|
330
|
-
/// first free when iteration started
|
|
331
|
-
int firstAvailableBefore_;
|
|
332
|
-
/// first dynamic
|
|
333
|
-
int firstDynamic_;
|
|
334
|
-
/// number of columns in dynamic model
|
|
335
|
-
int lastDynamic_;
|
|
336
|
-
/// number of rows in original model
|
|
337
|
-
int numberStaticRows_;
|
|
338
|
-
/// size of working matrix (max)
|
|
339
|
-
int numberElements_;
|
|
340
|
-
/// Number of dual infeasibilities
|
|
341
|
-
int numberDualInfeasibilities_;
|
|
342
|
-
/// Number of primal infeasibilities
|
|
343
|
-
int numberPrimalInfeasibilities_;
|
|
344
|
-
/** If pricing will declare victory (i.e. no check every factorization).
|
|
345
|
-
-1 - always check
|
|
346
|
-
0 - don't check
|
|
347
|
-
1 - in don't check mode but looks optimal
|
|
348
|
-
*/
|
|
349
|
-
int noCheck_;
|
|
350
|
-
/// Infeasibility weight when last full pass done
|
|
351
|
-
double infeasibilityWeight_;
|
|
352
|
-
/// size
|
|
353
|
-
int numberGubColumns_;
|
|
354
|
-
/// current maximum number of columns (then compress)
|
|
355
|
-
int maximumGubColumns_;
|
|
356
|
-
/// current maximum number of elemnts (then compress)
|
|
357
|
-
int maximumElements_;
|
|
358
|
-
/// Start of each set
|
|
359
|
-
int * startSet_;
|
|
360
|
-
/// next in chain
|
|
361
|
-
int * next_;
|
|
362
|
-
/// Starts of each column
|
|
363
|
-
CoinBigIndex * startColumn_;
|
|
364
|
-
/// rows
|
|
365
|
-
int * row_;
|
|
366
|
-
/// elements
|
|
367
|
-
double * element_;
|
|
368
|
-
/// costs
|
|
369
|
-
double * cost_;
|
|
370
|
-
/// ids of active columns (just index here)
|
|
371
|
-
int * id_;
|
|
372
|
-
/// for status and which bound
|
|
373
|
-
unsigned char * dynamicStatus_;
|
|
374
|
-
/// Optional lower bounds on columns
|
|
375
|
-
double * columnLower_;
|
|
376
|
-
/// Optional upper bounds on columns
|
|
377
|
-
double * columnUpper_;
|
|
378
|
-
//@}
|
|
379
|
-
};
|
|
380
|
-
|
|
381
|
-
#endif
|