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,185 @@
|
|
1
|
+
/* $Id$ */
|
2
|
+
// Copyright (C) 2005, COIN-OR. All Rights Reserved.
|
3
|
+
// This code is licensed under the terms of the Eclipse Public License (EPL).
|
4
|
+
|
5
|
+
#ifndef CoinFileIO_H
|
6
|
+
#define CoinFileIO_H
|
7
|
+
|
8
|
+
#include <string>
|
9
|
+
|
10
|
+
/// Base class for FileIO classes.
|
11
|
+
class CoinFileIOBase {
|
12
|
+
public:
|
13
|
+
/// Constructor.
|
14
|
+
/// @param fileName The name of the file used by this object.
|
15
|
+
CoinFileIOBase(const std::string &fileName);
|
16
|
+
|
17
|
+
/// Destructor.
|
18
|
+
~CoinFileIOBase();
|
19
|
+
|
20
|
+
/// Return the name of the file used by this object.
|
21
|
+
const char *getFileName() const;
|
22
|
+
|
23
|
+
/// Return the method of reading being used
|
24
|
+
inline std::string getReadType() const
|
25
|
+
{
|
26
|
+
return readType_.c_str();
|
27
|
+
}
|
28
|
+
|
29
|
+
protected:
|
30
|
+
std::string readType_;
|
31
|
+
|
32
|
+
private:
|
33
|
+
CoinFileIOBase();
|
34
|
+
CoinFileIOBase(const CoinFileIOBase &);
|
35
|
+
|
36
|
+
std::string fileName_;
|
37
|
+
};
|
38
|
+
|
39
|
+
/// Abstract base class for file input classes.
|
40
|
+
class CoinFileInput : public CoinFileIOBase {
|
41
|
+
public:
|
42
|
+
/// indicates whether CoinFileInput supports gzip'ed files
|
43
|
+
static bool haveGzipSupport();
|
44
|
+
/// indicates whether CoinFileInput supports bzip2'ed files
|
45
|
+
static bool haveBzip2Support();
|
46
|
+
|
47
|
+
/// Factory method, that creates a CoinFileInput (more precisely
|
48
|
+
/// a subclass of it) for the file specified. This method reads the
|
49
|
+
/// first few bytes of the file and determines if this is a compressed
|
50
|
+
/// or a plain file and returns the correct subclass to handle it.
|
51
|
+
/// If the file does not exist or uses a compression not compiled in
|
52
|
+
/// an exception is thrown.
|
53
|
+
/// @param fileName The file that should be read.
|
54
|
+
static CoinFileInput *create(const std::string &fileName);
|
55
|
+
|
56
|
+
/// Constructor (don't use this, use the create method instead).
|
57
|
+
/// @param fileName The name of the file used by this object.
|
58
|
+
CoinFileInput(const std::string &fileName);
|
59
|
+
|
60
|
+
/// Destructor.
|
61
|
+
virtual ~CoinFileInput();
|
62
|
+
|
63
|
+
/// Read a block of data from the file, similar to fread.
|
64
|
+
/// @param buffer Address of a buffer to store the data into.
|
65
|
+
/// @param size Number of bytes to read (buffer should be large enough).
|
66
|
+
/// @return Number of bytes read.
|
67
|
+
virtual int read(void *buffer, int size) = 0;
|
68
|
+
|
69
|
+
/// Reads up to (size-1) characters an stores them into the buffer,
|
70
|
+
/// similar to fgets.
|
71
|
+
/// Reading ends, when EOF or a newline occurs or (size-1) characters have
|
72
|
+
/// been read. The resulting string is terminated with '\0'. If reading
|
73
|
+
/// ends due to an encoutered newline, the '\n' is put into the buffer,
|
74
|
+
/// before the '\0' is appended.
|
75
|
+
/// @param buffer The buffer to put the string into.
|
76
|
+
/// @param size The size of the buffer in characters.
|
77
|
+
/// @return buffer on success, or 0 if no characters have been read.
|
78
|
+
virtual char *gets(char *buffer, int size) = 0;
|
79
|
+
};
|
80
|
+
|
81
|
+
/// This reads plain text files
|
82
|
+
class CoinPlainFileInput : public CoinFileInput {
|
83
|
+
public:
|
84
|
+
CoinPlainFileInput(const std::string &fileName);
|
85
|
+
/// When already opened
|
86
|
+
CoinPlainFileInput(FILE *fp);
|
87
|
+
virtual ~CoinPlainFileInput();
|
88
|
+
|
89
|
+
virtual int read(void *buffer, int size);
|
90
|
+
|
91
|
+
virtual char *gets(char *buffer, int size);
|
92
|
+
|
93
|
+
private:
|
94
|
+
FILE *f_;
|
95
|
+
};
|
96
|
+
|
97
|
+
/// Abstract base class for file output classes.
|
98
|
+
class CoinFileOutput : public CoinFileIOBase {
|
99
|
+
public:
|
100
|
+
/// The compression method.
|
101
|
+
enum Compression {
|
102
|
+
COMPRESS_NONE = 0, ///< No compression.
|
103
|
+
COMPRESS_GZIP = 1, ///< gzip compression.
|
104
|
+
COMPRESS_BZIP2 = 2 ///< bzip2 compression.
|
105
|
+
};
|
106
|
+
|
107
|
+
/// Returns whether the specified compression method is supported
|
108
|
+
/// (i.e. was compiled into COIN).
|
109
|
+
static bool compressionSupported(Compression compression);
|
110
|
+
|
111
|
+
/// Factory method, that creates a CoinFileOutput (more precisely
|
112
|
+
/// a subclass of it) for the file specified. If the compression method
|
113
|
+
/// is not supported an exception is thrown (so use compressionSupported
|
114
|
+
/// first, if this is a problem). The reason for not providing direct
|
115
|
+
/// access to the subclasses (and using such a method instead) is that
|
116
|
+
/// depending on the build configuration some of the classes are not
|
117
|
+
/// available (or functional). This way we can handle all required ifdefs
|
118
|
+
/// here instead of polluting other files.
|
119
|
+
/// @param fileName The file that should be read.
|
120
|
+
/// @param compression Compression method used.
|
121
|
+
static CoinFileOutput *create(const std::string &fileName,
|
122
|
+
Compression compression);
|
123
|
+
|
124
|
+
/// Constructor (don't use this, use the create method instead).
|
125
|
+
/// @param fileName The name of the file used by this object.
|
126
|
+
CoinFileOutput(const std::string &fileName);
|
127
|
+
|
128
|
+
/// Destructor.
|
129
|
+
virtual ~CoinFileOutput();
|
130
|
+
|
131
|
+
/// Write a block of data to the file, similar to fwrite.
|
132
|
+
/// @param buffer Address of a buffer containing the data to be written.
|
133
|
+
/// @param size Number of bytes to write.
|
134
|
+
/// @return Number of bytes written.
|
135
|
+
virtual int write(const void *buffer, int size) = 0;
|
136
|
+
|
137
|
+
/// Write a string to the file (like fputs).
|
138
|
+
/// Just as with fputs no trailing newline is inserted!
|
139
|
+
/// The terminating '\0' is not written to the file.
|
140
|
+
/// The default implementation determines the length of the string
|
141
|
+
/// and calls write on it.
|
142
|
+
/// @param s The zero terminated string to be written.
|
143
|
+
/// @return true on success, false on error.
|
144
|
+
virtual bool puts(const char *s);
|
145
|
+
|
146
|
+
/// Convenience method: just a 'puts(s.c_str())'.
|
147
|
+
inline bool puts(const std::string &s)
|
148
|
+
{
|
149
|
+
return puts(s.c_str());
|
150
|
+
}
|
151
|
+
};
|
152
|
+
|
153
|
+
/*! \relates CoinFileInput
|
154
|
+
\brief Test if the given string looks like an absolute file path
|
155
|
+
|
156
|
+
The criteria are:
|
157
|
+
- unix: string begins with `/'
|
158
|
+
- windows: string begins with `\' or with `drv:' (drive specifier)
|
159
|
+
*/
|
160
|
+
bool fileAbsPath(const std::string &path);
|
161
|
+
|
162
|
+
/*! \relates CoinFileInput
|
163
|
+
\brief Test if the file is readable, using likely versions of the file
|
164
|
+
name, and return the name that worked.
|
165
|
+
|
166
|
+
The file name is constructed from \p name using the following rules:
|
167
|
+
<ul>
|
168
|
+
<li> An absolute path is not modified.
|
169
|
+
<li> If the name begins with `~', an attempt is made to replace `~'
|
170
|
+
with the value of the environment variable HOME.
|
171
|
+
<li> If a default prefix (\p dfltPrefix) is provided, it is
|
172
|
+
prepended to the name.
|
173
|
+
</ul>
|
174
|
+
If the constructed file name cannot be opened, and CoinUtils was built
|
175
|
+
with support for compressed files, fileCoinReadable will try any
|
176
|
+
standard extensions for supported compressed files.
|
177
|
+
|
178
|
+
The value returned in \p name is the file name that actually worked.
|
179
|
+
*/
|
180
|
+
bool fileCoinReadable(std::string &name,
|
181
|
+
const std::string &dfltPrefix = std::string(""));
|
182
|
+
#endif
|
183
|
+
|
184
|
+
/* vi: softtabstop=2 shiftwidth=2 expandtab tabstop=2
|
185
|
+
*/
|
@@ -0,0 +1,37 @@
|
|
1
|
+
/* $Id$ */
|
2
|
+
// Copyright (C) 2002, International Business Machines
|
3
|
+
// Corporation and others. All Rights Reserved.
|
4
|
+
// This code is licensed under the terms of the Eclipse Public License (EPL).
|
5
|
+
|
6
|
+
/* Defines COIN_DBL_MAX and relatives and provides CoinFinite and CoinIsnan. */
|
7
|
+
|
8
|
+
#ifndef CoinFinite_H
|
9
|
+
#define CoinFinite_H
|
10
|
+
|
11
|
+
#include <limits>
|
12
|
+
|
13
|
+
//=============================================================================
|
14
|
+
// Smallest positive double value and Plus infinity (double and int)
|
15
|
+
|
16
|
+
#if 1
|
17
|
+
const double COIN_DBL_MIN = (std::numeric_limits< double >::min)();
|
18
|
+
const double COIN_DBL_MAX = (std::numeric_limits< double >::max)();
|
19
|
+
const int COIN_INT_MAX = (std::numeric_limits< int >::max)();
|
20
|
+
const double COIN_INT_MAX_AS_DOUBLE = (std::numeric_limits< int >::max)();
|
21
|
+
#else
|
22
|
+
#define COIN_DBL_MIN (std::numeric_limits< double >::min())
|
23
|
+
#define COIN_DBL_MAX (std::numeric_limits< double >::max())
|
24
|
+
#define COIN_INT_MAX (std::numeric_limits< int >::max())
|
25
|
+
#define COIN_INT_MAX_AS_DOUBLE (std::numeric_limits< int >::max())
|
26
|
+
#endif
|
27
|
+
|
28
|
+
/** checks if a double value is finite (not infinity and not NaN) */
|
29
|
+
extern bool CoinFinite(double val);
|
30
|
+
|
31
|
+
/** checks if a double value is not a number */
|
32
|
+
extern bool CoinIsnan(double val);
|
33
|
+
|
34
|
+
#endif
|
35
|
+
|
36
|
+
/* vi: softtabstop=2 shiftwidth=2 expandtab tabstop=2
|
37
|
+
*/
|
@@ -0,0 +1,204 @@
|
|
1
|
+
/* $Id$ */
|
2
|
+
// Copyright (C) 2000, International Business Machines
|
3
|
+
// Corporation and others. All Rights Reserved.
|
4
|
+
// This code is licensed under the terms of the Eclipse Public License (EPL).
|
5
|
+
|
6
|
+
#ifndef CoinFloatEqual_H
|
7
|
+
#define CoinFloatEqual_H
|
8
|
+
|
9
|
+
#include <algorithm>
|
10
|
+
#include <cmath>
|
11
|
+
|
12
|
+
#include "CoinFinite.hpp"
|
13
|
+
|
14
|
+
/*! \file CoinFloatEqual.hpp
|
15
|
+
\brief Function objects for testing equality of real numbers.
|
16
|
+
|
17
|
+
Two objects are provided; one tests for equality to an absolute tolerance,
|
18
|
+
one to a scaled tolerance. The tests will handle IEEE floating point, but
|
19
|
+
note that infinity == infinity. Mathematicians are rolling in their graves,
|
20
|
+
but this matches the behaviour for the common practice of using
|
21
|
+
<code>DBL_MAX</code> (<code>numeric_limits<double>::max()</code>, or similar
|
22
|
+
large finite number) as infinity.
|
23
|
+
|
24
|
+
<p>
|
25
|
+
Example usage:
|
26
|
+
@verbatim
|
27
|
+
double d1 = 3.14159 ;
|
28
|
+
double d2 = d1 ;
|
29
|
+
double d3 = d1+.0001 ;
|
30
|
+
|
31
|
+
CoinAbsFltEq eq1 ;
|
32
|
+
CoinAbsFltEq eq2(.001) ;
|
33
|
+
|
34
|
+
assert( eq1(d1,d2) ) ;
|
35
|
+
assert( !eq1(d1,d3) ) ;
|
36
|
+
assert( eq2(d1,d3) ) ;
|
37
|
+
@endverbatim
|
38
|
+
CoinRelFltEq follows the same pattern. */
|
39
|
+
|
40
|
+
/*! \brief Equality to an absolute tolerance
|
41
|
+
|
42
|
+
Operands are considered equal if their difference is within an epsilon ;
|
43
|
+
the test does not consider the relative magnitude of the operands.
|
44
|
+
*/
|
45
|
+
|
46
|
+
class CoinAbsFltEq {
|
47
|
+
public:
|
48
|
+
//! Compare function
|
49
|
+
|
50
|
+
inline bool operator()(const double f1, const double f2) const
|
51
|
+
|
52
|
+
{
|
53
|
+
if (CoinIsnan(f1) || CoinIsnan(f2))
|
54
|
+
return false;
|
55
|
+
if (f1 == f2)
|
56
|
+
return true;
|
57
|
+
return (fabs(f1 - f2) < epsilon_);
|
58
|
+
}
|
59
|
+
|
60
|
+
/*! \name Constructors and destructors */
|
61
|
+
//@{
|
62
|
+
|
63
|
+
/*! \brief Default constructor
|
64
|
+
|
65
|
+
Default tolerance is 1.0e-10.
|
66
|
+
*/
|
67
|
+
|
68
|
+
CoinAbsFltEq()
|
69
|
+
: epsilon_(1.e-10)
|
70
|
+
{
|
71
|
+
}
|
72
|
+
|
73
|
+
//! Alternate constructor with epsilon as a parameter
|
74
|
+
|
75
|
+
CoinAbsFltEq(const double epsilon)
|
76
|
+
: epsilon_(epsilon)
|
77
|
+
{
|
78
|
+
}
|
79
|
+
|
80
|
+
//! Destructor
|
81
|
+
|
82
|
+
virtual ~CoinAbsFltEq() {}
|
83
|
+
|
84
|
+
//! Copy constructor
|
85
|
+
|
86
|
+
CoinAbsFltEq(const CoinAbsFltEq &src)
|
87
|
+
: epsilon_(src.epsilon_)
|
88
|
+
{
|
89
|
+
}
|
90
|
+
|
91
|
+
//! Assignment
|
92
|
+
|
93
|
+
CoinAbsFltEq &operator=(const CoinAbsFltEq &rhs)
|
94
|
+
|
95
|
+
{
|
96
|
+
if (this != &rhs)
|
97
|
+
epsilon_ = rhs.epsilon_;
|
98
|
+
return (*this);
|
99
|
+
}
|
100
|
+
|
101
|
+
//@}
|
102
|
+
|
103
|
+
private:
|
104
|
+
/*! \name Private member data */
|
105
|
+
//@{
|
106
|
+
|
107
|
+
//! Equality tolerance.
|
108
|
+
|
109
|
+
double epsilon_;
|
110
|
+
|
111
|
+
//@}
|
112
|
+
};
|
113
|
+
|
114
|
+
/*! \brief Equality to a scaled tolerance
|
115
|
+
|
116
|
+
Operands are considered equal if their difference is within a scaled
|
117
|
+
epsilon calculated as epsilon_*(1+CoinMax(|f1|,|f2|)).
|
118
|
+
*/
|
119
|
+
|
120
|
+
class CoinRelFltEq {
|
121
|
+
public:
|
122
|
+
//! Compare function
|
123
|
+
|
124
|
+
inline bool operator()(const double f1, const double f2) const
|
125
|
+
|
126
|
+
{
|
127
|
+
if (CoinIsnan(f1) || CoinIsnan(f2))
|
128
|
+
return false;
|
129
|
+
if (f1 == f2)
|
130
|
+
return true;
|
131
|
+
if (!CoinFinite(f1) || !CoinFinite(f2))
|
132
|
+
return false;
|
133
|
+
|
134
|
+
double tol = (fabs(f1) > fabs(f2)) ? fabs(f1) : fabs(f2);
|
135
|
+
|
136
|
+
return (fabs(f1 - f2) <= epsilon_ * (1 + tol));
|
137
|
+
}
|
138
|
+
|
139
|
+
/*! \name Constructors and destructors */
|
140
|
+
//@{
|
141
|
+
|
142
|
+
#ifndef COIN_FLOAT
|
143
|
+
/*! Default constructor
|
144
|
+
|
145
|
+
Default tolerance is 1.0e-10.
|
146
|
+
*/
|
147
|
+
CoinRelFltEq()
|
148
|
+
: epsilon_(1.e-10)
|
149
|
+
{
|
150
|
+
}
|
151
|
+
#else
|
152
|
+
/*! Default constructor
|
153
|
+
|
154
|
+
Default tolerance is 1.0e-6.
|
155
|
+
*/
|
156
|
+
CoinRelFltEq()
|
157
|
+
: epsilon_(1.e-6) {}; // as float
|
158
|
+
#endif
|
159
|
+
|
160
|
+
//! Alternate constructor with epsilon as a parameter
|
161
|
+
|
162
|
+
CoinRelFltEq(const double epsilon)
|
163
|
+
: epsilon_(epsilon)
|
164
|
+
{
|
165
|
+
}
|
166
|
+
|
167
|
+
//! Destructor
|
168
|
+
|
169
|
+
virtual ~CoinRelFltEq() {}
|
170
|
+
|
171
|
+
//! Copy constructor
|
172
|
+
|
173
|
+
CoinRelFltEq(const CoinRelFltEq &src)
|
174
|
+
: epsilon_(src.epsilon_)
|
175
|
+
{
|
176
|
+
}
|
177
|
+
|
178
|
+
//! Assignment
|
179
|
+
|
180
|
+
CoinRelFltEq &operator=(const CoinRelFltEq &rhs)
|
181
|
+
|
182
|
+
{
|
183
|
+
if (this != &rhs)
|
184
|
+
epsilon_ = rhs.epsilon_;
|
185
|
+
return (*this);
|
186
|
+
}
|
187
|
+
|
188
|
+
//@}
|
189
|
+
|
190
|
+
private:
|
191
|
+
/*! \name Private member data */
|
192
|
+
//@{
|
193
|
+
|
194
|
+
//! Base equality tolerance
|
195
|
+
|
196
|
+
double epsilon_;
|
197
|
+
|
198
|
+
//@}
|
199
|
+
};
|
200
|
+
|
201
|
+
#endif
|
202
|
+
|
203
|
+
/* vi: softtabstop=2 shiftwidth=2 expandtab tabstop=2
|
204
|
+
*/
|