casadi 3.6.4__cp38-none-manylinux2014_i686.whl → 3.6.6__cp38-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,137 @@
|
|
1
|
+
// Copyright 2009, 2011 Hans Pirnay
|
2
|
+
// All Rights Reserved.
|
3
|
+
// This code is published under the Eclipse Public License.
|
4
|
+
//
|
5
|
+
// Date : 2009-05-06
|
6
|
+
|
7
|
+
#ifndef __ASPCALCULATOR_HPP__
|
8
|
+
#define __ASPCALCULATOR_HPP__
|
9
|
+
|
10
|
+
#include "IpAlgStrategy.hpp"
|
11
|
+
#include "SensSimpleBacksolver.hpp"
|
12
|
+
#include "SensSchurData.hpp"
|
13
|
+
|
14
|
+
namespace Ipopt
|
15
|
+
{
|
16
|
+
|
17
|
+
/** This class is the interface for implementations of any class that calculates the matrix \f$P =K^{-1}A\f$
|
18
|
+
* of the following matrix:
|
19
|
+
* \f[
|
20
|
+
* \left(\begin{array}{cc}
|
21
|
+
* K & A\\
|
22
|
+
* B & 0
|
23
|
+
* \end{array}\right)
|
24
|
+
* \f]
|
25
|
+
*/
|
26
|
+
class SIPOPTLIB_EXPORT PCalculator: public AlgorithmStrategyObject
|
27
|
+
{
|
28
|
+
public:
|
29
|
+
PCalculator(
|
30
|
+
SmartPtr<SensBacksolver> backsolver,
|
31
|
+
SmartPtr<SchurData> A_data
|
32
|
+
)
|
33
|
+
: backsolver_(backsolver),
|
34
|
+
data_A_init(ConstPtr(A_data->MakeNewSchurDataCopy())),
|
35
|
+
data_A_(A_data)
|
36
|
+
{ }
|
37
|
+
|
38
|
+
virtual ~PCalculator()
|
39
|
+
{ }
|
40
|
+
|
41
|
+
/* Overloaded from AlgorithmStrategyObject */
|
42
|
+
virtual bool InitializeImpl(
|
43
|
+
const OptionsList& /*options*/,
|
44
|
+
const std::string& /*prefix*/
|
45
|
+
)
|
46
|
+
{
|
47
|
+
return true;
|
48
|
+
}
|
49
|
+
|
50
|
+
/** Function to start the computation of P from E_0 and KKT*/
|
51
|
+
virtual bool ComputeP() = 0;
|
52
|
+
|
53
|
+
/** Function to extract a SchurMatrix corresponding to $B K^{-1} A$.
|
54
|
+
*
|
55
|
+
* If B==NULL, use A=B.
|
56
|
+
*/
|
57
|
+
virtual bool GetSchurMatrix(
|
58
|
+
const SmartPtr<const SchurData>& B,
|
59
|
+
SmartPtr<Matrix>& S
|
60
|
+
) = 0;
|
61
|
+
|
62
|
+
virtual void PrintImpl(
|
63
|
+
const Journalist& jnlst,
|
64
|
+
EJournalLevel level,
|
65
|
+
EJournalCategory category,
|
66
|
+
const std::string& name,
|
67
|
+
Index indent,
|
68
|
+
const std::string& prefix
|
69
|
+
) const = 0;
|
70
|
+
|
71
|
+
void Print(
|
72
|
+
const Journalist& jnlst,
|
73
|
+
EJournalLevel level,
|
74
|
+
EJournalCategory category,
|
75
|
+
const std::string& name,
|
76
|
+
Index indent = 0,
|
77
|
+
const std::string& prefix = ""
|
78
|
+
) const
|
79
|
+
{
|
80
|
+
if( jnlst.ProduceOutput(level, category) )
|
81
|
+
{
|
82
|
+
PrintImpl(jnlst, level, category, name, indent, prefix);
|
83
|
+
}
|
84
|
+
}
|
85
|
+
|
86
|
+
void Print(
|
87
|
+
SmartPtr<const Journalist> jnlst,
|
88
|
+
EJournalLevel level,
|
89
|
+
EJournalCategory category,
|
90
|
+
const std::string& name,
|
91
|
+
Index indent,
|
92
|
+
const std::string& prefix
|
93
|
+
) const
|
94
|
+
{
|
95
|
+
if( IsValid(jnlst) && jnlst->ProduceOutput(level, category) )
|
96
|
+
{
|
97
|
+
PrintImpl(*jnlst, level, category, name, indent, prefix);
|
98
|
+
}
|
99
|
+
}
|
100
|
+
|
101
|
+
/** Accessor methods for data and backsolver.
|
102
|
+
*
|
103
|
+
* This unconstness seems
|
104
|
+
* kind of dangerous but I don't think there is a way around it. Anyway,
|
105
|
+
* there is no difference between this and the IpData() method of AlgStrategy.
|
106
|
+
*/
|
107
|
+
SmartPtr<SensBacksolver> Solver() const
|
108
|
+
{
|
109
|
+
return backsolver_;
|
110
|
+
}
|
111
|
+
|
112
|
+
SmartPtr<const SchurData> data_A() const
|
113
|
+
{
|
114
|
+
return ConstPtr(data_A_);
|
115
|
+
}
|
116
|
+
|
117
|
+
SmartPtr<SchurData> data_A_nonconst() const
|
118
|
+
{
|
119
|
+
return data_A_;
|
120
|
+
}
|
121
|
+
|
122
|
+
void reset_data_A()
|
123
|
+
{
|
124
|
+
data_A_ = data_A_init->MakeNewSchurDataCopy();
|
125
|
+
}
|
126
|
+
|
127
|
+
private:
|
128
|
+
|
129
|
+
SmartPtr<SensBacksolver> backsolver_;
|
130
|
+
|
131
|
+
SmartPtr<const SchurData> data_A_init;
|
132
|
+
SmartPtr<SchurData> data_A_;
|
133
|
+
};
|
134
|
+
|
135
|
+
}
|
136
|
+
|
137
|
+
#endif
|
@@ -0,0 +1,21 @@
|
|
1
|
+
// Copyright 2009, 2011 Hans Pirnay
|
2
|
+
// All Rights Reserved.
|
3
|
+
// This code is published under the Eclipse Public License.
|
4
|
+
|
5
|
+
#ifndef __SENSREGOP_HPP__
|
6
|
+
#define __SENSREGOP_HPP__
|
7
|
+
|
8
|
+
#include "IpSmartPtr.hpp"
|
9
|
+
|
10
|
+
namespace Ipopt
|
11
|
+
{
|
12
|
+
|
13
|
+
class RegisteredOptions;
|
14
|
+
|
15
|
+
SIPOPTLIB_EXPORT void RegisterOptions_sIPOPT(
|
16
|
+
const SmartPtr<RegisteredOptions>& roptions
|
17
|
+
);
|
18
|
+
|
19
|
+
} // namespace Ipopt
|
20
|
+
|
21
|
+
#endif
|
@@ -0,0 +1,182 @@
|
|
1
|
+
// Copyright 2009, 2011 Hans Pirnay
|
2
|
+
// All Rights Reserved.
|
3
|
+
// This code is published under the Eclipse Public License.
|
4
|
+
//
|
5
|
+
// Date : 2009-05-06
|
6
|
+
|
7
|
+
#ifndef __ASSCHURDATA_HPP__
|
8
|
+
#define __ASSCHURDATA_HPP__
|
9
|
+
|
10
|
+
#include "IpVector.hpp"
|
11
|
+
#include "IpIteratesVector.hpp"
|
12
|
+
#include <vector>
|
13
|
+
|
14
|
+
namespace Ipopt
|
15
|
+
{
|
16
|
+
|
17
|
+
/** This interface serves as a reference point for multiple classes
|
18
|
+
* that need to use SchurData (PCalculator, SchurDriver).
|
19
|
+
*
|
20
|
+
* It declares as little as possible, so that SchurData implementations
|
21
|
+
* can be very special and fast.
|
22
|
+
*
|
23
|
+
* I have not decided yet if there are certain ways I want to impose
|
24
|
+
* that SchurData can be set. I will figure this out as soon as I
|
25
|
+
* write the upstream classes that need to do that
|
26
|
+
*
|
27
|
+
* Nomenclature in this program is based on Victor Zavalas thesis.
|
28
|
+
*/
|
29
|
+
class SIPOPTLIB_EXPORT SchurData: public ReferencedObject
|
30
|
+
{
|
31
|
+
public:
|
32
|
+
SchurData()
|
33
|
+
: initialized_(false),
|
34
|
+
nrows_(0)
|
35
|
+
{ }
|
36
|
+
|
37
|
+
virtual ~SchurData()
|
38
|
+
{ }
|
39
|
+
|
40
|
+
virtual SmartPtr<SchurData> MakeNewSchurDataCopy() const = 0;
|
41
|
+
|
42
|
+
/* Functions to set the Schurdata. At least one must be overloaded */
|
43
|
+
|
44
|
+
/** Set Data to one for given indices. Size of vector is ipopt_x_<full_x_ */
|
45
|
+
virtual void SetData_Flag(
|
46
|
+
Index dim,
|
47
|
+
const Index* flags,
|
48
|
+
Number v = 1.0
|
49
|
+
) = 0;
|
50
|
+
|
51
|
+
/** Set Data to corresponing Number */
|
52
|
+
virtual void SetData_Flag(
|
53
|
+
Index dim,
|
54
|
+
const Index* flags,
|
55
|
+
const Number* values
|
56
|
+
) = 0;
|
57
|
+
|
58
|
+
virtual Index SetData_Index(
|
59
|
+
Index dim,
|
60
|
+
const Index* flags,
|
61
|
+
Number v = 1.0
|
62
|
+
) = 0;
|
63
|
+
|
64
|
+
virtual void SetData_List(
|
65
|
+
const std::vector<Index>& list,
|
66
|
+
Number v = 1.0
|
67
|
+
) = 0;
|
68
|
+
|
69
|
+
virtual void AddData_List(
|
70
|
+
std::vector<Index> cols,
|
71
|
+
std::vector<Index>& delta_u_sort,
|
72
|
+
Index& new_du_size,
|
73
|
+
Index v
|
74
|
+
) = 0;
|
75
|
+
|
76
|
+
/** Returns number of rows/columns in schur matrix */
|
77
|
+
virtual Index GetNRowsAdded() const
|
78
|
+
{
|
79
|
+
return nrows_;
|
80
|
+
}
|
81
|
+
|
82
|
+
virtual bool Is_Initialized() const
|
83
|
+
{
|
84
|
+
return initialized_;
|
85
|
+
}
|
86
|
+
|
87
|
+
/** Returns the i-th column vector of the matrix */
|
88
|
+
virtual void GetRow(
|
89
|
+
Index i,
|
90
|
+
IteratesVector& v
|
91
|
+
) const = 0;
|
92
|
+
|
93
|
+
/** Returns two vectors that are needed for matrix-vector
|
94
|
+
* multiplication of B and P.
|
95
|
+
*
|
96
|
+
* The index is the row, the first vector are the indices
|
97
|
+
* of non-zero components, in this row of B,
|
98
|
+
* the second vector gives the numbers in B(row,indices)/
|
99
|
+
*/
|
100
|
+
virtual void GetMultiplyingVectors(
|
101
|
+
Index row,
|
102
|
+
std::vector<Index>& indices,
|
103
|
+
std::vector<Number>& factors
|
104
|
+
) const = 0;
|
105
|
+
|
106
|
+
/** Computes B*v with B in R(mxn) */
|
107
|
+
virtual void Multiply(
|
108
|
+
const IteratesVector& v,
|
109
|
+
Vector& u
|
110
|
+
) const = 0;
|
111
|
+
|
112
|
+
/** Computes A*u with A in R(nxm), KKT in R(n,n) */
|
113
|
+
virtual void TransMultiply(
|
114
|
+
const Vector& u,
|
115
|
+
IteratesVector& v
|
116
|
+
) const = 0;
|
117
|
+
|
118
|
+
virtual void PrintImpl(
|
119
|
+
const Journalist& jnlst,
|
120
|
+
EJournalLevel level,
|
121
|
+
EJournalCategory category,
|
122
|
+
const std::string& name,
|
123
|
+
Index indent,
|
124
|
+
const std::string& prefix
|
125
|
+
) const = 0;
|
126
|
+
|
127
|
+
void Print(
|
128
|
+
const Journalist& jnlst,
|
129
|
+
EJournalLevel level,
|
130
|
+
EJournalCategory category,
|
131
|
+
const std::string& name,
|
132
|
+
Index indent = 0,
|
133
|
+
const std::string& prefix = ""
|
134
|
+
) const
|
135
|
+
{
|
136
|
+
if( jnlst.ProduceOutput(level, category) )
|
137
|
+
{
|
138
|
+
PrintImpl(jnlst, level, category, name, indent, prefix);
|
139
|
+
}
|
140
|
+
}
|
141
|
+
|
142
|
+
void Print(
|
143
|
+
SmartPtr<const Journalist> jnlst,
|
144
|
+
EJournalLevel level,
|
145
|
+
EJournalCategory category,
|
146
|
+
const std::string& name,
|
147
|
+
Index indent,
|
148
|
+
const std::string& prefix
|
149
|
+
) const
|
150
|
+
{
|
151
|
+
if( IsValid(jnlst) && jnlst->ProduceOutput(level, category) )
|
152
|
+
{
|
153
|
+
PrintImpl(*jnlst, level, category, name, indent, prefix);
|
154
|
+
}
|
155
|
+
}
|
156
|
+
|
157
|
+
protected:
|
158
|
+
|
159
|
+
virtual void Set_Initialized()
|
160
|
+
{
|
161
|
+
initialized_ = true;
|
162
|
+
}
|
163
|
+
|
164
|
+
virtual void Set_NRows(
|
165
|
+
Index nrows
|
166
|
+
)
|
167
|
+
{
|
168
|
+
nrows_ = nrows;
|
169
|
+
}
|
170
|
+
|
171
|
+
private:
|
172
|
+
|
173
|
+
/** Makes sure that data is not set twice accidentially */
|
174
|
+
bool initialized_;
|
175
|
+
|
176
|
+
/** Number of columns/rows of corresponding Schur Matrix*/
|
177
|
+
Index nrows_;
|
178
|
+
};
|
179
|
+
|
180
|
+
}
|
181
|
+
|
182
|
+
#endif
|
@@ -0,0 +1,118 @@
|
|
1
|
+
// Copyright 2009, 2011 Hans Pirnay
|
2
|
+
// All Rights Reserved.
|
3
|
+
// This code is published under the Eclipse Public License.
|
4
|
+
//
|
5
|
+
// Date : 2009-05-06
|
6
|
+
|
7
|
+
#ifndef __ASSCHURDRIVER_HPP__
|
8
|
+
#define __ASSCHURDRIVER_HPP__
|
9
|
+
|
10
|
+
#include "SensSchurData.hpp"
|
11
|
+
#include "SensPCalculator.hpp"
|
12
|
+
#include "IpVector.hpp"
|
13
|
+
#include "IpIteratesVector.hpp"
|
14
|
+
|
15
|
+
namespace Ipopt
|
16
|
+
{
|
17
|
+
|
18
|
+
/** This class is the interface for any class that deals with the Schur matrix
|
19
|
+
* from the point when it is constructed by the PCalculator to the solution
|
20
|
+
* against one vector.
|
21
|
+
*
|
22
|
+
* Specific implementations may also incorporate the
|
23
|
+
* treatment of adding rows/cols (like QPSchur).
|
24
|
+
*
|
25
|
+
* The computations done by this class are
|
26
|
+
* 1. Solve \f$S \Delta\nu = r_s\f$
|
27
|
+
* 2. Solve \f$K\Delta s = ... - \Delta nu\f$ (really?)
|
28
|
+
*/
|
29
|
+
class SIPOPTLIB_EXPORT SchurDriver: public AlgorithmStrategyObject
|
30
|
+
{
|
31
|
+
public:
|
32
|
+
|
33
|
+
SchurDriver(
|
34
|
+
SmartPtr<PCalculator> pcalc,
|
35
|
+
SmartPtr<SchurData> data_B
|
36
|
+
)
|
37
|
+
: pcalc_(pcalc),
|
38
|
+
data_B_(data_B)
|
39
|
+
{ }
|
40
|
+
|
41
|
+
virtual ~SchurDriver()
|
42
|
+
{ }
|
43
|
+
|
44
|
+
virtual bool InitializeImpl(
|
45
|
+
const OptionsList& /*options*/,
|
46
|
+
const std::string& /*prefix*/
|
47
|
+
)
|
48
|
+
{
|
49
|
+
return true;
|
50
|
+
}
|
51
|
+
|
52
|
+
/** Const accessor methods to the SchurData for for the derived classes */
|
53
|
+
virtual SmartPtr<const SchurData> data_A() const
|
54
|
+
{
|
55
|
+
return pcalc_->data_A();
|
56
|
+
}
|
57
|
+
|
58
|
+
virtual SmartPtr<const SchurData> data_B() const
|
59
|
+
{
|
60
|
+
return ConstPtr(data_B_);
|
61
|
+
}
|
62
|
+
|
63
|
+
virtual SmartPtr<SchurData> data_A_nonconst()
|
64
|
+
{
|
65
|
+
return pcalc_->data_A_nonconst();
|
66
|
+
}
|
67
|
+
|
68
|
+
virtual SmartPtr<SchurData> data_B_nonconst()
|
69
|
+
{
|
70
|
+
return data_B_;
|
71
|
+
}
|
72
|
+
|
73
|
+
virtual SmartPtr<const PCalculator> pcalc() const
|
74
|
+
{
|
75
|
+
return ConstPtr(pcalc_);
|
76
|
+
}
|
77
|
+
|
78
|
+
virtual SmartPtr<PCalculator> pcalc_nonconst()
|
79
|
+
{
|
80
|
+
return pcalc_;
|
81
|
+
}
|
82
|
+
|
83
|
+
/* Sets the Data for which this SchurMatrix will be built. */
|
84
|
+
|
85
|
+
/** Creates the SchurMatrix from B and P */
|
86
|
+
virtual bool SchurBuild() = 0;
|
87
|
+
|
88
|
+
/** Calls the factorization routine for the SchurMatrix */
|
89
|
+
virtual bool SchurFactorize() = 0;
|
90
|
+
|
91
|
+
/** Performs a backsolve on S and K
|
92
|
+
*
|
93
|
+
* sol is the vector K^(-1)*r_s which usually should have been computed before
|
94
|
+
*/
|
95
|
+
virtual bool SchurSolve(
|
96
|
+
SmartPtr<IteratesVector> lhs,
|
97
|
+
SmartPtr<const IteratesVector> rhs,
|
98
|
+
SmartPtr<Vector> delta_u,
|
99
|
+
SmartPtr<IteratesVector> sol = NULL
|
100
|
+
) = 0;
|
101
|
+
|
102
|
+
/* Performs a backsolve on S and K; calls the latter with sol=K^(-1)*r_s=0
|
103
|
+
virtual bool SchurSolve(SmartPtr<IteratesVector> lhs,
|
104
|
+
SmartPtr<const IteratesVector> rhs,
|
105
|
+
SmartPtr<Vector> delta_u) =0;
|
106
|
+
*/
|
107
|
+
private:
|
108
|
+
SchurDriver()
|
109
|
+
{ }
|
110
|
+
|
111
|
+
SmartPtr<PCalculator> pcalc_;
|
112
|
+
|
113
|
+
SmartPtr<SchurData> data_B_;
|
114
|
+
};
|
115
|
+
|
116
|
+
}
|
117
|
+
|
118
|
+
#endif
|
@@ -0,0 +1,49 @@
|
|
1
|
+
// Copyright 2009, 2011 Hans Pirnay
|
2
|
+
// All Rights Reserved.
|
3
|
+
// This code is published under the Eclipse Public License.
|
4
|
+
//
|
5
|
+
// Date : 2009-04-06
|
6
|
+
//
|
7
|
+
// Purpose : This is the same as IpSensitivityCalculator.hpp
|
8
|
+
// It implements the SensBacksolver Interface.
|
9
|
+
|
10
|
+
#ifndef __ASSIMPLEBACKSOLVER_HPP__
|
11
|
+
#define __ASSIMPLEBACKSOLVER_HPP__
|
12
|
+
|
13
|
+
#include "IpPDSystemSolver.hpp"
|
14
|
+
#include "SensBacksolver.hpp"
|
15
|
+
|
16
|
+
namespace Ipopt
|
17
|
+
{
|
18
|
+
|
19
|
+
class SIPOPTLIB_EXPORT SimpleBacksolver: public SensBacksolver
|
20
|
+
{
|
21
|
+
public:
|
22
|
+
|
23
|
+
SimpleBacksolver(
|
24
|
+
SmartPtr<PDSystemSolver> pd_solver
|
25
|
+
);
|
26
|
+
|
27
|
+
~SimpleBacksolver()
|
28
|
+
{ }
|
29
|
+
|
30
|
+
bool InitializeImpl(
|
31
|
+
const OptionsList& options,
|
32
|
+
const std::string& prefix
|
33
|
+
);
|
34
|
+
|
35
|
+
bool Solve(
|
36
|
+
SmartPtr<IteratesVector> delta_lhs,
|
37
|
+
SmartPtr<const IteratesVector> delta_rhs
|
38
|
+
);
|
39
|
+
|
40
|
+
private:
|
41
|
+
SimpleBacksolver();
|
42
|
+
|
43
|
+
SmartPtr<PDSystemSolver> pd_solver_;
|
44
|
+
bool allow_inexact_;
|
45
|
+
};
|
46
|
+
|
47
|
+
}
|
48
|
+
|
49
|
+
#endif
|
@@ -0,0 +1,85 @@
|
|
1
|
+
// Copyright 2009, 2011 Hans Pirnay
|
2
|
+
// All Rights Reserved.
|
3
|
+
// This code is published under the Eclipse Public License.
|
4
|
+
//
|
5
|
+
// Date : 2009-05-14
|
6
|
+
|
7
|
+
#ifndef __ASSENSSTEPCALC_HPP__
|
8
|
+
#define __ASSENSSTEPCALC_HPP__
|
9
|
+
|
10
|
+
#include "IpAlgStrategy.hpp"
|
11
|
+
#include "SensSchurDriver.hpp"
|
12
|
+
|
13
|
+
namespace Ipopt
|
14
|
+
{
|
15
|
+
/* Forward declarations */
|
16
|
+
class DenseVector;
|
17
|
+
class IteratesVector;
|
18
|
+
|
19
|
+
/** This is the interface for the classes that perform the actual step. */
|
20
|
+
class SIPOPTLIB_EXPORT SensitivityStepCalculator: public AlgorithmStrategyObject
|
21
|
+
{
|
22
|
+
public:
|
23
|
+
SensitivityStepCalculator()
|
24
|
+
: driver_(NULL),
|
25
|
+
do_boundcheck_(false)
|
26
|
+
{ }
|
27
|
+
|
28
|
+
virtual ~SensitivityStepCalculator()
|
29
|
+
{ }
|
30
|
+
|
31
|
+
virtual bool InitializeImpl(
|
32
|
+
const OptionsList& options,
|
33
|
+
const std::string& prefix
|
34
|
+
)
|
35
|
+
{
|
36
|
+
options.GetBoolValue("sens_boundcheck", do_boundcheck_, prefix);
|
37
|
+
return true;
|
38
|
+
}
|
39
|
+
|
40
|
+
bool Do_Boundcheck() const
|
41
|
+
{
|
42
|
+
return do_boundcheck_;
|
43
|
+
}
|
44
|
+
|
45
|
+
void SetSchurDriver(
|
46
|
+
SmartPtr<SchurDriver> driver
|
47
|
+
)
|
48
|
+
{
|
49
|
+
DBG_ASSERT(IsValid(driver));
|
50
|
+
|
51
|
+
driver_ = driver;
|
52
|
+
if( IsValid(driver_->pcalc_nonconst()) )
|
53
|
+
{
|
54
|
+
driver_->pcalc_nonconst()->reset_data_A();
|
55
|
+
// when the schurdriver is set, the data in the pcalculator has to be reset to its data?
|
56
|
+
}
|
57
|
+
}
|
58
|
+
|
59
|
+
SmartPtr<SchurDriver> Driver() // this should be const or protected
|
60
|
+
{
|
61
|
+
DBG_ASSERT(IsValid(driver_));
|
62
|
+
|
63
|
+
return driver_;
|
64
|
+
}
|
65
|
+
|
66
|
+
/** This is the main algorithmic function of this class.
|
67
|
+
*
|
68
|
+
* It calculates a step using its SchurDriver, checks bounds, and returns it
|
69
|
+
*/
|
70
|
+
virtual bool Step(
|
71
|
+
DenseVector& delta_u,
|
72
|
+
IteratesVector& sol
|
73
|
+
) = 0;
|
74
|
+
|
75
|
+
/** return the sensitivity vector */
|
76
|
+
virtual SmartPtr<IteratesVector> GetSensitivityVector() = 0;
|
77
|
+
|
78
|
+
private:
|
79
|
+
SmartPtr<SchurDriver> driver_;
|
80
|
+
bool do_boundcheck_;
|
81
|
+
};
|
82
|
+
|
83
|
+
}
|
84
|
+
|
85
|
+
#endif
|
@@ -0,0 +1,63 @@
|
|
1
|
+
// Copyright 2009, 2011 Hans Pirnay
|
2
|
+
// All Rights Reserved.
|
3
|
+
// This code is published under the Eclipse Public License.
|
4
|
+
//
|
5
|
+
// Date : 2009-05-14
|
6
|
+
|
7
|
+
#ifndef __SENSCUTILS_HPP__
|
8
|
+
#define __SENSCUTILS_HPP__
|
9
|
+
|
10
|
+
#include "IpUtils.hpp"
|
11
|
+
#include "IpAlgTypes.hpp"
|
12
|
+
#include "IpReturnCodes.hpp"
|
13
|
+
|
14
|
+
#include <string>
|
15
|
+
|
16
|
+
namespace Ipopt
|
17
|
+
{
|
18
|
+
|
19
|
+
/* This header file provides some definitions used throughout the program. */
|
20
|
+
|
21
|
+
enum SensAlgorithmExitStatus
|
22
|
+
{
|
23
|
+
SOLVE_SUCCESS,
|
24
|
+
FATAL_ERROR
|
25
|
+
};
|
26
|
+
|
27
|
+
SIPOPTLIB_EXPORT Index AsIndexMax(
|
28
|
+
Index length,
|
29
|
+
const Index* x,
|
30
|
+
Index Incr
|
31
|
+
);
|
32
|
+
|
33
|
+
SIPOPTLIB_EXPORT Index AsIndexSum(
|
34
|
+
Index length,
|
35
|
+
const Index* x,
|
36
|
+
Index Incr
|
37
|
+
);
|
38
|
+
|
39
|
+
SIPOPTLIB_EXPORT void append_Index(
|
40
|
+
std::string& str,
|
41
|
+
Index idx
|
42
|
+
);
|
43
|
+
|
44
|
+
SIPOPTLIB_EXPORT SolverReturn AppReturn2SolverReturn(
|
45
|
+
ApplicationReturnStatus ipopt_retval
|
46
|
+
);
|
47
|
+
}
|
48
|
+
|
49
|
+
// same as DECLARE_STD_EXCEPTION, but using SIPOPTLIB_EXPORT instead of IPOPTLIB_EXPORT
|
50
|
+
#define DECLARE_STD_SIPOPT_EXCEPTION(__except_type) \
|
51
|
+
class SIPOPTLIB_EXPORT __except_type : public Ipopt::IpoptException \
|
52
|
+
{ \
|
53
|
+
public: \
|
54
|
+
__except_type(const std::string& msg, const std::string& fname, Ipopt::Index line) \
|
55
|
+
: Ipopt::IpoptException(msg,fname,line, #__except_type) {} \
|
56
|
+
__except_type(const __except_type& copy) \
|
57
|
+
: Ipopt::IpoptException(copy) {} \
|
58
|
+
private: \
|
59
|
+
__except_type(); \
|
60
|
+
void operator=(const __except_type&); \
|
61
|
+
}
|
62
|
+
|
63
|
+
#endif
|