casadi 3.6.3__cp35-none-manylinux2010_x86_64.whl → 3.6.5__cp35-none-manylinux2010_x86_64.whl
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.
- casadi/_casadi.so +0 -0
- casadi/casadi.py +415 -260
- casadi/cbc +0 -0
- casadi/clp +0 -0
- casadi/cmake/casadi-config-version.cmake +1 -1
- casadi/include/casadi/casadi.i +43 -18
- casadi/include/casadi/config.h +6 -6
- casadi/include/casadi/core/calculus.hpp +1 -1
- casadi/include/casadi/core/code_generator.hpp +29 -1
- casadi/include/casadi/core/core.hpp +1 -0
- casadi/include/casadi/core/fmu.hpp +29 -1
- casadi/include/casadi/core/generic_expression.hpp +1 -1
- casadi/include/casadi/core/generic_type.hpp +25 -1
- casadi/include/casadi/core/matrix_decl.hpp +15 -0
- casadi/include/casadi/core/nlpsol.hpp +0 -2
- casadi/include/casadi/core/runtime/casadi_nlp.hpp +131 -6
- casadi/include/casadi/core/runtime/casadi_sqpmethod.hpp +11 -1
- casadi/include/casadi/core/serializing_stream.hpp +12 -0
- casadi/include/casadi/core/sparsity.hpp +5 -3
- casadi/include/casadi/core/tools.hpp +67 -0
- casadi/include/casadi/doc.i +1457 -825
- casadi/include/casadi/doc_merged.i +1089 -570
- casadi/include/coin/BonArraysHelpers.hpp +52 -0
- casadi/include/coin/BonAuxInfos.hpp +110 -0
- casadi/include/coin/BonBabInfos.hpp +57 -0
- casadi/include/coin/BonBabSetupBase.hpp +386 -0
- casadi/include/coin/BonBonminSetup.hpp +95 -0
- casadi/include/coin/BonBranchingTQP.hpp +197 -0
- casadi/include/coin/BonCbc.hpp +127 -0
- casadi/include/coin/BonCbcLpStrategy.hpp +45 -0
- casadi/include/coin/BonCbcNlpStrategy.hpp +98 -0
- casadi/include/coin/BonCbcNode.hpp +133 -0
- casadi/include/coin/BonChooseVariable.hpp +345 -0
- casadi/include/coin/BonCurvBranchingSolver.hpp +77 -0
- casadi/include/coin/BonCutStrengthener.hpp +244 -0
- casadi/include/coin/BonDiver.hpp +424 -0
- casadi/include/coin/BonDummyHeuristic.hpp +53 -0
- casadi/include/coin/BonDummyPump.hpp +43 -0
- casadi/include/coin/BonEcpCuts.hpp +97 -0
- casadi/include/coin/BonExitCodes.hpp +12 -0
- casadi/include/coin/BonFixAndSolveHeuristic.hpp +43 -0
- casadi/include/coin/BonGuessHeuristic.hpp +46 -0
- casadi/include/coin/BonHeuristicDive.hpp +88 -0
- casadi/include/coin/BonHeuristicDiveFractional.hpp +67 -0
- casadi/include/coin/BonHeuristicDiveMIP.hpp +83 -0
- casadi/include/coin/BonHeuristicDiveMIPFractional.hpp +67 -0
- casadi/include/coin/BonHeuristicDiveMIPVectorLength.hpp +74 -0
- casadi/include/coin/BonHeuristicDiveVectorLength.hpp +74 -0
- casadi/include/coin/BonHeuristicFPump.hpp +111 -0
- casadi/include/coin/BonHeuristicLocalBranching.hpp +59 -0
- casadi/include/coin/BonHeuristicRINS.hpp +55 -0
- casadi/include/coin/BonIpoptInteriorWarmStarter.hpp +103 -0
- casadi/include/coin/BonIpoptSolver.hpp +188 -0
- casadi/include/coin/BonIpoptWarmStart.hpp +148 -0
- casadi/include/coin/BonLinearCutsGenerator.hpp +75 -0
- casadi/include/coin/BonLocalSolverBasedHeuristic.hpp +102 -0
- casadi/include/coin/BonLpBranchingSolver.hpp +80 -0
- casadi/include/coin/BonMilpRounding.hpp +74 -0
- casadi/include/coin/BonOACutGenerator2.hpp +56 -0
- casadi/include/coin/BonOAMessages.hpp +44 -0
- casadi/include/coin/BonOaDecBase.hpp +297 -0
- casadi/include/coin/BonOaFeasChecker.hpp +73 -0
- casadi/include/coin/BonOaNlpOptim.hpp +116 -0
- casadi/include/coin/BonOsiTMINLPInterface.hpp +1342 -0
- casadi/include/coin/BonOuterApprox.hpp +123 -0
- casadi/include/coin/BonPseudoCosts.hpp +91 -0
- casadi/include/coin/BonPumpForMinlp.hpp +45 -0
- casadi/include/coin/BonQuadCut.hpp +217 -0
- casadi/include/coin/BonQuadRow.hpp +122 -0
- casadi/include/coin/BonRegisteredOptions.hpp +225 -0
- casadi/include/coin/BonStrongBranchingSolver.hpp +69 -0
- casadi/include/coin/BonSubMipSolver.hpp +143 -0
- casadi/include/coin/BonTMINLP.hpp +420 -0
- casadi/include/coin/BonTMINLP2OsiLP.hpp +164 -0
- casadi/include/coin/BonTMINLP2Quad.hpp +191 -0
- casadi/include/coin/BonTMINLP2TNLP.hpp +509 -0
- casadi/include/coin/BonTMINLPLinObj.hpp +216 -0
- casadi/include/coin/BonTMatrix.hpp +167 -0
- casadi/include/coin/BonTNLP2FPNLP.hpp +264 -0
- casadi/include/coin/BonTNLPSolver.hpp +241 -0
- casadi/include/coin/BonTypes.hpp +95 -0
- casadi/include/coin/BonminConfig.h +19 -0
- casadi/include/coin/CbcBranchActual.hpp +26 -0
- casadi/include/coin/CbcBranchAllDifferent.hpp +61 -0
- casadi/include/coin/CbcBranchBase.hpp +79 -0
- casadi/include/coin/CbcBranchCut.hpp +182 -0
- casadi/include/coin/CbcBranchDecision.hpp +135 -0
- casadi/include/coin/CbcBranchDefaultDecision.hpp +101 -0
- casadi/include/coin/CbcBranchDynamic.hpp +210 -0
- casadi/include/coin/CbcBranchLotsize.hpp +249 -0
- casadi/include/coin/CbcBranchToFixLots.hpp +94 -0
- casadi/include/coin/CbcBranchingObject.hpp +245 -0
- casadi/include/coin/CbcClique.hpp +309 -0
- casadi/include/coin/CbcCompare.hpp +46 -0
- casadi/include/coin/CbcCompareActual.hpp +16 -0
- casadi/include/coin/CbcCompareBase.hpp +155 -0
- casadi/include/coin/CbcCompareDefault.hpp +129 -0
- casadi/include/coin/CbcCompareDepth.hpp +48 -0
- casadi/include/coin/CbcCompareEstimate.hpp +48 -0
- casadi/include/coin/CbcCompareObjective.hpp +50 -0
- casadi/include/coin/CbcConfig.h +18 -0
- casadi/include/coin/CbcConsequence.hpp +50 -0
- casadi/include/coin/CbcCountRowCut.hpp +176 -0
- casadi/include/coin/CbcCutGenerator.hpp +550 -0
- casadi/include/coin/CbcCutModifier.hpp +59 -0
- casadi/include/coin/CbcCutSubsetModifier.hpp +69 -0
- casadi/include/coin/CbcDummyBranchingObject.hpp +83 -0
- casadi/include/coin/CbcEventHandler.hpp +250 -0
- casadi/include/coin/CbcFathom.hpp +136 -0
- casadi/include/coin/CbcFathomDynamicProgramming.hpp +177 -0
- casadi/include/coin/CbcFeasibilityBase.hpp +60 -0
- casadi/include/coin/CbcFixVariable.hpp +68 -0
- casadi/include/coin/CbcFollowOn.hpp +207 -0
- casadi/include/coin/CbcFullNodeInfo.hpp +171 -0
- casadi/include/coin/CbcGeneral.hpp +60 -0
- casadi/include/coin/CbcGeneralDepth.hpp +289 -0
- casadi/include/coin/CbcHeuristic.hpp +735 -0
- casadi/include/coin/CbcHeuristicDINS.hpp +98 -0
- casadi/include/coin/CbcHeuristicDW.hpp +374 -0
- casadi/include/coin/CbcHeuristicDive.hpp +198 -0
- casadi/include/coin/CbcHeuristicDiveCoefficient.hpp +52 -0
- casadi/include/coin/CbcHeuristicDiveFractional.hpp +52 -0
- casadi/include/coin/CbcHeuristicDiveGuided.hpp +55 -0
- casadi/include/coin/CbcHeuristicDiveLineSearch.hpp +52 -0
- casadi/include/coin/CbcHeuristicDivePseudoCost.hpp +60 -0
- casadi/include/coin/CbcHeuristicDiveVectorLength.hpp +52 -0
- casadi/include/coin/CbcHeuristicFPump.hpp +375 -0
- casadi/include/coin/CbcHeuristicGreedy.hpp +289 -0
- casadi/include/coin/CbcHeuristicLocal.hpp +276 -0
- casadi/include/coin/CbcHeuristicPivotAndFix.hpp +58 -0
- casadi/include/coin/CbcHeuristicRENS.hpp +79 -0
- casadi/include/coin/CbcHeuristicRINS.hpp +106 -0
- casadi/include/coin/CbcHeuristicRandRound.hpp +58 -0
- casadi/include/coin/CbcHeuristicVND.hpp +95 -0
- casadi/include/coin/CbcLinked.hpp +1443 -0
- casadi/include/coin/CbcMessage.hpp +94 -0
- casadi/include/coin/CbcMipStartIO.hpp +29 -0
- casadi/include/coin/CbcModel.hpp +3296 -0
- casadi/include/coin/CbcNWay.hpp +171 -0
- casadi/include/coin/CbcNode.hpp +380 -0
- casadi/include/coin/CbcNodeInfo.hpp +377 -0
- casadi/include/coin/CbcObject.hpp +288 -0
- casadi/include/coin/CbcObjectUpdateData.hpp +63 -0
- casadi/include/coin/CbcOrClpParam.cpp +4321 -0
- casadi/include/coin/CbcOrClpParam.hpp +585 -0
- casadi/include/coin/CbcParam.hpp +338 -0
- casadi/include/coin/CbcPartialNodeInfo.hpp +116 -0
- casadi/include/coin/CbcSOS.hpp +290 -0
- casadi/include/coin/CbcSimpleInteger.hpp +299 -0
- casadi/include/coin/CbcSimpleIntegerDynamicPseudoCost.hpp +619 -0
- casadi/include/coin/CbcSimpleIntegerPseudoCost.hpp +122 -0
- casadi/include/coin/CbcSolver.hpp +460 -0
- casadi/include/coin/CbcStrategy.hpp +269 -0
- casadi/include/coin/CbcSubProblem.hpp +84 -0
- casadi/include/coin/CbcTree.hpp +493 -0
- casadi/include/coin/CbcTreeLocal.hpp +393 -0
- casadi/include/coin/Cbc_C_Interface.h +904 -0
- casadi/include/coin/Cgl012cut.hpp +464 -0
- casadi/include/coin/CglAllDifferent.hpp +115 -0
- casadi/include/coin/CglClique.hpp +312 -0
- casadi/include/coin/CglConfig.h +19 -0
- casadi/include/coin/CglCutGenerator.hpp +133 -0
- casadi/include/coin/CglDuplicateRow.hpp +189 -0
- casadi/include/coin/CglFlowCover.hpp +371 -0
- casadi/include/coin/CglGMI.hpp +364 -0
- casadi/include/coin/CglGMIParam.hpp +313 -0
- casadi/include/coin/CglGomory.hpp +204 -0
- casadi/include/coin/CglKnapsackCover.hpp +310 -0
- casadi/include/coin/CglLandP.hpp +306 -0
- casadi/include/coin/CglLandPValidator.hpp +130 -0
- casadi/include/coin/CglLiftAndProject.hpp +104 -0
- casadi/include/coin/CglMessage.hpp +49 -0
- casadi/include/coin/CglMixedIntegerRounding.hpp +429 -0
- casadi/include/coin/CglMixedIntegerRounding2.hpp +427 -0
- casadi/include/coin/CglOddHole.hpp +160 -0
- casadi/include/coin/CglParam.hpp +93 -0
- casadi/include/coin/CglPreProcess.hpp +600 -0
- casadi/include/coin/CglProbing.hpp +543 -0
- casadi/include/coin/CglRedSplit.hpp +448 -0
- casadi/include/coin/CglRedSplit2.hpp +494 -0
- casadi/include/coin/CglRedSplit2Param.hpp +495 -0
- casadi/include/coin/CglRedSplitParam.hpp +272 -0
- casadi/include/coin/CglResidualCapacity.hpp +240 -0
- casadi/include/coin/CglSimpleRounding.hpp +174 -0
- casadi/include/coin/CglStored.hpp +140 -0
- casadi/include/coin/CglTreeInfo.hpp +216 -0
- casadi/include/coin/CglTwomir.hpp +562 -0
- casadi/include/coin/CglZeroHalf.hpp +133 -0
- casadi/include/coin/ClpAmplObjective.hpp +113 -0
- casadi/include/coin/ClpCholeskyBase.hpp +321 -0
- casadi/include/coin/ClpCholeskyDense.hpp +157 -0
- casadi/include/coin/ClpCholeskyMumps.hpp +65 -0
- casadi/include/coin/ClpCholeskyPardiso.hpp +67 -0
- casadi/include/coin/ClpConfig.h +17 -0
- casadi/include/coin/ClpConstraint.hpp +129 -0
- casadi/include/coin/ClpConstraintAmpl.hpp +109 -0
- casadi/include/coin/ClpConstraintLinear.hpp +113 -0
- casadi/include/coin/ClpConstraintQuadratic.hpp +123 -0
- casadi/include/coin/ClpDualRowDantzig.hpp +72 -0
- casadi/include/coin/ClpDualRowPivot.hpp +136 -0
- casadi/include/coin/ClpDualRowSteepest.hpp +160 -0
- casadi/include/coin/ClpDummyMatrix.hpp +186 -0
- casadi/include/coin/ClpDynamicExampleMatrix.hpp +199 -0
- casadi/include/coin/ClpDynamicMatrix.hpp +420 -0
- casadi/include/coin/ClpEventHandler.hpp +193 -0
- casadi/include/coin/ClpFactorization.hpp +556 -0
- casadi/include/coin/ClpGubDynamicMatrix.hpp +270 -0
- casadi/include/coin/ClpGubMatrix.hpp +373 -0
- casadi/include/coin/ClpInterior.hpp +622 -0
- casadi/include/coin/ClpLinearObjective.hpp +104 -0
- casadi/include/coin/ClpMatrixBase.hpp +561 -0
- casadi/include/coin/ClpMessage.hpp +131 -0
- casadi/include/coin/ClpModel.hpp +1442 -0
- casadi/include/coin/ClpNetworkMatrix.hpp +235 -0
- casadi/include/coin/ClpNode.hpp +364 -0
- casadi/include/coin/ClpNonLinearCost.hpp +432 -0
- casadi/include/coin/ClpObjective.hpp +142 -0
- casadi/include/coin/ClpPEDualRowDantzig.hpp +84 -0
- casadi/include/coin/ClpPEDualRowSteepest.hpp +100 -0
- casadi/include/coin/ClpPEPrimalColumnDantzig.hpp +71 -0
- casadi/include/coin/ClpPEPrimalColumnSteepest.hpp +107 -0
- casadi/include/coin/ClpPESimplex.hpp +231 -0
- casadi/include/coin/ClpPackedMatrix.hpp +778 -0
- casadi/include/coin/ClpParameters.hpp +132 -0
- casadi/include/coin/ClpPdcoBase.hpp +110 -0
- casadi/include/coin/ClpPlusMinusOneMatrix.hpp +565 -0
- casadi/include/coin/ClpPresolve.hpp +379 -0
- casadi/include/coin/ClpPrimalColumnDantzig.hpp +74 -0
- casadi/include/coin/ClpPrimalColumnPivot.hpp +163 -0
- casadi/include/coin/ClpPrimalColumnSteepest.hpp +281 -0
- casadi/include/coin/ClpQuadraticObjective.hpp +161 -0
- casadi/include/coin/ClpSimplex.hpp +2137 -0
- casadi/include/coin/ClpSimplexDual.hpp +304 -0
- casadi/include/coin/ClpSimplexNonlinear.hpp +117 -0
- casadi/include/coin/ClpSimplexOther.hpp +282 -0
- casadi/include/coin/ClpSimplexPrimal.hpp +244 -0
- casadi/include/coin/ClpSolve.hpp +505 -0
- casadi/include/coin/Clp_C_Interface.h +554 -0
- casadi/include/coin/CoinAlloc.hpp +179 -0
- casadi/include/coin/CoinBuild.hpp +159 -0
- casadi/include/coin/CoinDenseFactorization.hpp +452 -0
- casadi/include/coin/CoinDenseVector.hpp +401 -0
- casadi/include/coin/CoinDistance.hpp +51 -0
- casadi/include/coin/CoinError.hpp +274 -0
- casadi/include/coin/CoinFactorization.hpp +2178 -0
- casadi/include/coin/CoinFileIO.hpp +185 -0
- casadi/include/coin/CoinFinite.hpp +37 -0
- casadi/include/coin/CoinFloatEqual.hpp +204 -0
- casadi/include/coin/CoinHelperFunctions.hpp +1270 -0
- casadi/include/coin/CoinIndexedVector.hpp +1437 -0
- casadi/include/coin/CoinLpIO.hpp +836 -0
- casadi/include/coin/CoinMessage.hpp +95 -0
- casadi/include/coin/CoinMessageHandler.hpp +717 -0
- casadi/include/coin/CoinModel.hpp +1214 -0
- casadi/include/coin/CoinModelUseful.hpp +518 -0
- casadi/include/coin/CoinMpsIO.hpp +1142 -0
- casadi/include/coin/CoinOslFactorization.hpp +287 -0
- casadi/include/coin/CoinPackedMatrix.hpp +956 -0
- casadi/include/coin/CoinPackedVector.hpp +670 -0
- casadi/include/coin/CoinPackedVectorBase.hpp +274 -0
- casadi/include/coin/CoinParam.hpp +644 -0
- casadi/include/coin/CoinPragma.hpp +29 -0
- casadi/include/coin/CoinPresolveDoubleton.hpp +76 -0
- casadi/include/coin/CoinPresolveDual.hpp +84 -0
- casadi/include/coin/CoinPresolveDupcol.hpp +259 -0
- casadi/include/coin/CoinPresolveEmpty.hpp +120 -0
- casadi/include/coin/CoinPresolveFixed.hpp +185 -0
- casadi/include/coin/CoinPresolveForcing.hpp +69 -0
- casadi/include/coin/CoinPresolveImpliedFree.hpp +66 -0
- casadi/include/coin/CoinPresolveIsolated.hpp +59 -0
- casadi/include/coin/CoinPresolveMatrix.hpp +1996 -0
- casadi/include/coin/CoinPresolveMonitor.hpp +105 -0
- casadi/include/coin/CoinPresolvePsdebug.hpp +169 -0
- casadi/include/coin/CoinPresolveSingleton.hpp +115 -0
- casadi/include/coin/CoinPresolveSubst.hpp +103 -0
- casadi/include/coin/CoinPresolveTighten.hpp +58 -0
- casadi/include/coin/CoinPresolveTripleton.hpp +69 -0
- casadi/include/coin/CoinPresolveUseless.hpp +63 -0
- casadi/include/coin/CoinPresolveZeros.hpp +65 -0
- casadi/include/coin/CoinRational.hpp +43 -0
- casadi/include/coin/CoinSearchTree.hpp +523 -0
- casadi/include/coin/CoinShallowPackedVector.hpp +149 -0
- casadi/include/coin/CoinSignal.hpp +127 -0
- casadi/include/coin/CoinSimpFactorization.hpp +432 -0
- casadi/include/coin/CoinSmartPtr.hpp +548 -0
- casadi/include/coin/CoinSnapshot.hpp +572 -0
- casadi/include/coin/CoinSort.hpp +753 -0
- casadi/include/coin/CoinStructuredModel.hpp +270 -0
- casadi/include/coin/CoinTime.hpp +350 -0
- casadi/include/coin/CoinTypes.hpp +67 -0
- casadi/include/coin/CoinUtility.hpp +26 -0
- casadi/include/coin/CoinUtilsConfig.h +34 -0
- casadi/include/coin/CoinWarmStart.hpp +56 -0
- casadi/include/coin/CoinWarmStartBasis.hpp +468 -0
- casadi/include/coin/CoinWarmStartDual.hpp +180 -0
- casadi/include/coin/CoinWarmStartPrimalDual.hpp +233 -0
- casadi/include/coin/CoinWarmStartVector.hpp +523 -0
- casadi/include/coin/Coin_C_defines.h +149 -0
- casadi/include/coin/Idiot.hpp +327 -0
- casadi/include/coin/OsiAuxInfo.hpp +261 -0
- casadi/include/coin/OsiBranchingObject.hpp +1097 -0
- casadi/include/coin/OsiCbcSolverInterface.hpp +791 -0
- casadi/include/coin/OsiChooseVariable.hpp +645 -0
- casadi/include/coin/OsiClpSolverInterface.hpp +1604 -0
- casadi/include/coin/OsiColCut.hpp +322 -0
- casadi/include/coin/OsiCollections.hpp +34 -0
- casadi/include/coin/OsiConfig.h +19 -0
- casadi/include/coin/OsiCut.hpp +251 -0
- casadi/include/coin/OsiCuts.hpp +505 -0
- casadi/include/coin/OsiPresolve.hpp +272 -0
- casadi/include/coin/OsiRowCut.hpp +345 -0
- casadi/include/coin/OsiRowCutDebugger.hpp +190 -0
- casadi/include/coin/OsiSolverBranch.hpp +169 -0
- casadi/include/coin/OsiSolverInterface.hpp +2221 -0
- casadi/include/coin/OsiSolverParameters.hpp +144 -0
- casadi/include/coin/OsiUnitTests.hpp +390 -0
- casadi/include/coin-or/IpAlgBuilder.hpp +417 -0
- casadi/include/coin-or/IpAlgStrategy.hpp +201 -0
- casadi/include/coin-or/IpAlgTypes.hpp +64 -0
- casadi/include/coin-or/IpAugSystemSolver.hpp +212 -0
- casadi/include/coin-or/IpBlas.hpp +426 -0
- casadi/include/coin-or/IpCachedResults.hpp +897 -0
- casadi/include/coin-or/IpCompoundMatrix.hpp +423 -0
- casadi/include/coin-or/IpCompoundSymMatrix.hpp +348 -0
- casadi/include/coin-or/IpCompoundVector.hpp +395 -0
- casadi/include/coin-or/IpConvCheck.hpp +97 -0
- casadi/include/coin-or/IpDebug.hpp +167 -0
- casadi/include/coin-or/IpDenseVector.hpp +626 -0
- casadi/include/coin-or/IpDiagMatrix.hpp +158 -0
- casadi/include/coin-or/IpEqMultCalculator.hpp +76 -0
- casadi/include/coin-or/IpException.hpp +156 -0
- casadi/include/coin-or/IpExpansionMatrix.hpp +245 -0
- casadi/include/coin-or/IpGenTMatrix.hpp +290 -0
- casadi/include/coin-or/IpHessianUpdater.hpp +73 -0
- casadi/include/coin-or/IpIdentityMatrix.hpp +167 -0
- casadi/include/coin-or/IpIpoptAlg.hpp +257 -0
- casadi/include/coin-or/IpIpoptApplication.hpp +367 -0
- casadi/include/coin-or/IpIpoptCalculatedQuantities.hpp +1009 -0
- casadi/include/coin-or/IpIpoptData.hpp +966 -0
- casadi/include/coin-or/IpIpoptNLP.hpp +328 -0
- casadi/include/coin-or/IpIterateInitializer.hpp +68 -0
- casadi/include/coin-or/IpIteratesVector.hpp +840 -0
- casadi/include/coin-or/IpIterationOutput.hpp +78 -0
- casadi/include/coin-or/IpJournalist.hpp +573 -0
- casadi/include/coin-or/IpLapack.hpp +227 -0
- casadi/include/coin-or/IpLibraryLoader.hpp +76 -0
- casadi/include/coin-or/IpLineSearch.hpp +106 -0
- casadi/include/coin-or/IpLinearSolvers.h +46 -0
- casadi/include/coin-or/IpMatrix.hpp +434 -0
- casadi/include/coin-or/IpMuUpdate.hpp +77 -0
- casadi/include/coin-or/IpNLP.hpp +306 -0
- casadi/include/coin-or/IpNLPScaling.hpp +582 -0
- casadi/include/coin-or/IpObserver.hpp +422 -0
- casadi/include/coin-or/IpOptionsList.hpp +412 -0
- casadi/include/coin-or/IpOrigIpoptNLP.hpp +603 -0
- casadi/include/coin-or/IpPDSystemSolver.hpp +137 -0
- casadi/include/coin-or/IpReferenced.hpp +262 -0
- casadi/include/coin-or/IpRegOptions.hpp +1152 -0
- casadi/include/coin-or/IpReturnCodes.h +23 -0
- casadi/include/coin-or/IpReturnCodes.hpp +18 -0
- casadi/include/coin-or/IpReturnCodes.inc +71 -0
- casadi/include/coin-or/IpReturnCodes_inc.h +45 -0
- casadi/include/coin-or/IpScaledMatrix.hpp +291 -0
- casadi/include/coin-or/IpSearchDirCalculator.hpp +72 -0
- casadi/include/coin-or/IpSmartPtr.hpp +865 -0
- casadi/include/coin-or/IpSolveStatistics.hpp +210 -0
- casadi/include/coin-or/IpSparseSymLinearSolverInterface.hpp +260 -0
- casadi/include/coin-or/IpStdAugSystemSolver.cpp +555 -0
- casadi/include/coin-or/IpStdCInterface.h +428 -0
- casadi/include/coin-or/IpSumSymMatrix.hpp +186 -0
- casadi/include/coin-or/IpSymLinearSolver.hpp +141 -0
- casadi/include/coin-or/IpSymMatrix.hpp +167 -0
- casadi/include/coin-or/IpSymScaledMatrix.hpp +255 -0
- casadi/include/coin-or/IpSymTMatrix.hpp +275 -0
- casadi/include/coin-or/IpTNLP.hpp +820 -0
- casadi/include/coin-or/IpTNLPAdapter.hpp +648 -0
- casadi/include/coin-or/IpTNLPReducer.hpp +274 -0
- casadi/include/coin-or/IpTaggedObject.hpp +128 -0
- casadi/include/coin-or/IpTimedTask.hpp +218 -0
- casadi/include/coin-or/IpTimingStatistics.hpp +323 -0
- casadi/include/coin-or/IpTripletHelper.hpp +308 -0
- casadi/include/coin-or/IpTypes.h +81 -0
- casadi/include/coin-or/IpTypes.hpp +30 -0
- casadi/include/coin-or/IpUtils.hpp +166 -0
- casadi/include/coin-or/IpVector.hpp +892 -0
- casadi/include/coin-or/IpZeroSymMatrix.hpp +155 -0
- casadi/include/coin-or/IpoptConfig.h +45 -0
- casadi/include/coin-or/SensAlgorithm.hpp +114 -0
- casadi/include/coin-or/SensApplication.hpp +188 -0
- casadi/include/coin-or/SensBacksolver.hpp +36 -0
- casadi/include/coin-or/SensMeasurement.hpp +56 -0
- casadi/include/coin-or/SensPCalculator.hpp +137 -0
- casadi/include/coin-or/SensRegOp.hpp +21 -0
- casadi/include/coin-or/SensSchurData.hpp +182 -0
- casadi/include/coin-or/SensSchurDriver.hpp +118 -0
- casadi/include/coin-or/SensSimpleBacksolver.hpp +49 -0
- casadi/include/coin-or/SensStepCalc.hpp +85 -0
- casadi/include/coin-or/SensUtils.hpp +63 -0
- casadi/include/coin-or/metis/defs.h +161 -0
- casadi/include/coin-or/metis/macros.h +143 -0
- casadi/include/coin-or/metis/metis.h +37 -0
- casadi/include/coin-or/metis/proto.h +505 -0
- casadi/include/coin-or/metis/rename.h +418 -0
- casadi/include/coin-or/metis/struct.h +251 -0
- casadi/include/coin-or/mumps/dmumps_c.h +142 -0
- casadi/include/coin-or/mumps/mumps_c_types.h +72 -0
- casadi/include/coin-or/mumps/mumps_compat.h +27 -0
- casadi/include/coin-or/mumps/mumps_int_def.h +11 -0
- casadi/include/coin-or/mumps/mumps_mpi.h +67 -0
- casadi/include/d_blas.h +78 -0
- casadi/include/d_blas_64.h +73 -0
- casadi/include/openblas/cblas.h +411 -0
- casadi/include/openblas/f77blas.h +796 -0
- casadi/include/openblas/lapack.h +22997 -0
- casadi/include/openblas/lapacke.h +12665 -0
- casadi/include/openblas/lapacke_config.h +119 -0
- casadi/include/openblas/lapacke_example_aux.h +9 -0
- casadi/include/openblas/lapacke_mangling.h +17 -0
- casadi/include/openblas/lapacke_utils.h +582 -0
- casadi/include/openblas/openblas/lapacke_mangling.h +17 -0
- casadi/include/openblas/openblas_config.h +139 -0
- casadi/include/qdldl/qdldl.h +169 -0
- casadi/include/qdldl/qdldl_types.h +23 -0
- casadi/include/s_blas.h +78 -0
- casadi/include/s_blas_64.h +73 -0
- casadi/lib64/libtinyxml2.a +0 -0
- casadi/libCbc.la +3 -3
- casadi/libCbc.so +0 -0
- casadi/libCbc.so.3 +0 -0
- casadi/libCbc.so.3.10.11 +0 -0
- casadi/libCbcSolver.la +3 -3
- casadi/libCbcSolver.so +0 -0
- casadi/libCbcSolver.so.3 +0 -0
- casadi/libCbcSolver.so.3.10.11 +0 -0
- casadi/libCgl.la +2 -2
- casadi/libCgl.so +0 -0
- casadi/libCgl.so.1 +0 -0
- casadi/libCgl.so.1.10.8 +0 -0
- casadi/libClp.la +2 -2
- casadi/libClp.so +0 -0
- casadi/libClp.so.1 +0 -0
- casadi/libClp.so.1.14.9 +0 -0
- casadi/libClpSolver.la +2 -2
- casadi/libClpSolver.so +0 -0
- casadi/libClpSolver.so.1 +0 -0
- casadi/{libClpSolver.so.1.14.7 → libClpSolver.so.1.14.9} +0 -0
- casadi/libCoinUtils.la +2 -2
- casadi/libCoinUtils.so +0 -0
- casadi/libCoinUtils.so.3 +0 -0
- casadi/libCoinUtils.so.3.11.10 +0 -0
- casadi/libOsi.la +2 -2
- casadi/libOsiCbc.la +3 -3
- casadi/libOsiCbc.so +0 -0
- casadi/libOsiCbc.so.3 +0 -0
- casadi/{libOsiCbc.so.3.10.6 → libOsiCbc.so.3.10.11} +0 -0
- casadi/libOsiClp.la +2 -2
- casadi/libOsiClp.so +0 -0
- casadi/libOsiClp.so.1 +0 -0
- casadi/libOsiClp.so.1.14.9 +0 -0
- casadi/libOsiCommonTests.la +2 -2
- casadi/libOsiCommonTests.so +0 -0
- casadi/libOsiCommonTests.so.1 +0 -0
- casadi/{libOsiCommonTests.so.1.13.7 → libOsiCommonTests.so.1.13.9} +0 -0
- casadi/libbonmin.la +3 -3
- casadi/libbonmin.so +0 -0
- casadi/libbonmin.so.4 +0 -0
- casadi/libbonmin.so.4.8.9 +0 -0
- casadi/libcasadi.so +0 -0
- casadi/libcasadi.so.3.7 +0 -0
- casadi/libcasadi_conic_cbc.so +0 -0
- casadi/libcasadi_conic_cbc.so.3.7 +0 -0
- casadi/libcasadi_conic_clp.so +0 -0
- casadi/libcasadi_conic_clp.so.3.7 +0 -0
- casadi/libcasadi_conic_cplex.so +0 -0
- casadi/libcasadi_conic_cplex.so.3.7 +0 -0
- casadi/libcasadi_conic_gurobi.so +0 -0
- casadi/libcasadi_conic_gurobi.so.3.7 +0 -0
- casadi/libcasadi_conic_hpipm.so +0 -0
- casadi/libcasadi_conic_hpipm.so.3.7 +0 -0
- casadi/libcasadi_conic_ipqp.so +0 -0
- casadi/libcasadi_conic_ipqp.so.3.7 +0 -0
- casadi/libcasadi_conic_nlpsol.so +0 -0
- casadi/libcasadi_conic_nlpsol.so.3.7 +0 -0
- casadi/libcasadi_conic_osqp.so +0 -0
- casadi/libcasadi_conic_osqp.so.3.7 +0 -0
- casadi/libcasadi_conic_qpoases.so +0 -0
- casadi/libcasadi_conic_qpoases.so.3.7 +0 -0
- casadi/libcasadi_conic_qrqp.so +0 -0
- casadi/libcasadi_conic_qrqp.so.3.7 +0 -0
- casadi/libcasadi_conic_superscs.so +0 -0
- casadi/libcasadi_conic_superscs.so.3.7 +0 -0
- casadi/libcasadi_integrator_collocation.so +0 -0
- casadi/libcasadi_integrator_collocation.so.3.7 +0 -0
- casadi/libcasadi_integrator_cvodes.so +0 -0
- casadi/libcasadi_integrator_cvodes.so.3.7 +0 -0
- casadi/libcasadi_integrator_idas.so +0 -0
- casadi/libcasadi_integrator_idas.so.3.7 +0 -0
- casadi/libcasadi_interpolant_bspline.so +0 -0
- casadi/libcasadi_interpolant_bspline.so.3.7 +0 -0
- casadi/libcasadi_interpolant_linear.so +0 -0
- casadi/libcasadi_interpolant_linear.so.3.7 +0 -0
- casadi/libcasadi_linsol_lapacklu.so +0 -0
- casadi/libcasadi_linsol_lapacklu.so.3.7 +0 -0
- casadi/libcasadi_linsol_lapackqr.so +0 -0
- casadi/libcasadi_linsol_lapackqr.so.3.7 +0 -0
- casadi/libcasadi_linsol_ldl.so +0 -0
- casadi/libcasadi_linsol_ldl.so.3.7 +0 -0
- casadi/libcasadi_linsol_mumps.so +0 -0
- casadi/libcasadi_linsol_mumps.so.3.7 +0 -0
- casadi/libcasadi_linsol_qr.so +0 -0
- casadi/libcasadi_linsol_qr.so.3.7 +0 -0
- casadi/libcasadi_linsol_symbolicqr.so +0 -0
- casadi/libcasadi_linsol_symbolicqr.so.3.7 +0 -0
- casadi/libcasadi_nlpsol_ampl.so +0 -0
- casadi/libcasadi_nlpsol_ampl.so.3.7 +0 -0
- casadi/libcasadi_nlpsol_blocksqp.so +0 -0
- casadi/libcasadi_nlpsol_blocksqp.so.3.7 +0 -0
- casadi/libcasadi_nlpsol_bonmin.so +0 -0
- casadi/libcasadi_nlpsol_bonmin.so.3.7 +0 -0
- casadi/libcasadi_nlpsol_feasiblesqpmethod.so +0 -0
- casadi/libcasadi_nlpsol_feasiblesqpmethod.so.3.7 +0 -0
- casadi/libcasadi_nlpsol_ipopt.so +0 -0
- casadi/libcasadi_nlpsol_ipopt.so.3.7 +0 -0
- casadi/libcasadi_nlpsol_knitro.so +0 -0
- casadi/libcasadi_nlpsol_knitro.so.3.7 +0 -0
- casadi/libcasadi_nlpsol_qrsqp.so +0 -0
- casadi/libcasadi_nlpsol_qrsqp.so.3.7 +0 -0
- casadi/libcasadi_nlpsol_scpgen.so +0 -0
- casadi/libcasadi_nlpsol_scpgen.so.3.7 +0 -0
- casadi/libcasadi_nlpsol_snopt.so +0 -0
- casadi/libcasadi_nlpsol_snopt.so.3.7 +0 -0
- casadi/libcasadi_nlpsol_sqpmethod.so +0 -0
- casadi/libcasadi_nlpsol_sqpmethod.so.3.7 +0 -0
- casadi/libcasadi_nlpsol_worhp.so +0 -0
- casadi/libcasadi_nlpsol_worhp.so.3.7 +0 -0
- casadi/libcasadi_rootfinder_fast_newton.so +0 -0
- casadi/libcasadi_rootfinder_fast_newton.so.3.7 +0 -0
- casadi/libcasadi_rootfinder_newton.so +0 -0
- casadi/libcasadi_rootfinder_newton.so.3.7 +0 -0
- casadi/libcasadi_sundials_common.so +0 -0
- casadi/libcasadi_sundials_common.so.3.7 +0 -0
- casadi/libindirect.a +0 -0
- casadi/liblinsys.a +0 -0
- casadi/libosqp.a +0 -0
- casadi/libqdldl.a +0 -0
- casadi/libsuperscs.a +0 -0
- casadi/pkgconfig/blas.pc +11 -0
- casadi/pkgconfig/bonmin.pc +1 -1
- casadi/pkgconfig/casadi.pc +1 -1
- casadi/pkgconfig/cbc.pc +2 -2
- casadi/pkgconfig/cgl.pc +2 -2
- casadi/pkgconfig/clp.pc +1 -1
- casadi/pkgconfig/coinutils.pc +1 -1
- casadi/pkgconfig/lapack.pc +11 -0
- casadi/pkgconfig/openblas.pc +1 -1
- casadi/pkgconfig/osi-cbc.pc +1 -1
- casadi/pkgconfig/osi-clp.pc +1 -1
- casadi/pkgconfig/osi-unittests.pc +1 -1
- casadi/pkgconfig/osi.pc +1 -1
- {casadi-3.6.3.dist-info → casadi-3.6.5.dist-info}/METADATA +11 -3
- casadi-3.6.5.dist-info/RECORD +987 -0
- casadi/libCbc.so.3.10.6 +0 -0
- casadi/libCbcSolver.so.3.10.6 +0 -0
- casadi/libCgl.so.1.10.4 +0 -0
- casadi/libClp.so.1.14.7 +0 -0
- casadi/libCoinUtils.so.3.11.6 +0 -0
- casadi/libOsiClp.so.1.14.7 +0 -0
- casadi/libbonmin.so.4.8.8 +0 -0
- casadi-3.6.3.dist-info/RECORD +0 -581
- /casadi/{libOsi.so.1.13.7 → libOsi.so.1.13.9} +0 -0
- {casadi-3.6.3.dist-info → casadi-3.6.5.dist-info}/WHEEL +0 -0
@@ -0,0 +1,518 @@
|
|
1
|
+
/* $Id$ */
|
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 CoinModelUseful_H
|
7
|
+
#define CoinModelUseful_H
|
8
|
+
|
9
|
+
#include <cstdlib>
|
10
|
+
#include <cmath>
|
11
|
+
#include <cassert>
|
12
|
+
#include <cfloat>
|
13
|
+
#include <cstring>
|
14
|
+
#include <cstdio>
|
15
|
+
#include <iostream>
|
16
|
+
|
17
|
+
#include "CoinTypes.hpp"
|
18
|
+
#include "CoinPragma.hpp"
|
19
|
+
|
20
|
+
/**
|
21
|
+
This is for various structures/classes needed by CoinModel.
|
22
|
+
|
23
|
+
CoinModelLink
|
24
|
+
CoinModelLinkedList
|
25
|
+
CoinModelHash
|
26
|
+
*/
|
27
|
+
/// for going through row or column
|
28
|
+
|
29
|
+
class CoinModelLink {
|
30
|
+
|
31
|
+
public:
|
32
|
+
/**@name Constructors, destructor */
|
33
|
+
//@{
|
34
|
+
/** Default constructor. */
|
35
|
+
CoinModelLink();
|
36
|
+
/** Destructor */
|
37
|
+
~CoinModelLink();
|
38
|
+
//@}
|
39
|
+
|
40
|
+
/**@name Copy method */
|
41
|
+
//@{
|
42
|
+
/** The copy constructor. */
|
43
|
+
CoinModelLink(const CoinModelLink &);
|
44
|
+
/// =
|
45
|
+
CoinModelLink &operator=(const CoinModelLink &);
|
46
|
+
//@}
|
47
|
+
|
48
|
+
/**@name Sets and gets method */
|
49
|
+
//@{
|
50
|
+
/// Get row
|
51
|
+
inline int row() const
|
52
|
+
{
|
53
|
+
return row_;
|
54
|
+
}
|
55
|
+
/// Get column
|
56
|
+
inline int column() const
|
57
|
+
{
|
58
|
+
return column_;
|
59
|
+
}
|
60
|
+
/// Get value
|
61
|
+
inline double value() const
|
62
|
+
{
|
63
|
+
return value_;
|
64
|
+
}
|
65
|
+
/// Get value
|
66
|
+
inline double element() const
|
67
|
+
{
|
68
|
+
return value_;
|
69
|
+
}
|
70
|
+
/// Get position
|
71
|
+
inline CoinBigIndex position() const
|
72
|
+
{
|
73
|
+
return position_;
|
74
|
+
}
|
75
|
+
/// Get onRow
|
76
|
+
inline bool onRow() const
|
77
|
+
{
|
78
|
+
return onRow_;
|
79
|
+
}
|
80
|
+
/// Set row
|
81
|
+
inline void setRow(int row)
|
82
|
+
{
|
83
|
+
row_ = row;
|
84
|
+
}
|
85
|
+
/// Set column
|
86
|
+
inline void setColumn(int column)
|
87
|
+
{
|
88
|
+
column_ = column;
|
89
|
+
}
|
90
|
+
/// Set value
|
91
|
+
inline void setValue(double value)
|
92
|
+
{
|
93
|
+
value_ = value;
|
94
|
+
}
|
95
|
+
/// Set value
|
96
|
+
inline void setElement(double value)
|
97
|
+
{
|
98
|
+
value_ = value;
|
99
|
+
}
|
100
|
+
/// Set position
|
101
|
+
inline void setPosition(CoinBigIndex position)
|
102
|
+
{
|
103
|
+
position_ = position;
|
104
|
+
}
|
105
|
+
/// Set onRow
|
106
|
+
inline void setOnRow(bool onRow)
|
107
|
+
{
|
108
|
+
onRow_ = onRow;
|
109
|
+
}
|
110
|
+
//@}
|
111
|
+
|
112
|
+
private:
|
113
|
+
/**@name Data members */
|
114
|
+
//@{
|
115
|
+
/// Row
|
116
|
+
int row_;
|
117
|
+
/// Column
|
118
|
+
int column_;
|
119
|
+
/// Value as double
|
120
|
+
double value_;
|
121
|
+
/// Position in data
|
122
|
+
CoinBigIndex position_;
|
123
|
+
/// If on row chain
|
124
|
+
bool onRow_;
|
125
|
+
//@}
|
126
|
+
};
|
127
|
+
|
128
|
+
/// for linked lists
|
129
|
+
// for specifying triple
|
130
|
+
typedef struct {
|
131
|
+
// top bit is nonzero if string
|
132
|
+
// rest is row
|
133
|
+
unsigned int row;
|
134
|
+
//CoinModelRowIndex row;
|
135
|
+
int column;
|
136
|
+
double value; // If string then index into strings
|
137
|
+
} CoinModelTriple;
|
138
|
+
inline int rowInTriple(const CoinModelTriple &triple)
|
139
|
+
{
|
140
|
+
return triple.row & 0x7fffffff;
|
141
|
+
}
|
142
|
+
inline void setRowInTriple(CoinModelTriple &triple, int iRow)
|
143
|
+
{
|
144
|
+
triple.row = iRow | (triple.row & 0x80000000);
|
145
|
+
}
|
146
|
+
inline bool stringInTriple(const CoinModelTriple &triple)
|
147
|
+
{
|
148
|
+
return (triple.row & 0x80000000) != 0;
|
149
|
+
}
|
150
|
+
inline void setStringInTriple(CoinModelTriple &triple, bool string)
|
151
|
+
{
|
152
|
+
triple.row = (string ? 0x80000000 : 0) | (triple.row & 0x7fffffff);
|
153
|
+
}
|
154
|
+
inline void setRowAndStringInTriple(CoinModelTriple &triple,
|
155
|
+
int iRow, bool string)
|
156
|
+
{
|
157
|
+
triple.row = (string ? 0x80000000 : 0) | iRow;
|
158
|
+
}
|
159
|
+
/// for names and hashing
|
160
|
+
// for hashing
|
161
|
+
typedef struct {
|
162
|
+
int index, next;
|
163
|
+
} CoinModelHashLink;
|
164
|
+
typedef struct {
|
165
|
+
CoinBigIndex index, next;
|
166
|
+
} CoinModelHashLink2;
|
167
|
+
|
168
|
+
/* Function type. */
|
169
|
+
typedef double (*func_t)(double);
|
170
|
+
|
171
|
+
/// For string evaluation
|
172
|
+
/* Data type for links in the chain of symbols. */
|
173
|
+
struct symrec {
|
174
|
+
char *name; /* name of symbol */
|
175
|
+
int type; /* type of symbol: either VAR or FNCT */
|
176
|
+
union {
|
177
|
+
double var; /* value of a VAR */
|
178
|
+
func_t fnctptr; /* value of a FNCT */
|
179
|
+
} value;
|
180
|
+
struct symrec *next; /* link field */
|
181
|
+
};
|
182
|
+
|
183
|
+
typedef struct symrec symrec;
|
184
|
+
|
185
|
+
class CoinYacc {
|
186
|
+
private:
|
187
|
+
CoinYacc(const CoinYacc &rhs);
|
188
|
+
CoinYacc &operator=(const CoinYacc &rhs);
|
189
|
+
|
190
|
+
public:
|
191
|
+
CoinYacc()
|
192
|
+
: symtable(NULL)
|
193
|
+
, symbuf(NULL)
|
194
|
+
, length(0)
|
195
|
+
, unsetValue(0)
|
196
|
+
{
|
197
|
+
}
|
198
|
+
~CoinYacc()
|
199
|
+
{
|
200
|
+
if (length) {
|
201
|
+
free(symbuf);
|
202
|
+
symbuf = NULL;
|
203
|
+
}
|
204
|
+
symrec *s = symtable;
|
205
|
+
while (s) {
|
206
|
+
free(s->name);
|
207
|
+
symtable = s;
|
208
|
+
s = s->next;
|
209
|
+
free(symtable);
|
210
|
+
}
|
211
|
+
}
|
212
|
+
|
213
|
+
public:
|
214
|
+
symrec *symtable;
|
215
|
+
char *symbuf;
|
216
|
+
int length;
|
217
|
+
double unsetValue;
|
218
|
+
};
|
219
|
+
|
220
|
+
class CoinModelHash {
|
221
|
+
|
222
|
+
public:
|
223
|
+
/**@name Constructors, destructor */
|
224
|
+
//@{
|
225
|
+
/** Default constructor. */
|
226
|
+
CoinModelHash();
|
227
|
+
/** Destructor */
|
228
|
+
~CoinModelHash();
|
229
|
+
//@}
|
230
|
+
|
231
|
+
/**@name Copy method */
|
232
|
+
//@{
|
233
|
+
/** The copy constructor. */
|
234
|
+
CoinModelHash(const CoinModelHash &);
|
235
|
+
/// =
|
236
|
+
CoinModelHash &operator=(const CoinModelHash &);
|
237
|
+
//@}
|
238
|
+
|
239
|
+
/**@name sizing (just increases) */
|
240
|
+
//@{
|
241
|
+
/// Resize hash (also re-hashs)
|
242
|
+
void resize(int maxItems, bool forceReHash = false);
|
243
|
+
/// Number of items i.e. rows if just row names
|
244
|
+
inline int numberItems() const
|
245
|
+
{
|
246
|
+
return numberItems_;
|
247
|
+
}
|
248
|
+
/// Set number of items
|
249
|
+
void setNumberItems(int number);
|
250
|
+
/// Maximum number of items
|
251
|
+
inline int maximumItems() const
|
252
|
+
{
|
253
|
+
return maximumItems_;
|
254
|
+
}
|
255
|
+
/// Names
|
256
|
+
inline const char *const *names() const
|
257
|
+
{
|
258
|
+
return names_;
|
259
|
+
}
|
260
|
+
//@}
|
261
|
+
|
262
|
+
/**@name hashing */
|
263
|
+
//@{
|
264
|
+
/// Returns index or -1
|
265
|
+
int hash(const char *name) const;
|
266
|
+
/// Adds to hash
|
267
|
+
void addHash(int index, const char *name);
|
268
|
+
/// Deletes from hash
|
269
|
+
void deleteHash(int index);
|
270
|
+
/// Returns name at position (or NULL)
|
271
|
+
const char *name(int which) const;
|
272
|
+
/// Returns non const name at position (or NULL)
|
273
|
+
char *getName(int which) const;
|
274
|
+
/// Sets name at position (does not create)
|
275
|
+
void setName(int which, char *name);
|
276
|
+
/// Validates
|
277
|
+
void validateHash() const;
|
278
|
+
|
279
|
+
private:
|
280
|
+
/// Returns a hash value
|
281
|
+
int hashValue(const char *name) const;
|
282
|
+
|
283
|
+
public:
|
284
|
+
//@}
|
285
|
+
private:
|
286
|
+
/**@name Data members */
|
287
|
+
//@{
|
288
|
+
/// Names
|
289
|
+
char **names_;
|
290
|
+
/// hash
|
291
|
+
CoinModelHashLink *hash_;
|
292
|
+
/// Number of items
|
293
|
+
int numberItems_;
|
294
|
+
/// Maximum number of items
|
295
|
+
int maximumItems_;
|
296
|
+
/// Last slot looked at
|
297
|
+
int lastSlot_;
|
298
|
+
//@}
|
299
|
+
};
|
300
|
+
/// For int,int hashing
|
301
|
+
class CoinModelHash2 {
|
302
|
+
|
303
|
+
public:
|
304
|
+
/**@name Constructors, destructor */
|
305
|
+
//@{
|
306
|
+
/** Default constructor. */
|
307
|
+
CoinModelHash2();
|
308
|
+
/** Destructor */
|
309
|
+
~CoinModelHash2();
|
310
|
+
//@}
|
311
|
+
|
312
|
+
/**@name Copy method */
|
313
|
+
//@{
|
314
|
+
/** The copy constructor. */
|
315
|
+
CoinModelHash2(const CoinModelHash2 &);
|
316
|
+
/// =
|
317
|
+
CoinModelHash2 &operator=(const CoinModelHash2 &);
|
318
|
+
//@}
|
319
|
+
|
320
|
+
/**@name sizing (just increases) */
|
321
|
+
//@{
|
322
|
+
/// Resize hash (also re-hashs)
|
323
|
+
void resize(CoinBigIndex maxItems, const CoinModelTriple *triples, bool forceReHash = false);
|
324
|
+
/// Number of items
|
325
|
+
inline CoinBigIndex numberItems() const
|
326
|
+
{
|
327
|
+
return numberItems_;
|
328
|
+
}
|
329
|
+
/// Set number of items
|
330
|
+
void setNumberItems(CoinBigIndex number);
|
331
|
+
/// Maximum number of items
|
332
|
+
inline CoinBigIndex maximumItems() const
|
333
|
+
{
|
334
|
+
return maximumItems_;
|
335
|
+
}
|
336
|
+
//@}
|
337
|
+
|
338
|
+
/**@name hashing */
|
339
|
+
//@{
|
340
|
+
/// Returns index or -1
|
341
|
+
CoinBigIndex hash(int row, int column, const CoinModelTriple *triples) const;
|
342
|
+
/// Adds to hash
|
343
|
+
void addHash(CoinBigIndex index, int row, int column, const CoinModelTriple *triples);
|
344
|
+
/// Deletes from hash
|
345
|
+
void deleteHash(CoinBigIndex index, int row, int column);
|
346
|
+
|
347
|
+
private:
|
348
|
+
/// Returns a hash value
|
349
|
+
CoinBigIndex hashValue(int row, int column) const;
|
350
|
+
|
351
|
+
public:
|
352
|
+
//@}
|
353
|
+
private:
|
354
|
+
/**@name Data members */
|
355
|
+
//@{
|
356
|
+
/// hash
|
357
|
+
CoinModelHashLink2 *hash_;
|
358
|
+
/// Number of items
|
359
|
+
CoinBigIndex numberItems_;
|
360
|
+
/// Maximum number of items
|
361
|
+
CoinBigIndex maximumItems_;
|
362
|
+
/// Last slot looked at
|
363
|
+
CoinBigIndex lastSlot_;
|
364
|
+
//@}
|
365
|
+
};
|
366
|
+
class CoinModelLinkedList {
|
367
|
+
|
368
|
+
public:
|
369
|
+
/**@name Constructors, destructor */
|
370
|
+
//@{
|
371
|
+
/** Default constructor. */
|
372
|
+
CoinModelLinkedList();
|
373
|
+
/** Destructor */
|
374
|
+
~CoinModelLinkedList();
|
375
|
+
//@}
|
376
|
+
|
377
|
+
/**@name Copy method */
|
378
|
+
//@{
|
379
|
+
/** The copy constructor. */
|
380
|
+
CoinModelLinkedList(const CoinModelLinkedList &);
|
381
|
+
/// =
|
382
|
+
CoinModelLinkedList &operator=(const CoinModelLinkedList &);
|
383
|
+
//@}
|
384
|
+
|
385
|
+
/**@name sizing (just increases) */
|
386
|
+
//@{
|
387
|
+
/** Resize list - for row list maxMajor is maximum rows.
|
388
|
+
*/
|
389
|
+
void resize(int maxMajor, CoinBigIndex maxElements);
|
390
|
+
/** Create list - for row list maxMajor is maximum rows.
|
391
|
+
type 0 row list, 1 column list
|
392
|
+
*/
|
393
|
+
void create(int maxMajor, CoinBigIndex maxElements,
|
394
|
+
int numberMajor, int numberMinor,
|
395
|
+
int type,
|
396
|
+
CoinBigIndex numberElements, const CoinModelTriple *triples);
|
397
|
+
/// Number of major items i.e. rows if just row links
|
398
|
+
inline int numberMajor() const
|
399
|
+
{
|
400
|
+
return numberMajor_;
|
401
|
+
}
|
402
|
+
/// Maximum number of major items i.e. rows if just row links
|
403
|
+
inline int maximumMajor() const
|
404
|
+
{
|
405
|
+
return maximumMajor_;
|
406
|
+
}
|
407
|
+
/// Number of elements
|
408
|
+
inline CoinBigIndex numberElements() const
|
409
|
+
{
|
410
|
+
return numberElements_;
|
411
|
+
}
|
412
|
+
/// Maximum number of elements
|
413
|
+
inline CoinBigIndex maximumElements() const
|
414
|
+
{
|
415
|
+
return maximumElements_;
|
416
|
+
}
|
417
|
+
/// First on free chain
|
418
|
+
inline CoinBigIndex firstFree() const
|
419
|
+
{
|
420
|
+
return first_[maximumMajor_];
|
421
|
+
}
|
422
|
+
/// Last on free chain
|
423
|
+
inline CoinBigIndex lastFree() const
|
424
|
+
{
|
425
|
+
return last_[maximumMajor_];
|
426
|
+
}
|
427
|
+
/// First on chain
|
428
|
+
inline CoinBigIndex first(int which) const
|
429
|
+
{
|
430
|
+
return first_[which];
|
431
|
+
}
|
432
|
+
/// Last on chain
|
433
|
+
inline CoinBigIndex last(int which) const
|
434
|
+
{
|
435
|
+
return last_[which];
|
436
|
+
}
|
437
|
+
/// Next array
|
438
|
+
inline const CoinBigIndex *next() const
|
439
|
+
{
|
440
|
+
return next_;
|
441
|
+
}
|
442
|
+
/// Previous array
|
443
|
+
inline const CoinBigIndex *previous() const
|
444
|
+
{
|
445
|
+
return previous_;
|
446
|
+
}
|
447
|
+
//@}
|
448
|
+
|
449
|
+
/**@name does work */
|
450
|
+
//@{
|
451
|
+
/** Adds to list - easy case i.e. add row to row list
|
452
|
+
Returns where chain starts
|
453
|
+
*/
|
454
|
+
CoinBigIndex addEasy(int majorIndex, CoinBigIndex numberOfElements, const int *indices,
|
455
|
+
const double *elements, CoinModelTriple *triples,
|
456
|
+
CoinModelHash2 &hash);
|
457
|
+
/** Adds to list - hard case i.e. add row to column list
|
458
|
+
*/
|
459
|
+
void addHard(int minorIndex, CoinBigIndex numberOfElements, const int *indices,
|
460
|
+
const double *elements, CoinModelTriple *triples,
|
461
|
+
CoinModelHash2 &hash);
|
462
|
+
/** Adds to list - hard case i.e. add row to column list
|
463
|
+
This is when elements have been added to other copy
|
464
|
+
*/
|
465
|
+
void addHard(CoinBigIndex first, const CoinModelTriple *triples,
|
466
|
+
CoinBigIndex firstFree, CoinBigIndex lastFree, const CoinBigIndex *nextOther);
|
467
|
+
/** Deletes from list - same case i.e. delete row from row list
|
468
|
+
*/
|
469
|
+
void deleteSame(int which, CoinModelTriple *triples,
|
470
|
+
CoinModelHash2 &hash, bool zapTriples);
|
471
|
+
/** Deletes from list - other case i.e. delete row from column list
|
472
|
+
This is when elements have been deleted from other copy
|
473
|
+
*/
|
474
|
+
void updateDeleted(int which, CoinModelTriple *triples,
|
475
|
+
CoinModelLinkedList &otherList);
|
476
|
+
/** Deletes one element from Row list
|
477
|
+
*/
|
478
|
+
void deleteRowOne(CoinBigIndex position, CoinModelTriple *triples,
|
479
|
+
CoinModelHash2 &hash);
|
480
|
+
/** Update column list for one element when
|
481
|
+
one element deleted from row copy
|
482
|
+
*/
|
483
|
+
void updateDeletedOne(CoinBigIndex position, const CoinModelTriple *triples);
|
484
|
+
/// Fills first,last with -1
|
485
|
+
void fill(int first, int last);
|
486
|
+
/** Puts in free list from other list */
|
487
|
+
void synchronize(CoinModelLinkedList &other);
|
488
|
+
/// Checks that links are consistent
|
489
|
+
void validateLinks(const CoinModelTriple *triples) const;
|
490
|
+
//@}
|
491
|
+
private:
|
492
|
+
/**@name Data members */
|
493
|
+
//@{
|
494
|
+
/// Previous - maximumElements long
|
495
|
+
CoinBigIndex *previous_;
|
496
|
+
/// Next - maximumElements long
|
497
|
+
CoinBigIndex *next_;
|
498
|
+
/// First - maximumMajor+1 long (last free element chain)
|
499
|
+
CoinBigIndex *first_;
|
500
|
+
/// Last - maximumMajor+1 long (last free element chain)
|
501
|
+
CoinBigIndex *last_;
|
502
|
+
/// Number of major items i.e. rows if just row links
|
503
|
+
int numberMajor_;
|
504
|
+
/// Maximum number of major items i.e. rows if just row links
|
505
|
+
int maximumMajor_;
|
506
|
+
/// Number of elements
|
507
|
+
CoinBigIndex numberElements_;
|
508
|
+
/// Maximum number of elements
|
509
|
+
CoinBigIndex maximumElements_;
|
510
|
+
/// 0 row list, 1 column list
|
511
|
+
int type_;
|
512
|
+
//@}
|
513
|
+
};
|
514
|
+
|
515
|
+
#endif
|
516
|
+
|
517
|
+
/* vi: softtabstop=2 shiftwidth=2 expandtab tabstop=2
|
518
|
+
*/
|