casadi 3.6.4__cp39-none-manylinux2014_i686.whl → 3.6.6__cp39-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,158 @@
|
|
1
|
+
// Copyright (C) 2004, 2008 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 __IPDIAGMATRIX_HPP__
|
8
|
+
#define __IPDIAGMATRIX_HPP__
|
9
|
+
|
10
|
+
#include "IpUtils.hpp"
|
11
|
+
#include "IpSymMatrix.hpp"
|
12
|
+
|
13
|
+
namespace Ipopt
|
14
|
+
{
|
15
|
+
|
16
|
+
/** Class for diagonal matrices.
|
17
|
+
*
|
18
|
+
* The diagonal is stored as a Vector.
|
19
|
+
*/
|
20
|
+
class IPOPTLIB_EXPORT DiagMatrix: public SymMatrix
|
21
|
+
{
|
22
|
+
public:
|
23
|
+
|
24
|
+
/**@name Constructors / Destructors */
|
25
|
+
///@{
|
26
|
+
/** Constructor, given the corresponding matrix space. */
|
27
|
+
DiagMatrix(
|
28
|
+
const SymMatrixSpace* owner_space
|
29
|
+
);
|
30
|
+
|
31
|
+
/** Destructor */
|
32
|
+
~DiagMatrix();
|
33
|
+
///@}
|
34
|
+
|
35
|
+
/** Set the diagonal elements (as a Vector). */
|
36
|
+
void SetDiag(
|
37
|
+
const Vector& diag
|
38
|
+
)
|
39
|
+
{
|
40
|
+
diag_ = &diag;
|
41
|
+
}
|
42
|
+
|
43
|
+
/** Get the diagonal elements. */
|
44
|
+
SmartPtr<const Vector> GetDiag() const
|
45
|
+
{
|
46
|
+
return diag_;
|
47
|
+
}
|
48
|
+
|
49
|
+
protected:
|
50
|
+
/**@name Methods overloaded from matrix */
|
51
|
+
///@{
|
52
|
+
virtual void MultVectorImpl(
|
53
|
+
Number alpha,
|
54
|
+
const Vector& x,
|
55
|
+
Number beta,
|
56
|
+
Vector& y
|
57
|
+
) const;
|
58
|
+
|
59
|
+
virtual bool HasValidNumbersImpl() const;
|
60
|
+
|
61
|
+
virtual void ComputeRowAMaxImpl(
|
62
|
+
Vector& rows_norms,
|
63
|
+
bool init
|
64
|
+
) const;
|
65
|
+
|
66
|
+
virtual void PrintImpl(
|
67
|
+
const Journalist& jnlst,
|
68
|
+
EJournalLevel level,
|
69
|
+
EJournalCategory category,
|
70
|
+
const std::string& name,
|
71
|
+
Index indent,
|
72
|
+
const std::string& prefix
|
73
|
+
) const;
|
74
|
+
///@}
|
75
|
+
|
76
|
+
private:
|
77
|
+
/**@name Default Compiler Generated Methods
|
78
|
+
* (Hidden to avoid implicit creation/calling).
|
79
|
+
* These methods are not implemented and
|
80
|
+
* we do not want the compiler to implement
|
81
|
+
* them for us, so we declare them private
|
82
|
+
* and do not define them. This ensures that
|
83
|
+
* they will not be implicitly created/called. */
|
84
|
+
///@{
|
85
|
+
/** Default Constructor */
|
86
|
+
DiagMatrix();
|
87
|
+
|
88
|
+
/** Copy Constructor */
|
89
|
+
DiagMatrix(
|
90
|
+
const DiagMatrix&
|
91
|
+
);
|
92
|
+
|
93
|
+
/** Default Assignment Operator */
|
94
|
+
void operator=(
|
95
|
+
const DiagMatrix&
|
96
|
+
);
|
97
|
+
///@}
|
98
|
+
|
99
|
+
/** Vector storing the diagonal elements */
|
100
|
+
SmartPtr<const Vector> diag_;
|
101
|
+
};
|
102
|
+
|
103
|
+
/** This is the matrix space for DiagMatrix. */
|
104
|
+
class IPOPTLIB_EXPORT DiagMatrixSpace: public SymMatrixSpace
|
105
|
+
{
|
106
|
+
public:
|
107
|
+
/** @name Constructors / Destructors */
|
108
|
+
///@{
|
109
|
+
/** Constructor, given the dimension of the matrix. */
|
110
|
+
DiagMatrixSpace(
|
111
|
+
Index dim
|
112
|
+
)
|
113
|
+
: SymMatrixSpace(dim)
|
114
|
+
{ }
|
115
|
+
|
116
|
+
/** Destructor */
|
117
|
+
virtual ~DiagMatrixSpace()
|
118
|
+
{ }
|
119
|
+
///@}
|
120
|
+
|
121
|
+
virtual SymMatrix* MakeNewSymMatrix() const
|
122
|
+
{
|
123
|
+
return MakeNewDiagMatrix();
|
124
|
+
}
|
125
|
+
|
126
|
+
/** Method for creating a new matrix of this specific type. */
|
127
|
+
DiagMatrix* MakeNewDiagMatrix() const
|
128
|
+
{
|
129
|
+
return new DiagMatrix(this);
|
130
|
+
}
|
131
|
+
|
132
|
+
private:
|
133
|
+
/**@name Default Compiler Generated Methods
|
134
|
+
* (Hidden to avoid implicit creation/calling).
|
135
|
+
* These methods are not implemented and
|
136
|
+
* we do not want the compiler to implement
|
137
|
+
* them for us, so we declare them private
|
138
|
+
* and do not define them. This ensures that
|
139
|
+
* they will not be implicitly created/called. */
|
140
|
+
///@{
|
141
|
+
/** Default Constructor */
|
142
|
+
DiagMatrixSpace();
|
143
|
+
|
144
|
+
/** Copy Constructor */
|
145
|
+
DiagMatrixSpace(
|
146
|
+
const DiagMatrixSpace&
|
147
|
+
);
|
148
|
+
|
149
|
+
/** Default Assignment Operator */
|
150
|
+
void operator=(
|
151
|
+
const DiagMatrixSpace&
|
152
|
+
);
|
153
|
+
///@}
|
154
|
+
|
155
|
+
};
|
156
|
+
|
157
|
+
} // namespace Ipopt
|
158
|
+
#endif
|
@@ -0,0 +1,76 @@
|
|
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-09-23
|
6
|
+
|
7
|
+
#ifndef __IPEQMULTCALCULATOR_HPP__
|
8
|
+
#define __IPEQMULTCALCULATOR_HPP__
|
9
|
+
|
10
|
+
#include "IpUtils.hpp"
|
11
|
+
#include "IpAlgStrategy.hpp"
|
12
|
+
|
13
|
+
namespace Ipopt
|
14
|
+
{
|
15
|
+
/** Base Class for objects that compute estimates for the equality
|
16
|
+
* constraint multipliers y_c and y_d.
|
17
|
+
*
|
18
|
+
* For example, this is the base class for objects for computing
|
19
|
+
* least square multipliers or coordinate multipliers.
|
20
|
+
*/
|
21
|
+
class EqMultiplierCalculator: public AlgorithmStrategyObject
|
22
|
+
{
|
23
|
+
public:
|
24
|
+
/**@name Constructors/Destructors */
|
25
|
+
///@{
|
26
|
+
/** Default Constructor. */
|
27
|
+
EqMultiplierCalculator()
|
28
|
+
{ }
|
29
|
+
/** Destructor */
|
30
|
+
virtual ~EqMultiplierCalculator()
|
31
|
+
{ }
|
32
|
+
///@}
|
33
|
+
|
34
|
+
/** overloaded from AlgorithmStrategyObject */
|
35
|
+
virtual bool InitializeImpl(
|
36
|
+
const OptionsList& options,
|
37
|
+
const std::string& prefix
|
38
|
+
) = 0;
|
39
|
+
|
40
|
+
/** This method computes the estimates for y_c and y_d at the
|
41
|
+
* current point.
|
42
|
+
*
|
43
|
+
* If the estimates cannot be computed (e.g. some linear system
|
44
|
+
* is singular), the return value of this method is false.
|
45
|
+
*/
|
46
|
+
virtual bool CalculateMultipliers(
|
47
|
+
Vector& y_c,
|
48
|
+
Vector& y_d
|
49
|
+
) = 0;
|
50
|
+
|
51
|
+
private:
|
52
|
+
/**@name Default Compiler Generated Methods
|
53
|
+
* (Hidden to avoid implicit creation/calling).
|
54
|
+
*
|
55
|
+
* These methods are not implemented and
|
56
|
+
* we do not want the compiler to implement
|
57
|
+
* them for us, so we declare them private
|
58
|
+
* and do not define them. This ensures that
|
59
|
+
* they will not be implicitly created/called.
|
60
|
+
*/
|
61
|
+
///@{
|
62
|
+
/** Copy Constructor */
|
63
|
+
EqMultiplierCalculator(
|
64
|
+
const EqMultiplierCalculator&
|
65
|
+
);
|
66
|
+
|
67
|
+
/** Default Assignment Operator */
|
68
|
+
void operator=(
|
69
|
+
const EqMultiplierCalculator&
|
70
|
+
);
|
71
|
+
///@}
|
72
|
+
};
|
73
|
+
|
74
|
+
} // namespace Ipopt
|
75
|
+
|
76
|
+
#endif
|
@@ -0,0 +1,156 @@
|
|
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
|
+
/** This file contains a base class for all exceptions
|
8
|
+
* and a set of macros to help with exceptions.
|
9
|
+
*/
|
10
|
+
|
11
|
+
#ifndef __IPEXCEPTION_HPP__
|
12
|
+
#define __IPEXCEPTION_HPP__
|
13
|
+
|
14
|
+
#include "IpUtils.hpp"
|
15
|
+
#include "IpJournalist.hpp"
|
16
|
+
|
17
|
+
namespace Ipopt
|
18
|
+
{
|
19
|
+
|
20
|
+
/** This is the base class for all exceptions.
|
21
|
+
*
|
22
|
+
* The easiest way to
|
23
|
+
* use this class is by means of the following macros:
|
24
|
+
*
|
25
|
+
* \verbatim
|
26
|
+
|
27
|
+
DECLARE_STD_EXCEPTION(ExceptionType);
|
28
|
+
\endverbatim
|
29
|
+
*
|
30
|
+
* This macro defines a new class with the name ExceptionType,
|
31
|
+
* inherited from the base class IpoptException. After this,
|
32
|
+
* exceptions of this type can be thrown using
|
33
|
+
*
|
34
|
+
* \verbatim
|
35
|
+
|
36
|
+
THROW_EXCEPTION(ExceptionType, Message);
|
37
|
+
\endverbatim
|
38
|
+
*
|
39
|
+
* where Message is a std::string with a message that gives an
|
40
|
+
* indication of what caused the exception. Exceptions can also be
|
41
|
+
* thrown using the macro
|
42
|
+
*
|
43
|
+
* \verbatim
|
44
|
+
|
45
|
+
ASSERT_EXCEPTION(Condition, ExceptionType, Message);
|
46
|
+
\endverbatim
|
47
|
+
*
|
48
|
+
* where Conditions is an expression. If Condition evaluates to
|
49
|
+
* false, then the exception of the type ExceptionType is thrown
|
50
|
+
* with Message.
|
51
|
+
*
|
52
|
+
* When an exception is caught, the method ReportException can be
|
53
|
+
* used to write the information about the exception to the
|
54
|
+
* Journalist, using the level J_ERROR and the category J_MAIN.
|
55
|
+
*
|
56
|
+
*/
|
57
|
+
class IPOPTLIB_EXPORT IpoptException
|
58
|
+
{
|
59
|
+
public:
|
60
|
+
/**@name Constructors/Destructors */
|
61
|
+
///@{
|
62
|
+
/** Constructor */
|
63
|
+
IpoptException(
|
64
|
+
const std::string& msg,
|
65
|
+
const std::string& file_name,
|
66
|
+
Index line_number,
|
67
|
+
const std::string& type = "IpoptException"
|
68
|
+
)
|
69
|
+
: msg_(msg),
|
70
|
+
file_name_(file_name),
|
71
|
+
line_number_(line_number),
|
72
|
+
type_(type)
|
73
|
+
{ }
|
74
|
+
|
75
|
+
/** Copy Constructor */
|
76
|
+
IpoptException(
|
77
|
+
const IpoptException& copy
|
78
|
+
)
|
79
|
+
: msg_(copy.msg_),
|
80
|
+
file_name_(copy.file_name_),
|
81
|
+
line_number_(copy.line_number_),
|
82
|
+
type_(copy.type_)
|
83
|
+
{ }
|
84
|
+
|
85
|
+
/** Default destructor */
|
86
|
+
virtual ~IpoptException()
|
87
|
+
{ }
|
88
|
+
///@}
|
89
|
+
|
90
|
+
/** Method to report the exception to a journalist */
|
91
|
+
void ReportException(
|
92
|
+
const Journalist& jnlst,
|
93
|
+
EJournalLevel level = J_ERROR
|
94
|
+
) const
|
95
|
+
{
|
96
|
+
jnlst.Printf(level, J_MAIN,
|
97
|
+
"Exception of type: %s in file \"%s\" at line %" IPOPT_INDEX_FORMAT ":\n Exception message: %s\n", type_.c_str(), file_name_.c_str(), line_number_, msg_.c_str());
|
98
|
+
}
|
99
|
+
|
100
|
+
const std::string& Message() const
|
101
|
+
{
|
102
|
+
return msg_;
|
103
|
+
}
|
104
|
+
|
105
|
+
private:
|
106
|
+
/**@name Default Compiler Generated Methods
|
107
|
+
* (Hidden to avoid implicit creation/calling).
|
108
|
+
*
|
109
|
+
* These methods are not implemented and
|
110
|
+
* we do not want the compiler to implement
|
111
|
+
* them for us, so we declare them private
|
112
|
+
* and do not define them. This ensures that
|
113
|
+
* they will not be implicitly created/called. */
|
114
|
+
///@{
|
115
|
+
/** Default Constructor */
|
116
|
+
IpoptException();
|
117
|
+
|
118
|
+
/** Default Assignment Operator */
|
119
|
+
void operator=(
|
120
|
+
const IpoptException&
|
121
|
+
);
|
122
|
+
///@}
|
123
|
+
|
124
|
+
std::string msg_;
|
125
|
+
std::string file_name_;
|
126
|
+
Index line_number_;
|
127
|
+
std::string type_;
|
128
|
+
};
|
129
|
+
|
130
|
+
} // namespace Ipopt
|
131
|
+
|
132
|
+
#define THROW_EXCEPTION(__except_type, __msg) \
|
133
|
+
throw __except_type( (__msg), (__FILE__), (__LINE__) );
|
134
|
+
|
135
|
+
#define ASSERT_EXCEPTION(__condition, __except_type, __msg) \
|
136
|
+
if (! (__condition) ) { \
|
137
|
+
std::string newmsg = #__condition; \
|
138
|
+
newmsg += " evaluated false: "; \
|
139
|
+
newmsg += __msg; \
|
140
|
+
throw __except_type( (newmsg), (__FILE__), (__LINE__) ); \
|
141
|
+
}
|
142
|
+
|
143
|
+
#define DECLARE_STD_EXCEPTION(__except_type) \
|
144
|
+
class IPOPTLIB_EXPORT __except_type : public Ipopt::IpoptException \
|
145
|
+
{ \
|
146
|
+
public: \
|
147
|
+
__except_type(const std::string& msg, const std::string& fname, Ipopt::Index line) \
|
148
|
+
: Ipopt::IpoptException(msg,fname,line, #__except_type) {} \
|
149
|
+
__except_type(const __except_type& copy) \
|
150
|
+
: Ipopt::IpoptException(copy) {} \
|
151
|
+
private: \
|
152
|
+
__except_type(); \
|
153
|
+
void operator=(const __except_type&); \
|
154
|
+
}
|
155
|
+
|
156
|
+
#endif
|
@@ -0,0 +1,245 @@
|
|
1
|
+
// Copyright (C) 2004, 2009 International Business Machines and others.
|
2
|
+
// All Rights Reserved.
|
3
|
+
// This code is published under the Eclipse Public License.
|
4
|
+
//
|
5
|
+
// Authors: Carl Laird, Andreas Waechter IBM 2004-08-13
|
6
|
+
|
7
|
+
#ifndef __IPEXPANSIONMATRIX_HPP__
|
8
|
+
#define __IPEXPANSIONMATRIX_HPP__
|
9
|
+
|
10
|
+
#include "IpUtils.hpp"
|
11
|
+
#include "IpMatrix.hpp"
|
12
|
+
|
13
|
+
namespace Ipopt
|
14
|
+
{
|
15
|
+
|
16
|
+
/** forward declarations */
|
17
|
+
class ExpansionMatrixSpace;
|
18
|
+
|
19
|
+
/** Class for expansion/projection matrices.
|
20
|
+
*
|
21
|
+
* These matrices allow
|
22
|
+
* to lift a vector to a vector with larger dimension, keeping
|
23
|
+
* some elements of the larger vector zero. This operation is achieved
|
24
|
+
* by the MultVector operation. The transpose operation then
|
25
|
+
* filters some elements from a large vector into a smaller vector.
|
26
|
+
*/
|
27
|
+
class IPOPTLIB_EXPORT ExpansionMatrix: public Matrix
|
28
|
+
{
|
29
|
+
public:
|
30
|
+
/**@name Constructors / Destructors */
|
31
|
+
///@{
|
32
|
+
/** Constructor, taking the owner_space.
|
33
|
+
*/
|
34
|
+
ExpansionMatrix(
|
35
|
+
const ExpansionMatrixSpace* owner_space
|
36
|
+
);
|
37
|
+
|
38
|
+
/** Destructor */
|
39
|
+
~ExpansionMatrix();
|
40
|
+
///@}
|
41
|
+
|
42
|
+
/** Return the vector of indices marking the expanded position.
|
43
|
+
*
|
44
|
+
* The result is the Index array (of length NSmallVec=NCols())
|
45
|
+
* that stores the mapping from the small vector to the large
|
46
|
+
* vector. For each element i=0,..,NSmallVec in the small
|
47
|
+
* vector, ExpandedPosIndices()[i] give the corresponding index
|
48
|
+
* in the large vector.
|
49
|
+
*/
|
50
|
+
const Index* ExpandedPosIndices() const;
|
51
|
+
|
52
|
+
/** Return the vector of indices marking the compressed position.
|
53
|
+
*
|
54
|
+
* The result is the Index array (of length NLargeVec=NRows())
|
55
|
+
* that stores the mapping from the large vector to the small
|
56
|
+
* vector. For each element i=0,..,NLargeVec in the large
|
57
|
+
* vector, CompressedPosIndices()[i] gives the corresponding
|
58
|
+
* index in the small vector, unless CompressedPosIndices()[i] is
|
59
|
+
* negative.
|
60
|
+
*/
|
61
|
+
const Index* CompressedPosIndices() const;
|
62
|
+
|
63
|
+
protected:
|
64
|
+
/**@name Overloaded methods from Matrix base class*/
|
65
|
+
///@{
|
66
|
+
virtual void MultVectorImpl(
|
67
|
+
Number alpha,
|
68
|
+
const Vector& x,
|
69
|
+
Number beta,
|
70
|
+
Vector& y
|
71
|
+
) const;
|
72
|
+
|
73
|
+
virtual void TransMultVectorImpl(
|
74
|
+
Number alpha,
|
75
|
+
const Vector& x,
|
76
|
+
Number beta,
|
77
|
+
Vector& y
|
78
|
+
) const;
|
79
|
+
|
80
|
+
virtual void AddMSinvZImpl(
|
81
|
+
Number alpha,
|
82
|
+
const Vector& S,
|
83
|
+
const Vector& Z,
|
84
|
+
Vector& X
|
85
|
+
) const;
|
86
|
+
|
87
|
+
virtual void SinvBlrmZMTdBrImpl(
|
88
|
+
Number alpha,
|
89
|
+
const Vector& S,
|
90
|
+
const Vector& R,
|
91
|
+
const Vector& Z,
|
92
|
+
const Vector& D,
|
93
|
+
Vector& X
|
94
|
+
) const;
|
95
|
+
|
96
|
+
virtual void ComputeRowAMaxImpl(
|
97
|
+
Vector& rows_norms,
|
98
|
+
bool init
|
99
|
+
) const;
|
100
|
+
|
101
|
+
virtual void ComputeColAMaxImpl(
|
102
|
+
Vector& cols_norms,
|
103
|
+
bool init
|
104
|
+
) const;
|
105
|
+
|
106
|
+
virtual void PrintImpl(
|
107
|
+
const Journalist& jnlst,
|
108
|
+
EJournalLevel level,
|
109
|
+
EJournalCategory category,
|
110
|
+
const std::string& name,
|
111
|
+
Index indent,
|
112
|
+
const std::string& prefix
|
113
|
+
) const
|
114
|
+
{
|
115
|
+
PrintImplOffset(jnlst, level, category, name, indent, prefix, 1, 1);
|
116
|
+
}
|
117
|
+
///@}
|
118
|
+
|
119
|
+
void PrintImplOffset(
|
120
|
+
const Journalist& jnlst,
|
121
|
+
EJournalLevel level,
|
122
|
+
EJournalCategory category,
|
123
|
+
const std::string& name,
|
124
|
+
Index indent,
|
125
|
+
const std::string& prefix,
|
126
|
+
Index row_offset,
|
127
|
+
Index col_offset
|
128
|
+
) const;
|
129
|
+
|
130
|
+
friend class ParExpansionMatrix;
|
131
|
+
|
132
|
+
private:
|
133
|
+
/**@name Default Compiler Generated Methods
|
134
|
+
* (Hidden to avoid implicit creation/calling).
|
135
|
+
* These methods are not implemented and
|
136
|
+
* we do not want the compiler to implement
|
137
|
+
* them for us, so we declare them private
|
138
|
+
* and do not define them. This ensures that
|
139
|
+
* they will not be implicitly created/called.
|
140
|
+
*/
|
141
|
+
///@{
|
142
|
+
/** Default Constructor */
|
143
|
+
ExpansionMatrix();
|
144
|
+
|
145
|
+
/** Copy Constructor */
|
146
|
+
ExpansionMatrix(
|
147
|
+
const ExpansionMatrix&
|
148
|
+
);
|
149
|
+
|
150
|
+
/** Default Assignment Operator */
|
151
|
+
void operator=(
|
152
|
+
const ExpansionMatrix&
|
153
|
+
);
|
154
|
+
///@}
|
155
|
+
|
156
|
+
const ExpansionMatrixSpace* owner_space_;
|
157
|
+
|
158
|
+
};
|
159
|
+
|
160
|
+
/** This is the matrix space for ExpansionMatrix. */
|
161
|
+
class IPOPTLIB_EXPORT ExpansionMatrixSpace: public MatrixSpace
|
162
|
+
{
|
163
|
+
public:
|
164
|
+
/** @name Constructors / Destructors */
|
165
|
+
///@{
|
166
|
+
/** Constructor, given the list of elements of the large vector
|
167
|
+
* (of size NLargeVec) to be filtered into the small vector (of
|
168
|
+
* size NSmallVec).
|
169
|
+
*
|
170
|
+
* For each i=0..NSmallVec-1 the i-th element
|
171
|
+
* of the small vector will be put into the ExpPos[i] position of
|
172
|
+
* the large vector. The position counting in the vector is
|
173
|
+
* assumed to start at 0 (C-like array notation).
|
174
|
+
*/
|
175
|
+
ExpansionMatrixSpace(
|
176
|
+
Index NLargeVec,
|
177
|
+
Index NSmallVec,
|
178
|
+
const Index* ExpPos,
|
179
|
+
const int offset = 0
|
180
|
+
);
|
181
|
+
|
182
|
+
/** Destructor */
|
183
|
+
~ExpansionMatrixSpace()
|
184
|
+
{
|
185
|
+
delete[] compressed_pos_;
|
186
|
+
delete[] expanded_pos_;
|
187
|
+
}
|
188
|
+
///@}
|
189
|
+
|
190
|
+
/** Method for creating a new matrix of this specific type. */
|
191
|
+
ExpansionMatrix* MakeNewExpansionMatrix() const
|
192
|
+
{
|
193
|
+
return new ExpansionMatrix(this);
|
194
|
+
}
|
195
|
+
|
196
|
+
virtual Matrix* MakeNew() const
|
197
|
+
{
|
198
|
+
return MakeNewExpansionMatrix();
|
199
|
+
}
|
200
|
+
|
201
|
+
/** Accessor Method to obtain the Index array (of length
|
202
|
+
* NSmallVec=NCols()) that stores the mapping from the small
|
203
|
+
* vector to the large vector.
|
204
|
+
*
|
205
|
+
* For each element i=0,..,NSmallVec
|
206
|
+
* in the small vector, ExpandedPosIndices()[i] give the
|
207
|
+
* corresponding index in the large vector.
|
208
|
+
*/
|
209
|
+
const Index* ExpandedPosIndices() const
|
210
|
+
{
|
211
|
+
return expanded_pos_;
|
212
|
+
}
|
213
|
+
|
214
|
+
/** Accessor Method to obtain the Index array (of length
|
215
|
+
* NLargeVec=NRows()) that stores the mapping from the large
|
216
|
+
* vector to the small vector.
|
217
|
+
*
|
218
|
+
* For each element i=0,..,NLargeVec
|
219
|
+
* in the large vector, CompressedPosIndices()[i] gives the
|
220
|
+
* corresponding index in the small vector, unless
|
221
|
+
* CompressedPosIndices()[i] is negative.
|
222
|
+
*/
|
223
|
+
const Index* CompressedPosIndices() const
|
224
|
+
{
|
225
|
+
return compressed_pos_;
|
226
|
+
}
|
227
|
+
|
228
|
+
private:
|
229
|
+
Index* expanded_pos_;
|
230
|
+
Index* compressed_pos_;
|
231
|
+
};
|
232
|
+
|
233
|
+
/* inline methods */
|
234
|
+
inline const Index* ExpansionMatrix::ExpandedPosIndices() const
|
235
|
+
{
|
236
|
+
return owner_space_->ExpandedPosIndices();
|
237
|
+
}
|
238
|
+
|
239
|
+
inline const Index* ExpansionMatrix::CompressedPosIndices() const
|
240
|
+
{
|
241
|
+
return owner_space_->CompressedPosIndices();
|
242
|
+
}
|
243
|
+
|
244
|
+
} // namespace Ipopt
|
245
|
+
#endif
|