casadi 3.6.4__cp310-none-manylinux2014_i686.whl → 3.6.6__cp310-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,395 @@
|
|
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 __IPCOMPOUNDVECTOR_HPP__
|
8
|
+
#define __IPCOMPOUNDVECTOR_HPP__
|
9
|
+
|
10
|
+
#include "IpUtils.hpp"
|
11
|
+
#include "IpVector.hpp"
|
12
|
+
#include <vector>
|
13
|
+
|
14
|
+
namespace Ipopt
|
15
|
+
{
|
16
|
+
|
17
|
+
/* forward declarations */
|
18
|
+
class CompoundVectorSpace;
|
19
|
+
|
20
|
+
/** Class of Vectors consisting of other vectors.
|
21
|
+
*
|
22
|
+
* This vector is a
|
23
|
+
* vector that consists of zero, one or more Vector's which are
|
24
|
+
* stacked on each others: \f$ x_{\rm compound} =
|
25
|
+
* \left(\begin{array}{c}x_0\\\dots\\x_{{\rm
|
26
|
+
* ncomps} - 1}\end{array}\right)\f$. The individual components can be
|
27
|
+
* associated to different VectorSpaces. The individual components
|
28
|
+
* can also be const and non-const Vectors.
|
29
|
+
*/
|
30
|
+
class IPOPTLIB_EXPORT CompoundVector: public Vector
|
31
|
+
{
|
32
|
+
public:
|
33
|
+
/**@name Constructors/Destructors */
|
34
|
+
///@{
|
35
|
+
/** Constructor, given the corresponding CompoundVectorSpace.
|
36
|
+
*
|
37
|
+
* Before this constructor can be called, all components of the
|
38
|
+
* CompoundVectorSpace have to be set, so that the constructors
|
39
|
+
* for the individual components can be called. If the flag
|
40
|
+
* create_new is true, then the individual components of the new
|
41
|
+
* CompoundVector are initialized with the MakeNew methods of
|
42
|
+
* each VectorSpace (and are non-const). Otherwise, the
|
43
|
+
* individual components can later be set using the SetComp and
|
44
|
+
* SetCompNonConst method.
|
45
|
+
*/
|
46
|
+
CompoundVector(
|
47
|
+
const CompoundVectorSpace* owner_space,
|
48
|
+
bool create_new
|
49
|
+
);
|
50
|
+
|
51
|
+
/** Default destructor */
|
52
|
+
virtual ~CompoundVector() { }
|
53
|
+
///@}
|
54
|
+
|
55
|
+
/** Method for setting the pointer for a component that is a const Vector */
|
56
|
+
void SetComp(
|
57
|
+
Index icomp,
|
58
|
+
const Vector& vec
|
59
|
+
);
|
60
|
+
|
61
|
+
/** Method for setting the pointer for a component that is a non-const Vector */
|
62
|
+
void SetCompNonConst(
|
63
|
+
Index icomp,
|
64
|
+
Vector& vec
|
65
|
+
);
|
66
|
+
|
67
|
+
/** Number of components of this compound vector */
|
68
|
+
inline Index NComps() const;
|
69
|
+
|
70
|
+
/** Check if a particular component is const or not */
|
71
|
+
bool IsCompConst(
|
72
|
+
Index i
|
73
|
+
) const
|
74
|
+
{
|
75
|
+
DBG_ASSERT(i > 0 && i < NComps());
|
76
|
+
DBG_ASSERT(IsValid(comps_[i]) || IsValid(const_comps_[i]));
|
77
|
+
if( IsValid(const_comps_[i]) )
|
78
|
+
{
|
79
|
+
return true;
|
80
|
+
}
|
81
|
+
return false;
|
82
|
+
}
|
83
|
+
|
84
|
+
/** Check if a particular component is null or not */
|
85
|
+
bool IsCompNull(
|
86
|
+
Index i
|
87
|
+
) const
|
88
|
+
{
|
89
|
+
DBG_ASSERT(i >= 0 && i < NComps());
|
90
|
+
if( IsValid(comps_[i]) || IsValid(const_comps_[i]) )
|
91
|
+
{
|
92
|
+
return false;
|
93
|
+
}
|
94
|
+
return true;
|
95
|
+
}
|
96
|
+
|
97
|
+
/** Return a particular component (const version) */
|
98
|
+
SmartPtr<const Vector> GetComp(
|
99
|
+
Index i
|
100
|
+
) const
|
101
|
+
{
|
102
|
+
return ConstComp(i);
|
103
|
+
}
|
104
|
+
|
105
|
+
/** Return a particular component (non-const version).
|
106
|
+
*
|
107
|
+
* Note that calling this method with mark the CompoundVector as changed.
|
108
|
+
* Therefore, only use this method if you are intending to change
|
109
|
+
* the Vector that you receive.
|
110
|
+
*/
|
111
|
+
SmartPtr<Vector> GetCompNonConst(
|
112
|
+
Index i
|
113
|
+
)
|
114
|
+
{
|
115
|
+
ObjectChanged();
|
116
|
+
return Comp(i);
|
117
|
+
}
|
118
|
+
|
119
|
+
protected:
|
120
|
+
/** @name Overloaded methods from Vector base class */
|
121
|
+
///@{
|
122
|
+
virtual void CopyImpl(
|
123
|
+
const Vector& x
|
124
|
+
);
|
125
|
+
|
126
|
+
virtual void ScalImpl(
|
127
|
+
Number alpha
|
128
|
+
);
|
129
|
+
|
130
|
+
virtual void AxpyImpl(
|
131
|
+
Number alpha,
|
132
|
+
const Vector& x
|
133
|
+
);
|
134
|
+
|
135
|
+
virtual Number DotImpl(
|
136
|
+
const Vector& x
|
137
|
+
) const;
|
138
|
+
|
139
|
+
virtual Number Nrm2Impl() const;
|
140
|
+
|
141
|
+
virtual Number AsumImpl() const;
|
142
|
+
|
143
|
+
virtual Number AmaxImpl() const;
|
144
|
+
|
145
|
+
virtual void SetImpl(
|
146
|
+
Number value
|
147
|
+
);
|
148
|
+
|
149
|
+
virtual void ElementWiseDivideImpl(
|
150
|
+
const Vector& x
|
151
|
+
);
|
152
|
+
|
153
|
+
virtual void ElementWiseMultiplyImpl(
|
154
|
+
const Vector& x
|
155
|
+
);
|
156
|
+
|
157
|
+
virtual void ElementWiseSelectImpl(
|
158
|
+
const Vector& x
|
159
|
+
);
|
160
|
+
|
161
|
+
virtual void ElementWiseMaxImpl(
|
162
|
+
const Vector& x
|
163
|
+
);
|
164
|
+
|
165
|
+
virtual void ElementWiseMinImpl(
|
166
|
+
const Vector& x
|
167
|
+
);
|
168
|
+
|
169
|
+
virtual void ElementWiseReciprocalImpl();
|
170
|
+
|
171
|
+
virtual void ElementWiseAbsImpl();
|
172
|
+
|
173
|
+
virtual void ElementWiseSqrtImpl();
|
174
|
+
|
175
|
+
virtual void ElementWiseSgnImpl();
|
176
|
+
|
177
|
+
virtual void AddScalarImpl(
|
178
|
+
Number scalar
|
179
|
+
);
|
180
|
+
|
181
|
+
virtual Number MaxImpl() const;
|
182
|
+
|
183
|
+
virtual Number MinImpl() const;
|
184
|
+
|
185
|
+
virtual Number SumImpl() const;
|
186
|
+
|
187
|
+
virtual Number SumLogsImpl() const;
|
188
|
+
///@}
|
189
|
+
|
190
|
+
/** @name Implemented specialized functions */
|
191
|
+
///@{
|
192
|
+
void AddTwoVectorsImpl(
|
193
|
+
Number a,
|
194
|
+
const Vector& v1,
|
195
|
+
Number b,
|
196
|
+
const Vector& v2,
|
197
|
+
Number c
|
198
|
+
);
|
199
|
+
|
200
|
+
Number FracToBoundImpl(
|
201
|
+
const Vector& delta,
|
202
|
+
Number tau
|
203
|
+
) const;
|
204
|
+
|
205
|
+
void AddVectorQuotientImpl(
|
206
|
+
Number a,
|
207
|
+
const Vector& z,
|
208
|
+
const Vector& s,
|
209
|
+
Number c
|
210
|
+
);
|
211
|
+
///@}
|
212
|
+
|
213
|
+
/** Method for determining if all stored numbers are valid (i.e., no Inf or Nan). */
|
214
|
+
virtual bool HasValidNumbersImpl() const;
|
215
|
+
|
216
|
+
/** @name Output methods */
|
217
|
+
///@{
|
218
|
+
virtual void PrintImpl(
|
219
|
+
const Journalist& jnlst,
|
220
|
+
EJournalLevel level,
|
221
|
+
EJournalCategory category,
|
222
|
+
const std::string& name,
|
223
|
+
Index indent,
|
224
|
+
const std::string& prefix
|
225
|
+
) const;
|
226
|
+
///@}
|
227
|
+
|
228
|
+
private:
|
229
|
+
/**@name Default Compiler Generated Methods
|
230
|
+
* (Hidden to avoid implicit creation/calling).
|
231
|
+
* These methods are not implemented and
|
232
|
+
* we do not want the compiler to implement
|
233
|
+
* them for us, so we declare them private
|
234
|
+
* and do not define them. This ensures that
|
235
|
+
* they will not be implicitly created/called.
|
236
|
+
*/
|
237
|
+
///@{
|
238
|
+
/** Default Constructor */
|
239
|
+
CompoundVector();
|
240
|
+
|
241
|
+
/** Copy Constructor */
|
242
|
+
CompoundVector(
|
243
|
+
const CompoundVector&
|
244
|
+
);
|
245
|
+
|
246
|
+
/** Default Assignment Operator */
|
247
|
+
void operator=(
|
248
|
+
const CompoundVector&
|
249
|
+
);
|
250
|
+
///@}
|
251
|
+
|
252
|
+
/** Components of the compound vector.
|
253
|
+
*
|
254
|
+
* The components are stored by SmartPtrs in a std::vector
|
255
|
+
*/
|
256
|
+
std::vector<SmartPtr<Vector> > comps_;
|
257
|
+
std::vector<SmartPtr<const Vector> > const_comps_;
|
258
|
+
|
259
|
+
const CompoundVectorSpace* owner_space_;
|
260
|
+
|
261
|
+
bool vectors_valid_;
|
262
|
+
|
263
|
+
bool VectorsValid();
|
264
|
+
|
265
|
+
inline const Vector* ConstComp(
|
266
|
+
Index i
|
267
|
+
) const;
|
268
|
+
|
269
|
+
inline Vector* Comp(
|
270
|
+
Index i
|
271
|
+
);
|
272
|
+
};
|
273
|
+
|
274
|
+
/** This vectors space is the vector space for CompoundVector.
|
275
|
+
*
|
276
|
+
* Before a CompoundVector can be created, all components of this
|
277
|
+
* CompoundVectorSpace have to be set. When calling the constructor,
|
278
|
+
* the number of component has to be specified. The individual
|
279
|
+
* VectorSpaces can be set with the SetComp method.
|
280
|
+
*/
|
281
|
+
class IPOPTLIB_EXPORT CompoundVectorSpace: public VectorSpace
|
282
|
+
{
|
283
|
+
public:
|
284
|
+
/** @name Constructors/Destructors. */
|
285
|
+
///@{
|
286
|
+
/** Constructor, has to be given the number of components and the
|
287
|
+
* total dimension of all components combined.
|
288
|
+
*/
|
289
|
+
CompoundVectorSpace(
|
290
|
+
Index ncomp_spaces,
|
291
|
+
Index total_dim
|
292
|
+
);
|
293
|
+
|
294
|
+
/** Destructor */
|
295
|
+
~CompoundVectorSpace()
|
296
|
+
{ }
|
297
|
+
///@}
|
298
|
+
|
299
|
+
/** Method for setting the individual component VectorSpaces */
|
300
|
+
virtual void SetCompSpace(
|
301
|
+
Index icomp, /**< Number of the component to be set */
|
302
|
+
const VectorSpace& vec_space /**< VectorSpace for component icomp */
|
303
|
+
);
|
304
|
+
|
305
|
+
/** Method for obtaining an individual component VectorSpace */
|
306
|
+
SmartPtr<const VectorSpace> GetCompSpace(
|
307
|
+
Index icomp
|
308
|
+
) const;
|
309
|
+
|
310
|
+
/** Accessor method to obtain the number of components */
|
311
|
+
Index NCompSpaces() const
|
312
|
+
{
|
313
|
+
return ncomp_spaces_;
|
314
|
+
}
|
315
|
+
|
316
|
+
/** Method for creating a new vector of this specific type. */
|
317
|
+
virtual CompoundVector* MakeNewCompoundVector(
|
318
|
+
bool create_new = true
|
319
|
+
) const
|
320
|
+
{
|
321
|
+
return new CompoundVector(this, create_new);
|
322
|
+
}
|
323
|
+
|
324
|
+
virtual Vector* MakeNew() const
|
325
|
+
{
|
326
|
+
return MakeNewCompoundVector();
|
327
|
+
}
|
328
|
+
|
329
|
+
private:
|
330
|
+
/**@name Default Compiler Generated Methods
|
331
|
+
* (Hidden to avoid implicit creation/calling).
|
332
|
+
* These methods are not implemented and
|
333
|
+
* we do not want the compiler to implement
|
334
|
+
* them for us, so we declare them private
|
335
|
+
* and do not define them. This ensures that
|
336
|
+
* they will not be implicitly created/called. */
|
337
|
+
///@{
|
338
|
+
/** Default constructor */
|
339
|
+
CompoundVectorSpace();
|
340
|
+
|
341
|
+
/** Copy Constructor */
|
342
|
+
CompoundVectorSpace(
|
343
|
+
const CompoundVectorSpace&
|
344
|
+
);
|
345
|
+
|
346
|
+
/** Default Assignment Operator */
|
347
|
+
CompoundVectorSpace& operator=(
|
348
|
+
const CompoundVectorSpace&
|
349
|
+
);
|
350
|
+
///@}
|
351
|
+
|
352
|
+
/** Number of components */
|
353
|
+
const Index ncomp_spaces_;
|
354
|
+
|
355
|
+
/** std::vector of vector spaces for the components */
|
356
|
+
std::vector<SmartPtr<const VectorSpace> > comp_spaces_;
|
357
|
+
};
|
358
|
+
|
359
|
+
/* inline methods */
|
360
|
+
inline Index CompoundVector::NComps() const
|
361
|
+
{
|
362
|
+
return owner_space_->NCompSpaces();
|
363
|
+
}
|
364
|
+
|
365
|
+
inline const Vector* CompoundVector::ConstComp(
|
366
|
+
Index i
|
367
|
+
) const
|
368
|
+
{
|
369
|
+
DBG_ASSERT(i < NComps());
|
370
|
+
DBG_ASSERT(IsValid(comps_[i]) || IsValid(const_comps_[i]));
|
371
|
+
if( IsValid(comps_[i]) )
|
372
|
+
{
|
373
|
+
return GetRawPtr(comps_[i]);
|
374
|
+
}
|
375
|
+
else if( IsValid(const_comps_[i]) )
|
376
|
+
{
|
377
|
+
return GetRawPtr(const_comps_[i]);
|
378
|
+
}
|
379
|
+
|
380
|
+
DBG_ASSERT(false && "shouldn't be here");
|
381
|
+
return NULL;
|
382
|
+
}
|
383
|
+
|
384
|
+
inline Vector* CompoundVector::Comp(
|
385
|
+
Index i
|
386
|
+
)
|
387
|
+
{
|
388
|
+
DBG_ASSERT(i < NComps());
|
389
|
+
DBG_ASSERT(IsValid(comps_[i]));
|
390
|
+
return GetRawPtr(comps_[i]);
|
391
|
+
}
|
392
|
+
|
393
|
+
} // namespace Ipopt
|
394
|
+
|
395
|
+
#endif
|
@@ -0,0 +1,97 @@
|
|
1
|
+
// Copyright (C) 2004, 2009 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 __IPCONVCHECK_HPP__
|
8
|
+
#define __IPCONVCHECK_HPP__
|
9
|
+
|
10
|
+
#include "IpAlgStrategy.hpp"
|
11
|
+
|
12
|
+
namespace Ipopt
|
13
|
+
{
|
14
|
+
|
15
|
+
/** Base class for checking the algorithm termination criteria. */
|
16
|
+
class IPOPTLIB_EXPORT ConvergenceCheck: public AlgorithmStrategyObject
|
17
|
+
{
|
18
|
+
public:
|
19
|
+
/**@name Constructors/Destructors */
|
20
|
+
///@{
|
21
|
+
/** Constructor */
|
22
|
+
ConvergenceCheck()
|
23
|
+
{ }
|
24
|
+
|
25
|
+
/** Destructor */
|
26
|
+
virtual ~ConvergenceCheck()
|
27
|
+
{ }
|
28
|
+
///@}
|
29
|
+
|
30
|
+
/** Convergence return enum */
|
31
|
+
enum ConvergenceStatus
|
32
|
+
{
|
33
|
+
CONTINUE,
|
34
|
+
CONVERGED,
|
35
|
+
CONVERGED_TO_ACCEPTABLE_POINT,
|
36
|
+
MAXITER_EXCEEDED,
|
37
|
+
CPUTIME_EXCEEDED,
|
38
|
+
WALLTIME_EXCEEDED, ///< @since 3.14.0
|
39
|
+
DIVERGING,
|
40
|
+
USER_STOP,
|
41
|
+
FAILED
|
42
|
+
};
|
43
|
+
|
44
|
+
/** overloaded from AlgorithmStrategyObject */
|
45
|
+
virtual bool InitializeImpl(
|
46
|
+
const OptionsList& options,
|
47
|
+
const std::string& prefix
|
48
|
+
) = 0;
|
49
|
+
|
50
|
+
/** Pure virtual method for performing the convergence test.
|
51
|
+
*
|
52
|
+
* If call_intermediate_callback is true, the user callback method
|
53
|
+
* in the NLP should be called in order to see if the user
|
54
|
+
* requests an early termination.
|
55
|
+
*/
|
56
|
+
virtual ConvergenceStatus CheckConvergence(
|
57
|
+
bool call_intermediate_callback = true
|
58
|
+
) = 0;
|
59
|
+
|
60
|
+
/** Method for testing if the current iterate is considered to
|
61
|
+
* satisfy the "acceptable level" of accuracy.
|
62
|
+
*
|
63
|
+
* The idea is that if the desired convergence tolerance cannot
|
64
|
+
* be achieved, the algorithm might stop after a number of
|
65
|
+
* acceptable points have been encountered.
|
66
|
+
*/
|
67
|
+
virtual bool CurrentIsAcceptable() = 0;
|
68
|
+
|
69
|
+
private:
|
70
|
+
/**@name Default Compiler Generated Methods
|
71
|
+
* (Hidden to avoid implicit creation/calling).
|
72
|
+
*
|
73
|
+
* These methods are not implemented and
|
74
|
+
* we do not want the compiler to implement
|
75
|
+
* them for us, so we declare them private
|
76
|
+
* and do not define them. This ensures that
|
77
|
+
* they will not be implicitly created/called.
|
78
|
+
*/
|
79
|
+
///@{
|
80
|
+
/** Default Constructor */
|
81
|
+
// ConvergenceCheck();
|
82
|
+
/** Copy Constructor */
|
83
|
+
ConvergenceCheck(
|
84
|
+
const ConvergenceCheck&
|
85
|
+
);
|
86
|
+
|
87
|
+
/** Default Assignment Operator */
|
88
|
+
void operator=(
|
89
|
+
const ConvergenceCheck&
|
90
|
+
);
|
91
|
+
///@}
|
92
|
+
|
93
|
+
};
|
94
|
+
|
95
|
+
} // namespace Ipopt
|
96
|
+
|
97
|
+
#endif
|
@@ -0,0 +1,167 @@
|
|
1
|
+
// Copyright (C) 2004, 2007 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 __IPDEBUG_HPP__
|
8
|
+
#define __IPDEBUG_HPP__
|
9
|
+
|
10
|
+
#include "IpoptConfig.h"
|
11
|
+
#include "IpTypes.hpp"
|
12
|
+
|
13
|
+
#ifndef IPOPT_CHECKLEVEL
|
14
|
+
#define IPOPT_CHECKLEVEL 0
|
15
|
+
#endif
|
16
|
+
|
17
|
+
#if IPOPT_CHECKLEVEL > 0
|
18
|
+
# ifdef NDEBUG
|
19
|
+
# undef NDEBUG
|
20
|
+
# endif
|
21
|
+
# include <cassert>
|
22
|
+
# define DBG_ASSERT(test) assert(test)
|
23
|
+
# define DBG_ASSERT_EXCEPTION(__condition, __except_type, __msg) \
|
24
|
+
ASSERT_EXCEPTION( (__condition), __except_type, __msg);
|
25
|
+
# define DBG_DO(__cmd) __cmd
|
26
|
+
#else
|
27
|
+
# define DBG_ASSERT(test)
|
28
|
+
# define DBG_ASSERT_EXCEPTION(__condition, __except_type, __msg)
|
29
|
+
# define DBG_DO(__cmd)
|
30
|
+
#endif
|
31
|
+
|
32
|
+
#ifndef IPOPT_VERBOSITY
|
33
|
+
#define IPOPT_VERBOSITY 0
|
34
|
+
#endif
|
35
|
+
|
36
|
+
#if IPOPT_VERBOSITY < 1
|
37
|
+
# define DBG_START_FUN(__func_name, __verbose_level)
|
38
|
+
# define DBG_START_METH(__func_name, __verbose_level)
|
39
|
+
# define DBG_PRINT(__printf_args)
|
40
|
+
# define DBG_PRINT_VECTOR(__verbose_level, __vec_name, __vec)
|
41
|
+
# define DBG_PRINT_MATRIX(__verbose_level, __mat_name, __mat)
|
42
|
+
# define DBG_EXEC(__verbosity, __cmd)
|
43
|
+
# define DBG_VERBOSITY() 0
|
44
|
+
#else
|
45
|
+
#include <string>
|
46
|
+
|
47
|
+
namespace Ipopt
|
48
|
+
{
|
49
|
+
// forward definition
|
50
|
+
class Journalist;
|
51
|
+
|
52
|
+
/** Class that lives throughout the execution of a method or
|
53
|
+
* function for which debug output is to be generated.
|
54
|
+
*
|
55
|
+
* The output
|
56
|
+
* is sent to the unique debug journalist that is set with
|
57
|
+
* SetJournalist at the beginning of program execution.
|
58
|
+
*/
|
59
|
+
class IPOPTLIB_EXPORT DebugJournalistWrapper
|
60
|
+
{
|
61
|
+
public:
|
62
|
+
/** @name Constructors/Destructors. */
|
63
|
+
///@{
|
64
|
+
DebugJournalistWrapper(
|
65
|
+
const std::string& func_name,
|
66
|
+
Index verbose_level
|
67
|
+
);
|
68
|
+
|
69
|
+
DebugJournalistWrapper(
|
70
|
+
const std::string& func_name,
|
71
|
+
Index verbose_level,
|
72
|
+
const void* const method_owner
|
73
|
+
);
|
74
|
+
~DebugJournalistWrapper();
|
75
|
+
///@}
|
76
|
+
|
77
|
+
/** @name accessor methods */
|
78
|
+
///@{
|
79
|
+
Index Verbosity()
|
80
|
+
{
|
81
|
+
return verbose_level_;
|
82
|
+
}
|
83
|
+
const Journalist* Jnlst()
|
84
|
+
{
|
85
|
+
return jrnl_;
|
86
|
+
}
|
87
|
+
Index IndentationLevel()
|
88
|
+
{
|
89
|
+
return indentation_level_;
|
90
|
+
}
|
91
|
+
///@}
|
92
|
+
|
93
|
+
/** Printing */
|
94
|
+
#ifdef __GNUC__
|
95
|
+
__attribute__((format(printf, 3, 4)))
|
96
|
+
#endif
|
97
|
+
void DebugPrintf(
|
98
|
+
Index verbosity,
|
99
|
+
const char* pformat,
|
100
|
+
...
|
101
|
+
);
|
102
|
+
|
103
|
+
private:
|
104
|
+
friend class IpoptApplication;
|
105
|
+
/* Method for initialization of the static GLOBAL journalist,
|
106
|
+
* through with all debug printout is to be written.
|
107
|
+
*
|
108
|
+
* This needs to be set before any debug printout can be done.
|
109
|
+
* It is expected that this is only called by the IpoptApplication constructor.
|
110
|
+
*/
|
111
|
+
static void SetJournalist(
|
112
|
+
Journalist* jrnl
|
113
|
+
);
|
114
|
+
|
115
|
+
/**@name Default Compiler Generated Methods
|
116
|
+
* (Hidden to avoid implicit creation/calling).
|
117
|
+
*
|
118
|
+
* These methods are not implemented and
|
119
|
+
* we do not want the compiler to implement
|
120
|
+
* them for us, so we declare them private
|
121
|
+
* and do not define them. This ensures that
|
122
|
+
* they will not be implicitly created/called.
|
123
|
+
*/
|
124
|
+
///@{
|
125
|
+
/** default constructor */
|
126
|
+
DebugJournalistWrapper();
|
127
|
+
|
128
|
+
/** copy contructor */
|
129
|
+
DebugJournalistWrapper(
|
130
|
+
const DebugJournalistWrapper&
|
131
|
+
);
|
132
|
+
|
133
|
+
/** Default Assignment Operator */
|
134
|
+
DebugJournalistWrapper& operator=(
|
135
|
+
const DebugJournalistWrapper&
|
136
|
+
);
|
137
|
+
///@}
|
138
|
+
|
139
|
+
static Index indentation_level_;
|
140
|
+
std::string func_name_;
|
141
|
+
Index verbose_level_;
|
142
|
+
const void* method_owner_;
|
143
|
+
|
144
|
+
static Journalist* jrnl_;
|
145
|
+
};
|
146
|
+
}
|
147
|
+
|
148
|
+
# define DBG_START_FUN(__func_name, __verbose_level) \
|
149
|
+
DebugJournalistWrapper dbg_jrnl((__func_name), (__verbose_level)); \
|
150
|
+
|
151
|
+
# define DBG_START_METH(__func_name, __verbose_level) \
|
152
|
+
DebugJournalistWrapper dbg_jrnl((__func_name), (__verbose_level), this);
|
153
|
+
|
154
|
+
# define DBG_PRINT(__args) \
|
155
|
+
dbg_jrnl.DebugPrintf __args;
|
156
|
+
|
157
|
+
# define DBG_EXEC(__verbose_level, __cmd) \
|
158
|
+
if (dbg_jrnl.Verbosity() >= (__verbose_level)) { \
|
159
|
+
(__cmd); \
|
160
|
+
}
|
161
|
+
|
162
|
+
# define DBG_VERBOSITY() \
|
163
|
+
dbg_jrnl.Verbosity()
|
164
|
+
|
165
|
+
#endif
|
166
|
+
|
167
|
+
#endif
|