casadi 3.6.4__cp37-none-manylinux2014_i686.whl → 3.6.6__cp37-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
casadi/include/casadi/mem.h
CHANGED
@@ -46,6 +46,7 @@ extern "C" {
|
|
46
46
|
#endif
|
47
47
|
|
48
48
|
/* Function types corresponding to entry points in CasADi's C API */
|
49
|
+
typedef int (*casadi_config_t)(int, const char**);
|
49
50
|
typedef void (*casadi_signal_t)(void);
|
50
51
|
typedef casadi_int (*casadi_getint_t)(void);
|
51
52
|
typedef int (*casadi_checkout_t)(void);
|
@@ -0,0 +1,417 @@
|
|
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-09-29
|
6
|
+
|
7
|
+
#ifndef __IPALGBUILDER_HPP__
|
8
|
+
#define __IPALGBUILDER_HPP__
|
9
|
+
|
10
|
+
#include "IpIpoptAlg.hpp"
|
11
|
+
#include "IpReferenced.hpp"
|
12
|
+
#include "IpAugSystemSolver.hpp"
|
13
|
+
#include "IpPDSystemSolver.hpp"
|
14
|
+
#include "IpLibraryLoader.hpp"
|
15
|
+
|
16
|
+
namespace Ipopt
|
17
|
+
{
|
18
|
+
|
19
|
+
// forward declarations
|
20
|
+
class IterationOutput;
|
21
|
+
class HessianUpdater;
|
22
|
+
class ConvergenceCheck;
|
23
|
+
class SearchDirectionCalculator;
|
24
|
+
class EqMultiplierCalculator;
|
25
|
+
class IterateInitializer;
|
26
|
+
class LineSearch;
|
27
|
+
class MuUpdate;
|
28
|
+
|
29
|
+
/** Builder for creating a complete IpoptAlg object.
|
30
|
+
*
|
31
|
+
* This object contains all subelements (such as line search objects
|
32
|
+
* etc). How the resulting IpoptAlg object is built can be influenced
|
33
|
+
* by the options.
|
34
|
+
*
|
35
|
+
* More advanced customization can be achieved by subclassing this
|
36
|
+
* class and overloading the virtual methods that build the
|
37
|
+
* individual parts. The advantage of doing this is that it allows
|
38
|
+
* one to reuse the extensive amount of options processing that
|
39
|
+
* takes place, for instance, when generating the symmetric linear
|
40
|
+
* system solver. Another method for customizing the algorithm is
|
41
|
+
* using the optional custom_solver argument, which allows the
|
42
|
+
* expert user to provide a specialized linear solver for the
|
43
|
+
* augmented system (e.g., type GenAugSystemSolver), possibly for
|
44
|
+
* user-defined matrix objects. The optional custom_solver constructor
|
45
|
+
* argument is likely obsolete, however, as more control over this
|
46
|
+
* this process can be achieved by implementing a subclass of this
|
47
|
+
* AlgBuilder (e.g., by overloading the AugSystemSolverFactory method).
|
48
|
+
*/
|
49
|
+
class IPOPTLIB_EXPORT AlgorithmBuilder: public ReferencedObject
|
50
|
+
{
|
51
|
+
public:
|
52
|
+
/**@name Constructors/Destructors */
|
53
|
+
///@{
|
54
|
+
/** Constructor */
|
55
|
+
AlgorithmBuilder(
|
56
|
+
SmartPtr<AugSystemSolver> custom_solver = NULL
|
57
|
+
);
|
58
|
+
|
59
|
+
/** Destructor */
|
60
|
+
virtual ~AlgorithmBuilder()
|
61
|
+
{ }
|
62
|
+
|
63
|
+
///@}
|
64
|
+
|
65
|
+
/** Methods for IpoptTypeInfo */
|
66
|
+
///@{
|
67
|
+
/** register the options used by the algorithm builder */
|
68
|
+
static void RegisterOptions(
|
69
|
+
SmartPtr<RegisteredOptions> roptions
|
70
|
+
);
|
71
|
+
///@}
|
72
|
+
|
73
|
+
/** @name Convenience methods for building solvers without having
|
74
|
+
* to duplicate the significant amount of preprocessor flag and
|
75
|
+
* option checking that takes place. These solvers are used to
|
76
|
+
* create a number of core algorithm components across the
|
77
|
+
* different Build* methods, but depending on what options are
|
78
|
+
* chosen, the first method requiring the solver to be used can
|
79
|
+
* vary. Therefore, each of the Factory methods below is paired
|
80
|
+
* with a Getter method, which is called by all parts of this
|
81
|
+
* algorithm builder to ensure the Factory is only called once. */
|
82
|
+
///@{
|
83
|
+
/** Create a solver that can be used to solve a symmetric linear
|
84
|
+
* system.
|
85
|
+
* Dependencies: None
|
86
|
+
*/
|
87
|
+
virtual SmartPtr<SymLinearSolver> SymLinearSolverFactory(
|
88
|
+
const Journalist& jnlst,
|
89
|
+
const OptionsList& options,
|
90
|
+
const std::string& prefix
|
91
|
+
);
|
92
|
+
|
93
|
+
/** Get the symmetric linear system solver for this
|
94
|
+
* algorithm. This method will call the SymLinearSolverFactory
|
95
|
+
* exactly once (the first time it is used), and store its
|
96
|
+
* instance on SymSolver_ for use in subsequent calls.
|
97
|
+
*/
|
98
|
+
SmartPtr<SymLinearSolver> GetSymLinearSolver(
|
99
|
+
const Journalist& jnlst,
|
100
|
+
const OptionsList& options,
|
101
|
+
const std::string& prefix
|
102
|
+
);
|
103
|
+
|
104
|
+
/** Create a solver that can be used to solve an
|
105
|
+
* augmented system.
|
106
|
+
* Dependencies:
|
107
|
+
* -> GetSymLinearSolver()
|
108
|
+
* -> SymLinearSolverFactory()
|
109
|
+
* -> custom_solver_
|
110
|
+
*/
|
111
|
+
virtual SmartPtr<AugSystemSolver> AugSystemSolverFactory(
|
112
|
+
const Journalist& jnlst,
|
113
|
+
const OptionsList& options,
|
114
|
+
const std::string& prefix
|
115
|
+
);
|
116
|
+
|
117
|
+
/** Get the augmented system solver for this algorithm. This
|
118
|
+
* method will call the AugSystemSolverFactory exactly once (the
|
119
|
+
* first time it is used), and store its instance on AugSolver_
|
120
|
+
* for use in subsequent calls.
|
121
|
+
*/
|
122
|
+
SmartPtr<AugSystemSolver> GetAugSystemSolver(
|
123
|
+
const Journalist& jnlst,
|
124
|
+
const OptionsList& options,
|
125
|
+
const std::string& prefix
|
126
|
+
);
|
127
|
+
|
128
|
+
/** Create a solver that can be used to solve a
|
129
|
+
* primal-dual system.
|
130
|
+
* Dependencies:
|
131
|
+
* -> GetAugSystemSolver()
|
132
|
+
* -> AugSystemSolverFactory()
|
133
|
+
* -> GetSymLinearSolver()
|
134
|
+
* -> SymLinearSolverFactory()
|
135
|
+
* -> custom_solver_
|
136
|
+
*/
|
137
|
+
virtual SmartPtr<PDSystemSolver> PDSystemSolverFactory(
|
138
|
+
const Journalist& jnlst,
|
139
|
+
const OptionsList& options,
|
140
|
+
const std::string& prefix
|
141
|
+
);
|
142
|
+
|
143
|
+
/** Get the primal-dual system solver for this algorithm. This
|
144
|
+
* method will call the PDSystemSolverFactory exactly once (the
|
145
|
+
* first time it is used), and store its instance on PDSolver_
|
146
|
+
* for use in subsequent calls.
|
147
|
+
*/
|
148
|
+
SmartPtr<PDSystemSolver> GetPDSystemSolver(
|
149
|
+
const Journalist& jnlst,
|
150
|
+
const OptionsList& options,
|
151
|
+
const std::string& prefix
|
152
|
+
);
|
153
|
+
///@}
|
154
|
+
|
155
|
+
/** @name Methods to build parts of the algorithm */
|
156
|
+
///@{
|
157
|
+
/** Allocates memory for the IpoptNLP, IpoptData, and
|
158
|
+
* IpoptCalculatedQuanties arguments.
|
159
|
+
* Dependencies: None
|
160
|
+
*/
|
161
|
+
virtual void BuildIpoptObjects(
|
162
|
+
const Journalist& jnlst,
|
163
|
+
const OptionsList& options,
|
164
|
+
const std::string& prefix,
|
165
|
+
const SmartPtr<NLP>& nlp,
|
166
|
+
SmartPtr<IpoptNLP>& ip_nlp,
|
167
|
+
SmartPtr<IpoptData>& ip_data,
|
168
|
+
SmartPtr<IpoptCalculatedQuantities>& ip_cq
|
169
|
+
);
|
170
|
+
|
171
|
+
/** Creates an instance of the IpoptAlgorithm class by building
|
172
|
+
* each of its required constructor arguments piece-by-piece. The
|
173
|
+
* default algorithm can be customized by overloading this method
|
174
|
+
* or by overloading one or more of the Build* methods called in
|
175
|
+
* this method's default implementation. Additional control can
|
176
|
+
* be achieved by overloading any of the *SolverFactory methods.
|
177
|
+
* This method will call (in this order):
|
178
|
+
* -> BuildIterationOutput()
|
179
|
+
* -> BuildHessianUpdater()
|
180
|
+
* -> BuildConvergenceCheck()
|
181
|
+
* -> BuildSearchDirectionCalculator()
|
182
|
+
* -> BuildEqMultiplierCalculator()
|
183
|
+
* -> BuildIterateInitializer()
|
184
|
+
* -> BuildLineSearch()
|
185
|
+
* -> BuildMuUpdate()
|
186
|
+
*/
|
187
|
+
virtual SmartPtr<IpoptAlgorithm> BuildBasicAlgorithm(
|
188
|
+
const Journalist& jnlst,
|
189
|
+
const OptionsList& options,
|
190
|
+
const std::string& prefix
|
191
|
+
);
|
192
|
+
|
193
|
+
/** Creates an instance of the IterationOutput class. This method
|
194
|
+
* is called in the default implementation of
|
195
|
+
* BuildBasicAlgorithm. It can be overloaded to customize that
|
196
|
+
* portion the default algorithm.
|
197
|
+
* Dependencies: None
|
198
|
+
*/
|
199
|
+
virtual SmartPtr<IterationOutput> BuildIterationOutput(
|
200
|
+
const Journalist& jnlst,
|
201
|
+
const OptionsList& options,
|
202
|
+
const std::string& prefix
|
203
|
+
);
|
204
|
+
|
205
|
+
/** Creates an instance of the HessianUpdater class. This method
|
206
|
+
* is called in the default implementation of
|
207
|
+
* BuildBasicAlgorithm. It can be overloaded to customize that
|
208
|
+
* portion the default algorithm.
|
209
|
+
* Dependencies: None
|
210
|
+
*/
|
211
|
+
virtual SmartPtr<HessianUpdater> BuildHessianUpdater(
|
212
|
+
const Journalist& jnlst,
|
213
|
+
const OptionsList& options,
|
214
|
+
const std::string& prefix
|
215
|
+
);
|
216
|
+
|
217
|
+
/** Creates an instance of the ConvergenceCheck class. This method
|
218
|
+
* is called in the default implementation of
|
219
|
+
* BuildBasicAlgorithm. It can be overloaded to customize that
|
220
|
+
* portion the default algorithm.
|
221
|
+
* Dependencies: None
|
222
|
+
*/
|
223
|
+
virtual SmartPtr<ConvergenceCheck> BuildConvergenceCheck(
|
224
|
+
const Journalist& jnlst,
|
225
|
+
const OptionsList& options,
|
226
|
+
const std::string& prefix
|
227
|
+
);
|
228
|
+
|
229
|
+
/** Creates an instance of the SearchDirectionCalculator
|
230
|
+
* class. This method is called in the default implementation of
|
231
|
+
* BuildBasicAlgorithm. It can be overloaded to customize that
|
232
|
+
* portion the default algorithm.
|
233
|
+
* Dependencies:
|
234
|
+
* -> GetPDSystemSolver()
|
235
|
+
* -> PDSystemSolverFactory()
|
236
|
+
* -> GetAugSystemSolver()
|
237
|
+
* -> AugSystemSolverFactory()
|
238
|
+
* -> GetSymLinearSolver()
|
239
|
+
* -> SymLinearSolverFactory()
|
240
|
+
* -> custom_solver_
|
241
|
+
*/
|
242
|
+
virtual SmartPtr<SearchDirectionCalculator> BuildSearchDirectionCalculator(
|
243
|
+
const Journalist& jnlst,
|
244
|
+
const OptionsList& options,
|
245
|
+
const std::string& prefix
|
246
|
+
);
|
247
|
+
|
248
|
+
/** Creates an instance of the EqMultiplierCalculator class. This
|
249
|
+
* method is called in the default implementation of
|
250
|
+
* BuildBasicAlgorithm. It can be overloaded to customize that
|
251
|
+
* portion the default algorithm.
|
252
|
+
* Dependencies:
|
253
|
+
* -> GetAugSystemSolver()
|
254
|
+
* -> AugSystemSolverFactory()
|
255
|
+
* -> GetSymLinearSolver()
|
256
|
+
* -> SymLinearSolverFactory()
|
257
|
+
* -> custom_solver_
|
258
|
+
*/
|
259
|
+
virtual SmartPtr<EqMultiplierCalculator> BuildEqMultiplierCalculator(
|
260
|
+
const Journalist& jnlst,
|
261
|
+
const OptionsList& options,
|
262
|
+
const std::string& prefix
|
263
|
+
);
|
264
|
+
|
265
|
+
/** Creates an instance of the IterateInitializer class. This
|
266
|
+
* method is called in the default implementation of
|
267
|
+
* BuildBasicAlgorithm. It can be overloaded to customize that
|
268
|
+
* portion the default algorithm.
|
269
|
+
* Dependencies:
|
270
|
+
* -> EqMultCalculator_
|
271
|
+
* -> GetAugSystemSolver()
|
272
|
+
* -> AugSystemSolverFactory()
|
273
|
+
* -> GetSymLinearSolver()
|
274
|
+
* -> SymLinearSolverFactory()
|
275
|
+
* -> custom_solver_
|
276
|
+
*/
|
277
|
+
virtual SmartPtr<IterateInitializer> BuildIterateInitializer(
|
278
|
+
const Journalist& jnlst,
|
279
|
+
const OptionsList& options,
|
280
|
+
const std::string& prefix
|
281
|
+
);
|
282
|
+
|
283
|
+
/** Creates an instance of the LineSearch class. This method is
|
284
|
+
* called in the default implementation of BuildBasicAlgorithm.
|
285
|
+
* It can be overloaded to customize that portion the default
|
286
|
+
* algorithm.
|
287
|
+
* Dependencies:
|
288
|
+
* -> EqMultCalculator_
|
289
|
+
* -> ConvCheck_
|
290
|
+
* -> GetAugSystemSolver()
|
291
|
+
* -> AugSystemSolverFactory()
|
292
|
+
* -> GetSymLinearSolver()
|
293
|
+
* -> SymLinearSolverFactory()
|
294
|
+
* -> custom_solver_
|
295
|
+
* -> GetPDSystemSolver()
|
296
|
+
* -> PDSystemSolverFactory()
|
297
|
+
* -> GetAugSystemSolver()
|
298
|
+
* -> AugSystemSolverFactory()
|
299
|
+
* -> GetSymLinearSolver()
|
300
|
+
* -> SymLinearSolverFactory()
|
301
|
+
* -> custom_solver_
|
302
|
+
*/
|
303
|
+
virtual SmartPtr<LineSearch> BuildLineSearch(
|
304
|
+
const Journalist& jnlst,
|
305
|
+
const OptionsList& options,
|
306
|
+
const std::string& prefix
|
307
|
+
);
|
308
|
+
|
309
|
+
/** Creates an instance of the MuUpdate class. This method is
|
310
|
+
* called in the default implementation of BuildBasicAlgorithm.
|
311
|
+
* It can be overloaded to customize that portion the default
|
312
|
+
* algorithm.
|
313
|
+
* Dependencies:
|
314
|
+
* -> LineSearch_
|
315
|
+
* -> EqMultCalculator_
|
316
|
+
* -> ConvCheck_
|
317
|
+
* -> GetPDSystemSolver()
|
318
|
+
* -> PDSystemSolverFactory()
|
319
|
+
* -> GetAugSystemSolver()
|
320
|
+
* -> AugSystemSolverFactory()
|
321
|
+
* -> GetSymLinearSolver()
|
322
|
+
* -> SymLinearSolverFactory()
|
323
|
+
* -> custom_solver_
|
324
|
+
*/
|
325
|
+
virtual SmartPtr<MuUpdate> BuildMuUpdate(
|
326
|
+
const Journalist& jnlst,
|
327
|
+
const OptionsList& options,
|
328
|
+
const std::string& prefix
|
329
|
+
);
|
330
|
+
///@}
|
331
|
+
|
332
|
+
protected:
|
333
|
+
/// Gives Library Loader for HSL library if not all HSL routines are linked in
|
334
|
+
///
|
335
|
+
/// Creates new loader if not existing yet.
|
336
|
+
/// @since 3.14.0
|
337
|
+
SmartPtr<LibraryLoader> GetHSLLoader(
|
338
|
+
const OptionsList& options,
|
339
|
+
const std::string& prefix
|
340
|
+
);
|
341
|
+
|
342
|
+
/// Gives Library Loader for Pardiso library from pardiso-project.org.
|
343
|
+
///
|
344
|
+
/// Creates new loader if not existing yet.
|
345
|
+
/// @since 3.14.0
|
346
|
+
SmartPtr<LibraryLoader> GetPardisoLoader(
|
347
|
+
const OptionsList& options,
|
348
|
+
const std::string& prefix
|
349
|
+
);
|
350
|
+
|
351
|
+
private:
|
352
|
+
/**@name Default Compiler Generated Methods
|
353
|
+
* (Hidden to avoid implicit creation/calling).
|
354
|
+
* These methods are not implemented and
|
355
|
+
* we do not want the compiler to implement
|
356
|
+
* them for us, so we declare them private
|
357
|
+
* and do not define them. This ensures that
|
358
|
+
* they will not be implicitly created/called. */
|
359
|
+
///@{
|
360
|
+
/** Default Constructor */
|
361
|
+
//AlgorithmBuilder();
|
362
|
+
|
363
|
+
/** Copy Constructor */
|
364
|
+
AlgorithmBuilder(
|
365
|
+
const AlgorithmBuilder&
|
366
|
+
);
|
367
|
+
|
368
|
+
/** Default Assignment Operator */
|
369
|
+
void operator=(
|
370
|
+
const AlgorithmBuilder&
|
371
|
+
);
|
372
|
+
///@}
|
373
|
+
|
374
|
+
/** @name IpoptAlgorithm constructor arguments.
|
375
|
+
* These components are built in separate Build
|
376
|
+
* methods in the order defined by BuildBasicAlgorithm.
|
377
|
+
* A single core component may require one or more
|
378
|
+
* other core components in its constructor, so the
|
379
|
+
* this class holds pointers to each component for use
|
380
|
+
* between the separate Build methods. */
|
381
|
+
///@{
|
382
|
+
SmartPtr<IterationOutput> IterOutput_;
|
383
|
+
SmartPtr<HessianUpdater> HessUpdater_;
|
384
|
+
SmartPtr<ConvergenceCheck> ConvCheck_;
|
385
|
+
SmartPtr<SearchDirectionCalculator> SearchDirCalc_;
|
386
|
+
SmartPtr<EqMultiplierCalculator> EqMultCalculator_;
|
387
|
+
SmartPtr<IterateInitializer> IterInitializer_;
|
388
|
+
SmartPtr<LineSearch> LineSearch_;
|
389
|
+
SmartPtr<MuUpdate> MuUpdate_;
|
390
|
+
///@}
|
391
|
+
|
392
|
+
/** @name Commonly used solver components
|
393
|
+
* for building core algorithm components. Each
|
394
|
+
* of these members is paired with a Factory/Getter
|
395
|
+
* method. */
|
396
|
+
///@{
|
397
|
+
SmartPtr<SymLinearSolver> SymSolver_;
|
398
|
+
SmartPtr<AugSystemSolver> AugSolver_;
|
399
|
+
SmartPtr<PDSystemSolver> PDSolver_;
|
400
|
+
///@}
|
401
|
+
|
402
|
+
/** Optional pointer to AugSystemSolver. If this is set in the
|
403
|
+
* constructor, we will use this to solve the linear systems. */
|
404
|
+
SmartPtr<AugSystemSolver> custom_solver_;
|
405
|
+
|
406
|
+
/// name of linear solver constructed in SymLinearSolverFactory
|
407
|
+
std::string linear_solver;
|
408
|
+
|
409
|
+
/// loader of HSL library (at runtime)
|
410
|
+
SmartPtr<LibraryLoader> hslloader;
|
411
|
+
/// loader of Pardiso library (at runtime)
|
412
|
+
SmartPtr<LibraryLoader> pardisoloader;
|
413
|
+
|
414
|
+
};
|
415
|
+
} // namespace Ipopt
|
416
|
+
|
417
|
+
#endif
|
@@ -0,0 +1,201 @@
|
|
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 __IPALGSTRATEGY_HPP__
|
8
|
+
#define __IPALGSTRATEGY_HPP__
|
9
|
+
|
10
|
+
#include "IpOptionsList.hpp"
|
11
|
+
#include "IpJournalist.hpp"
|
12
|
+
#include "IpIpoptCalculatedQuantities.hpp"
|
13
|
+
#include "IpIpoptNLP.hpp"
|
14
|
+
#include "IpIpoptData.hpp"
|
15
|
+
|
16
|
+
namespace Ipopt
|
17
|
+
{
|
18
|
+
|
19
|
+
/** This is the base class for all algorithm strategy objects.
|
20
|
+
*
|
21
|
+
* The AlgorithmStrategyObject base class implements a common interface
|
22
|
+
* for all algorithm strategy objects. A strategy object is a
|
23
|
+
* component of the algorithm for which different alternatives or
|
24
|
+
* implementations exists. It allows to compose the algorithm
|
25
|
+
* before execution for a particular configuration, without the
|
26
|
+
* need to call alternatives based on enums. For example, the
|
27
|
+
* LineSearch object is a strategy object, since different line
|
28
|
+
* search options might be used for different runs.
|
29
|
+
*
|
30
|
+
* This interface is used for
|
31
|
+
* things that are done to all strategy objects, like
|
32
|
+
* initialization and setting options.
|
33
|
+
*/
|
34
|
+
class IPOPTLIB_EXPORT AlgorithmStrategyObject: public ReferencedObject
|
35
|
+
{
|
36
|
+
public:
|
37
|
+
/**@name Constructors/Destructors */
|
38
|
+
///@{
|
39
|
+
/** Default Constructor */
|
40
|
+
AlgorithmStrategyObject()
|
41
|
+
: initialize_called_(false)
|
42
|
+
{ }
|
43
|
+
|
44
|
+
/** Destructor */
|
45
|
+
virtual ~AlgorithmStrategyObject()
|
46
|
+
{ }
|
47
|
+
///@}
|
48
|
+
|
49
|
+
/** This method is called every time the algorithm starts again -
|
50
|
+
* it is used to reset any internal state.
|
51
|
+
*
|
52
|
+
* The pointers to the
|
53
|
+
* Journalist, as well as to the IpoptNLP, IpoptData, and
|
54
|
+
* IpoptCalculatedQuantities objects should be stored in the
|
55
|
+
* instantiation of this base class. This method is also used to
|
56
|
+
* get all required user options from the OptionsList. Here, if
|
57
|
+
* prefix is given, each tag (identifying the options) is first
|
58
|
+
* looked for with the prefix in front, and if not found, without
|
59
|
+
* the prefix. Note: you should not cue off of the iteration
|
60
|
+
* count to indicate the "start" of an algorithm!
|
61
|
+
*
|
62
|
+
* Do not overload this method, since it does some general
|
63
|
+
* initialization that is common for all strategy objects.
|
64
|
+
* Overload the protected InitializeImpl method instead.
|
65
|
+
*/
|
66
|
+
bool Initialize(
|
67
|
+
const Journalist& jnlst,
|
68
|
+
IpoptNLP& ip_nlp,
|
69
|
+
IpoptData& ip_data,
|
70
|
+
IpoptCalculatedQuantities& ip_cq,
|
71
|
+
const OptionsList& options,
|
72
|
+
const std::string& prefix
|
73
|
+
)
|
74
|
+
{
|
75
|
+
initialize_called_ = true;
|
76
|
+
// Copy the pointers for the problem defining objects
|
77
|
+
jnlst_ = &jnlst;
|
78
|
+
ip_nlp_ = &ip_nlp;
|
79
|
+
ip_data_ = &ip_data;
|
80
|
+
ip_cq_ = &ip_cq;
|
81
|
+
|
82
|
+
bool retval = InitializeImpl(options, prefix);
|
83
|
+
if( !retval )
|
84
|
+
{
|
85
|
+
initialize_called_ = false;
|
86
|
+
}
|
87
|
+
|
88
|
+
return retval;
|
89
|
+
}
|
90
|
+
|
91
|
+
/** Reduced version of the Initialize method, which does not
|
92
|
+
* require special Ipopt information.
|
93
|
+
*
|
94
|
+
* This is useful for algorithm objects that could be used
|
95
|
+
* outside Ipopt, such as linear solvers.
|
96
|
+
*/
|
97
|
+
bool ReducedInitialize(
|
98
|
+
const Journalist& jnlst,
|
99
|
+
const OptionsList& options,
|
100
|
+
const std::string& prefix
|
101
|
+
)
|
102
|
+
{
|
103
|
+
initialize_called_ = true;
|
104
|
+
// Copy the pointers for the problem defining objects
|
105
|
+
jnlst_ = &jnlst;
|
106
|
+
ip_nlp_ = NULL;
|
107
|
+
ip_data_ = NULL;
|
108
|
+
ip_cq_ = NULL;
|
109
|
+
|
110
|
+
bool retval = InitializeImpl(options, prefix);
|
111
|
+
if( !retval )
|
112
|
+
{
|
113
|
+
initialize_called_ = false;
|
114
|
+
}
|
115
|
+
|
116
|
+
return retval;
|
117
|
+
}
|
118
|
+
|
119
|
+
protected:
|
120
|
+
/** Implementation of the initialization method that has to be
|
121
|
+
* overloaded by for each derived class.
|
122
|
+
*/
|
123
|
+
virtual bool InitializeImpl(
|
124
|
+
const OptionsList& options,
|
125
|
+
const std::string& prefix
|
126
|
+
) = 0;
|
127
|
+
|
128
|
+
/** @name Accessor methods for the problem defining objects.
|
129
|
+
*
|
130
|
+
* Those should be used by the derived classes.
|
131
|
+
*/
|
132
|
+
///@{
|
133
|
+
const Journalist& Jnlst() const
|
134
|
+
{
|
135
|
+
DBG_ASSERT(initialize_called_);
|
136
|
+
return *jnlst_;
|
137
|
+
}
|
138
|
+
IpoptNLP& IpNLP() const
|
139
|
+
{
|
140
|
+
DBG_ASSERT(initialize_called_);
|
141
|
+
DBG_ASSERT(IsValid(ip_nlp_));
|
142
|
+
return *ip_nlp_;
|
143
|
+
}
|
144
|
+
IpoptData& IpData() const
|
145
|
+
{
|
146
|
+
DBG_ASSERT(initialize_called_);
|
147
|
+
DBG_ASSERT(IsValid(ip_data_));
|
148
|
+
return *ip_data_;
|
149
|
+
}
|
150
|
+
IpoptCalculatedQuantities& IpCq() const
|
151
|
+
{
|
152
|
+
DBG_ASSERT(initialize_called_);
|
153
|
+
DBG_ASSERT(IsValid(ip_cq_));
|
154
|
+
return *ip_cq_;
|
155
|
+
}
|
156
|
+
bool HaveIpData() const
|
157
|
+
{
|
158
|
+
return IsValid(ip_data_);
|
159
|
+
}
|
160
|
+
///@}
|
161
|
+
|
162
|
+
private:
|
163
|
+
/**@name Default Compiler Generated Methods
|
164
|
+
* (Hidden to avoid implicit creation/calling).
|
165
|
+
*
|
166
|
+
* These methods are not implemented and
|
167
|
+
* we do not want the compiler to implement
|
168
|
+
* them for us, so we declare them private
|
169
|
+
* and do not define them. This ensures that
|
170
|
+
* they will not be implicitly created/called.
|
171
|
+
*/
|
172
|
+
///@{
|
173
|
+
/** Default Constructor */
|
174
|
+
//AlgorithmStrategyObject();
|
175
|
+
|
176
|
+
/** Copy Constructor */
|
177
|
+
AlgorithmStrategyObject(
|
178
|
+
const AlgorithmStrategyObject&
|
179
|
+
);
|
180
|
+
|
181
|
+
/** Default Assignment Operator */
|
182
|
+
void operator=(
|
183
|
+
const AlgorithmStrategyObject&
|
184
|
+
);
|
185
|
+
///@}
|
186
|
+
|
187
|
+
/** @name Pointers to objects defining a particular optimization problem */
|
188
|
+
///@{
|
189
|
+
SmartPtr<const Journalist> jnlst_;
|
190
|
+
SmartPtr<IpoptNLP> ip_nlp_;
|
191
|
+
SmartPtr<IpoptData> ip_data_;
|
192
|
+
SmartPtr<IpoptCalculatedQuantities> ip_cq_;
|
193
|
+
///@}
|
194
|
+
|
195
|
+
/** flag indicating if Initialize method has been called (for debugging) */
|
196
|
+
bool initialize_called_;
|
197
|
+
};
|
198
|
+
|
199
|
+
} // namespace Ipopt
|
200
|
+
|
201
|
+
#endif
|
@@ -0,0 +1,64 @@
|
|
1
|
+
// Copyright (C) 2005, 2010 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 2005-07-19
|
6
|
+
|
7
|
+
#ifndef __IPALGTYPES_HPP__
|
8
|
+
#define __IPALGTYPES_HPP__
|
9
|
+
|
10
|
+
#include "IpTypes.hpp"
|
11
|
+
#include "IpException.hpp"
|
12
|
+
|
13
|
+
namespace Ipopt
|
14
|
+
{
|
15
|
+
|
16
|
+
/**@name Enumerations */
|
17
|
+
///@{
|
18
|
+
/** enum for the return from the optimize algorithm */
|
19
|
+
enum SolverReturn
|
20
|
+
{
|
21
|
+
SUCCESS,
|
22
|
+
MAXITER_EXCEEDED,
|
23
|
+
CPUTIME_EXCEEDED,
|
24
|
+
WALLTIME_EXCEEDED, ///< @since 3.14.0
|
25
|
+
STOP_AT_TINY_STEP,
|
26
|
+
STOP_AT_ACCEPTABLE_POINT,
|
27
|
+
LOCAL_INFEASIBILITY,
|
28
|
+
USER_REQUESTED_STOP,
|
29
|
+
FEASIBLE_POINT_FOUND,
|
30
|
+
DIVERGING_ITERATES,
|
31
|
+
RESTORATION_FAILURE,
|
32
|
+
ERROR_IN_STEP_COMPUTATION,
|
33
|
+
INVALID_NUMBER_DETECTED,
|
34
|
+
TOO_FEW_DEGREES_OF_FREEDOM,
|
35
|
+
INVALID_OPTION,
|
36
|
+
OUT_OF_MEMORY,
|
37
|
+
INTERNAL_ERROR,
|
38
|
+
UNASSIGNED
|
39
|
+
};
|
40
|
+
///@}
|
41
|
+
|
42
|
+
/** @name Some exceptions used in multiple places */
|
43
|
+
///@{
|
44
|
+
DECLARE_STD_EXCEPTION(LOCALLY_INFEASIBLE);
|
45
|
+
DECLARE_STD_EXCEPTION(TOO_FEW_DOF);
|
46
|
+
DECLARE_STD_EXCEPTION(TINY_STEP_DETECTED);
|
47
|
+
DECLARE_STD_EXCEPTION(STEP_COMPUTATION_FAILED);
|
48
|
+
DECLARE_STD_EXCEPTION(ACCEPTABLE_POINT_REACHED);
|
49
|
+
DECLARE_STD_EXCEPTION(FEASIBILITY_PROBLEM_SOLVED);
|
50
|
+
DECLARE_STD_EXCEPTION(INVALID_WARMSTART);
|
51
|
+
DECLARE_STD_EXCEPTION(INTERNAL_ABORT);
|
52
|
+
DECLARE_STD_EXCEPTION(INCONSISTENT_BOUNDS);
|
53
|
+
/** Exception FAILED_INITIALIZATION for problem during
|
54
|
+
* initialization of a strategy object (or other problems).
|
55
|
+
*
|
56
|
+
* This is thrown by a strategy object, if a problem arises during
|
57
|
+
* initialization, such as a value out of a feasible range.
|
58
|
+
*/
|
59
|
+
DECLARE_STD_EXCEPTION(FAILED_INITIALIZATION);
|
60
|
+
///@}
|
61
|
+
|
62
|
+
}
|
63
|
+
|
64
|
+
#endif
|