casadi 3.6.4__cp36-none-manylinux2014_i686.whl → 3.6.6__cp36-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,141 @@
|
|
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 __IPSYMLINEARSOLVER_HPP__
|
8
|
+
#define __IPSYMLINEARSOLVER_HPP__
|
9
|
+
|
10
|
+
#include "IpUtils.hpp"
|
11
|
+
#include "IpSymMatrix.hpp"
|
12
|
+
#include "IpAlgStrategy.hpp"
|
13
|
+
#include <vector>
|
14
|
+
|
15
|
+
namespace Ipopt
|
16
|
+
{
|
17
|
+
|
18
|
+
/** Enum to report outcome of a linear solve */
|
19
|
+
enum ESymSolverStatus
|
20
|
+
{
|
21
|
+
/** Successful solve */
|
22
|
+
SYMSOLVER_SUCCESS,
|
23
|
+
/** Matrix seems to be singular; solve was aborted */
|
24
|
+
SYMSOLVER_SINGULAR,
|
25
|
+
/** The number of negative eigenvalues is not correct */
|
26
|
+
SYMSOLVER_WRONG_INERTIA,
|
27
|
+
/** Call the solver interface again after the matrix values have been restored */
|
28
|
+
SYMSOLVER_CALL_AGAIN,
|
29
|
+
/** Unrecoverable error in linear solver occurred.
|
30
|
+
* The optimization will be aborted.
|
31
|
+
*/
|
32
|
+
SYMSOLVER_FATAL_ERROR
|
33
|
+
};
|
34
|
+
|
35
|
+
/** Base class for all derived symmetric linear solvers.
|
36
|
+
*
|
37
|
+
* In the full space version of Ipopt a large linear
|
38
|
+
* system has to be solved for the augmented system. This case is
|
39
|
+
* meant to be the base class for all derived linear solvers for
|
40
|
+
* symmetric matrices (of type SymMatrix).
|
41
|
+
*
|
42
|
+
* A linear solver can be used repeatedly for matrices with
|
43
|
+
* identical structure of nonzero elements. The nonzero structure
|
44
|
+
* of those matrices must not be changed between calls.
|
45
|
+
*
|
46
|
+
* The called might ask the solver to only solve the linear system
|
47
|
+
* if the system is nonsingular, and if the number of negative
|
48
|
+
* eigenvalues matches a given number.
|
49
|
+
*/
|
50
|
+
class IPOPTLIB_EXPORT SymLinearSolver: public AlgorithmStrategyObject
|
51
|
+
{
|
52
|
+
public:
|
53
|
+
/** @name Constructor/Destructor */
|
54
|
+
///@{
|
55
|
+
SymLinearSolver()
|
56
|
+
{ }
|
57
|
+
|
58
|
+
virtual ~SymLinearSolver()
|
59
|
+
{ }
|
60
|
+
///@}
|
61
|
+
|
62
|
+
virtual bool InitializeImpl(
|
63
|
+
const OptionsList& options,
|
64
|
+
const std::string& prefix
|
65
|
+
) = 0;
|
66
|
+
|
67
|
+
/** @name Methods for requesting solution of the linear system. */
|
68
|
+
///@{
|
69
|
+
/** Solve operation for multiple right hand sides.
|
70
|
+
*
|
71
|
+
* Solves the linear system A * Sol = Rhs with multiple right hand sides.
|
72
|
+
* If necessary, A is factorized. Correct solutions are only
|
73
|
+
* guaranteed if the return values is SYMSOLVER_SUCCESS. The
|
74
|
+
* solver will return SYMSOLVER_SINGULAR if the linear system is
|
75
|
+
* singular, and it will return SYMSOLVER_WRONG_INERTIA if
|
76
|
+
* check_NegEVals is true and the number of negative eigenvalues
|
77
|
+
* in the matrix does not match numberOfNegEVals.
|
78
|
+
*
|
79
|
+
* check_NegEVals cannot be chosen true, if ProvidesInertia()
|
80
|
+
* returns false.
|
81
|
+
*/
|
82
|
+
virtual ESymSolverStatus MultiSolve(
|
83
|
+
const SymMatrix& A,
|
84
|
+
std::vector<SmartPtr<const Vector> >& rhsV,
|
85
|
+
std::vector<SmartPtr<Vector> >& solV,
|
86
|
+
bool check_NegEVals,
|
87
|
+
Index numberOfNegEVals
|
88
|
+
) = 0;
|
89
|
+
|
90
|
+
/** Solve operation for a single right hand side.
|
91
|
+
*
|
92
|
+
* Solves the linear system A * Sol = Rhs.
|
93
|
+
* See MultiSolve for more details.
|
94
|
+
*/
|
95
|
+
ESymSolverStatus Solve(
|
96
|
+
const SymMatrix& A,
|
97
|
+
const Vector& rhs,
|
98
|
+
Vector& sol,
|
99
|
+
bool check_NegEVals,
|
100
|
+
Index numberOfNegEVals
|
101
|
+
)
|
102
|
+
{
|
103
|
+
std::vector<SmartPtr<const Vector> > rhsV(1);
|
104
|
+
rhsV[0] = &rhs;
|
105
|
+
std::vector<SmartPtr<Vector> > solV(1);
|
106
|
+
solV[0] = /
|
107
|
+
return MultiSolve(A, rhsV, solV, check_NegEVals, numberOfNegEVals);
|
108
|
+
}
|
109
|
+
|
110
|
+
/** Number of negative eigenvalues detected during last factorization.
|
111
|
+
*
|
112
|
+
* @return the number of negative eigenvalues of the most recent factorized matrix
|
113
|
+
*
|
114
|
+
* This must not be called if the linear solver does not compute this quantities
|
115
|
+
* (see ProvidesInertia).
|
116
|
+
*/
|
117
|
+
virtual Index NumberOfNegEVals() const = 0;
|
118
|
+
///@}
|
119
|
+
|
120
|
+
//* @name Options of Linear solver */
|
121
|
+
///@{
|
122
|
+
/** Request to increase quality of solution for next solve.
|
123
|
+
*
|
124
|
+
* Ask linear solver to increase quality of solution for the next
|
125
|
+
* solve (e.g. increase pivot tolerance).
|
126
|
+
*
|
127
|
+
* @return false, if this is not possible, e.g. maximal pivot tolerance already used.
|
128
|
+
*/
|
129
|
+
virtual bool IncreaseQuality() = 0;
|
130
|
+
|
131
|
+
/** Query whether inertia is computed by linear solver.
|
132
|
+
*
|
133
|
+
* @return true, if linear solver provides inertia
|
134
|
+
*/
|
135
|
+
virtual bool ProvidesInertia() const = 0;
|
136
|
+
///@}
|
137
|
+
};
|
138
|
+
|
139
|
+
} // namespace Ipopt
|
140
|
+
|
141
|
+
#endif
|
@@ -0,0 +1,167 @@
|
|
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 __IPSYMMATRIX_HPP__
|
8
|
+
#define __IPSYMMATRIX_HPP__
|
9
|
+
|
10
|
+
#include "IpUtils.hpp"
|
11
|
+
#include "IpMatrix.hpp"
|
12
|
+
|
13
|
+
namespace Ipopt
|
14
|
+
{
|
15
|
+
|
16
|
+
/* forward declarations */
|
17
|
+
class SymMatrixSpace;
|
18
|
+
|
19
|
+
/** This is the base class for all derived symmetric matrix types. */
|
20
|
+
class IPOPTLIB_EXPORT SymMatrix: public Matrix
|
21
|
+
{
|
22
|
+
public:
|
23
|
+
/** @name Constructor/Destructor */
|
24
|
+
///@{
|
25
|
+
/** Constructor, taking the owner_space.
|
26
|
+
*/
|
27
|
+
inline SymMatrix(
|
28
|
+
const SymMatrixSpace* owner_space
|
29
|
+
);
|
30
|
+
|
31
|
+
/** Destructor */
|
32
|
+
virtual ~SymMatrix()
|
33
|
+
{ }
|
34
|
+
///@}
|
35
|
+
|
36
|
+
/** @name Information about the size of the matrix */
|
37
|
+
///@{
|
38
|
+
/** Dimension of the matrix (number of rows and columns) */
|
39
|
+
inline Index Dim() const;
|
40
|
+
///@}
|
41
|
+
|
42
|
+
inline SmartPtr<const SymMatrixSpace> OwnerSymMatrixSpace() const;
|
43
|
+
|
44
|
+
protected:
|
45
|
+
/** @name Overloaded methods from Matrix. */
|
46
|
+
///@{
|
47
|
+
/** Implementation of TransMultVectorImpl, which calls MultVectorImpl.
|
48
|
+
*
|
49
|
+
* Since the matrix is symmetric, it is only necessary to implement the
|
50
|
+
* MultVectorImpl method in a class that inherits from this base
|
51
|
+
* class.
|
52
|
+
*/
|
53
|
+
virtual void TransMultVectorImpl(
|
54
|
+
Number alpha,
|
55
|
+
const Vector& x,
|
56
|
+
Number beta,
|
57
|
+
Vector& y
|
58
|
+
) const
|
59
|
+
{
|
60
|
+
// Since this matrix is symmetric, this is the same operation as MultVector
|
61
|
+
MultVector(alpha, x, beta, y);
|
62
|
+
}
|
63
|
+
|
64
|
+
/** Implementation of ComputeColAMaxImpl, which calls ComputeRowAMaxImpl.
|
65
|
+
*
|
66
|
+
* Since the matrix is symmetric, the row and column max norms are identical.
|
67
|
+
*/
|
68
|
+
virtual void ComputeColAMaxImpl(
|
69
|
+
Vector& cols_norms,
|
70
|
+
bool init
|
71
|
+
) const
|
72
|
+
{
|
73
|
+
ComputeRowAMaxImpl(cols_norms, init);
|
74
|
+
}
|
75
|
+
///@}
|
76
|
+
|
77
|
+
private:
|
78
|
+
/** Copy of the owner space ptr as a SymMatrixSpace instead
|
79
|
+
* of a MatrixSpace
|
80
|
+
*/
|
81
|
+
const SymMatrixSpace* owner_space_;
|
82
|
+
};
|
83
|
+
|
84
|
+
/** SymMatrixSpace base class, corresponding to the SymMatrix base class. */
|
85
|
+
class IPOPTLIB_EXPORT SymMatrixSpace: public MatrixSpace
|
86
|
+
{
|
87
|
+
public:
|
88
|
+
/** @name Constructors/Destructors */
|
89
|
+
///@{
|
90
|
+
/** Constructor, given the dimension (identical to the number of
|
91
|
+
* rows and columns).
|
92
|
+
*/
|
93
|
+
SymMatrixSpace(
|
94
|
+
Index dim
|
95
|
+
)
|
96
|
+
: MatrixSpace(dim, dim)
|
97
|
+
{ }
|
98
|
+
|
99
|
+
/** Destructor */
|
100
|
+
virtual ~SymMatrixSpace()
|
101
|
+
{ }
|
102
|
+
///@}
|
103
|
+
|
104
|
+
/** Pure virtual method for creating a new matrix of this specific type. */
|
105
|
+
virtual SymMatrix* MakeNewSymMatrix() const = 0;
|
106
|
+
|
107
|
+
virtual Matrix* MakeNew() const
|
108
|
+
{
|
109
|
+
return MakeNewSymMatrix();
|
110
|
+
}
|
111
|
+
|
112
|
+
/** Accessor method for the dimension of the matrices in this
|
113
|
+
* matrix space.
|
114
|
+
*/
|
115
|
+
Index Dim() const
|
116
|
+
{
|
117
|
+
DBG_ASSERT(NRows() == NCols());
|
118
|
+
return NRows();
|
119
|
+
}
|
120
|
+
|
121
|
+
private:
|
122
|
+
/**@name Default Compiler Generated Methods
|
123
|
+
* (Hidden to avoid implicit creation/calling).
|
124
|
+
* These methods are not implemented and
|
125
|
+
* we do not want the compiler to implement
|
126
|
+
* them for us, so we declare them private
|
127
|
+
* and do not define them. This ensures that
|
128
|
+
* they will not be implicitly created/called.
|
129
|
+
*/
|
130
|
+
///@{
|
131
|
+
/** Default constructor */
|
132
|
+
SymMatrixSpace();
|
133
|
+
|
134
|
+
/* Copy constructor */
|
135
|
+
SymMatrixSpace(
|
136
|
+
const SymMatrixSpace&
|
137
|
+
);
|
138
|
+
|
139
|
+
/** Default Assignment Operator */
|
140
|
+
SymMatrixSpace& operator=(
|
141
|
+
const SymMatrixSpace&
|
142
|
+
);
|
143
|
+
///@}
|
144
|
+
|
145
|
+
};
|
146
|
+
|
147
|
+
/* inline methods */
|
148
|
+
inline SymMatrix::SymMatrix(
|
149
|
+
const SymMatrixSpace* owner_space
|
150
|
+
)
|
151
|
+
: Matrix(owner_space),
|
152
|
+
owner_space_(owner_space)
|
153
|
+
{ }
|
154
|
+
|
155
|
+
inline Index SymMatrix::Dim() const
|
156
|
+
{
|
157
|
+
return owner_space_->Dim();
|
158
|
+
}
|
159
|
+
|
160
|
+
inline SmartPtr<const SymMatrixSpace> SymMatrix::OwnerSymMatrixSpace() const
|
161
|
+
{
|
162
|
+
return owner_space_;
|
163
|
+
}
|
164
|
+
|
165
|
+
} // namespace Ipopt
|
166
|
+
|
167
|
+
#endif
|
@@ -0,0 +1,255 @@
|
|
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 __IPSYMSCALEDMATRIX_HPP__
|
8
|
+
#define __IPSYMSCALEDMATRIX_HPP__
|
9
|
+
|
10
|
+
#include "IpUtils.hpp"
|
11
|
+
#include "IpSymMatrix.hpp"
|
12
|
+
|
13
|
+
namespace Ipopt
|
14
|
+
{
|
15
|
+
|
16
|
+
/* forward declarations */
|
17
|
+
class SymScaledMatrixSpace;
|
18
|
+
|
19
|
+
/** Class for a Matrix in conjunction with its scaling factors for
|
20
|
+
* row and column scaling.
|
21
|
+
*
|
22
|
+
* Operations on the matrix are performed using
|
23
|
+
* the scaled matrix. You can pull out the pointer to the
|
24
|
+
* unscaled matrix for unscaled calculations.
|
25
|
+
*/
|
26
|
+
class IPOPTLIB_EXPORT SymScaledMatrix: public SymMatrix
|
27
|
+
{
|
28
|
+
public:
|
29
|
+
/**@name Constructors / Destructors */
|
30
|
+
///@{
|
31
|
+
/** Constructor, taking the owner_space.
|
32
|
+
*/
|
33
|
+
SymScaledMatrix(
|
34
|
+
const SymScaledMatrixSpace* owner_space
|
35
|
+
);
|
36
|
+
|
37
|
+
/** Destructor */
|
38
|
+
~SymScaledMatrix();
|
39
|
+
///@}
|
40
|
+
|
41
|
+
/** Set the unscaled matrix */
|
42
|
+
void SetUnscaledMatrix(
|
43
|
+
const SmartPtr<const SymMatrix> unscaled_matrix
|
44
|
+
);
|
45
|
+
|
46
|
+
/** Set the unscaled matrix in a non-const version */
|
47
|
+
void SetUnscaledMatrixNonConst(
|
48
|
+
const SmartPtr<SymMatrix>& unscaled_matrix
|
49
|
+
);
|
50
|
+
|
51
|
+
/** Return the unscaled matrix in const form */
|
52
|
+
SmartPtr<const SymMatrix> GetUnscaledMatrix() const;
|
53
|
+
|
54
|
+
/** Return the unscaled matrix in non-const form */
|
55
|
+
SmartPtr<SymMatrix> GetUnscaledMatrixNonConst();
|
56
|
+
|
57
|
+
/** return the vector for the row and column scaling */
|
58
|
+
SmartPtr<const Vector> RowColScaling() const;
|
59
|
+
|
60
|
+
protected:
|
61
|
+
/**@name Methods overloaded from Matrix */
|
62
|
+
///@{
|
63
|
+
virtual void MultVectorImpl(
|
64
|
+
Number alpha,
|
65
|
+
const Vector& x,
|
66
|
+
Number beta,
|
67
|
+
Vector& y
|
68
|
+
) const;
|
69
|
+
|
70
|
+
virtual bool HasValidNumbersImpl() const;
|
71
|
+
|
72
|
+
virtual void ComputeRowAMaxImpl(
|
73
|
+
Vector& rows_norms,
|
74
|
+
bool init
|
75
|
+
) const;
|
76
|
+
|
77
|
+
virtual void PrintImpl(
|
78
|
+
const Journalist& jnlst,
|
79
|
+
EJournalLevel level,
|
80
|
+
EJournalCategory category,
|
81
|
+
const std::string& name,
|
82
|
+
Index indent,
|
83
|
+
const std::string& prefix
|
84
|
+
) const;
|
85
|
+
///@}
|
86
|
+
|
87
|
+
private:
|
88
|
+
/**@name Default Compiler Generated Methods
|
89
|
+
* (Hidden to avoid implicit creation/calling).
|
90
|
+
* These methods are not implemented and
|
91
|
+
* we do not want the compiler to implement
|
92
|
+
* them for us, so we declare them private
|
93
|
+
* and do not define them. This ensures that
|
94
|
+
* they will not be implicitly created/called.
|
95
|
+
*/
|
96
|
+
///@{
|
97
|
+
/** Default Constructor */
|
98
|
+
SymScaledMatrix();
|
99
|
+
|
100
|
+
/** Copy Constructor */
|
101
|
+
SymScaledMatrix(
|
102
|
+
const SymScaledMatrix&
|
103
|
+
);
|
104
|
+
|
105
|
+
/** Default Assignment Operator */
|
106
|
+
void operator=(
|
107
|
+
const SymScaledMatrix&
|
108
|
+
);
|
109
|
+
///@}
|
110
|
+
|
111
|
+
/** const version of the unscaled matrix */
|
112
|
+
SmartPtr<const SymMatrix> matrix_;
|
113
|
+
|
114
|
+
/** non-const version of the unscaled matrix */
|
115
|
+
SmartPtr<SymMatrix> nonconst_matrix_;
|
116
|
+
|
117
|
+
/** Matrix space stored as a SymScaledMatrixSpace */
|
118
|
+
SmartPtr<const SymScaledMatrixSpace> owner_space_;
|
119
|
+
};
|
120
|
+
|
121
|
+
/** This is the matrix space for SymScaledMatrix.
|
122
|
+
*/
|
123
|
+
class IPOPTLIB_EXPORT SymScaledMatrixSpace: public SymMatrixSpace
|
124
|
+
{
|
125
|
+
public:
|
126
|
+
/** @name Constructors / Destructors */
|
127
|
+
///@{
|
128
|
+
/** Constructor, given the number of row and columns blocks, as
|
129
|
+
* well as the total number of rows and columns.
|
130
|
+
*/
|
131
|
+
SymScaledMatrixSpace(
|
132
|
+
const SmartPtr<const Vector>& row_col_scaling,
|
133
|
+
bool row_col_scaling_reciprocal,
|
134
|
+
const SmartPtr<const SymMatrixSpace>& unscaled_matrix_space
|
135
|
+
)
|
136
|
+
: SymMatrixSpace(unscaled_matrix_space->Dim()),
|
137
|
+
scaling_(row_col_scaling->MakeNewCopy()),
|
138
|
+
unscaled_matrix_space_(unscaled_matrix_space)
|
139
|
+
{
|
140
|
+
if( row_col_scaling_reciprocal )
|
141
|
+
{
|
142
|
+
scaling_->ElementWiseReciprocal();
|
143
|
+
}
|
144
|
+
}
|
145
|
+
|
146
|
+
/** Destructor */
|
147
|
+
~SymScaledMatrixSpace()
|
148
|
+
{ }
|
149
|
+
///@}
|
150
|
+
|
151
|
+
/** Method for creating a new matrix of this specific type. */
|
152
|
+
SymScaledMatrix* MakeNewSymScaledMatrix(
|
153
|
+
bool allocate_unscaled_matrix = false
|
154
|
+
) const
|
155
|
+
{
|
156
|
+
SymScaledMatrix* ret = new SymScaledMatrix(this);
|
157
|
+
if( allocate_unscaled_matrix )
|
158
|
+
{
|
159
|
+
SmartPtr<SymMatrix> unscaled_matrix = unscaled_matrix_space_->MakeNewSymMatrix();
|
160
|
+
ret->SetUnscaledMatrixNonConst(unscaled_matrix);
|
161
|
+
}
|
162
|
+
return ret;
|
163
|
+
}
|
164
|
+
|
165
|
+
virtual SymMatrix* MakeNewSymMatrix() const
|
166
|
+
{
|
167
|
+
return MakeNewSymScaledMatrix();
|
168
|
+
}
|
169
|
+
|
170
|
+
virtual Matrix* MakeNew() const
|
171
|
+
{
|
172
|
+
return MakeNewSymScaledMatrix();
|
173
|
+
}
|
174
|
+
|
175
|
+
/** return the vector for the row and column scaling */
|
176
|
+
SmartPtr<const Vector> RowColScaling() const
|
177
|
+
{
|
178
|
+
return ConstPtr(scaling_);
|
179
|
+
}
|
180
|
+
|
181
|
+
/** return the matrix space for the unscaled matrix */
|
182
|
+
SmartPtr<const SymMatrixSpace> UnscaledMatrixSpace() const
|
183
|
+
{
|
184
|
+
return unscaled_matrix_space_;
|
185
|
+
}
|
186
|
+
|
187
|
+
private:
|
188
|
+
/**@name Default Compiler Generated Methods
|
189
|
+
* (Hidden to avoid implicit creation/calling).
|
190
|
+
* These methods are not implemented and
|
191
|
+
* we do not want the compiler to implement
|
192
|
+
* them for us, so we declare them private
|
193
|
+
* and do not define them. This ensures that
|
194
|
+
* they will not be implicitly created/called.
|
195
|
+
*/
|
196
|
+
///@{
|
197
|
+
/** Default constructor */
|
198
|
+
SymScaledMatrixSpace();
|
199
|
+
|
200
|
+
/** Copy Constructor */
|
201
|
+
SymScaledMatrixSpace(
|
202
|
+
const SymScaledMatrixSpace&
|
203
|
+
);
|
204
|
+
|
205
|
+
/** Default Assignment Operator */
|
206
|
+
SymScaledMatrixSpace& operator=(
|
207
|
+
const SymScaledMatrixSpace&
|
208
|
+
);
|
209
|
+
///@}
|
210
|
+
|
211
|
+
/** Row scaling vector */
|
212
|
+
SmartPtr<Vector> scaling_;
|
213
|
+
|
214
|
+
/** unscaled matrix space */
|
215
|
+
SmartPtr<const SymMatrixSpace> unscaled_matrix_space_;
|
216
|
+
};
|
217
|
+
|
218
|
+
inline void SymScaledMatrix::SetUnscaledMatrix(
|
219
|
+
const SmartPtr<const SymMatrix> unscaled_matrix
|
220
|
+
)
|
221
|
+
{
|
222
|
+
matrix_ = unscaled_matrix;
|
223
|
+
nonconst_matrix_ = NULL;
|
224
|
+
ObjectChanged();
|
225
|
+
}
|
226
|
+
|
227
|
+
inline void SymScaledMatrix::SetUnscaledMatrixNonConst(
|
228
|
+
const SmartPtr<SymMatrix>& unscaled_matrix
|
229
|
+
)
|
230
|
+
{
|
231
|
+
nonconst_matrix_ = unscaled_matrix;
|
232
|
+
matrix_ = GetRawPtr(unscaled_matrix);
|
233
|
+
ObjectChanged();
|
234
|
+
}
|
235
|
+
|
236
|
+
inline SmartPtr<const SymMatrix> SymScaledMatrix::GetUnscaledMatrix() const
|
237
|
+
{
|
238
|
+
return matrix_;
|
239
|
+
}
|
240
|
+
|
241
|
+
inline SmartPtr<SymMatrix> SymScaledMatrix::GetUnscaledMatrixNonConst()
|
242
|
+
{
|
243
|
+
DBG_ASSERT(IsValid(nonconst_matrix_));
|
244
|
+
ObjectChanged();
|
245
|
+
return nonconst_matrix_;
|
246
|
+
}
|
247
|
+
|
248
|
+
inline SmartPtr<const Vector> SymScaledMatrix::RowColScaling() const
|
249
|
+
{
|
250
|
+
return ConstPtr(owner_space_->RowColScaling());
|
251
|
+
}
|
252
|
+
|
253
|
+
} // namespace Ipopt
|
254
|
+
|
255
|
+
#endif
|