casadi 3.6.4__cp312-none-manylinux2014_i686.whl → 3.6.6__cp312-none-manylinux2014_i686.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 +984 -500
- casadi/cbc +0 -0
- casadi/clp +0 -0
- casadi/cmake/casadi-config-version.cmake +1 -1
- casadi/cmake/highs/highs-config.cmake +6 -13
- casadi/cmake/highs/highs-targets-release.cmake +13 -13
- casadi/cmake/highs/highs-targets.cmake +13 -10
- casadi/highs +0 -0
- casadi/include/casadi/casadi.i +33 -15
- casadi/include/casadi/casadi_c.h +2 -0
- casadi/include/casadi/config.h +8 -8
- casadi/include/casadi/core/casadi_common.hpp +1 -0
- casadi/include/casadi/core/casadi_misc.hpp +13 -0
- casadi/include/casadi/core/casadi_types.hpp +3 -2
- casadi/include/casadi/core/code_generator.hpp +59 -2
- casadi/include/casadi/core/core.hpp +1 -0
- casadi/include/casadi/core/generic_expression.hpp +1 -1
- casadi/include/casadi/core/generic_type.hpp +25 -1
- casadi/include/casadi/core/global_options.hpp +2 -0
- casadi/include/casadi/core/matrix_decl.hpp +15 -0
- casadi/include/casadi/core/mx.hpp +13 -3
- casadi/include/casadi/core/optistack.hpp +23 -0
- casadi/include/casadi/core/runtime/casadi_nlp.hpp +133 -6
- casadi/include/casadi/core/runtime/casadi_ocp_block.hpp +55 -0
- casadi/include/casadi/core/runtime/casadi_oracle.hpp +44 -0
- casadi/include/casadi/core/runtime/casadi_oracle_callback.hpp +39 -0
- casadi/include/casadi/core/runtime/casadi_runtime.hpp +4 -1
- casadi/include/casadi/core/runtime/casadi_scaled_copy.hpp +31 -0
- casadi/include/casadi/core/runtime/casadi_sqpmethod.hpp +11 -1
- casadi/include/casadi/core/serializing_stream.hpp +2 -2
- casadi/include/casadi/core/sparsity.hpp +12 -3
- casadi/include/casadi/core/tools.hpp +67 -0
- casadi/include/casadi/doc.i +2283 -1491
- casadi/include/casadi/doc_merged.i +1522 -1065
- casadi/include/casadi/mem.h +1 -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/daqp/api.h +46 -0
- casadi/include/daqp/auxiliary.h +29 -0
- casadi/include/daqp/bnb.h +32 -0
- casadi/include/daqp/codegen.h +18 -0
- casadi/include/daqp/constants.h +92 -0
- casadi/include/daqp/daqp.h +22 -0
- casadi/include/daqp/daqp_prox.h +18 -0
- casadi/include/daqp/factorization.h +18 -0
- casadi/include/daqp/types.h +161 -0
- casadi/include/daqp/utils.h +44 -0
- casadi/include/highs/HConfig.h +6 -5
- casadi/include/highs/Highs.h +93 -23
- casadi/include/highs/filereaderlp/def.hpp +19 -0
- casadi/include/highs/interfaces/highs_c_api.h +200 -24
- casadi/include/highs/io/Filereader.h +1 -1
- casadi/include/highs/io/FilereaderEms.h +1 -1
- casadi/include/highs/io/FilereaderLp.h +1 -1
- casadi/include/highs/io/FilereaderMps.h +1 -1
- casadi/include/highs/io/HMPSIO.h +1 -1
- casadi/include/highs/io/HMpsFF.h +5 -3
- casadi/include/highs/io/HighsIO.h +18 -8
- casadi/include/highs/io/LoadOptions.h +1 -1
- casadi/include/highs/ipm/IpxSolution.h +35 -0
- casadi/include/highs/ipm/IpxWrapper.h +1 -1
- casadi/include/highs/ipm/basiclu/basiclu.h +161 -0
- casadi/include/highs/ipm/basiclu/basiclu_factorize.h +247 -0
- casadi/include/highs/ipm/basiclu/basiclu_get_factors.h +108 -0
- casadi/include/highs/ipm/basiclu/basiclu_initialize.h +119 -0
- casadi/include/highs/ipm/basiclu/basiclu_obj_factorize.h +34 -0
- casadi/include/highs/ipm/basiclu/basiclu_obj_free.h +19 -0
- casadi/include/highs/ipm/basiclu/basiclu_obj_get_factors.h +34 -0
- casadi/include/highs/ipm/basiclu/basiclu_obj_initialize.h +46 -0
- casadi/include/highs/ipm/basiclu/basiclu_obj_solve_dense.h +29 -0
- casadi/include/highs/ipm/basiclu/basiclu_obj_solve_for_update.h +42 -0
- casadi/include/highs/ipm/basiclu/basiclu_obj_solve_sparse.h +32 -0
- casadi/include/highs/ipm/basiclu/basiclu_obj_update.h +31 -0
- casadi/include/highs/ipm/basiclu/basiclu_object.h +30 -0
- casadi/include/highs/ipm/basiclu/basiclu_solve_dense.h +75 -0
- casadi/include/highs/ipm/basiclu/basiclu_solve_for_update.h +169 -0
- casadi/include/highs/ipm/basiclu/basiclu_solve_sparse.h +112 -0
- casadi/include/highs/ipm/basiclu/basiclu_update.h +125 -0
- casadi/include/highs/ipm/basiclu/lu_def.h +39 -0
- casadi/include/highs/ipm/basiclu/lu_file.h +21 -0
- casadi/include/highs/ipm/basiclu/lu_internal.h +220 -0
- casadi/include/highs/ipm/basiclu/lu_list.h +168 -0
- casadi/include/highs/ipm/ipx/basiclu_kernel.h +20 -0
- casadi/include/highs/ipm/ipx/basiclu_wrapper.h +47 -0
- casadi/include/highs/ipm/ipx/basis.h +351 -0
- casadi/include/highs/ipm/ipx/conjugate_residuals.h +74 -0
- casadi/include/highs/ipm/ipx/control.h +163 -0
- casadi/include/highs/ipm/ipx/crossover.h +157 -0
- casadi/include/highs/ipm/ipx/diagonal_precond.h +45 -0
- casadi/include/highs/ipm/ipx/forrest_tomlin.h +102 -0
- casadi/include/highs/ipm/ipx/guess_basis.h +21 -0
- casadi/include/highs/ipm/ipx/indexed_vector.h +113 -0
- casadi/include/highs/ipm/ipx/info.h +27 -0
- casadi/include/highs/ipm/ipx/ipm.h +94 -0
- casadi/include/highs/ipm/ipx/ipx_c.h +47 -0
- casadi/include/highs/ipm/ipx/ipx_config.h +9 -0
- casadi/include/highs/ipm/ipx/ipx_info.h +111 -0
- casadi/include/highs/ipm/ipx/ipx_internal.h +88 -0
- casadi/include/highs/ipm/ipx/ipx_parameters.h +75 -0
- casadi/include/highs/ipm/ipx/ipx_status.h +57 -0
- casadi/include/highs/ipm/ipx/iterate.h +328 -0
- casadi/include/highs/ipm/ipx/kkt_solver.h +70 -0
- casadi/include/highs/ipm/ipx/kkt_solver_basis.h +66 -0
- casadi/include/highs/ipm/ipx/kkt_solver_diag.h +48 -0
- casadi/include/highs/ipm/ipx/linear_operator.h +26 -0
- casadi/include/highs/ipm/ipx/lp_solver.h +201 -0
- casadi/include/highs/ipm/ipx/lu_factorization.h +79 -0
- casadi/include/highs/ipm/ipx/lu_update.h +129 -0
- casadi/include/highs/ipm/ipx/maxvolume.h +54 -0
- casadi/include/highs/ipm/ipx/model.h +409 -0
- casadi/include/highs/ipm/ipx/multistream.h +52 -0
- casadi/include/highs/ipm/ipx/normal_matrix.h +44 -0
- casadi/include/highs/ipm/ipx/power_method.h +44 -0
- casadi/include/highs/ipm/ipx/sparse_matrix.h +195 -0
- casadi/include/highs/ipm/ipx/sparse_utils.h +58 -0
- casadi/include/highs/ipm/ipx/splitted_normal_matrix.h +63 -0
- casadi/include/highs/ipm/ipx/starting_basis.h +39 -0
- casadi/include/highs/ipm/ipx/symbolic_invert.h +29 -0
- casadi/include/highs/ipm/ipx/timer.h +24 -0
- casadi/include/highs/ipm/ipx/utils.h +39 -0
- casadi/include/highs/lp_data/HConst.h +20 -10
- casadi/include/highs/lp_data/HStruct.h +23 -1
- casadi/include/highs/lp_data/HighsAnalysis.h +1 -1
- casadi/include/highs/lp_data/HighsCallback.h +10 -3
- casadi/include/highs/lp_data/HighsCallbackStruct.h +31 -5
- casadi/include/highs/lp_data/HighsDebug.h +1 -1
- casadi/include/highs/lp_data/HighsInfo.h +20 -2
- casadi/include/highs/lp_data/HighsInfoDebug.h +1 -1
- casadi/include/highs/lp_data/HighsLp.h +17 -1
- casadi/include/highs/lp_data/HighsLpSolverObject.h +1 -1
- casadi/include/highs/lp_data/HighsLpUtils.h +19 -19
- casadi/include/highs/lp_data/HighsModelUtils.h +1 -1
- casadi/include/highs/lp_data/HighsOptions.h +237 -10
- casadi/include/highs/lp_data/HighsRanging.h +1 -1
- casadi/include/highs/lp_data/HighsRuntimeOptions.h +2 -2
- casadi/include/highs/lp_data/HighsSolution.h +2 -2
- casadi/include/highs/lp_data/HighsSolutionDebug.h +1 -1
- casadi/include/highs/lp_data/HighsSolve.h +3 -1
- casadi/include/highs/lp_data/HighsStatus.h +1 -1
- casadi/include/highs/mip/HighsCliqueTable.h +4 -4
- casadi/include/highs/mip/HighsConflictPool.h +1 -1
- casadi/include/highs/mip/HighsCutGeneration.h +1 -1
- casadi/include/highs/mip/HighsCutPool.h +2 -2
- casadi/include/highs/mip/HighsDebugSol.h +22 -29
- casadi/include/highs/mip/HighsDomain.h +10 -2
- casadi/include/highs/mip/HighsDomainChange.h +1 -1
- casadi/include/highs/mip/HighsDynamicRowMatrix.h +5 -3
- casadi/include/highs/mip/HighsGFkSolve.h +3 -3
- casadi/include/highs/mip/HighsImplications.h +3 -3
- casadi/include/highs/mip/HighsLpAggregator.h +1 -1
- casadi/include/highs/mip/HighsLpRelaxation.h +6 -1
- casadi/include/highs/mip/HighsMipSolver.h +4 -2
- casadi/include/highs/mip/HighsMipSolverData.h +47 -4
- casadi/include/highs/mip/HighsModkSeparator.h +2 -2
- casadi/include/highs/mip/HighsNodeQueue.h +5 -3
- casadi/include/highs/mip/HighsObjectiveFunction.h +1 -1
- casadi/include/highs/mip/HighsPathSeparator.h +2 -2
- casadi/include/highs/mip/HighsPrimalHeuristics.h +1 -1
- casadi/include/highs/mip/HighsPseudocost.h +35 -23
- casadi/include/highs/mip/HighsRedcostFixing.h +1 -1
- casadi/include/highs/mip/HighsSearch.h +2 -1
- casadi/include/highs/mip/HighsSeparation.h +1 -1
- casadi/include/highs/mip/HighsSeparator.h +1 -1
- casadi/include/highs/mip/HighsTableauSeparator.h +1 -1
- casadi/include/highs/mip/HighsTransformedLp.h +1 -1
- casadi/include/highs/model/HighsHessian.h +5 -0
- casadi/include/highs/model/HighsHessianUtils.h +2 -0
- casadi/include/highs/model/HighsModel.h +10 -1
- casadi/include/highs/parallel/HighsMutex.h +2 -1
- casadi/include/highs/parallel/HighsParallel.h +7 -2
- casadi/include/highs/parallel/HighsTask.h +1 -2
- casadi/include/highs/pdlp/CupdlpWrapper.h +93 -0
- casadi/include/highs/pdlp/cupdlp/cupdlp_cs.h +41 -0
- casadi/include/highs/pdlp/cupdlp/cupdlp_defs.h +423 -0
- casadi/include/highs/pdlp/cupdlp/cupdlp_linalg.h +183 -0
- casadi/include/highs/pdlp/cupdlp/cupdlp_proj.h +19 -0
- casadi/include/highs/pdlp/cupdlp/cupdlp_restart.h +31 -0
- casadi/include/highs/pdlp/cupdlp/cupdlp_scaling_cuda.h +28 -0
- casadi/include/highs/pdlp/cupdlp/cupdlp_solver.h +98 -0
- casadi/include/highs/pdlp/cupdlp/cupdlp_step.h +33 -0
- casadi/include/highs/pdlp/cupdlp/cupdlp_utils.c +1726 -0
- casadi/include/highs/pdqsort/pdqsort.h +532 -0
- casadi/include/highs/presolve/HPresolve.h +27 -14
- casadi/include/highs/presolve/HPresolveAnalysis.h +1 -1
- casadi/include/highs/presolve/HighsPostsolveStack.h +92 -68
- casadi/include/highs/presolve/HighsSymmetry.h +6 -5
- casadi/include/highs/presolve/ICrash.h +8 -2
- casadi/include/highs/presolve/ICrashUtil.h +1 -1
- casadi/include/highs/presolve/ICrashX.h +1 -1
- casadi/include/highs/presolve/PresolveComponent.h +1 -1
- casadi/include/highs/qpsolver/a_asm.hpp +23 -12
- casadi/include/highs/qpsolver/a_quass.hpp +8 -1
- casadi/include/highs/qpsolver/basis.hpp +150 -0
- casadi/include/highs/qpsolver/crashsolution.hpp +12 -0
- casadi/include/highs/qpsolver/dantzigpricing.hpp +72 -0
- casadi/include/highs/qpsolver/devexpricing.hpp +99 -0
- casadi/include/highs/qpsolver/eventhandler.hpp +23 -0
- casadi/include/highs/qpsolver/factor.hpp +400 -0
- casadi/include/highs/qpsolver/feasibility_bounded.hpp +105 -0
- casadi/include/highs/qpsolver/feasibility_highs.hpp +270 -0
- casadi/include/highs/qpsolver/gradient.hpp +39 -0
- casadi/include/highs/qpsolver/instance.hpp +63 -0
- casadi/include/highs/qpsolver/matrix.hpp +335 -0
- casadi/include/highs/qpsolver/pricing.hpp +15 -0
- casadi/include/highs/qpsolver/qpconst.hpp +27 -0
- casadi/include/highs/qpsolver/{vector.hpp → qpvector.hpp} +25 -25
- casadi/include/highs/qpsolver/quass.hpp +1 -1
- casadi/include/highs/qpsolver/ratiotest.hpp +19 -0
- casadi/include/highs/qpsolver/runtime.hpp +38 -0
- casadi/include/highs/qpsolver/settings.hpp +57 -0
- casadi/include/highs/qpsolver/snippets.hpp +29 -0
- casadi/include/highs/qpsolver/statistics.hpp +23 -0
- casadi/include/highs/qpsolver/steepestedgepricing.hpp +167 -0
- casadi/include/highs/simplex/HApp.h +1 -1
- casadi/include/highs/simplex/HEkk.h +52 -18
- casadi/include/highs/simplex/HEkkDual.h +1 -1
- casadi/include/highs/simplex/HEkkDualRHS.h +6 -7
- casadi/include/highs/simplex/HEkkDualRow.h +2 -2
- casadi/include/highs/simplex/HEkkPrimal.h +6 -1
- casadi/include/highs/simplex/HSimplex.h +1 -3
- casadi/include/highs/simplex/HSimplexDebug.h +1 -1
- casadi/include/highs/simplex/HSimplexNla.h +1 -1
- casadi/include/highs/simplex/HSimplexReport.h +1 -1
- casadi/include/highs/simplex/HighsSimplexAnalysis.h +228 -100
- casadi/include/highs/simplex/SimplexConst.h +1 -1
- casadi/include/highs/simplex/SimplexStruct.h +2 -2
- casadi/include/highs/simplex/SimplexTimer.h +1 -1
- casadi/include/highs/test/DevKkt.h +1 -1
- casadi/include/highs/test/KktCh2.h +1 -1
- casadi/include/highs/util/FactorTimer.h +1 -1
- casadi/include/highs/util/HFactor.h +35 -6
- casadi/include/highs/util/HFactorConst.h +1 -1
- casadi/include/highs/util/HFactorDebug.h +1 -1
- casadi/include/highs/util/HSet.h +1 -1
- casadi/include/highs/util/HVector.h +1 -1
- casadi/include/highs/util/HVectorBase.h +1 -1
- casadi/include/highs/util/HighsCDouble.h +3 -3
- casadi/include/highs/util/HighsComponent.h +1 -1
- casadi/include/highs/util/HighsDataStack.h +4 -4
- casadi/include/highs/util/HighsDisjointSets.h +1 -1
- casadi/include/highs/util/HighsHash.h +28 -21
- casadi/include/highs/util/HighsHashTree.h +63 -63
- casadi/include/highs/util/HighsInt.h +1 -1
- casadi/include/highs/util/HighsIntegers.h +8 -9
- casadi/include/highs/util/HighsLinearSumBounds.h +1 -1
- casadi/include/highs/util/HighsMatrixPic.h +1 -1
- casadi/include/highs/util/HighsMatrixSlice.h +9 -6
- casadi/include/highs/util/HighsMatrixUtils.h +1 -1
- casadi/include/highs/util/HighsMemoryAllocation.h +55 -0
- casadi/include/highs/util/HighsRandom.h +27 -15
- casadi/include/highs/util/HighsRbTree.h +2 -2
- casadi/include/highs/util/HighsSort.h +7 -7
- casadi/include/highs/util/HighsSparseMatrix.h +5 -2
- casadi/include/highs/util/HighsSparseVectorSum.h +2 -2
- casadi/include/highs/util/HighsSplay.h +1 -1
- casadi/include/highs/util/HighsTimer.h +18 -9
- casadi/include/highs/util/HighsUtils.h +15 -8
- casadi/include/highs/util/stringutil.h +9 -4
- casadi/include/highs/zstr/strict_fstream.hpp +237 -0
- casadi/include/highs/zstr/zstr.hpp +472 -0
- casadi/include/licenses/daqp-external/LICENSE +21 -0
- casadi/include/licenses/highs-external/{LICENSE → LICENSE.txt} +1 -1
- casadi/include/osqp/constants.h +2 -3
- casadi/include/osqp/version.h +9 -0
- casadi/lib/libtinyxml2.a +0 -0
- casadi/libCbc.so +0 -0
- casadi/libCbc.so.3 +0 -0
- casadi/libCbc.so.3.10.11 +0 -0
- casadi/libCbcSolver.so +0 -0
- casadi/libCbcSolver.so.3 +0 -0
- casadi/libCbcSolver.so.3.10.11 +0 -0
- casadi/libCgl.so +0 -0
- casadi/libCgl.so.1 +0 -0
- casadi/libCgl.so.1.10.8 +0 -0
- casadi/libClp.so +0 -0
- casadi/libClp.so.1 +0 -0
- casadi/libClp.so.1.14.9 +0 -0
- casadi/libClpSolver.so +0 -0
- casadi/libClpSolver.so.1 +0 -0
- casadi/libClpSolver.so.1.14.9 +0 -0
- casadi/libCoinUtils.so +0 -0
- casadi/libCoinUtils.so.3 +0 -0
- casadi/libCoinUtils.so.3.11.10 +0 -0
- casadi/libOsi.so +0 -0
- casadi/libOsi.so.1 +0 -0
- casadi/libOsi.so.1.13.9 +0 -0
- casadi/libOsiCbc.so +0 -0
- casadi/libOsiCbc.so.3 +0 -0
- casadi/libOsiCbc.so.3.10.11 +0 -0
- casadi/libOsiClp.so +0 -0
- casadi/libOsiClp.so.1 +0 -0
- casadi/libOsiClp.so.1.14.9 +0 -0
- casadi/libOsiCommonTests.so +0 -0
- casadi/libOsiCommonTests.so.1 +0 -0
- casadi/libOsiCommonTests.so.1.13.9 +0 -0
- 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_daqp.so +0 -0
- casadi/libcasadi_conic_daqp.so.3.7 +0 -0
- casadi/libcasadi_conic_gurobi.so +0 -0
- casadi/libcasadi_conic_gurobi.so.3.7 +0 -0
- casadi/libcasadi_conic_highs.so +0 -0
- casadi/libcasadi_conic_highs.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_proxqp.so +0 -0
- casadi/libcasadi_conic_proxqp.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_integrator_rk.so +0 -0
- casadi/libcasadi_integrator_rk.so.3.7 +0 -0
- casadi/libcasadi_nlpsol_alpaqa.so +0 -0
- casadi/libcasadi_nlpsol_alpaqa.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_madnlp.so +0 -0
- casadi/libcasadi_nlpsol_madnlp.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_sleqp.so +0 -0
- casadi/libcasadi_nlpsol_sleqp.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_kinsol.so +0 -0
- casadi/libcasadi_rootfinder_kinsol.so.3.7 +0 -0
- casadi/libcasadi_rootfinder_newton.so +0 -0
- casadi/libcasadi_rootfinder_newton.so.3.7 +0 -0
- casadi/libcasadi_rootfinder_nlpsol.so +0 -0
- casadi/libcasadi_rootfinder_nlpsol.so.3.7 +0 -0
- casadi/libcasadi_sundials_common.so +0 -0
- casadi/libcasadi_sundials_common.so.3.7 +0 -0
- casadi/libdaqp.so +0 -0
- casadi/libdaqpstat.a +0 -0
- casadi/libhighs.so +0 -0
- casadi/libhighs.so.1 +0 -0
- casadi/libhighs.so.1.7.2 +0 -0
- casadi/libindirect.a +0 -0
- casadi/libipopt.so +0 -0
- casadi/libipopt.so.3 +0 -0
- casadi/libipopt.so.3.14.11 +0 -0
- casadi/liblinsys.a +0 -0
- casadi/libmatlab_ipc.so +0 -0
- casadi/libosqp.a +0 -0
- casadi/libosqp.so +0 -0
- casadi/libqdldl.a +0 -0
- casadi/libsipopt.so +0 -0
- casadi/libsipopt.so.3 +0 -0
- casadi/libsipopt.so.3.14.11 +0 -0
- casadi/libsleqp.so +0 -0
- casadi/libsleqp.so.1.0.1 +0 -0
- casadi/libspral.a +0 -0
- casadi/libsuperscs.a +0 -0
- casadi/pkgconfig/casadi.pc +1 -1
- casadi/pkgconfig/highs.pc +1 -1
- casadi/tools/__init__.py +4 -0
- casadi/tools/bounds.py +3 -3
- {casadi-3.6.4.dist-info → casadi-3.6.6.dist-info}/METADATA +12 -4
- {casadi-3.6.4.dist-info → casadi-3.6.6.dist-info}/RECORD +490 -281
- casadi/include/highs/fortran/highs_fortran_api.mod +0 -0
- casadi/libFortranHighs.so +0 -0
- casadi/libhighs.so.1.6 +0 -0
- casadi/libhighs.so.1.6.0 +0 -0
- {casadi-3.6.4.dist-info → casadi-3.6.6.dist-info}/WHEEL +0 -0
@@ -0,0 +1,274 @@
|
|
1
|
+
// Copyright (C) 2008 International Business Machines and others.
|
2
|
+
// All Rights Reserved.
|
3
|
+
// This code is published under the Eclipse Public License.
|
4
|
+
//
|
5
|
+
// Authors: Andreas Waechter IBM 2008-08-10
|
6
|
+
|
7
|
+
#ifndef __IPTNLPREDUCER_HPP__
|
8
|
+
#define __IPTNLPREDUCER_HPP__
|
9
|
+
|
10
|
+
#include "IpTNLP.hpp"
|
11
|
+
|
12
|
+
namespace Ipopt
|
13
|
+
{
|
14
|
+
/** This is a wrapper around a given TNLP class that takes out a
|
15
|
+
* list of constraints that are given to the constructor.
|
16
|
+
*
|
17
|
+
* It is provided for convenience, if one wants to experiment with
|
18
|
+
* problems that consist of only a subset of the constraints. But
|
19
|
+
* keep in mind that this is not efficient, since behind the scenes
|
20
|
+
* we are still evaluation all functions and derivatives, and are
|
21
|
+
* making copies of the original data.
|
22
|
+
*/
|
23
|
+
class IPOPTLIB_EXPORT TNLPReducer: public TNLP
|
24
|
+
{
|
25
|
+
public:
|
26
|
+
/**@name Constructors/Destructors */
|
27
|
+
///@{
|
28
|
+
/** Constructor is given the indices of the constraints that
|
29
|
+
* should be taken out of the problem statement, as well as the
|
30
|
+
* original TNLP.
|
31
|
+
*/
|
32
|
+
TNLPReducer(
|
33
|
+
TNLP& tnlp,
|
34
|
+
Index n_g_skip,
|
35
|
+
const Index* index_g_skip,
|
36
|
+
Index n_xL_skip,
|
37
|
+
const Index* index_xL_skip,
|
38
|
+
Index n_xU_skip,
|
39
|
+
const Index* index_xU_skip,
|
40
|
+
Index n_x_fix,
|
41
|
+
const Index* index_f_fix
|
42
|
+
);
|
43
|
+
|
44
|
+
/** Default destructor */
|
45
|
+
virtual ~TNLPReducer();
|
46
|
+
///@}
|
47
|
+
|
48
|
+
/** @name Overloaded methods from TNLP */
|
49
|
+
///@{
|
50
|
+
virtual bool get_nlp_info(
|
51
|
+
Index& n,
|
52
|
+
Index& m,
|
53
|
+
Index& nnz_jac_g,
|
54
|
+
Index& nnz_h_lag,
|
55
|
+
IndexStyleEnum& index_style
|
56
|
+
);
|
57
|
+
|
58
|
+
virtual bool get_bounds_info(
|
59
|
+
Index n,
|
60
|
+
Number* x_l,
|
61
|
+
Number* x_u,
|
62
|
+
Index m,
|
63
|
+
Number* g_l,
|
64
|
+
Number* g_u
|
65
|
+
);
|
66
|
+
|
67
|
+
virtual bool get_scaling_parameters(
|
68
|
+
Number& obj_scaling,
|
69
|
+
bool& use_x_scaling,
|
70
|
+
Index n,
|
71
|
+
Number* x_scaling,
|
72
|
+
bool& use_g_scaling,
|
73
|
+
Index m,
|
74
|
+
Number* g_scaling
|
75
|
+
);
|
76
|
+
|
77
|
+
virtual bool get_variables_linearity(
|
78
|
+
Index n,
|
79
|
+
LinearityType* var_types
|
80
|
+
);
|
81
|
+
|
82
|
+
virtual bool get_constraints_linearity(
|
83
|
+
Index m,
|
84
|
+
LinearityType* const_types
|
85
|
+
);
|
86
|
+
|
87
|
+
virtual bool get_starting_point(
|
88
|
+
Index n,
|
89
|
+
bool init_x,
|
90
|
+
Number* x,
|
91
|
+
bool init_z,
|
92
|
+
Number* z_L,
|
93
|
+
Number* z_U,
|
94
|
+
Index m,
|
95
|
+
bool init_lambda,
|
96
|
+
Number* lambda
|
97
|
+
);
|
98
|
+
|
99
|
+
virtual bool get_warm_start_iterate(
|
100
|
+
IteratesVector& warm_start_iterate
|
101
|
+
);
|
102
|
+
|
103
|
+
virtual bool eval_f(
|
104
|
+
Index n,
|
105
|
+
const Number* x,
|
106
|
+
bool new_x,
|
107
|
+
Number& obj_value
|
108
|
+
);
|
109
|
+
|
110
|
+
virtual bool eval_grad_f(
|
111
|
+
Index n,
|
112
|
+
const Number* x,
|
113
|
+
bool new_x,
|
114
|
+
Number* grad_f
|
115
|
+
);
|
116
|
+
|
117
|
+
virtual bool eval_g(
|
118
|
+
Index n,
|
119
|
+
const Number* x,
|
120
|
+
bool new_x,
|
121
|
+
Index m,
|
122
|
+
Number* g
|
123
|
+
);
|
124
|
+
|
125
|
+
virtual bool eval_jac_g(
|
126
|
+
Index n,
|
127
|
+
const Number* x,
|
128
|
+
bool new_x,
|
129
|
+
Index m,
|
130
|
+
Index nele_jac,
|
131
|
+
Index* iRow,
|
132
|
+
Index* jCol,
|
133
|
+
Number* values
|
134
|
+
);
|
135
|
+
|
136
|
+
virtual bool eval_h(
|
137
|
+
Index n,
|
138
|
+
const Number* x,
|
139
|
+
bool new_x,
|
140
|
+
Number obj_factor,
|
141
|
+
Index m,
|
142
|
+
const Number* lambda,
|
143
|
+
bool new_lambda,
|
144
|
+
Index nele_hess,
|
145
|
+
Index* iRow,
|
146
|
+
Index* jCol,
|
147
|
+
Number* values
|
148
|
+
);
|
149
|
+
|
150
|
+
virtual void finalize_solution(
|
151
|
+
SolverReturn status,
|
152
|
+
Index n,
|
153
|
+
const Number* x,
|
154
|
+
const Number* z_L,
|
155
|
+
const Number* z_U,
|
156
|
+
Index m,
|
157
|
+
const Number* g,
|
158
|
+
const Number* lambda,
|
159
|
+
Number obj_value,
|
160
|
+
const IpoptData* ip_data,
|
161
|
+
IpoptCalculatedQuantities* ip_cq
|
162
|
+
);
|
163
|
+
|
164
|
+
virtual bool intermediate_callback(
|
165
|
+
AlgorithmMode mode,
|
166
|
+
Index iter,
|
167
|
+
Number obj_value,
|
168
|
+
Number inf_pr,
|
169
|
+
Number inf_du,
|
170
|
+
Number mu,
|
171
|
+
Number d_norm,
|
172
|
+
Number regularization_size,
|
173
|
+
Number alpha_du,
|
174
|
+
Number alpha_pr,
|
175
|
+
Index ls_trials,
|
176
|
+
const IpoptData* ip_data,
|
177
|
+
IpoptCalculatedQuantities* ip_cq
|
178
|
+
);
|
179
|
+
|
180
|
+
virtual Index get_number_of_nonlinear_variables();
|
181
|
+
|
182
|
+
virtual bool get_list_of_nonlinear_variables(
|
183
|
+
Index num_nonlin_vars,
|
184
|
+
Index* pos_nonlin_vars
|
185
|
+
);
|
186
|
+
///@}
|
187
|
+
|
188
|
+
private:
|
189
|
+
/**@name Default Compiler Generated Methods
|
190
|
+
* (Hidden to avoid implicit creation/calling).
|
191
|
+
*
|
192
|
+
* These methods are not implemented and
|
193
|
+
* we do not want the compiler to implement
|
194
|
+
* them for us, so we declare them private
|
195
|
+
* and do not define them. This ensures that
|
196
|
+
* they will not be implicitly created/called.
|
197
|
+
*/
|
198
|
+
///@{
|
199
|
+
/** Default Constructor */
|
200
|
+
TNLPReducer();
|
201
|
+
|
202
|
+
/** Copy Constructor */
|
203
|
+
TNLPReducer(
|
204
|
+
const TNLPReducer&
|
205
|
+
);
|
206
|
+
|
207
|
+
/** Default Assignment Operator */
|
208
|
+
void operator=(
|
209
|
+
const TNLPReducer&
|
210
|
+
);
|
211
|
+
///@}
|
212
|
+
|
213
|
+
/** @name original TNLP */
|
214
|
+
///@{
|
215
|
+
SmartPtr<TNLP> tnlp_;
|
216
|
+
Index m_orig_;
|
217
|
+
Index nnz_jac_g_orig_;
|
218
|
+
///@}
|
219
|
+
|
220
|
+
/** Number of constraints to be skipped */
|
221
|
+
Index n_g_skip_;
|
222
|
+
|
223
|
+
/** Array of indices of the constraints that are to be skipped.
|
224
|
+
*
|
225
|
+
* This is provided at the beginning in the constructor.
|
226
|
+
*/
|
227
|
+
Index* index_g_skip_;
|
228
|
+
|
229
|
+
/** Index style for original problem.
|
230
|
+
*
|
231
|
+
* Internally, we use C-Style now.
|
232
|
+
*/
|
233
|
+
IndexStyleEnum index_style_orig_;
|
234
|
+
|
235
|
+
/** Map from original constraints to new constraints.
|
236
|
+
*
|
237
|
+
* A -1 means that a constraint is skipped.
|
238
|
+
*/
|
239
|
+
Index* g_keep_map_;
|
240
|
+
|
241
|
+
/** Number of constraints in reduced NLP */
|
242
|
+
Index m_reduced_;
|
243
|
+
|
244
|
+
/** Number of Jacobian nonzeros in the reduced NLP */
|
245
|
+
Index nnz_jac_g_reduced_;
|
246
|
+
|
247
|
+
/** Number of Jacobian nonzeros that are skipped */
|
248
|
+
Index nnz_jac_g_skipped_;
|
249
|
+
|
250
|
+
/** Array of Jacobian elements that are to be skipped in increasing order. */
|
251
|
+
Index* jac_g_skipped_;
|
252
|
+
|
253
|
+
/** Number of lower variable bounds to be skipped. */
|
254
|
+
Index n_xL_skip_;
|
255
|
+
|
256
|
+
/** Array of indices of the lower variable bounds to be skipped. */
|
257
|
+
Index* index_xL_skip_;
|
258
|
+
|
259
|
+
/** Number of upper variable bounds to be skipped. */
|
260
|
+
Index n_xU_skip_;
|
261
|
+
|
262
|
+
/** Array of indices of the upper variable bounds to be skipped. */
|
263
|
+
Index* index_xU_skip_;
|
264
|
+
|
265
|
+
/** Number of variables that are to be fixed to initial value. */
|
266
|
+
Index n_x_fix_;
|
267
|
+
|
268
|
+
/** Array of indices of the variables that are to be fixed. */
|
269
|
+
Index* index_x_fix_;
|
270
|
+
};
|
271
|
+
|
272
|
+
} // namespace Ipopt
|
273
|
+
|
274
|
+
#endif
|
@@ -0,0 +1,128 @@
|
|
1
|
+
// Copyright (C) 2004, 2006 International Business Machines and others.
|
2
|
+
// All Rights Reserved.
|
3
|
+
// This code is published under the Eclipse Public License.
|
4
|
+
//
|
5
|
+
// Authors: Carl Laird, Andreas Waechter IBM 2004-08-13
|
6
|
+
|
7
|
+
#ifndef __IPTAGGEDOBJECT_HPP__
|
8
|
+
#define __IPTAGGEDOBJECT_HPP__
|
9
|
+
|
10
|
+
#include "IpUtils.hpp"
|
11
|
+
#include "IpDebug.hpp"
|
12
|
+
#include "IpReferenced.hpp"
|
13
|
+
#include "IpObserver.hpp"
|
14
|
+
|
15
|
+
namespace Ipopt
|
16
|
+
{
|
17
|
+
|
18
|
+
/** TaggedObject class.
|
19
|
+
* Often, certain calculations or operations are expensive,
|
20
|
+
* and it can be very inefficient to perform these calculations
|
21
|
+
* again if the input to the calculation has not changed
|
22
|
+
* since the result was last stored.
|
23
|
+
* This base class provides an efficient mechanism to update
|
24
|
+
* a tag, indicating that the object has changed.
|
25
|
+
* Users of a TaggedObject class, need their own Tag data
|
26
|
+
* member to keep track of the state of the TaggedObject, the
|
27
|
+
* last time they performed a calculation. A basic use case for
|
28
|
+
* users of a class inheriting from TaggedObject follows like
|
29
|
+
* this:
|
30
|
+
*
|
31
|
+
* 1. Initialize your own Tag to zero in constructor.
|
32
|
+
*
|
33
|
+
* 2. Before an expensive calculation,
|
34
|
+
* check if the TaggedObject has changed, passing in
|
35
|
+
* your own Tag, indicating the last time you used
|
36
|
+
* the object for the calculation. If it has changed,
|
37
|
+
* perform the calculation again, and store the result.
|
38
|
+
* If it has not changed, simply return the stored result.
|
39
|
+
*
|
40
|
+
* Here is a simple example:
|
41
|
+
\verbatim
|
42
|
+
if (vector.HasChanged(my_vector_tag_)) {
|
43
|
+
my_vector_tag_ = vector.GetTag();
|
44
|
+
result = PerformExpensiveCalculation(vector);
|
45
|
+
return result;
|
46
|
+
}
|
47
|
+
else {
|
48
|
+
return result;
|
49
|
+
}
|
50
|
+
\endverbatim
|
51
|
+
*
|
52
|
+
* Objects derived from TaggedObject must indicate that they have changed to
|
53
|
+
* the base class using the protected member function ObjectChanged(). For
|
54
|
+
* example, a Vector class, inside its own set method, MUST call
|
55
|
+
* ObjectChanged() to update the internally stored tag for comparison.
|
56
|
+
*/
|
57
|
+
class IPOPTLIB_EXPORT TaggedObject : public ReferencedObject, public Subject
|
58
|
+
{
|
59
|
+
public:
|
60
|
+
/** Type for the Tag values */
|
61
|
+
typedef unsigned int Tag;
|
62
|
+
|
63
|
+
/** Constructor. */
|
64
|
+
TaggedObject()
|
65
|
+
:
|
66
|
+
Subject()
|
67
|
+
{
|
68
|
+
ObjectChanged();
|
69
|
+
}
|
70
|
+
|
71
|
+
/** Destructor. */
|
72
|
+
virtual ~TaggedObject()
|
73
|
+
{}
|
74
|
+
|
75
|
+
/** Users of TaggedObjects call this to
|
76
|
+
* update their own internal tags every time
|
77
|
+
* they perform the expensive operation.
|
78
|
+
*/
|
79
|
+
Tag GetTag() const
|
80
|
+
{
|
81
|
+
return tag_;
|
82
|
+
}
|
83
|
+
|
84
|
+
/** Users of TaggedObjects call this to
|
85
|
+
* check if the object HasChanged since
|
86
|
+
* they last updated their own internal
|
87
|
+
* tag.
|
88
|
+
*/
|
89
|
+
bool HasChanged(const Tag comparison_tag) const
|
90
|
+
{
|
91
|
+
return (comparison_tag == tag_) ? false : true;
|
92
|
+
}
|
93
|
+
protected:
|
94
|
+
/** Objects derived from TaggedObject MUST call this
|
95
|
+
* method every time their internal state changes to
|
96
|
+
* update the internal tag for comparison
|
97
|
+
*/
|
98
|
+
void ObjectChanged();
|
99
|
+
private:
|
100
|
+
/**@name Default Compiler Generated Methods (Hidden to avoid
|
101
|
+
* implicit creation/calling). These methods are not implemented
|
102
|
+
* and we do not want the compiler to implement them for us, so we
|
103
|
+
* declare them private and do not define them. This ensures that
|
104
|
+
* they will not be implicitly created/called. */
|
105
|
+
///@{
|
106
|
+
/** Copy Constructor */
|
107
|
+
TaggedObject(const TaggedObject&);
|
108
|
+
|
109
|
+
/** Default Assignment Operator */
|
110
|
+
void operator=(const TaggedObject&);
|
111
|
+
///@}
|
112
|
+
|
113
|
+
/** The tag indicating the current state of the object.
|
114
|
+
* We use this to compare against the comparison_tag
|
115
|
+
* in the HasChanged method. This member is updated
|
116
|
+
* from the unique_tag_ every time the object changes.
|
117
|
+
*/
|
118
|
+
Tag tag_;
|
119
|
+
|
120
|
+
/** The index indicating the cache priority for this
|
121
|
+
* TaggedObject. If a result that depended on this
|
122
|
+
* TaggedObject is cached, it will be cached with this
|
123
|
+
* priority
|
124
|
+
*/
|
125
|
+
Index cache_priority_;
|
126
|
+
};
|
127
|
+
} // namespace Ipopt
|
128
|
+
#endif
|
@@ -0,0 +1,218 @@
|
|
1
|
+
// Copyright (C) 2006, 2009 International Business Machines and others.
|
2
|
+
// All Rights Reserved.
|
3
|
+
// This code is published under the Eclipse Public License.
|
4
|
+
//
|
5
|
+
// Authors: Andreas Waechter IBM 2005-09-19
|
6
|
+
|
7
|
+
#ifndef __IPTIMEDTASK_HPP__
|
8
|
+
#define __IPTIMEDTASK_HPP__
|
9
|
+
|
10
|
+
#include "IpUtils.hpp"
|
11
|
+
|
12
|
+
namespace Ipopt
|
13
|
+
{
|
14
|
+
/** This class is used to collect timing information for a particular task. */
|
15
|
+
class IPOPTLIB_EXPORT TimedTask
|
16
|
+
{
|
17
|
+
public:
|
18
|
+
/**@name Constructors/Destructors */
|
19
|
+
///@{
|
20
|
+
/** Default constructor. */
|
21
|
+
TimedTask()
|
22
|
+
:
|
23
|
+
total_cputime_(0.),
|
24
|
+
total_systime_(0.),
|
25
|
+
total_walltime_(0.),
|
26
|
+
enabled_(true),
|
27
|
+
start_called_(false),
|
28
|
+
end_called_(true)
|
29
|
+
{}
|
30
|
+
|
31
|
+
/** Default destructor */
|
32
|
+
~TimedTask()
|
33
|
+
{}
|
34
|
+
///@}
|
35
|
+
|
36
|
+
/// enable the timer
|
37
|
+
/// @since 3.14.0
|
38
|
+
void Enable()
|
39
|
+
{
|
40
|
+
enabled_ = true;
|
41
|
+
}
|
42
|
+
|
43
|
+
/// disable the timer
|
44
|
+
///
|
45
|
+
/// following calls to Start(), End(), and EndIfStarted() have no effect
|
46
|
+
/// @since 3.14.0
|
47
|
+
void Disable()
|
48
|
+
{
|
49
|
+
enabled_ = false;
|
50
|
+
}
|
51
|
+
|
52
|
+
/** Method for resetting time to zero. */
|
53
|
+
void Reset()
|
54
|
+
{
|
55
|
+
total_cputime_ = 0.;
|
56
|
+
total_systime_ = 0.;
|
57
|
+
total_walltime_ = 0.;
|
58
|
+
start_called_ = false;
|
59
|
+
end_called_ = true;
|
60
|
+
}
|
61
|
+
|
62
|
+
/** Method that is called before execution of the task. */
|
63
|
+
void Start()
|
64
|
+
{
|
65
|
+
if( !enabled_ )
|
66
|
+
{
|
67
|
+
return;
|
68
|
+
}
|
69
|
+
|
70
|
+
DBG_ASSERT(end_called_);
|
71
|
+
DBG_ASSERT(!start_called_);
|
72
|
+
end_called_ = false;
|
73
|
+
start_called_ = true;
|
74
|
+
start_cputime_ = CpuTime();
|
75
|
+
start_systime_ = SysTime();
|
76
|
+
start_walltime_ = WallclockTime();
|
77
|
+
}
|
78
|
+
|
79
|
+
/** Method that is called after execution of the task. */
|
80
|
+
void End()
|
81
|
+
{
|
82
|
+
if( !enabled_ )
|
83
|
+
{
|
84
|
+
return;
|
85
|
+
}
|
86
|
+
|
87
|
+
DBG_ASSERT(!end_called_);
|
88
|
+
DBG_ASSERT(start_called_);
|
89
|
+
end_called_ = true;
|
90
|
+
start_called_ = false;
|
91
|
+
total_cputime_ += CpuTime() - start_cputime_;
|
92
|
+
total_systime_ += SysTime() - start_systime_;
|
93
|
+
total_walltime_ += WallclockTime() - start_walltime_;
|
94
|
+
}
|
95
|
+
|
96
|
+
/** Method that is called after execution of the task for which
|
97
|
+
* timing might have been started. This only updates the timing
|
98
|
+
* if the timing has indeed been conducted. This is useful to
|
99
|
+
* stop timing after catching exceptions. */
|
100
|
+
void EndIfStarted()
|
101
|
+
{
|
102
|
+
if( !enabled_ )
|
103
|
+
{
|
104
|
+
return;
|
105
|
+
}
|
106
|
+
if( start_called_ )
|
107
|
+
{
|
108
|
+
end_called_ = true;
|
109
|
+
start_called_ = false;
|
110
|
+
total_cputime_ += CpuTime() - start_cputime_;
|
111
|
+
total_systime_ += SysTime() - start_systime_;
|
112
|
+
total_walltime_ += WallclockTime() - start_walltime_;
|
113
|
+
}
|
114
|
+
DBG_ASSERT(end_called_);
|
115
|
+
}
|
116
|
+
|
117
|
+
/** Method returning total CPU time spend for task so far. */
|
118
|
+
Number TotalCpuTime() const
|
119
|
+
{
|
120
|
+
DBG_ASSERT(end_called_);
|
121
|
+
return total_cputime_;
|
122
|
+
}
|
123
|
+
|
124
|
+
/** Method returning total system time spend for task so far. */
|
125
|
+
Number TotalSysTime() const
|
126
|
+
{
|
127
|
+
DBG_ASSERT(end_called_);
|
128
|
+
return total_systime_;
|
129
|
+
}
|
130
|
+
|
131
|
+
/** Method returning total wall clock time spend for task so far. */
|
132
|
+
Number TotalWallclockTime() const
|
133
|
+
{
|
134
|
+
DBG_ASSERT(end_called_);
|
135
|
+
return total_walltime_;
|
136
|
+
}
|
137
|
+
|
138
|
+
/** Method returning start CPU time for started task.
|
139
|
+
* @since 3.14.0
|
140
|
+
*/
|
141
|
+
Number StartCpuTime() const
|
142
|
+
{
|
143
|
+
DBG_ASSERT(start_called_);
|
144
|
+
DBG_ASSERT(!end_called_);
|
145
|
+
return start_cputime_;
|
146
|
+
}
|
147
|
+
|
148
|
+
/** Method returning start system time for started task.
|
149
|
+
* @since 3.14.0
|
150
|
+
*/
|
151
|
+
Number StartSysTime() const
|
152
|
+
{
|
153
|
+
DBG_ASSERT(start_called_);
|
154
|
+
DBG_ASSERT(!end_called_);
|
155
|
+
return start_systime_;
|
156
|
+
}
|
157
|
+
|
158
|
+
/** Method returning start wall clock time for started task.
|
159
|
+
* @since 3.14.0
|
160
|
+
*/
|
161
|
+
Number StartWallclockTime() const
|
162
|
+
{
|
163
|
+
DBG_ASSERT(start_called_);
|
164
|
+
DBG_ASSERT(!end_called_);
|
165
|
+
return start_walltime_;
|
166
|
+
}
|
167
|
+
|
168
|
+
/// @since 3.14.0
|
169
|
+
bool IsEnabled() const
|
170
|
+
{
|
171
|
+
return enabled_;
|
172
|
+
}
|
173
|
+
|
174
|
+
/// @since 3.14.0
|
175
|
+
bool IsStarted() const
|
176
|
+
{
|
177
|
+
return start_called_;
|
178
|
+
}
|
179
|
+
|
180
|
+
private:
|
181
|
+
/**@name Default Compiler Generated Methods (Hidden to avoid
|
182
|
+
* implicit creation/calling). These methods are not
|
183
|
+
* implemented and we do not want the compiler to implement them
|
184
|
+
* for us, so we declare them private and do not define
|
185
|
+
* them. This ensures that they will not be implicitly
|
186
|
+
* created/called. */
|
187
|
+
///@{
|
188
|
+
/** Copy Constructor */
|
189
|
+
TimedTask(const TimedTask&);
|
190
|
+
|
191
|
+
/** Default Assignment Operator */
|
192
|
+
void operator=(const TimedTask&);
|
193
|
+
///@}
|
194
|
+
|
195
|
+
/** CPU time at beginning of task. */
|
196
|
+
Number start_cputime_;
|
197
|
+
/** Total CPU time for task measured so far. */
|
198
|
+
Number total_cputime_;
|
199
|
+
/** System time at beginning of task. */
|
200
|
+
Number start_systime_;
|
201
|
+
/** Total system time for task measured so far. */
|
202
|
+
Number total_systime_;
|
203
|
+
/** Wall clock time at beginning of task. */
|
204
|
+
Number start_walltime_;
|
205
|
+
/** Total wall clock time for task measured so far. */
|
206
|
+
Number total_walltime_;
|
207
|
+
|
208
|
+
/** @name status fields */
|
209
|
+
///@{
|
210
|
+
bool enabled_;
|
211
|
+
bool start_called_;
|
212
|
+
bool end_called_;
|
213
|
+
///@}
|
214
|
+
|
215
|
+
};
|
216
|
+
} // namespace Ipopt
|
217
|
+
|
218
|
+
#endif
|