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,176 +0,0 @@
|
|
|
1
|
-
/* $Id: CoinAlloc.hpp 1438 2011-06-09 18:14:12Z stefan $ */
|
|
2
|
-
// Copyright (C) 2007, 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 CoinAlloc_hpp
|
|
7
|
-
#define CoinAlloc_hpp
|
|
8
|
-
|
|
9
|
-
#include "CoinUtilsConfig.h"
|
|
10
|
-
#include <cstdlib>
|
|
11
|
-
|
|
12
|
-
#if !defined(COINUTILS_MEMPOOL_MAXPOOLED)
|
|
13
|
-
# define COINUTILS_MEMPOOL_MAXPOOLED -1
|
|
14
|
-
#endif
|
|
15
|
-
|
|
16
|
-
#if (COINUTILS_MEMPOOL_MAXPOOLED >= 0)
|
|
17
|
-
|
|
18
|
-
#ifndef COINUTILS_MEMPOOL_ALIGNMENT
|
|
19
|
-
#define COINUTILS_MEMPOOL_ALIGNMENT 16
|
|
20
|
-
#endif
|
|
21
|
-
|
|
22
|
-
/* Note:
|
|
23
|
-
This memory pool implementation assumes that sizeof(size_t) and
|
|
24
|
-
sizeof(void*) are both <= COINUTILS_MEMPOOL_ALIGNMENT.
|
|
25
|
-
Choosing an alignment of 4 will cause segfault on 64-bit platforms and may
|
|
26
|
-
lead to bad performance on 32-bit platforms. So 8 is a mnimum recommended
|
|
27
|
-
alignment. Probably 16 does not waste too much space either and may be even
|
|
28
|
-
better for performance. One must play with it.
|
|
29
|
-
*/
|
|
30
|
-
|
|
31
|
-
//#############################################################################
|
|
32
|
-
|
|
33
|
-
#if (COINUTILS_MEMPOOL_ALIGNMENT == 16)
|
|
34
|
-
static const std::size_t CoinAllocPtrShift = 4;
|
|
35
|
-
static const std::size_t CoinAllocRoundMask = ~((std::size_t)15);
|
|
36
|
-
#elif (COINUTILS_MEMPOOL_ALIGNMENT == 8)
|
|
37
|
-
static const std::size_t CoinAllocPtrShift = 3;
|
|
38
|
-
static const std::size_t CoinAllocRoundMask = ~((std::size_t)7);
|
|
39
|
-
#else
|
|
40
|
-
#error "COINUTILS_MEMPOOL_ALIGNMENT must be defined as 8 or 16 (or this code needs to be changed :-)"
|
|
41
|
-
#endif
|
|
42
|
-
|
|
43
|
-
//#############################################################################
|
|
44
|
-
|
|
45
|
-
#ifndef COIN_MEMPOOL_SAVE_BLOCKHEADS
|
|
46
|
-
# define COIN_MEMPOOL_SAVE_BLOCKHEADS 0
|
|
47
|
-
#endif
|
|
48
|
-
|
|
49
|
-
//#############################################################################
|
|
50
|
-
|
|
51
|
-
class CoinMempool
|
|
52
|
-
{
|
|
53
|
-
private:
|
|
54
|
-
#if (COIN_MEMPOOL_SAVE_BLOCKHEADS == 1)
|
|
55
|
-
char** block_heads;
|
|
56
|
-
std::size_t block_num;
|
|
57
|
-
std::size_t max_block_num;
|
|
58
|
-
#endif
|
|
59
|
-
#if defined(COINUTILS_PTHREADS) && (COINUTILS_PTHREAD == 1)
|
|
60
|
-
pthread_mutex_t mutex_;
|
|
61
|
-
#endif
|
|
62
|
-
int last_block_size_;
|
|
63
|
-
char* first_free_;
|
|
64
|
-
const std::size_t entry_size_;
|
|
65
|
-
|
|
66
|
-
private:
|
|
67
|
-
CoinMempool(const CoinMempool&);
|
|
68
|
-
CoinMempool& operator=(const CoinMempool&);
|
|
69
|
-
|
|
70
|
-
private:
|
|
71
|
-
char* allocate_new_block();
|
|
72
|
-
inline void lock_mutex() {
|
|
73
|
-
#if defined(COINUTILS_PTHREADS) && (COINUTILS_PTHREAD == 1)
|
|
74
|
-
pthread_mutex_lock(&mutex_);
|
|
75
|
-
#endif
|
|
76
|
-
}
|
|
77
|
-
inline void unlock_mutex() {
|
|
78
|
-
#if defined(COINUTILS_PTHREADS) && (COINUTILS_PTHREAD == 1)
|
|
79
|
-
pthread_mutex_unlock(&mutex_);
|
|
80
|
-
#endif
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
public:
|
|
84
|
-
CoinMempool(std::size_t size = 0);
|
|
85
|
-
~CoinMempool();
|
|
86
|
-
|
|
87
|
-
char* alloc();
|
|
88
|
-
inline void dealloc(char *p)
|
|
89
|
-
{
|
|
90
|
-
char** pp = (char**)p;
|
|
91
|
-
lock_mutex();
|
|
92
|
-
*pp = first_free_;
|
|
93
|
-
first_free_ = p;
|
|
94
|
-
unlock_mutex();
|
|
95
|
-
}
|
|
96
|
-
};
|
|
97
|
-
|
|
98
|
-
//#############################################################################
|
|
99
|
-
|
|
100
|
-
/** A memory pool allocator.
|
|
101
|
-
|
|
102
|
-
If a request arrives for allocating \c n bytes then it is first
|
|
103
|
-
rounded up to the nearest multiple of \c sizeof(void*) (this is \c
|
|
104
|
-
n_roundup), then one more \c sizeof(void*) is added to this
|
|
105
|
-
number. If the result is no more than maxpooled_ then
|
|
106
|
-
the appropriate pool is used to get a chunk of memory, if not,
|
|
107
|
-
then malloc is used. In either case, the size of the allocated
|
|
108
|
-
chunk is written into the first \c sizeof(void*) bytes and a
|
|
109
|
-
pointer pointing afterwards is returned.
|
|
110
|
-
*/
|
|
111
|
-
|
|
112
|
-
class CoinAlloc
|
|
113
|
-
{
|
|
114
|
-
private:
|
|
115
|
-
CoinMempool* pool_;
|
|
116
|
-
int maxpooled_;
|
|
117
|
-
public:
|
|
118
|
-
CoinAlloc();
|
|
119
|
-
~CoinAlloc() {}
|
|
120
|
-
|
|
121
|
-
inline void* alloc(const std::size_t n)
|
|
122
|
-
{
|
|
123
|
-
if (maxpooled_ <= 0) {
|
|
124
|
-
return std::malloc(n);
|
|
125
|
-
}
|
|
126
|
-
char *p = NULL;
|
|
127
|
-
const std::size_t to_alloc =
|
|
128
|
-
((n+COINUTILS_MEMPOOL_ALIGNMENT-1) & CoinAllocRoundMask) +
|
|
129
|
-
COINUTILS_MEMPOOL_ALIGNMENT;
|
|
130
|
-
CoinMempool* pool = NULL;
|
|
131
|
-
if (maxpooled_ > 0 && to_alloc >= (size_t)maxpooled_) {
|
|
132
|
-
p = static_cast<char*>(std::malloc(to_alloc));
|
|
133
|
-
if (p == NULL) throw std::bad_alloc();
|
|
134
|
-
} else {
|
|
135
|
-
pool = pool_ + (to_alloc >> CoinAllocPtrShift);
|
|
136
|
-
p = pool->alloc();
|
|
137
|
-
}
|
|
138
|
-
*((CoinMempool**)p) = pool;
|
|
139
|
-
return static_cast<void*>(p+COINUTILS_MEMPOOL_ALIGNMENT);
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
inline void dealloc(void* p)
|
|
143
|
-
{
|
|
144
|
-
if (maxpooled_ <= 0) {
|
|
145
|
-
std::free(p);
|
|
146
|
-
return;
|
|
147
|
-
}
|
|
148
|
-
if (p) {
|
|
149
|
-
char* base = static_cast<char*>(p)-COINUTILS_MEMPOOL_ALIGNMENT;
|
|
150
|
-
CoinMempool* pool = *((CoinMempool**)base);
|
|
151
|
-
if (!pool) {
|
|
152
|
-
std::free(base);
|
|
153
|
-
} else {
|
|
154
|
-
pool->dealloc(base);
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
};
|
|
159
|
-
|
|
160
|
-
extern CoinAlloc CoinAllocator;
|
|
161
|
-
|
|
162
|
-
//#############################################################################
|
|
163
|
-
|
|
164
|
-
#if defined(COINUTILS_MEMPOOL_OVERRIDE_NEW) && (COINUTILS_MEMPOOL_OVERRIDE_NEW == 1)
|
|
165
|
-
void* operator new(std::size_t size) throw (std::bad_alloc);
|
|
166
|
-
void* operator new[](std::size_t) throw (std::bad_alloc);
|
|
167
|
-
void operator delete(void*) throw();
|
|
168
|
-
void operator delete[](void*) throw();
|
|
169
|
-
void* operator new(std::size_t, const std::nothrow_t&) throw();
|
|
170
|
-
void* operator new[](std::size_t, const std::nothrow_t&) throw();
|
|
171
|
-
void operator delete(void*, const std::nothrow_t&) throw();
|
|
172
|
-
void operator delete[](void*, const std::nothrow_t&) throw();
|
|
173
|
-
#endif
|
|
174
|
-
|
|
175
|
-
#endif /*(COINUTILS_MEMPOOL_MAXPOOLED >= 0)*/
|
|
176
|
-
#endif
|
|
@@ -1,149 +0,0 @@
|
|
|
1
|
-
/* $Id: CoinBuild.hpp 1416 2011-04-17 09:57:29Z 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 CoinBuild_H
|
|
7
|
-
#define CoinBuild_H
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
#include "CoinPragma.hpp"
|
|
11
|
-
#include "CoinTypes.hpp"
|
|
12
|
-
#include "CoinFinite.hpp"
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
In many cases it is natural to build a model by adding one row at a time. In Coin this
|
|
17
|
-
is inefficient so this class gives some help. An instance of CoinBuild can be built up
|
|
18
|
-
more efficiently and then added to the Clp/OsiModel in one go.
|
|
19
|
-
|
|
20
|
-
It may be more efficient to have fewer arrays and re-allocate them but this should
|
|
21
|
-
give a large gain over addRow.
|
|
22
|
-
|
|
23
|
-
I have now extended it to columns.
|
|
24
|
-
|
|
25
|
-
*/
|
|
26
|
-
|
|
27
|
-
class CoinBuild {
|
|
28
|
-
|
|
29
|
-
public:
|
|
30
|
-
/**@name Useful methods */
|
|
31
|
-
//@{
|
|
32
|
-
/// add a row
|
|
33
|
-
void addRow(int numberInRow, const int * columns,
|
|
34
|
-
const double * elements, double rowLower=-COIN_DBL_MAX,
|
|
35
|
-
double rowUpper=COIN_DBL_MAX);
|
|
36
|
-
/// add a column
|
|
37
|
-
void addColumn(int numberInColumn, const int * rows,
|
|
38
|
-
const double * elements,
|
|
39
|
-
double columnLower=0.0,
|
|
40
|
-
double columnUpper=COIN_DBL_MAX, double objectiveValue=0.0);
|
|
41
|
-
/// add a column
|
|
42
|
-
inline void addCol(int numberInColumn, const int * rows,
|
|
43
|
-
const double * elements,
|
|
44
|
-
double columnLower=0.0,
|
|
45
|
-
double columnUpper=COIN_DBL_MAX, double objectiveValue=0.0)
|
|
46
|
-
{ addColumn(numberInColumn, rows, elements, columnLower, columnUpper, objectiveValue);}
|
|
47
|
-
/// Return number of rows or maximum found so far
|
|
48
|
-
inline int numberRows() const
|
|
49
|
-
{ return (type_==0) ? numberItems_ : numberOther_;}
|
|
50
|
-
/// Return number of columns or maximum found so far
|
|
51
|
-
inline int numberColumns() const
|
|
52
|
-
{ return (type_==1) ? numberItems_ : numberOther_;}
|
|
53
|
-
/// Return number of elements
|
|
54
|
-
inline CoinBigIndex numberElements() const
|
|
55
|
-
{ return numberElements_;}
|
|
56
|
-
/** Returns number of elements in a row and information in row
|
|
57
|
-
*/
|
|
58
|
-
int row(int whichRow, double & rowLower, double & rowUpper,
|
|
59
|
-
const int * & indices, const double * & elements) const;
|
|
60
|
-
/** Returns number of elements in current row and information in row
|
|
61
|
-
Used as rows may be stored in a chain
|
|
62
|
-
*/
|
|
63
|
-
int currentRow(double & rowLower, double & rowUpper,
|
|
64
|
-
const int * & indices, const double * & elements) const;
|
|
65
|
-
/// Set current row
|
|
66
|
-
void setCurrentRow(int whichRow);
|
|
67
|
-
/// Returns current row number
|
|
68
|
-
int currentRow() const;
|
|
69
|
-
/** Returns number of elements in a column and information in column
|
|
70
|
-
*/
|
|
71
|
-
int column(int whichColumn,
|
|
72
|
-
double & columnLower, double & columnUpper,double & objectiveValue,
|
|
73
|
-
const int * & indices, const double * & elements) const;
|
|
74
|
-
/** Returns number of elements in current column and information in column
|
|
75
|
-
Used as columns may be stored in a chain
|
|
76
|
-
*/
|
|
77
|
-
int currentColumn( double & columnLower, double & columnUpper,double & objectiveValue,
|
|
78
|
-
const int * & indices, const double * & elements) const;
|
|
79
|
-
/// Set current column
|
|
80
|
-
void setCurrentColumn(int whichColumn);
|
|
81
|
-
/// Returns current column number
|
|
82
|
-
int currentColumn() const;
|
|
83
|
-
/// Returns type
|
|
84
|
-
inline int type() const
|
|
85
|
-
{ return type_;}
|
|
86
|
-
//@}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
/**@name Constructors, destructor */
|
|
90
|
-
//@{
|
|
91
|
-
/** Default constructor. */
|
|
92
|
-
CoinBuild();
|
|
93
|
-
/** Constructor with type 0==for addRow, 1== for addColumn. */
|
|
94
|
-
CoinBuild(int type);
|
|
95
|
-
/** Destructor */
|
|
96
|
-
~CoinBuild();
|
|
97
|
-
//@}
|
|
98
|
-
|
|
99
|
-
/**@name Copy method */
|
|
100
|
-
//@{
|
|
101
|
-
/** The copy constructor. */
|
|
102
|
-
CoinBuild(const CoinBuild&);
|
|
103
|
-
/// =
|
|
104
|
-
CoinBuild& operator=(const CoinBuild&);
|
|
105
|
-
//@}
|
|
106
|
-
private:
|
|
107
|
-
/// Set current
|
|
108
|
-
void setMutableCurrent(int which) const;
|
|
109
|
-
/// add a item
|
|
110
|
-
void addItem(int numberInItem, const int * indices,
|
|
111
|
-
const double * elements,
|
|
112
|
-
double itemLower,
|
|
113
|
-
double itemUpper, double objectiveValue);
|
|
114
|
-
/** Returns number of elements in a item and information in item
|
|
115
|
-
*/
|
|
116
|
-
int item(int whichItem,
|
|
117
|
-
double & itemLower, double & itemUpper,double & objectiveValue,
|
|
118
|
-
const int * & indices, const double * & elements) const;
|
|
119
|
-
/** Returns number of elements in current item and information in item
|
|
120
|
-
Used as items may be stored in a chain
|
|
121
|
-
*/
|
|
122
|
-
int currentItem( double & itemLower, double & itemUpper,double & objectiveValue,
|
|
123
|
-
const int * & indices, const double * & elements) const;
|
|
124
|
-
/// Set current item
|
|
125
|
-
void setCurrentItem(int whichItem);
|
|
126
|
-
/// Returns current item number
|
|
127
|
-
int currentItem() const;
|
|
128
|
-
|
|
129
|
-
private:
|
|
130
|
-
/**@name Data members */
|
|
131
|
-
//@{
|
|
132
|
-
/// Current number of items
|
|
133
|
-
int numberItems_;
|
|
134
|
-
/// Current number of other dimension i.e. Columns if addRow (i.e. max)
|
|
135
|
-
int numberOther_;
|
|
136
|
-
/// Current number of elements
|
|
137
|
-
CoinBigIndex numberElements_;
|
|
138
|
-
/// Current item pointer
|
|
139
|
-
mutable double * currentItem_;
|
|
140
|
-
/// First item pointer
|
|
141
|
-
double * firstItem_;
|
|
142
|
-
/// Last item pointer
|
|
143
|
-
double * lastItem_;
|
|
144
|
-
/// Type of build - 0 for row, 1 for column, -1 unset
|
|
145
|
-
int type_;
|
|
146
|
-
//@}
|
|
147
|
-
};
|
|
148
|
-
|
|
149
|
-
#endif
|
|
@@ -1,419 +0,0 @@
|
|
|
1
|
-
/* $Id: CoinDenseFactorization.hpp 1759 2014-11-18 11:07:23Z forrest $ */
|
|
2
|
-
// Copyright (C) 2008, International Business Machines
|
|
3
|
-
// Corporation and others. All Rights Reserved.
|
|
4
|
-
// This code is licensed under the terms of the Eclipse Public License (EPL).
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
/*
|
|
8
|
-
Authors
|
|
9
|
-
|
|
10
|
-
John Forrest
|
|
11
|
-
|
|
12
|
-
*/
|
|
13
|
-
#ifndef CoinDenseFactorization_H
|
|
14
|
-
#define CoinDenseFactorization_H
|
|
15
|
-
|
|
16
|
-
#include <iostream>
|
|
17
|
-
#include <string>
|
|
18
|
-
#include <cassert>
|
|
19
|
-
#include "CoinTypes.hpp"
|
|
20
|
-
#include "CoinIndexedVector.hpp"
|
|
21
|
-
#include "CoinFactorization.hpp"
|
|
22
|
-
#if COIN_FACTORIZATION_DENSE_CODE == 2
|
|
23
|
-
#undef COIN_FACTORIZATION_DENSE_CODE
|
|
24
|
-
#endif
|
|
25
|
-
class CoinPackedMatrix;
|
|
26
|
-
/// Abstract base class which also has some scalars so can be used from Dense or Simp
|
|
27
|
-
class CoinOtherFactorization {
|
|
28
|
-
|
|
29
|
-
public:
|
|
30
|
-
|
|
31
|
-
/**@name Constructors and destructor and copy */
|
|
32
|
-
//@{
|
|
33
|
-
/// Default constructor
|
|
34
|
-
CoinOtherFactorization ( );
|
|
35
|
-
/// Copy constructor
|
|
36
|
-
CoinOtherFactorization ( const CoinOtherFactorization &other);
|
|
37
|
-
|
|
38
|
-
/// Destructor
|
|
39
|
-
virtual ~CoinOtherFactorization ( );
|
|
40
|
-
/// = copy
|
|
41
|
-
CoinOtherFactorization & operator = ( const CoinOtherFactorization & other );
|
|
42
|
-
|
|
43
|
-
/// Clone
|
|
44
|
-
virtual CoinOtherFactorization * clone() const = 0;
|
|
45
|
-
//@}
|
|
46
|
-
|
|
47
|
-
/**@name general stuff such as status */
|
|
48
|
-
//@{
|
|
49
|
-
/// Returns status
|
|
50
|
-
inline int status ( ) const {
|
|
51
|
-
return status_;
|
|
52
|
-
}
|
|
53
|
-
/// Sets status
|
|
54
|
-
inline void setStatus ( int value)
|
|
55
|
-
{ status_=value; }
|
|
56
|
-
/// Returns number of pivots since factorization
|
|
57
|
-
inline int pivots ( ) const {
|
|
58
|
-
return numberPivots_;
|
|
59
|
-
}
|
|
60
|
-
/// Sets number of pivots since factorization
|
|
61
|
-
inline void setPivots ( int value )
|
|
62
|
-
{ numberPivots_=value; }
|
|
63
|
-
/// Set number of Rows after factorization
|
|
64
|
-
inline void setNumberRows(int value)
|
|
65
|
-
{ numberRows_ = value; }
|
|
66
|
-
/// Number of Rows after factorization
|
|
67
|
-
inline int numberRows ( ) const {
|
|
68
|
-
return numberRows_;
|
|
69
|
-
}
|
|
70
|
-
/// Total number of columns in factorization
|
|
71
|
-
inline int numberColumns ( ) const {
|
|
72
|
-
return numberColumns_;
|
|
73
|
-
}
|
|
74
|
-
/// Number of good columns in factorization
|
|
75
|
-
inline int numberGoodColumns ( ) const {
|
|
76
|
-
return numberGoodU_;
|
|
77
|
-
}
|
|
78
|
-
/// Allows change of pivot accuracy check 1.0 == none >1.0 relaxed
|
|
79
|
-
inline void relaxAccuracyCheck(double value)
|
|
80
|
-
{ relaxCheck_ = value;}
|
|
81
|
-
inline double getAccuracyCheck() const
|
|
82
|
-
{ return relaxCheck_;}
|
|
83
|
-
/// Maximum number of pivots between factorizations
|
|
84
|
-
inline int maximumPivots ( ) const {
|
|
85
|
-
return maximumPivots_ ;
|
|
86
|
-
}
|
|
87
|
-
/// Set maximum pivots
|
|
88
|
-
virtual void maximumPivots ( int value );
|
|
89
|
-
|
|
90
|
-
/// Pivot tolerance
|
|
91
|
-
inline double pivotTolerance ( ) const {
|
|
92
|
-
return pivotTolerance_ ;
|
|
93
|
-
}
|
|
94
|
-
void pivotTolerance ( double value );
|
|
95
|
-
/// Zero tolerance
|
|
96
|
-
inline double zeroTolerance ( ) const {
|
|
97
|
-
return zeroTolerance_ ;
|
|
98
|
-
}
|
|
99
|
-
void zeroTolerance ( double value );
|
|
100
|
-
#ifndef COIN_FAST_CODE
|
|
101
|
-
/// Whether slack value is +1 or -1
|
|
102
|
-
inline double slackValue ( ) const {
|
|
103
|
-
return slackValue_ ;
|
|
104
|
-
}
|
|
105
|
-
void slackValue ( double value );
|
|
106
|
-
#endif
|
|
107
|
-
/// Returns array to put basis elements in
|
|
108
|
-
virtual CoinFactorizationDouble * elements() const;
|
|
109
|
-
/// Returns pivot row
|
|
110
|
-
virtual int * pivotRow() const;
|
|
111
|
-
/// Returns work area
|
|
112
|
-
virtual CoinFactorizationDouble * workArea() const;
|
|
113
|
-
/// Returns int work area
|
|
114
|
-
virtual int * intWorkArea() const;
|
|
115
|
-
/// Number of entries in each row
|
|
116
|
-
virtual int * numberInRow() const;
|
|
117
|
-
/// Number of entries in each column
|
|
118
|
-
virtual int * numberInColumn() const;
|
|
119
|
-
/// Returns array to put basis starts in
|
|
120
|
-
virtual CoinBigIndex * starts() const;
|
|
121
|
-
/// Returns permute back
|
|
122
|
-
virtual int * permuteBack() const;
|
|
123
|
-
/** Get solve mode e.g. 0 C++ code, 1 Lapack, 2 choose
|
|
124
|
-
If 4 set then values pass
|
|
125
|
-
if 8 set then has iterated
|
|
126
|
-
*/
|
|
127
|
-
inline int solveMode() const
|
|
128
|
-
{ return solveMode_ ;}
|
|
129
|
-
/** Set solve mode e.g. 0 C++ code, 1 Lapack, 2 choose
|
|
130
|
-
If 4 set then values pass
|
|
131
|
-
if 8 set then has iterated
|
|
132
|
-
*/
|
|
133
|
-
inline void setSolveMode(int value)
|
|
134
|
-
{ solveMode_ = value;}
|
|
135
|
-
/// Returns true if wants tableauColumn in replaceColumn
|
|
136
|
-
virtual bool wantsTableauColumn() const;
|
|
137
|
-
/** Useful information for factorization
|
|
138
|
-
0 - iteration number
|
|
139
|
-
whereFrom is 0 for factorize and 1 for replaceColumn
|
|
140
|
-
*/
|
|
141
|
-
virtual void setUsefulInformation(const int * info,int whereFrom);
|
|
142
|
-
/// Get rid of all memory
|
|
143
|
-
virtual void clearArrays() {}
|
|
144
|
-
//@}
|
|
145
|
-
/**@name virtual general stuff such as permutation */
|
|
146
|
-
//@{
|
|
147
|
-
/// Returns array to put basis indices in
|
|
148
|
-
virtual int * indices() const = 0;
|
|
149
|
-
/// Returns permute in
|
|
150
|
-
virtual int * permute() const = 0;
|
|
151
|
-
/// Total number of elements in factorization
|
|
152
|
-
virtual int numberElements ( ) const = 0;
|
|
153
|
-
//@}
|
|
154
|
-
/**@name Do factorization - public */
|
|
155
|
-
//@{
|
|
156
|
-
/// Gets space for a factorization
|
|
157
|
-
virtual void getAreas ( int numberRows,
|
|
158
|
-
int numberColumns,
|
|
159
|
-
CoinBigIndex maximumL,
|
|
160
|
-
CoinBigIndex maximumU ) = 0;
|
|
161
|
-
|
|
162
|
-
/// PreProcesses column ordered copy of basis
|
|
163
|
-
virtual void preProcess ( ) = 0;
|
|
164
|
-
/** Does most of factorization returning status
|
|
165
|
-
0 - OK
|
|
166
|
-
-99 - needs more memory
|
|
167
|
-
-1 - singular - use numberGoodColumns and redo
|
|
168
|
-
*/
|
|
169
|
-
virtual int factor ( ) = 0;
|
|
170
|
-
/// Does post processing on valid factorization - putting variables on correct rows
|
|
171
|
-
virtual void postProcess(const int * sequence, int * pivotVariable) = 0;
|
|
172
|
-
/// Makes a non-singular basis by replacing variables
|
|
173
|
-
virtual void makeNonSingular(int * sequence, int numberColumns) = 0;
|
|
174
|
-
//@}
|
|
175
|
-
|
|
176
|
-
/**@name rank one updates which do exist */
|
|
177
|
-
//@{
|
|
178
|
-
|
|
179
|
-
/** Replaces one Column to basis,
|
|
180
|
-
returns 0=OK, 1=Probably OK, 2=singular, 3=no room
|
|
181
|
-
If checkBeforeModifying is true will do all accuracy checks
|
|
182
|
-
before modifying factorization. Whether to set this depends on
|
|
183
|
-
speed considerations. You could just do this on first iteration
|
|
184
|
-
after factorization and thereafter re-factorize
|
|
185
|
-
partial update already in U */
|
|
186
|
-
virtual int replaceColumn ( CoinIndexedVector * regionSparse,
|
|
187
|
-
int pivotRow,
|
|
188
|
-
double pivotCheck ,
|
|
189
|
-
bool checkBeforeModifying=false,
|
|
190
|
-
double acceptablePivot=1.0e-8)=0;
|
|
191
|
-
//@}
|
|
192
|
-
|
|
193
|
-
/**@name various uses of factorization (return code number elements)
|
|
194
|
-
which user may want to know about */
|
|
195
|
-
//@{
|
|
196
|
-
/** Updates one column (FTRAN) from regionSparse2
|
|
197
|
-
Tries to do FT update
|
|
198
|
-
number returned is negative if no room
|
|
199
|
-
regionSparse starts as zero and is zero at end.
|
|
200
|
-
Note - if regionSparse2 packed on input - will be packed on output
|
|
201
|
-
*/
|
|
202
|
-
virtual int updateColumnFT ( CoinIndexedVector * regionSparse,
|
|
203
|
-
CoinIndexedVector * regionSparse2,
|
|
204
|
-
bool noPermute=false) = 0;
|
|
205
|
-
/** This version has same effect as above with FTUpdate==false
|
|
206
|
-
so number returned is always >=0 */
|
|
207
|
-
virtual int updateColumn ( CoinIndexedVector * regionSparse,
|
|
208
|
-
CoinIndexedVector * regionSparse2,
|
|
209
|
-
bool noPermute=false) const = 0;
|
|
210
|
-
/// does FTRAN on two columns
|
|
211
|
-
virtual int updateTwoColumnsFT(CoinIndexedVector * regionSparse1,
|
|
212
|
-
CoinIndexedVector * regionSparse2,
|
|
213
|
-
CoinIndexedVector * regionSparse3,
|
|
214
|
-
bool noPermute=false) = 0;
|
|
215
|
-
/** Updates one column (BTRAN) from regionSparse2
|
|
216
|
-
regionSparse starts as zero and is zero at end
|
|
217
|
-
Note - if regionSparse2 packed on input - will be packed on output
|
|
218
|
-
*/
|
|
219
|
-
virtual int updateColumnTranspose ( CoinIndexedVector * regionSparse,
|
|
220
|
-
CoinIndexedVector * regionSparse2) const = 0;
|
|
221
|
-
//@}
|
|
222
|
-
|
|
223
|
-
////////////////// data //////////////////
|
|
224
|
-
protected:
|
|
225
|
-
|
|
226
|
-
/**@name data */
|
|
227
|
-
//@{
|
|
228
|
-
/// Pivot tolerance
|
|
229
|
-
double pivotTolerance_;
|
|
230
|
-
/// Zero tolerance
|
|
231
|
-
double zeroTolerance_;
|
|
232
|
-
#ifndef COIN_FAST_CODE
|
|
233
|
-
/// Whether slack value is +1 or -1
|
|
234
|
-
double slackValue_;
|
|
235
|
-
#else
|
|
236
|
-
#ifndef slackValue_
|
|
237
|
-
#define slackValue_ -1.0
|
|
238
|
-
#endif
|
|
239
|
-
#endif
|
|
240
|
-
/// Relax check on accuracy in replaceColumn
|
|
241
|
-
double relaxCheck_;
|
|
242
|
-
/// Number of elements after factorization
|
|
243
|
-
CoinBigIndex factorElements_;
|
|
244
|
-
/// Number of Rows in factorization
|
|
245
|
-
int numberRows_;
|
|
246
|
-
/// Number of Columns in factorization
|
|
247
|
-
int numberColumns_;
|
|
248
|
-
/// Number factorized in U (not row singletons)
|
|
249
|
-
int numberGoodU_;
|
|
250
|
-
/// Maximum number of pivots before factorization
|
|
251
|
-
int maximumPivots_;
|
|
252
|
-
/// Number pivots since last factorization
|
|
253
|
-
int numberPivots_;
|
|
254
|
-
/// Status of factorization
|
|
255
|
-
int status_;
|
|
256
|
-
/// Maximum rows ever (i.e. use to copy arrays etc)
|
|
257
|
-
int maximumRows_;
|
|
258
|
-
/// Maximum length of iterating area
|
|
259
|
-
CoinBigIndex maximumSpace_;
|
|
260
|
-
/// Pivot row
|
|
261
|
-
int * pivotRow_;
|
|
262
|
-
/** Elements of factorization and updates
|
|
263
|
-
length is maxR*maxR+maxSpace
|
|
264
|
-
will always be long enough so can have nR*nR ints in maxSpace
|
|
265
|
-
*/
|
|
266
|
-
CoinFactorizationDouble * elements_;
|
|
267
|
-
/// Work area of numberRows_
|
|
268
|
-
CoinFactorizationDouble * workArea_;
|
|
269
|
-
/** Solve mode e.g. 0 C++ code, 1 Lapack, 2 choose
|
|
270
|
-
If 4 set then values pass
|
|
271
|
-
if 8 set then has iterated
|
|
272
|
-
*/
|
|
273
|
-
int solveMode_;
|
|
274
|
-
//@}
|
|
275
|
-
};
|
|
276
|
-
/** This deals with Factorization and Updates
|
|
277
|
-
This is a simple dense version so other people can write a better one
|
|
278
|
-
|
|
279
|
-
I am assuming that 32 bits is enough for number of rows or columns, but CoinBigIndex
|
|
280
|
-
may be redefined to get 64 bits.
|
|
281
|
-
*/
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
class CoinDenseFactorization : public CoinOtherFactorization {
|
|
286
|
-
friend void CoinDenseFactorizationUnitTest( const std::string & mpsDir );
|
|
287
|
-
|
|
288
|
-
public:
|
|
289
|
-
|
|
290
|
-
/**@name Constructors and destructor and copy */
|
|
291
|
-
//@{
|
|
292
|
-
/// Default constructor
|
|
293
|
-
CoinDenseFactorization ( );
|
|
294
|
-
/// Copy constructor
|
|
295
|
-
CoinDenseFactorization ( const CoinDenseFactorization &other);
|
|
296
|
-
|
|
297
|
-
/// Destructor
|
|
298
|
-
virtual ~CoinDenseFactorization ( );
|
|
299
|
-
/// = copy
|
|
300
|
-
CoinDenseFactorization & operator = ( const CoinDenseFactorization & other );
|
|
301
|
-
/// Clone
|
|
302
|
-
virtual CoinOtherFactorization * clone() const ;
|
|
303
|
-
//@}
|
|
304
|
-
|
|
305
|
-
/**@name Do factorization - public */
|
|
306
|
-
//@{
|
|
307
|
-
/// Gets space for a factorization
|
|
308
|
-
virtual void getAreas ( int numberRows,
|
|
309
|
-
int numberColumns,
|
|
310
|
-
CoinBigIndex maximumL,
|
|
311
|
-
CoinBigIndex maximumU );
|
|
312
|
-
|
|
313
|
-
/// PreProcesses column ordered copy of basis
|
|
314
|
-
virtual void preProcess ( );
|
|
315
|
-
/** Does most of factorization returning status
|
|
316
|
-
0 - OK
|
|
317
|
-
-99 - needs more memory
|
|
318
|
-
-1 - singular - use numberGoodColumns and redo
|
|
319
|
-
*/
|
|
320
|
-
virtual int factor ( );
|
|
321
|
-
/// Does post processing on valid factorization - putting variables on correct rows
|
|
322
|
-
virtual void postProcess(const int * sequence, int * pivotVariable);
|
|
323
|
-
/// Makes a non-singular basis by replacing variables
|
|
324
|
-
virtual void makeNonSingular(int * sequence, int numberColumns);
|
|
325
|
-
//@}
|
|
326
|
-
|
|
327
|
-
/**@name general stuff such as number of elements */
|
|
328
|
-
//@{
|
|
329
|
-
/// Total number of elements in factorization
|
|
330
|
-
virtual inline int numberElements ( ) const {
|
|
331
|
-
return numberRows_*(numberColumns_+numberPivots_);
|
|
332
|
-
}
|
|
333
|
-
/// Returns maximum absolute value in factorization
|
|
334
|
-
double maximumCoefficient() const;
|
|
335
|
-
//@}
|
|
336
|
-
|
|
337
|
-
/**@name rank one updates which do exist */
|
|
338
|
-
//@{
|
|
339
|
-
|
|
340
|
-
/** Replaces one Column to basis,
|
|
341
|
-
returns 0=OK, 1=Probably OK, 2=singular, 3=no room
|
|
342
|
-
If checkBeforeModifying is true will do all accuracy checks
|
|
343
|
-
before modifying factorization. Whether to set this depends on
|
|
344
|
-
speed considerations. You could just do this on first iteration
|
|
345
|
-
after factorization and thereafter re-factorize
|
|
346
|
-
partial update already in U */
|
|
347
|
-
virtual int replaceColumn ( CoinIndexedVector * regionSparse,
|
|
348
|
-
int pivotRow,
|
|
349
|
-
double pivotCheck ,
|
|
350
|
-
bool checkBeforeModifying=false,
|
|
351
|
-
double acceptablePivot=1.0e-8);
|
|
352
|
-
//@}
|
|
353
|
-
|
|
354
|
-
/**@name various uses of factorization (return code number elements)
|
|
355
|
-
which user may want to know about */
|
|
356
|
-
//@{
|
|
357
|
-
/** Updates one column (FTRAN) from regionSparse2
|
|
358
|
-
Tries to do FT update
|
|
359
|
-
number returned is negative if no room
|
|
360
|
-
regionSparse starts as zero and is zero at end.
|
|
361
|
-
Note - if regionSparse2 packed on input - will be packed on output
|
|
362
|
-
*/
|
|
363
|
-
virtual inline int updateColumnFT ( CoinIndexedVector * regionSparse,
|
|
364
|
-
CoinIndexedVector * regionSparse2,
|
|
365
|
-
bool = false)
|
|
366
|
-
{ return updateColumn(regionSparse,regionSparse2);}
|
|
367
|
-
/** This version has same effect as above with FTUpdate==false
|
|
368
|
-
so number returned is always >=0 */
|
|
369
|
-
virtual int updateColumn ( CoinIndexedVector * regionSparse,
|
|
370
|
-
CoinIndexedVector * regionSparse2,
|
|
371
|
-
bool noPermute=false) const;
|
|
372
|
-
/// does FTRAN on two columns
|
|
373
|
-
virtual int updateTwoColumnsFT(CoinIndexedVector * regionSparse1,
|
|
374
|
-
CoinIndexedVector * regionSparse2,
|
|
375
|
-
CoinIndexedVector * regionSparse3,
|
|
376
|
-
bool noPermute=false);
|
|
377
|
-
/** Updates one column (BTRAN) from regionSparse2
|
|
378
|
-
regionSparse starts as zero and is zero at end
|
|
379
|
-
Note - if regionSparse2 packed on input - will be packed on output
|
|
380
|
-
*/
|
|
381
|
-
virtual int updateColumnTranspose ( CoinIndexedVector * regionSparse,
|
|
382
|
-
CoinIndexedVector * regionSparse2) const;
|
|
383
|
-
//@}
|
|
384
|
-
/// *** Below this user may not want to know about
|
|
385
|
-
|
|
386
|
-
/**@name various uses of factorization
|
|
387
|
-
which user may not want to know about (left over from my LP code) */
|
|
388
|
-
//@{
|
|
389
|
-
/// Get rid of all memory
|
|
390
|
-
inline void clearArrays()
|
|
391
|
-
{ gutsOfDestructor();}
|
|
392
|
-
/// Returns array to put basis indices in
|
|
393
|
-
virtual inline int * indices() const
|
|
394
|
-
{ return reinterpret_cast<int *> (elements_+numberRows_*numberRows_);}
|
|
395
|
-
/// Returns permute in
|
|
396
|
-
virtual inline int * permute() const
|
|
397
|
-
{ return NULL;/*pivotRow_*/;}
|
|
398
|
-
//@}
|
|
399
|
-
|
|
400
|
-
/// The real work of desstructor
|
|
401
|
-
void gutsOfDestructor();
|
|
402
|
-
/// The real work of constructor
|
|
403
|
-
void gutsOfInitialize();
|
|
404
|
-
/// The real work of copy
|
|
405
|
-
void gutsOfCopy(const CoinDenseFactorization &other);
|
|
406
|
-
|
|
407
|
-
//@}
|
|
408
|
-
protected:
|
|
409
|
-
/** Returns accuracy status of replaceColumn
|
|
410
|
-
returns 0=OK, 1=Probably OK, 2=singular */
|
|
411
|
-
int checkPivot(double saveFromU, double oldPivot) const;
|
|
412
|
-
////////////////// data //////////////////
|
|
413
|
-
protected:
|
|
414
|
-
|
|
415
|
-
/**@name data */
|
|
416
|
-
//@{
|
|
417
|
-
//@}
|
|
418
|
-
};
|
|
419
|
-
#endif
|