ruby-cbc 0.1.9 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- 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,26 +0,0 @@
|
|
1
|
-
/* $Id: CoinPragma.hpp 1372 2011-01-03 23:31:00Z lou $ */
|
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 CoinPragma_H
|
7
|
-
#define CoinPragma_H
|
8
|
-
|
9
|
-
//-------------------------------------------------------------------
|
10
|
-
//
|
11
|
-
// This is a file which can contain Pragma's that are
|
12
|
-
// generally applicable to any source file.
|
13
|
-
//
|
14
|
-
//-------------------------------------------------------------------
|
15
|
-
|
16
|
-
#if defined(_MSC_VER)
|
17
|
-
// Turn off compiler warning about long names
|
18
|
-
# pragma warning(disable:4786)
|
19
|
-
// Turn off compiler warning:
|
20
|
-
// "empty controlled statement found; is this the intent?"
|
21
|
-
# pragma warning(disable:4390)
|
22
|
-
// Turn off compiler warning about deprecated functions
|
23
|
-
# pragma warning(disable:4996)
|
24
|
-
#endif
|
25
|
-
|
26
|
-
#endif
|
@@ -1,73 +0,0 @@
|
|
1
|
-
/* $Id: CoinPresolveDoubleton.hpp 1498 2011-11-02 15:25:35Z mjs $ */
|
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 CoinPresolveDoubleton_H
|
7
|
-
#define CoinPresolveDoubleton_H
|
8
|
-
|
9
|
-
#define DOUBLETON 5
|
10
|
-
|
11
|
-
/*! \class doubleton_action
|
12
|
-
\brief Solve ax+by=c for y and substitute y out of the problem.
|
13
|
-
|
14
|
-
This moves the bounds information for y onto x, making y free and allowing
|
15
|
-
us to substitute it away.
|
16
|
-
\verbatim
|
17
|
-
a x + b y = c
|
18
|
-
l1 <= x <= u1
|
19
|
-
l2 <= y <= u2 ==>
|
20
|
-
|
21
|
-
l2 <= (c - a x) / b <= u2
|
22
|
-
b/-a > 0 ==> (b l2 - c) / -a <= x <= (b u2 - c) / -a
|
23
|
-
b/-a < 0 ==> (b u2 - c) / -a <= x <= (b l2 - c) / -a
|
24
|
-
\endverbatim
|
25
|
-
*/
|
26
|
-
class doubleton_action : public CoinPresolveAction {
|
27
|
-
public:
|
28
|
-
struct action {
|
29
|
-
|
30
|
-
double clox;
|
31
|
-
double cupx;
|
32
|
-
double costx;
|
33
|
-
|
34
|
-
double costy;
|
35
|
-
|
36
|
-
double rlo;
|
37
|
-
|
38
|
-
double coeffx;
|
39
|
-
double coeffy;
|
40
|
-
|
41
|
-
double *colel;
|
42
|
-
|
43
|
-
int icolx;
|
44
|
-
int icoly;
|
45
|
-
int row;
|
46
|
-
int ncolx;
|
47
|
-
int ncoly;
|
48
|
-
};
|
49
|
-
|
50
|
-
const int nactions_;
|
51
|
-
const action *const actions_;
|
52
|
-
|
53
|
-
private:
|
54
|
-
doubleton_action(int nactions,
|
55
|
-
const action *actions,
|
56
|
-
const CoinPresolveAction *next) :
|
57
|
-
CoinPresolveAction(next),
|
58
|
-
nactions_(nactions), actions_(actions)
|
59
|
-
{}
|
60
|
-
|
61
|
-
public:
|
62
|
-
const char *name() const { return ("doubleton_action"); }
|
63
|
-
|
64
|
-
static const CoinPresolveAction *presolve(CoinPresolveMatrix *,
|
65
|
-
const CoinPresolveAction *next);
|
66
|
-
|
67
|
-
void postsolve(CoinPostsolveMatrix *prob) const;
|
68
|
-
|
69
|
-
virtual ~doubleton_action();
|
70
|
-
};
|
71
|
-
#endif
|
72
|
-
|
73
|
-
|
@@ -1,85 +0,0 @@
|
|
1
|
-
/* $Id: CoinPresolveDual.hpp 1510 2011-12-08 23:56:01Z lou $ */
|
2
|
-
|
3
|
-
// Copyright (C) 2002, International Business Machines
|
4
|
-
// Corporation and others. All Rights Reserved.
|
5
|
-
// This code is licensed under the terms of the Eclipse Public License (EPL).
|
6
|
-
|
7
|
-
#ifndef CoinPresolveDual_H
|
8
|
-
#define CoinPresolveDual_H
|
9
|
-
|
10
|
-
/*! \class remove_dual_action
|
11
|
-
\brief Attempt to fix variables by bounding reduced costs
|
12
|
-
|
13
|
-
The reduced cost of x_j is d_j = c_j - y*a_j (1). Assume minimization,
|
14
|
-
so that at optimality d_j >= 0 for x_j nonbasic at lower bound, and
|
15
|
-
d_j <= 0 for x_j nonbasic at upper bound.
|
16
|
-
|
17
|
-
For a slack variable s_i, c_(n+i) = 0 and a_(n+i) is a unit vector, hence
|
18
|
-
d_(n+i) = -y_i. If s_i has a finite lower bound and no upper bound, we
|
19
|
-
must have y_i <= 0 at optimality. Similarly, if s_i has no lower bound and a
|
20
|
-
finite upper bound, we must have y_i >= 0.
|
21
|
-
|
22
|
-
For a singleton variable x_j, d_j = c_j - y_i*a_ij. Given x_j with a
|
23
|
-
single finite bound, we can bound d_j greater or less than 0 at
|
24
|
-
optimality, and that allows us to calculate an upper or lower bound on y_i
|
25
|
-
(depending on the bound on d_j and the sign of a_ij).
|
26
|
-
|
27
|
-
Now we have bounds on some subset of the y_i, and we can use these to
|
28
|
-
calculate upper and lower bounds on the d_j, using bound propagation on
|
29
|
-
(1). If we can manage to bound some d_j as strictly positive or strictly
|
30
|
-
negative, then at optimality the corresponding variable must be nonbasic
|
31
|
-
at its lower or upper bound, respectively. If the required bound is lacking,
|
32
|
-
the problem is unbounded.
|
33
|
-
*/
|
34
|
-
|
35
|
-
class remove_dual_action : public CoinPresolveAction {
|
36
|
-
|
37
|
-
public:
|
38
|
-
|
39
|
-
/// Destructor
|
40
|
-
~remove_dual_action () ;
|
41
|
-
|
42
|
-
/// Name
|
43
|
-
inline const char *name () const { return ("remove_dual_action") ; }
|
44
|
-
|
45
|
-
/*! \brief Attempt to fix variables by bounding reduced costs
|
46
|
-
|
47
|
-
Always scans all variables. Propagates bounds on reduced costs until there's
|
48
|
-
no change or until some set of variables can be fixed.
|
49
|
-
*/
|
50
|
-
static const CoinPresolveAction *presolve(CoinPresolveMatrix *prob,
|
51
|
-
const CoinPresolveAction *next) ;
|
52
|
-
|
53
|
-
/*! \brief Postsolve
|
54
|
-
|
55
|
-
In addition to fixing variables (handled by make_fixed_action), we may
|
56
|
-
need use our own postsolve to restore constraint bounds.
|
57
|
-
*/
|
58
|
-
void postsolve (CoinPostsolveMatrix *prob) const ;
|
59
|
-
|
60
|
-
private:
|
61
|
-
|
62
|
-
/// Postsolve (bound restore) instruction
|
63
|
-
struct action {
|
64
|
-
double rlo_ ; ///< restored row lower bound
|
65
|
-
double rup_ ; ///< restored row upper bound
|
66
|
-
int ndx_ ; ///< row index
|
67
|
-
} ;
|
68
|
-
|
69
|
-
/// Constructor with postsolve actions.
|
70
|
-
remove_dual_action(int nactions, const action *actions,
|
71
|
-
const CoinPresolveAction *next)
|
72
|
-
: CoinPresolveAction(next),
|
73
|
-
nactions_(nactions),
|
74
|
-
actions_(actions)
|
75
|
-
{}
|
76
|
-
|
77
|
-
/// Count of bound restore entries
|
78
|
-
const int nactions_ ;
|
79
|
-
/// Bound restore entries
|
80
|
-
const action *actions_ ;
|
81
|
-
|
82
|
-
} ;
|
83
|
-
#endif
|
84
|
-
|
85
|
-
|
@@ -1,226 +0,0 @@
|
|
1
|
-
/* $Id: CoinPresolveDupcol.hpp 1817 2015-03-22 16:43:28Z forrest $ */
|
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 CoinPresolveDupcol_H
|
7
|
-
#define CoinPresolveDupcol_H
|
8
|
-
|
9
|
-
#include "CoinPresolveMatrix.hpp"
|
10
|
-
|
11
|
-
/*!
|
12
|
-
\file
|
13
|
-
*/
|
14
|
-
|
15
|
-
#define DUPCOL 10
|
16
|
-
|
17
|
-
/*! \class dupcol_action
|
18
|
-
\brief Detect and remove duplicate columns
|
19
|
-
|
20
|
-
The general technique is to sum the coefficients a_(*,j) of each column.
|
21
|
-
Columns with identical sums are duplicates. The obvious problem is that,
|
22
|
-
<i>e.g.</i>, [1 0 1 0] and [0 1 0 1] both add to 2. To minimize the
|
23
|
-
chances of false positives, the coefficients of each row are multipled by
|
24
|
-
a random number r_i, so that we sum r_i*a_ij.
|
25
|
-
|
26
|
-
Candidate columns are checked to confirm they are identical. Where the
|
27
|
-
columns have the same objective coefficient, the two are combined. If the
|
28
|
-
columns have different objective coefficients, complications ensue. In order
|
29
|
-
to remove the duplicate, it must be possible to fix the variable at a bound.
|
30
|
-
*/
|
31
|
-
|
32
|
-
class dupcol_action : public CoinPresolveAction {
|
33
|
-
dupcol_action();
|
34
|
-
dupcol_action(const dupcol_action& rhs);
|
35
|
-
dupcol_action& operator=(const dupcol_action& rhs);
|
36
|
-
|
37
|
-
struct action {
|
38
|
-
double thislo;
|
39
|
-
double thisup;
|
40
|
-
double lastlo;
|
41
|
-
double lastup;
|
42
|
-
int ithis;
|
43
|
-
int ilast;
|
44
|
-
|
45
|
-
double *colels;
|
46
|
-
int nincol;
|
47
|
-
};
|
48
|
-
|
49
|
-
const int nactions_;
|
50
|
-
// actions_ is owned by the class and must be deleted at destruction
|
51
|
-
const action *const actions_;
|
52
|
-
|
53
|
-
dupcol_action(int nactions, const action *actions,
|
54
|
-
const CoinPresolveAction *next) :
|
55
|
-
CoinPresolveAction(next),
|
56
|
-
nactions_(nactions),
|
57
|
-
actions_(actions) {}
|
58
|
-
|
59
|
-
public:
|
60
|
-
const char *name() const;
|
61
|
-
|
62
|
-
static const CoinPresolveAction *presolve(CoinPresolveMatrix *prob,
|
63
|
-
const CoinPresolveAction *next);
|
64
|
-
|
65
|
-
void postsolve(CoinPostsolveMatrix *prob) const;
|
66
|
-
|
67
|
-
virtual ~dupcol_action();
|
68
|
-
|
69
|
-
};
|
70
|
-
|
71
|
-
|
72
|
-
/*! \class duprow_action
|
73
|
-
\brief Detect and remove duplicate rows
|
74
|
-
|
75
|
-
The algorithm to detect duplicate rows is as outlined for dupcol_action.
|
76
|
-
|
77
|
-
If the feasible interval for one constraint is strictly contained in the
|
78
|
-
other, the tighter (contained) constraint is kept. If the feasible
|
79
|
-
intervals are disjoint, the problem is infeasible. If the feasible
|
80
|
-
intervals overlap, both constraints are kept.
|
81
|
-
|
82
|
-
duprow_action is definitely a work in progress; #postsolve is
|
83
|
-
unimplemented.
|
84
|
-
This doesn't matter as it uses useless_constraint.
|
85
|
-
*/
|
86
|
-
|
87
|
-
class duprow_action : public CoinPresolveAction {
|
88
|
-
struct action {
|
89
|
-
int row;
|
90
|
-
double lbound;
|
91
|
-
double ubound;
|
92
|
-
};
|
93
|
-
|
94
|
-
const int nactions_;
|
95
|
-
const action *const actions_;
|
96
|
-
|
97
|
-
duprow_action():CoinPresolveAction(NULL),nactions_(0),actions_(NULL) {}
|
98
|
-
duprow_action(int nactions,
|
99
|
-
const action *actions,
|
100
|
-
const CoinPresolveAction *next) :
|
101
|
-
CoinPresolveAction(next),
|
102
|
-
nactions_(nactions), actions_(actions) {}
|
103
|
-
|
104
|
-
public:
|
105
|
-
const char *name() const;
|
106
|
-
|
107
|
-
static const CoinPresolveAction *presolve(CoinPresolveMatrix *prob,
|
108
|
-
const CoinPresolveAction *next);
|
109
|
-
|
110
|
-
void postsolve(CoinPostsolveMatrix *prob) const;
|
111
|
-
|
112
|
-
//~duprow_action() { delete[]actions_; }
|
113
|
-
};
|
114
|
-
|
115
|
-
class duprow3_action : public CoinPresolveAction {
|
116
|
-
struct action {
|
117
|
-
int row;
|
118
|
-
double lbound;
|
119
|
-
double ubound;
|
120
|
-
};
|
121
|
-
|
122
|
-
const int nactions_;
|
123
|
-
const action *const actions_;
|
124
|
-
|
125
|
-
duprow3_action():CoinPresolveAction(NULL),nactions_(0),actions_(NULL) {}
|
126
|
-
duprow3_action(int nactions,
|
127
|
-
const action *actions,
|
128
|
-
const CoinPresolveAction *next) :
|
129
|
-
CoinPresolveAction(next),
|
130
|
-
nactions_(nactions), actions_(actions) {}
|
131
|
-
|
132
|
-
public:
|
133
|
-
const char *name() const;
|
134
|
-
|
135
|
-
static const CoinPresolveAction *presolve(CoinPresolveMatrix *prob,
|
136
|
-
const CoinPresolveAction *next);
|
137
|
-
|
138
|
-
void postsolve(CoinPostsolveMatrix *prob) const;
|
139
|
-
|
140
|
-
//~duprow_action() { delete[]actions_; }
|
141
|
-
};
|
142
|
-
|
143
|
-
/*! \class gubrow_action
|
144
|
-
\brief Detect and remove entries whose sum is known
|
145
|
-
|
146
|
-
If we have an equality row where all entries same then
|
147
|
-
For other rows where all entries for that equality row are same
|
148
|
-
then we can delete entries and modify rhs
|
149
|
-
gubrow_action is definitely a work in progress; #postsolve is
|
150
|
-
unimplemented.
|
151
|
-
*/
|
152
|
-
|
153
|
-
class gubrow_action : public CoinPresolveAction {
|
154
|
-
struct action {
|
155
|
-
int row;
|
156
|
-
double lbound;
|
157
|
-
double ubound;
|
158
|
-
};
|
159
|
-
|
160
|
-
const int nactions_;
|
161
|
-
const action *const actions_;
|
162
|
-
|
163
|
-
gubrow_action():CoinPresolveAction(NULL),nactions_(0),actions_(NULL) {}
|
164
|
-
gubrow_action(int nactions,
|
165
|
-
const action *actions,
|
166
|
-
const CoinPresolveAction *next) :
|
167
|
-
CoinPresolveAction(next),
|
168
|
-
nactions_(nactions), actions_(actions) {}
|
169
|
-
|
170
|
-
public:
|
171
|
-
const char *name() const;
|
172
|
-
|
173
|
-
static const CoinPresolveAction *presolve(CoinPresolveMatrix *prob,
|
174
|
-
const CoinPresolveAction *next);
|
175
|
-
|
176
|
-
void postsolve(CoinPostsolveMatrix *prob) const;
|
177
|
-
|
178
|
-
//~gubrow_action() { delete[]actions_; }
|
179
|
-
};
|
180
|
-
|
181
|
-
/*! \class twoxtwo_action
|
182
|
-
\brief Detect interesting 2 by 2 blocks
|
183
|
-
|
184
|
-
If a variable has two entries and for each row there are only
|
185
|
-
two entries with same other variable then we can get rid of
|
186
|
-
one constraint and modify costs.
|
187
|
-
|
188
|
-
This is a work in progress - I need more examples
|
189
|
-
*/
|
190
|
-
|
191
|
-
class twoxtwo_action : public CoinPresolveAction {
|
192
|
-
struct action {
|
193
|
-
double lbound_row;
|
194
|
-
double ubound_row;
|
195
|
-
double lbound_col;
|
196
|
-
double ubound_col;
|
197
|
-
double cost_col;
|
198
|
-
double cost_othercol;
|
199
|
-
int row;
|
200
|
-
int col;
|
201
|
-
int othercol;
|
202
|
-
};
|
203
|
-
|
204
|
-
const int nactions_;
|
205
|
-
const action *const actions_;
|
206
|
-
|
207
|
-
twoxtwo_action():CoinPresolveAction(NULL),nactions_(0),actions_(NULL) {}
|
208
|
-
twoxtwo_action(int nactions,
|
209
|
-
const action *actions,
|
210
|
-
const CoinPresolveAction *next) :
|
211
|
-
CoinPresolveAction(next),
|
212
|
-
nactions_(nactions), actions_(actions) {}
|
213
|
-
|
214
|
-
public:
|
215
|
-
const char *name() const;
|
216
|
-
|
217
|
-
static const CoinPresolveAction *presolve(CoinPresolveMatrix *prob,
|
218
|
-
const CoinPresolveAction *next);
|
219
|
-
|
220
|
-
void postsolve(CoinPostsolveMatrix *prob) const;
|
221
|
-
|
222
|
-
~twoxtwo_action() { delete [] actions_; }
|
223
|
-
};
|
224
|
-
|
225
|
-
#endif
|
226
|
-
|
@@ -1,116 +0,0 @@
|
|
1
|
-
/* $Id: CoinPresolveEmpty.hpp 1561 2012-11-24 00:32:16Z 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 CoinPresolveEmpty_H
|
7
|
-
#define CoinPresolveEmpty_H
|
8
|
-
|
9
|
-
/*! \file
|
10
|
-
|
11
|
-
Drop/reinsert empty rows/columns.
|
12
|
-
*/
|
13
|
-
|
14
|
-
const int DROP_ROW = 3;
|
15
|
-
const int DROP_COL = 4;
|
16
|
-
|
17
|
-
/*! \class drop_empty_cols_action
|
18
|
-
\brief Physically removes empty columns in presolve, and reinserts
|
19
|
-
empty columns in postsolve.
|
20
|
-
|
21
|
-
Physical removal of rows and columns should be the last activities
|
22
|
-
performed during presolve. Do them exactly once. The row-major matrix
|
23
|
-
is <b>not</b> maintained by this transform.
|
24
|
-
|
25
|
-
To physically drop the columns, CoinPrePostsolveMatrix::mcstrt_ and
|
26
|
-
CoinPrePostsolveMatrix::hincol_ are compressed, along with column bounds,
|
27
|
-
objective, and (if present) the column portions of the solution. This
|
28
|
-
renumbers the columns. drop_empty_cols_action::presolve will reconstruct
|
29
|
-
CoinPresolveMatrix::clink_.
|
30
|
-
|
31
|
-
\todo Confirm correct behaviour with solution in presolve.
|
32
|
-
*/
|
33
|
-
|
34
|
-
class drop_empty_cols_action : public CoinPresolveAction {
|
35
|
-
private:
|
36
|
-
const int nactions_;
|
37
|
-
|
38
|
-
struct action {
|
39
|
-
double clo;
|
40
|
-
double cup;
|
41
|
-
double cost;
|
42
|
-
double sol;
|
43
|
-
int jcol;
|
44
|
-
};
|
45
|
-
const action *const actions_;
|
46
|
-
|
47
|
-
drop_empty_cols_action(int nactions,
|
48
|
-
const action *const actions,
|
49
|
-
const CoinPresolveAction *next) :
|
50
|
-
CoinPresolveAction(next),
|
51
|
-
nactions_(nactions),
|
52
|
-
actions_(actions)
|
53
|
-
{}
|
54
|
-
|
55
|
-
public:
|
56
|
-
const char *name() const { return ("drop_empty_cols_action"); }
|
57
|
-
|
58
|
-
static const CoinPresolveAction *presolve(CoinPresolveMatrix *,
|
59
|
-
const int *ecols,
|
60
|
-
int necols,
|
61
|
-
const CoinPresolveAction*);
|
62
|
-
|
63
|
-
static const CoinPresolveAction *presolve(CoinPresolveMatrix *prob,
|
64
|
-
const CoinPresolveAction *next);
|
65
|
-
|
66
|
-
void postsolve(CoinPostsolveMatrix *prob) const;
|
67
|
-
|
68
|
-
virtual ~drop_empty_cols_action() { deleteAction(actions_,action*); }
|
69
|
-
};
|
70
|
-
|
71
|
-
|
72
|
-
/*! \class drop_empty_rows_action
|
73
|
-
\brief Physically removes empty rows in presolve, and reinserts
|
74
|
-
empty rows in postsolve.
|
75
|
-
|
76
|
-
Physical removal of rows and columns should be the last activities
|
77
|
-
performed during presolve. Do them exactly once. The row-major matrix
|
78
|
-
is <b>not</b> maintained by this transform.
|
79
|
-
|
80
|
-
To physically drop the rows, the rows are renumbered, excluding empty
|
81
|
-
rows. This involves rewriting CoinPrePostsolveMatrix::hrow_ and compressing
|
82
|
-
the row bounds and (if present) the row portions of the solution.
|
83
|
-
|
84
|
-
\todo Confirm behaviour when a solution is present in presolve.
|
85
|
-
*/
|
86
|
-
class drop_empty_rows_action : public CoinPresolveAction {
|
87
|
-
private:
|
88
|
-
struct action {
|
89
|
-
double rlo;
|
90
|
-
double rup;
|
91
|
-
int row;
|
92
|
-
int fill_row; // which row was moved into position row to fill it
|
93
|
-
};
|
94
|
-
|
95
|
-
const int nactions_;
|
96
|
-
const action *const actions_;
|
97
|
-
|
98
|
-
drop_empty_rows_action(int nactions,
|
99
|
-
const action *actions,
|
100
|
-
const CoinPresolveAction *next) :
|
101
|
-
CoinPresolveAction(next),
|
102
|
-
nactions_(nactions), actions_(actions)
|
103
|
-
{}
|
104
|
-
|
105
|
-
public:
|
106
|
-
const char *name() const { return ("drop_empty_rows_action"); }
|
107
|
-
|
108
|
-
static const CoinPresolveAction *presolve(CoinPresolveMatrix *prob,
|
109
|
-
const CoinPresolveAction *next);
|
110
|
-
|
111
|
-
void postsolve(CoinPostsolveMatrix *prob) const;
|
112
|
-
|
113
|
-
virtual ~drop_empty_rows_action() { deleteAction(actions_,action*); }
|
114
|
-
};
|
115
|
-
#endif
|
116
|
-
|