casadi 3.6.5__cp38-none-manylinux2014_x86_64.whl → 3.6.7__cp38-none-manylinux2014_x86_64.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 +739 -308
- 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 +3 -0
- 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 +52 -0
- casadi/include/casadi/core/casadi_types.hpp +3 -2
- casadi/include/casadi/core/code_generator.hpp +30 -1
- casadi/include/casadi/core/global_options.hpp +2 -0
- casadi/include/casadi/core/mx.hpp +18 -3
- casadi/include/casadi/core/optistack.hpp +23 -0
- casadi/include/casadi/core/runtime/casadi_nlp.hpp +19 -4
- 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/serializing_stream.hpp +2 -2
- casadi/include/casadi/core/sparsity.hpp +7 -0
- casadi/include/casadi/doc.i +1513 -1016
- casadi/include/casadi/doc_merged.i +965 -719
- casadi/include/casadi/mem.h +1 -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/fatrop/auxiliary/Common.hpp +34 -0
- casadi/include/fatrop/auxiliary/DynamicLib.hpp +34 -0
- casadi/include/fatrop/auxiliary/FatropOptions.hpp +68 -0
- casadi/include/fatrop/auxiliary/FatropVector.hpp +143 -0
- casadi/include/fatrop/auxiliary/LinearAlgebra.hpp +88 -0
- casadi/include/fatrop/auxiliary/VectorUtils.hpp +54 -0
- casadi/include/fatrop/blasfeo_wrapper/LinearAlgebraBlasfeo.hpp +493 -0
- casadi/include/fatrop/fatrop.hpp +39 -0
- casadi/include/fatrop/function_evaluation/CasadiCodegen.hpp +104 -0
- casadi/include/fatrop/function_evaluation/FunctionEvaluation.hpp +60 -0
- casadi/include/fatrop/json/json.h +946 -0
- casadi/include/fatrop/ocp/CasadiCApiUserdataWrap.hpp +87 -0
- casadi/include/fatrop/ocp/DuInfEvaluator.hpp +38 -0
- casadi/include/fatrop/ocp/FatropOCP.hpp +161 -0
- casadi/include/fatrop/ocp/FatropOCPBuilder.hpp +52 -0
- casadi/include/fatrop/ocp/FatropOCPResto.hpp +299 -0
- casadi/include/fatrop/ocp/OCP.hpp +82 -0
- casadi/include/fatrop/ocp/OCPAbstract.hpp +254 -0
- casadi/include/fatrop/ocp/OCPAdapter.hpp +197 -0
- casadi/include/fatrop/ocp/OCPCInterface.h +289 -0
- casadi/include/fatrop/ocp/OCPDims.hpp +60 -0
- casadi/include/fatrop/ocp/OCPInitializer.hpp +41 -0
- casadi/include/fatrop/ocp/OCPKKT.hpp +69 -0
- casadi/include/fatrop/ocp/OCPLSRiccati.hpp +198 -0
- casadi/include/fatrop/ocp/OCPLSScaler.hpp +66 -0
- casadi/include/fatrop/ocp/OCPLinearSolver.hpp +75 -0
- casadi/include/fatrop/ocp/OCPNoScaling.hpp +42 -0
- casadi/include/fatrop/ocp/OCPScalingMethod.hpp +42 -0
- casadi/include/fatrop/ocp/StageOCP.hpp +592 -0
- casadi/include/fatrop/ocp/StageOCPApplication.hpp +242 -0
- casadi/include/fatrop/ocp/StageOCPExpressions.hpp +182 -0
- casadi/include/fatrop/ocp/UStageEvalAbstract.hpp +168 -0
- casadi/include/fatrop/ocp/UStageOCPImpl.hpp +152 -0
- casadi/include/fatrop/quasi_newton/bfgs.hpp +159 -0
- casadi/include/fatrop/solver/AlgBuilder.hpp +76 -0
- casadi/include/fatrop/solver/AlgStrategy.hpp +33 -0
- casadi/include/fatrop/solver/FatropAlg.hpp +121 -0
- casadi/include/fatrop/solver/FatropData.hpp +188 -0
- casadi/include/fatrop/solver/FatropOptions.hpp +95 -0
- casadi/include/fatrop/solver/FatropPrinter.hpp +65 -0
- casadi/include/fatrop/solver/FatropStats.hpp +63 -0
- casadi/include/fatrop/solver/Filter.hpp +54 -0
- casadi/include/fatrop/solver/IterationData.hpp +56 -0
- casadi/include/fatrop/solver/LineSearch.hpp +86 -0
- casadi/include/fatrop/solver/NLPL1.hpp +263 -0
- casadi/include/fatrop/templates/NLPAlg.hpp +104 -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/highs_export.h +42 -0
- casadi/include/licenses/daqp-external/LICENSE +21 -0
- casadi/include/licenses/fatrop-external/LICENSE.txt +165 -0
- casadi/include/licenses/fatrop-external/external/blasfeo/LICENSE.txt +26 -0
- casadi/include/licenses/fatrop-external/external/pybind11/LICENSE +29 -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/include/sleqp/defs.h +2 -2
- casadi/lib64/libtinyxml2.a +0 -0
- casadi/libCbcSolver.so +0 -0
- casadi/libCbcSolver.so.3 +0 -0
- casadi/libCbcSolver.so.3.10.11 +0 -0
- casadi/libClpSolver.so +0 -0
- casadi/libClpSolver.so.1 +0 -0
- casadi/libClpSolver.so.1.14.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_cplex.so +0 -0
- casadi/libcasadi_conic_cplex.so.3.7 +0 -0
- casadi/libcasadi_conic_daqp.so +0 -0
- casadi/libcasadi_conic_daqp.so.3.7 +0 -0
- casadi/libcasadi_conic_fatrop.so +0 -0
- casadi/libcasadi_conic_fatrop.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_hpipm.so +0 -0
- casadi/libcasadi_conic_hpipm.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_fatrop.so +0 -0
- casadi/libcasadi_nlpsol_fatrop.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/libcoinmetis.la +1 -1
- casadi/libcoinmetis.so +0 -0
- casadi/libcoinmetis.so.2 +0 -0
- casadi/libcoinmetis.so.2.0.0 +0 -0
- casadi/libdaqp.so +0 -0
- casadi/libdaqpstat.a +0 -0
- casadi/libfatrop.so +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/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/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.5.dist-info → casadi-3.6.7.dist-info}/METADATA +2 -2
- {casadi-3.6.5.dist-info → casadi-3.6.7.dist-info}/RECORD +425 -255
- 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.5.dist-info → casadi-3.6.7.dist-info}/WHEEL +0 -0
@@ -2,7 +2,7 @@
|
|
2
2
|
/* */
|
3
3
|
/* This file is part of the HiGHS linear optimization suite */
|
4
4
|
/* */
|
5
|
-
/* Written and engineered 2008-
|
5
|
+
/* Written and engineered 2008-2024 by Julian Hall, Ivet Galabova, */
|
6
6
|
/* Leona Gottwald and Michael Feldmeier */
|
7
7
|
/* */
|
8
8
|
/* Available as open-source under the MIT License */
|
@@ -16,21 +16,47 @@
|
|
16
16
|
|
17
17
|
#include "util/HighsInt.h"
|
18
18
|
|
19
|
-
|
19
|
+
#ifdef __cplusplus
|
20
|
+
extern "C" {
|
21
|
+
#endif
|
22
|
+
|
23
|
+
/**
|
24
|
+
* Struct to handle callback output data
|
25
|
+
*
|
26
|
+
*/
|
27
|
+
typedef struct {
|
20
28
|
int log_type; // cast of HighsLogType
|
21
29
|
double running_time;
|
22
30
|
HighsInt simplex_iteration_count;
|
23
31
|
HighsInt ipm_iteration_count;
|
32
|
+
HighsInt pdlp_iteration_count;
|
24
33
|
double objective_function_value;
|
25
34
|
int64_t mip_node_count;
|
26
35
|
double mip_primal_bound;
|
27
36
|
double mip_dual_bound;
|
28
37
|
double mip_gap;
|
29
38
|
double* mip_solution;
|
30
|
-
|
39
|
+
HighsInt cutpool_num_col;
|
40
|
+
HighsInt cutpool_num_cut;
|
41
|
+
HighsInt cutpool_num_nz;
|
42
|
+
HighsInt* cutpool_start;
|
43
|
+
HighsInt* cutpool_index;
|
44
|
+
double* cutpool_value;
|
45
|
+
double* cutpool_lower;
|
46
|
+
double* cutpool_upper;
|
47
|
+
} HighsCallbackDataOut;
|
31
48
|
|
32
|
-
struct
|
49
|
+
typedef struct {
|
33
50
|
int user_interrupt;
|
34
|
-
};
|
51
|
+
} HighsCallbackDataIn;
|
52
|
+
|
53
|
+
// Additional callback handling
|
54
|
+
typedef void (*HighsCCallbackType)(int, const char*,
|
55
|
+
const HighsCallbackDataOut*,
|
56
|
+
HighsCallbackDataIn*, void*);
|
57
|
+
|
58
|
+
#ifdef __cplusplus
|
59
|
+
}
|
60
|
+
#endif
|
35
61
|
|
36
62
|
#endif /* LP_DATA_HIGHSCALLBACKSTRUCT_H_ */
|
@@ -2,7 +2,7 @@
|
|
2
2
|
/* */
|
3
3
|
/* This file is part of the HiGHS linear optimization suite */
|
4
4
|
/* */
|
5
|
-
/* Written and engineered 2008-
|
5
|
+
/* Written and engineered 2008-2024 by Julian Hall, Ivet Galabova, */
|
6
6
|
/* Leona Gottwald and Michael Feldmeier */
|
7
7
|
/* */
|
8
8
|
/* Available as open-source under the MIT License */
|
@@ -2,7 +2,7 @@
|
|
2
2
|
/* */
|
3
3
|
/* This file is part of the HiGHS linear optimization suite */
|
4
4
|
/* */
|
5
|
-
/* Written and engineered 2008-
|
5
|
+
/* Written and engineered 2008-2024 by Julian Hall, Ivet Galabova, */
|
6
6
|
/* Leona Gottwald and Michael Feldmeier */
|
7
7
|
/* */
|
8
8
|
/* Available as open-source under the MIT License */
|
@@ -138,6 +138,7 @@ struct HighsInfoStruct {
|
|
138
138
|
HighsInt simplex_iteration_count;
|
139
139
|
HighsInt ipm_iteration_count;
|
140
140
|
HighsInt crossover_iteration_count;
|
141
|
+
HighsInt pdlp_iteration_count;
|
141
142
|
HighsInt qp_iteration_count;
|
142
143
|
HighsInt primal_solution_status;
|
143
144
|
HighsInt dual_solution_status;
|
@@ -152,6 +153,8 @@ struct HighsInfoStruct {
|
|
152
153
|
HighsInt num_dual_infeasibilities;
|
153
154
|
double max_dual_infeasibility;
|
154
155
|
double sum_dual_infeasibilities;
|
156
|
+
double max_complementarity_violation;
|
157
|
+
double sum_complementarity_violations;
|
155
158
|
};
|
156
159
|
|
157
160
|
class HighsInfo : public HighsInfoStruct {
|
@@ -192,7 +195,7 @@ class HighsInfo : public HighsInfoStruct {
|
|
192
195
|
|
193
196
|
private:
|
194
197
|
void deleteRecords() {
|
195
|
-
for (
|
198
|
+
for (size_t i = 0; i < records.size(); i++) delete records[i];
|
196
199
|
}
|
197
200
|
|
198
201
|
void initRecords() {
|
@@ -216,6 +219,11 @@ class HighsInfo : public HighsInfoStruct {
|
|
216
219
|
&crossover_iteration_count, 0);
|
217
220
|
records.push_back(record_int);
|
218
221
|
|
222
|
+
record_int = new InfoRecordInt("pdlp_iteration_count",
|
223
|
+
"Iteration count for PDLP solver", advanced,
|
224
|
+
&pdlp_iteration_count, 0);
|
225
|
+
records.push_back(record_int);
|
226
|
+
|
219
227
|
record_int =
|
220
228
|
new InfoRecordInt("qp_iteration_count", "Iteration count for QP solver",
|
221
229
|
advanced, &qp_iteration_count, 0);
|
@@ -295,6 +303,16 @@ class HighsInfo : public HighsInfoStruct {
|
|
295
303
|
"sum_dual_infeasibilities", "Sum of dual infeasibilities", advanced,
|
296
304
|
&sum_dual_infeasibilities, 0);
|
297
305
|
records.push_back(record_double);
|
306
|
+
|
307
|
+
record_double = new InfoRecordDouble(
|
308
|
+
"max_complementarity_violation", "Max complementarity violation",
|
309
|
+
advanced, &max_complementarity_violation, 0);
|
310
|
+
records.push_back(record_double);
|
311
|
+
|
312
|
+
record_double = new InfoRecordDouble(
|
313
|
+
"sum_complementarity_violations", "Sum of complementarity violations",
|
314
|
+
advanced, &sum_complementarity_violations, 0);
|
315
|
+
records.push_back(record_double);
|
298
316
|
}
|
299
317
|
|
300
318
|
public:
|
@@ -2,7 +2,7 @@
|
|
2
2
|
/* */
|
3
3
|
/* This file is part of the HiGHS linear optimization suite */
|
4
4
|
/* */
|
5
|
-
/* Written and engineered 2008-
|
5
|
+
/* Written and engineered 2008-2024 by Julian Hall, Ivet Galabova, */
|
6
6
|
/* Leona Gottwald and Michael Feldmeier */
|
7
7
|
/* */
|
8
8
|
/* Available as open-source under the MIT License */
|
@@ -2,7 +2,7 @@
|
|
2
2
|
/* */
|
3
3
|
/* This file is part of the HiGHS linear optimization suite */
|
4
4
|
/* */
|
5
|
-
/* Written and engineered 2008-
|
5
|
+
/* Written and engineered 2008-2024 by Julian Hall, Ivet Galabova, */
|
6
6
|
/* Leona Gottwald and Michael Feldmeier */
|
7
7
|
/* */
|
8
8
|
/* Available as open-source under the MIT License */
|
@@ -50,6 +50,8 @@ class HighsLp {
|
|
50
50
|
HighsNameHash col_hash_;
|
51
51
|
HighsNameHash row_hash_;
|
52
52
|
|
53
|
+
HighsInt user_bound_scale_;
|
54
|
+
HighsInt user_cost_scale_;
|
53
55
|
HighsScale scale_;
|
54
56
|
bool is_scaled_;
|
55
57
|
bool is_moved_;
|
@@ -63,6 +65,8 @@ class HighsLp {
|
|
63
65
|
bool isMip() const;
|
64
66
|
bool hasSemiVariables() const;
|
65
67
|
bool hasInfiniteCost(const double infinite_cost) const;
|
68
|
+
bool hasMods() const;
|
69
|
+
bool needsMods(const double infinite_cost) const;
|
66
70
|
double objectiveValue(const std::vector<double>& solution) const;
|
67
71
|
HighsCDouble objectiveCDoubleValue(const std::vector<double>& solution) const;
|
68
72
|
void setMatrixDimensions();
|
@@ -75,9 +79,21 @@ class HighsLp {
|
|
75
79
|
void applyScale();
|
76
80
|
void unapplyScale();
|
77
81
|
void moveBackLpAndUnapplyScaling(HighsLp& lp);
|
82
|
+
bool userBoundScaleOk(const HighsInt user_bound_scale,
|
83
|
+
const double infinite_bound) const;
|
84
|
+
void userBoundScale(const HighsInt user_bound_scale);
|
85
|
+
bool userCostScaleOk(const HighsInt user_cost_scale,
|
86
|
+
const double infinite_cost) const;
|
87
|
+
void userCostScale(const HighsInt user_cost_scale);
|
78
88
|
void exactResize();
|
79
89
|
void addColNames(const std::string name, const HighsInt num_new_col = 1);
|
80
90
|
void addRowNames(const std::string name, const HighsInt num_new_row = 1);
|
91
|
+
void deleteColsFromVectors(HighsInt& new_num_col,
|
92
|
+
const HighsIndexCollection& index_collection);
|
93
|
+
void deleteRowsFromVectors(HighsInt& new_num_row,
|
94
|
+
const HighsIndexCollection& index_collection);
|
95
|
+
void deleteCols(const HighsIndexCollection& index_collection);
|
96
|
+
void deleteRows(const HighsIndexCollection& index_collection);
|
81
97
|
void unapplyMods();
|
82
98
|
void clear();
|
83
99
|
};
|
@@ -2,7 +2,7 @@
|
|
2
2
|
/* */
|
3
3
|
/* This file is part of the HiGHS linear optimization suite */
|
4
4
|
/* */
|
5
|
-
/* Written and engineered 2008-
|
5
|
+
/* Written and engineered 2008-2024 by Julian Hall, Ivet Galabova, */
|
6
6
|
/* Leona Gottwald and Michael Feldmeier */
|
7
7
|
/* */
|
8
8
|
/* Available as open-source under the MIT License */
|
@@ -2,7 +2,7 @@
|
|
2
2
|
/* */
|
3
3
|
/* This file is part of the HiGHS linear optimization suite */
|
4
4
|
/* */
|
5
|
-
/* Written and engineered 2008-
|
5
|
+
/* Written and engineered 2008-2024 by Julian Hall, Ivet Galabova, */
|
6
6
|
/* Leona Gottwald and Michael Feldmeier */
|
7
7
|
/* */
|
8
8
|
/* Available as open-source under the MIT License */
|
@@ -57,8 +57,17 @@ HighsStatus assessBounds(const HighsOptions& options, const char* type,
|
|
57
57
|
|
58
58
|
HighsStatus cleanBounds(const HighsOptions& options, HighsLp& lp);
|
59
59
|
|
60
|
-
|
61
|
-
|
60
|
+
bool boundScaleOk(const std::vector<double>& lower,
|
61
|
+
const std::vector<double>& upper, const HighsInt bound_scale,
|
62
|
+
const double infinite_bound);
|
63
|
+
|
64
|
+
bool costScaleOk(const std::vector<double>& cost, const HighsInt cost_scale,
|
65
|
+
const double infinite_cost);
|
66
|
+
|
67
|
+
HighsStatus assessSemiVariables(HighsLp& lp, const HighsOptions& options,
|
68
|
+
bool& made_semi_variable_mods);
|
69
|
+
void relaxSemiVariables(HighsLp& lp, bool& made_semi_variable_mods);
|
70
|
+
|
62
71
|
bool activeModifiedUpperBounds(const HighsOptions& options, const HighsLp& lp,
|
63
72
|
const std::vector<double> col_value);
|
64
73
|
|
@@ -76,6 +85,8 @@ HighsStatus applyScalingToLpCol(HighsLp& lp, const HighsInt col,
|
|
76
85
|
HighsStatus applyScalingToLpRow(HighsLp& lp, const HighsInt row,
|
77
86
|
const double rowScale);
|
78
87
|
|
88
|
+
void unscaleSolution(HighsSolution& solution, const HighsScale& scale);
|
89
|
+
|
79
90
|
void appendColsToLpVectors(HighsLp& lp, const HighsInt num_new_col,
|
80
91
|
const vector<double>& colCost,
|
81
92
|
const vector<double>& colLower,
|
@@ -85,16 +96,6 @@ void appendRowsToLpVectors(HighsLp& lp, const HighsInt num_new_row,
|
|
85
96
|
const vector<double>& rowLower,
|
86
97
|
const vector<double>& rowUpper);
|
87
98
|
|
88
|
-
void deleteLpCols(HighsLp& lp, const HighsIndexCollection& index_collection);
|
89
|
-
|
90
|
-
void deleteColsFromLpVectors(HighsLp& lp, HighsInt& new_num_col,
|
91
|
-
const HighsIndexCollection& index_collection);
|
92
|
-
|
93
|
-
void deleteLpRows(HighsLp& lp, const HighsIndexCollection& index_collection);
|
94
|
-
|
95
|
-
void deleteRowsFromLpVectors(HighsLp& lp, HighsInt& new_num_row,
|
96
|
-
const HighsIndexCollection& index_collection);
|
97
|
-
|
98
99
|
void deleteScale(vector<double>& scale,
|
99
100
|
const HighsIndexCollection& index_collection);
|
100
101
|
|
@@ -229,15 +230,14 @@ HighsStatus assessLpPrimalSolution(const HighsOptions& options,
|
|
229
230
|
const HighsSolution& solution, bool& valid,
|
230
231
|
bool& integral, bool& feasible);
|
231
232
|
|
232
|
-
HighsStatus
|
233
|
-
|
234
|
-
|
235
|
-
|
233
|
+
HighsStatus calculateRowValuesQuad(const HighsLp& lp,
|
234
|
+
const std::vector<double>& col_value,
|
235
|
+
std::vector<double>& row_value,
|
236
|
+
const HighsInt report_row = -1);
|
236
237
|
HighsStatus calculateRowValuesQuad(const HighsLp& lp, HighsSolution& solution,
|
237
238
|
const HighsInt report_row = -1);
|
238
|
-
HighsStatus calculateColDuals(const HighsLp& lp, HighsSolution& solution);
|
239
239
|
|
240
|
-
|
240
|
+
HighsStatus calculateColDualsQuad(const HighsLp& lp, HighsSolution& solution);
|
241
241
|
|
242
242
|
bool isColDataNull(const HighsLogOptions& log_options,
|
243
243
|
const double* usr_col_cost, const double* usr_col_lower,
|
@@ -2,7 +2,7 @@
|
|
2
2
|
/* */
|
3
3
|
/* This file is part of the HiGHS linear optimization suite */
|
4
4
|
/* */
|
5
|
-
/* Written and engineered 2008-
|
5
|
+
/* Written and engineered 2008-2024 by Julian Hall, Ivet Galabova, */
|
6
6
|
/* Leona Gottwald and Michael Feldmeier */
|
7
7
|
/* */
|
8
8
|
/* Available as open-source under the MIT License */
|
@@ -2,7 +2,7 @@
|
|
2
2
|
/* */
|
3
3
|
/* This file is part of the HiGHS linear optimization suite */
|
4
4
|
/* */
|
5
|
-
/* Written and engineered 2008-
|
5
|
+
/* Written and engineered 2008-2024 by Julian Hall, Ivet Galabova, */
|
6
6
|
/* Leona Gottwald and Michael Feldmeier */
|
7
7
|
/* */
|
8
8
|
/* Available as open-source under the MIT License */
|
@@ -257,6 +257,7 @@ void reportOption(FILE* file, const OptionRecordString& option,
|
|
257
257
|
|
258
258
|
const string kSimplexString = "simplex";
|
259
259
|
const string kIpmString = "ipm";
|
260
|
+
const string kPdlpString = "pdlp";
|
260
261
|
|
261
262
|
const HighsInt kKeepNRowsDeleteRows = -1;
|
262
263
|
const HighsInt kKeepNRowsDeleteEntries = 0;
|
@@ -303,6 +304,8 @@ struct HighsOptionsStruct {
|
|
303
304
|
double objective_bound;
|
304
305
|
double objective_target;
|
305
306
|
HighsInt threads;
|
307
|
+
HighsInt user_bound_scale;
|
308
|
+
HighsInt user_cost_scale;
|
306
309
|
HighsInt highs_debug_level;
|
307
310
|
HighsInt highs_analysis_level;
|
308
311
|
HighsInt simplex_strategy;
|
@@ -328,8 +331,20 @@ struct HighsOptionsStruct {
|
|
328
331
|
// Options for IPM solver
|
329
332
|
HighsInt ipm_iteration_limit;
|
330
333
|
|
334
|
+
// Options for PDLP solver
|
335
|
+
bool pdlp_native_termination;
|
336
|
+
bool pdlp_scaling;
|
337
|
+
HighsInt pdlp_iteration_limit;
|
338
|
+
HighsInt pdlp_e_restart_method;
|
339
|
+
double pdlp_d_gap_tol;
|
340
|
+
|
341
|
+
// Options for QP solver
|
342
|
+
HighsInt qp_iteration_limit;
|
343
|
+
HighsInt qp_nullspace_limit;
|
344
|
+
|
331
345
|
// Advanced options
|
332
346
|
HighsInt log_dev_level;
|
347
|
+
bool log_githash;
|
333
348
|
bool solve_relaxation;
|
334
349
|
bool allow_unbounded_or_infeasible;
|
335
350
|
bool use_implied_bounds_from_presolve;
|
@@ -347,6 +362,7 @@ struct HighsOptionsStruct {
|
|
347
362
|
HighsInt simplex_price_strategy;
|
348
363
|
HighsInt simplex_unscaled_solution_strategy;
|
349
364
|
HighsInt presolve_reduction_limit;
|
365
|
+
HighsInt restart_presolve_reduction_limit;
|
350
366
|
HighsInt presolve_substitution_maxfillin;
|
351
367
|
HighsInt presolve_rule_off;
|
352
368
|
bool presolve_rule_logging;
|
@@ -366,6 +382,9 @@ struct HighsOptionsStruct {
|
|
366
382
|
bool less_infeasible_DSE_check;
|
367
383
|
bool less_infeasible_DSE_choose_row;
|
368
384
|
bool use_original_HFactor_logic;
|
385
|
+
bool run_centring;
|
386
|
+
HighsInt max_centring_steps;
|
387
|
+
double centring_ratio_tolerance;
|
369
388
|
|
370
389
|
// Options for iCrash
|
371
390
|
bool icrash;
|
@@ -379,6 +398,7 @@ struct HighsOptionsStruct {
|
|
379
398
|
|
380
399
|
// Options for MIP solver
|
381
400
|
bool mip_detect_symmetry;
|
401
|
+
bool mip_allow_restart;
|
382
402
|
HighsInt mip_max_nodes;
|
383
403
|
HighsInt mip_max_stall_nodes;
|
384
404
|
HighsInt mip_max_leaves;
|
@@ -404,6 +424,128 @@ struct HighsOptionsStruct {
|
|
404
424
|
// Logging callback identifiers
|
405
425
|
HighsLogOptions log_options;
|
406
426
|
virtual ~HighsOptionsStruct() {}
|
427
|
+
|
428
|
+
HighsOptionsStruct()
|
429
|
+
: presolve(""),
|
430
|
+
solver(""),
|
431
|
+
parallel(""),
|
432
|
+
run_crossover(""),
|
433
|
+
time_limit(0.0),
|
434
|
+
solution_file(""),
|
435
|
+
write_model_file(""),
|
436
|
+
random_seed(0),
|
437
|
+
ranging(""),
|
438
|
+
infinite_cost(0.0),
|
439
|
+
infinite_bound(0.0),
|
440
|
+
small_matrix_value(0.0),
|
441
|
+
large_matrix_value(0.0),
|
442
|
+
primal_feasibility_tolerance(0.0),
|
443
|
+
dual_feasibility_tolerance(0.0),
|
444
|
+
ipm_optimality_tolerance(0.0),
|
445
|
+
objective_bound(0.0),
|
446
|
+
objective_target(0.0),
|
447
|
+
threads(0),
|
448
|
+
user_bound_scale(0),
|
449
|
+
user_cost_scale(0),
|
450
|
+
highs_debug_level(0),
|
451
|
+
highs_analysis_level(0),
|
452
|
+
simplex_strategy(0),
|
453
|
+
simplex_scale_strategy(0),
|
454
|
+
simplex_crash_strategy(0),
|
455
|
+
simplex_dual_edge_weight_strategy(0),
|
456
|
+
simplex_primal_edge_weight_strategy(0),
|
457
|
+
simplex_iteration_limit(0),
|
458
|
+
simplex_update_limit(0),
|
459
|
+
simplex_min_concurrency(0),
|
460
|
+
simplex_max_concurrency(0),
|
461
|
+
log_file(""),
|
462
|
+
write_model_to_file(false),
|
463
|
+
write_solution_to_file(false),
|
464
|
+
write_solution_style(0),
|
465
|
+
glpsol_cost_row_location(0),
|
466
|
+
output_flag(false),
|
467
|
+
log_to_console(false),
|
468
|
+
ipm_iteration_limit(0),
|
469
|
+
pdlp_native_termination(false),
|
470
|
+
pdlp_scaling(false),
|
471
|
+
pdlp_iteration_limit(0),
|
472
|
+
pdlp_e_restart_method(0),
|
473
|
+
pdlp_d_gap_tol(0.0),
|
474
|
+
qp_iteration_limit(0),
|
475
|
+
qp_nullspace_limit(0),
|
476
|
+
log_dev_level(0),
|
477
|
+
log_githash(false),
|
478
|
+
solve_relaxation(false),
|
479
|
+
allow_unbounded_or_infeasible(false),
|
480
|
+
use_implied_bounds_from_presolve(false),
|
481
|
+
lp_presolve_requires_basis_postsolve(false),
|
482
|
+
mps_parser_type_free(false),
|
483
|
+
keep_n_rows(0),
|
484
|
+
cost_scale_factor(0),
|
485
|
+
allowed_matrix_scale_factor(0),
|
486
|
+
allowed_cost_scale_factor(0),
|
487
|
+
ipx_dualize_strategy(0),
|
488
|
+
simplex_dualize_strategy(0),
|
489
|
+
simplex_permute_strategy(0),
|
490
|
+
max_dual_simplex_cleanup_level(0),
|
491
|
+
max_dual_simplex_phase1_cleanup_level(0),
|
492
|
+
simplex_price_strategy(0),
|
493
|
+
simplex_unscaled_solution_strategy(0),
|
494
|
+
presolve_reduction_limit(0),
|
495
|
+
restart_presolve_reduction_limit(0),
|
496
|
+
presolve_substitution_maxfillin(0),
|
497
|
+
presolve_rule_off(0),
|
498
|
+
presolve_rule_logging(false),
|
499
|
+
simplex_initial_condition_check(false),
|
500
|
+
no_unnecessary_rebuild_refactor(false),
|
501
|
+
simplex_initial_condition_tolerance(0.0),
|
502
|
+
rebuild_refactor_solution_error_tolerance(0.0),
|
503
|
+
dual_steepest_edge_weight_error_tolerance(0.0),
|
504
|
+
dual_steepest_edge_weight_log_error_threshold(0.0),
|
505
|
+
dual_simplex_cost_perturbation_multiplier(0.0),
|
506
|
+
primal_simplex_bound_perturbation_multiplier(0.0),
|
507
|
+
dual_simplex_pivot_growth_tolerance(0.0),
|
508
|
+
presolve_pivot_threshold(0.0),
|
509
|
+
factor_pivot_threshold(0.0),
|
510
|
+
factor_pivot_tolerance(0.0),
|
511
|
+
start_crossover_tolerance(0.0),
|
512
|
+
less_infeasible_DSE_check(false),
|
513
|
+
less_infeasible_DSE_choose_row(false),
|
514
|
+
use_original_HFactor_logic(false),
|
515
|
+
run_centring(false),
|
516
|
+
max_centring_steps(0),
|
517
|
+
centring_ratio_tolerance(0.0),
|
518
|
+
icrash(false),
|
519
|
+
icrash_dualize(false),
|
520
|
+
icrash_strategy(""),
|
521
|
+
icrash_starting_weight(0.0),
|
522
|
+
icrash_iterations(0),
|
523
|
+
icrash_approx_iter(0),
|
524
|
+
icrash_exact(false),
|
525
|
+
icrash_breakpoints(false),
|
526
|
+
mip_detect_symmetry(false),
|
527
|
+
mip_allow_restart(false),
|
528
|
+
mip_max_nodes(0),
|
529
|
+
mip_max_stall_nodes(0),
|
530
|
+
mip_max_leaves(0),
|
531
|
+
mip_max_improving_sols(0),
|
532
|
+
mip_lp_age_limit(0),
|
533
|
+
mip_pool_age_limit(0),
|
534
|
+
mip_pool_soft_limit(0),
|
535
|
+
mip_pscost_minreliable(0),
|
536
|
+
mip_min_cliquetable_entries_for_parallelism(0),
|
537
|
+
mip_report_level(0),
|
538
|
+
mip_feasibility_tolerance(0.0),
|
539
|
+
mip_rel_gap(0.0),
|
540
|
+
mip_abs_gap(0.0),
|
541
|
+
mip_heuristic_effort(0.0),
|
542
|
+
mip_min_logging_interval(0.0),
|
543
|
+
#ifdef HIGHS_DEBUGSOL
|
544
|
+
mip_debug_solution_file(""),
|
545
|
+
#endif
|
546
|
+
mip_improving_solution_save(false),
|
547
|
+
mip_improving_solution_report_sparse(false),
|
548
|
+
mip_improving_solution_file(""){};
|
407
549
|
};
|
408
550
|
|
409
551
|
// For now, but later change so HiGHS properties are string based so that new
|
@@ -471,8 +613,9 @@ class HighsOptions : public HighsOptionsStruct {
|
|
471
613
|
|
472
614
|
record_string = new OptionRecordString(
|
473
615
|
kSolverString,
|
474
|
-
"Solver option: \"simplex\", \"choose\" or \"
|
475
|
-
"\"simplex\"/\"ipm\" is chosen then, for a MIP (QP) the
|
616
|
+
"Solver option: \"simplex\", \"choose\", \"ipm\" or \"pdlp\". If "
|
617
|
+
"\"simplex\"/\"ipm\"/\"pdlp\" is chosen then, for a MIP (QP) the "
|
618
|
+
"integrality "
|
476
619
|
"constraint (quadratic term) will be ignored",
|
477
620
|
advanced, &solver, kHighsChooseString);
|
478
621
|
records.push_back(record_string);
|
@@ -545,13 +688,14 @@ class HighsOptions : public HighsOptionsStruct {
|
|
545
688
|
records.push_back(record_double);
|
546
689
|
|
547
690
|
record_double = new OptionRecordDouble(
|
548
|
-
"objective_bound",
|
549
|
-
|
691
|
+
"objective_bound",
|
692
|
+
"Objective bound for termination of the dual simplex solver", advanced,
|
693
|
+
&objective_bound, -kHighsInf, kHighsInf, kHighsInf);
|
550
694
|
records.push_back(record_double);
|
551
695
|
|
552
696
|
record_double = new OptionRecordDouble(
|
553
|
-
"objective_target",
|
554
|
-
advanced,
|
697
|
+
"objective_target",
|
698
|
+
"Objective target for termination of the MIP solver", advanced,
|
555
699
|
//"primal simplex and "
|
556
700
|
&objective_target, -kHighsInf, -kHighsInf, kHighsInf);
|
557
701
|
records.push_back(record_double);
|
@@ -566,6 +710,16 @@ class HighsOptions : public HighsOptionsStruct {
|
|
566
710
|
&threads, 0, 0, kHighsIInf);
|
567
711
|
records.push_back(record_int);
|
568
712
|
|
713
|
+
record_int = new OptionRecordInt(
|
714
|
+
"user_bound_scale", "Exponent of power-of-two bound scaling for model",
|
715
|
+
advanced, &user_bound_scale, -kHighsIInf, 0, kHighsIInf);
|
716
|
+
records.push_back(record_int);
|
717
|
+
|
718
|
+
record_int = new OptionRecordInt(
|
719
|
+
"user_cost_scale", "Exponent of power-of-two cost scaling for model",
|
720
|
+
advanced, &user_cost_scale, -kHighsIInf, 0, kHighsIInf);
|
721
|
+
records.push_back(record_int);
|
722
|
+
|
569
723
|
record_int = new OptionRecordInt("highs_debug_level",
|
570
724
|
"Debugging level in HiGHS", now_advanced,
|
571
725
|
&highs_debug_level, kHighsDebugLevelMin,
|
@@ -747,6 +901,11 @@ class HighsOptions : public HighsOptionsStruct {
|
|
747
901
|
advanced, &mip_detect_symmetry, true);
|
748
902
|
records.push_back(record_bool);
|
749
903
|
|
904
|
+
record_bool = new OptionRecordBool("mip_allow_restart",
|
905
|
+
"Whether MIP restart is permitted",
|
906
|
+
advanced, &mip_allow_restart, true);
|
907
|
+
records.push_back(record_bool);
|
908
|
+
|
750
909
|
record_int = new OptionRecordInt("mip_max_nodes",
|
751
910
|
"MIP solver max number of nodes", advanced,
|
752
911
|
&mip_max_nodes, 0, kHighsIInf, kHighsIInf);
|
@@ -780,7 +939,7 @@ class HighsOptions : public HighsOptionsStruct {
|
|
780
939
|
record_string = new OptionRecordString(
|
781
940
|
"mip_improving_solution_file",
|
782
941
|
"File for reporting improving MIP solutions: not reported for an empty "
|
783
|
-
"string
|
942
|
+
"string \\\"\\\"",
|
784
943
|
advanced, &mip_improving_solution_file, kHighsFilenameDefault);
|
785
944
|
records.push_back(record_string);
|
786
945
|
|
@@ -872,8 +1031,46 @@ class HighsOptions : public HighsOptionsStruct {
|
|
872
1031
|
&ipm_iteration_limit, 0, kHighsIInf, kHighsIInf);
|
873
1032
|
records.push_back(record_int);
|
874
1033
|
|
1034
|
+
record_bool = new OptionRecordBool(
|
1035
|
+
"pdlp_native_termination",
|
1036
|
+
"Use native termination for PDLP solver: Default = false", advanced,
|
1037
|
+
&pdlp_native_termination, false);
|
1038
|
+
records.push_back(record_bool);
|
1039
|
+
|
1040
|
+
record_bool = new OptionRecordBool(
|
1041
|
+
"pdlp_scaling", "Scaling option for PDLP solver: Default = true",
|
1042
|
+
advanced, &pdlp_scaling, true);
|
1043
|
+
records.push_back(record_bool);
|
1044
|
+
|
1045
|
+
record_int = new OptionRecordInt(
|
1046
|
+
"pdlp_iteration_limit", "Iteration limit for PDLP solver", advanced,
|
1047
|
+
&pdlp_iteration_limit, 0, kHighsIInf, kHighsIInf);
|
1048
|
+
records.push_back(record_int);
|
1049
|
+
|
1050
|
+
record_int = new OptionRecordInt("pdlp_e_restart_method",
|
1051
|
+
"Restart mode for PDLP solver: 0 => none; "
|
1052
|
+
"1 => GPU (default); 2 => CPU ",
|
1053
|
+
advanced, &pdlp_e_restart_method, 0, 1, 2);
|
1054
|
+
records.push_back(record_int);
|
1055
|
+
|
1056
|
+
record_double = new OptionRecordDouble(
|
1057
|
+
"pdlp_d_gap_tol",
|
1058
|
+
"Duality gap tolerance for PDLP solver: Default = 1e-4", advanced,
|
1059
|
+
&pdlp_d_gap_tol, 1e-12, 1e-4, kHighsInf);
|
1060
|
+
records.push_back(record_double);
|
1061
|
+
|
1062
|
+
record_int = new OptionRecordInt(
|
1063
|
+
"qp_iteration_limit", "Iteration limit for QP solver", advanced,
|
1064
|
+
&qp_iteration_limit, 0, kHighsIInf, kHighsIInf);
|
1065
|
+
records.push_back(record_int);
|
1066
|
+
|
1067
|
+
record_int = new OptionRecordInt("qp_nullspace_limit",
|
1068
|
+
"Nullspace limit for QP solver", advanced,
|
1069
|
+
&qp_nullspace_limit, 0, 4000, kHighsIInf);
|
1070
|
+
records.push_back(record_int);
|
1071
|
+
|
875
1072
|
// Fix the number of user settable options
|
876
|
-
num_user_settable_options_ = records.size();
|
1073
|
+
num_user_settable_options_ = static_cast<HighsInt>(records.size());
|
877
1074
|
|
878
1075
|
// Advanced options
|
879
1076
|
advanced = true;
|
@@ -885,6 +1082,10 @@ class HighsOptions : public HighsOptionsStruct {
|
|
885
1082
|
kHighsLogDevLevelMax);
|
886
1083
|
records.push_back(record_int);
|
887
1084
|
|
1085
|
+
record_bool = new OptionRecordBool("log_githash", "Log the githash",
|
1086
|
+
advanced, &log_githash, true);
|
1087
|
+
records.push_back(record_bool);
|
1088
|
+
|
888
1089
|
record_bool = new OptionRecordBool(
|
889
1090
|
"solve_relaxation", "Solve the relaxation of discrete model components",
|
890
1091
|
advanced, &solve_relaxation, false);
|
@@ -1057,6 +1258,13 @@ class HighsOptions : public HighsOptionsStruct {
|
|
1057
1258
|
&presolve_reduction_limit, -1, -1, kHighsIInf);
|
1058
1259
|
records.push_back(record_int);
|
1059
1260
|
|
1261
|
+
record_int = new OptionRecordInt(
|
1262
|
+
"restart_presolve_reduction_limit",
|
1263
|
+
"Limit on number of further presolve reductions on restart in MIP "
|
1264
|
+
"solver -1 => no limit, otherwise, must be positive",
|
1265
|
+
advanced, &restart_presolve_reduction_limit, -1, -1, kHighsIInf);
|
1266
|
+
records.push_back(record_int);
|
1267
|
+
|
1060
1268
|
record_int = new OptionRecordInt(
|
1061
1269
|
"presolve_rule_off", "Bit mask of presolve rules that are not allowed",
|
1062
1270
|
advanced, &presolve_rule_off, 0, 0, kHighsIInf);
|
@@ -1108,6 +1316,25 @@ class HighsOptions : public HighsOptionsStruct {
|
|
1108
1316
|
&less_infeasible_DSE_choose_row, true);
|
1109
1317
|
records.push_back(record_bool);
|
1110
1318
|
|
1319
|
+
record_bool =
|
1320
|
+
new OptionRecordBool("run_centring", "Perform centring steps or not",
|
1321
|
+
advanced, &run_centring, false);
|
1322
|
+
records.push_back(record_bool);
|
1323
|
+
|
1324
|
+
record_int =
|
1325
|
+
new OptionRecordInt("max_centring_steps",
|
1326
|
+
"Maximum number of steps to use (default = 5) "
|
1327
|
+
"when computing the analytic centre",
|
1328
|
+
advanced, &max_centring_steps, 0, 5, kHighsIInf);
|
1329
|
+
records.push_back(record_int);
|
1330
|
+
|
1331
|
+
record_double = new OptionRecordDouble(
|
1332
|
+
"centring_ratio_tolerance",
|
1333
|
+
"Centring stops when the ratio max(x_j*s_j) / min(x_j*s_j) is below "
|
1334
|
+
"this tolerance (default = 100)",
|
1335
|
+
advanced, ¢ring_ratio_tolerance, 0, 100, kHighsInf);
|
1336
|
+
records.push_back(record_double);
|
1337
|
+
|
1111
1338
|
// Set up the log_options aliases
|
1112
1339
|
log_options.clear();
|
1113
1340
|
log_options.log_stream =
|
@@ -1118,7 +1345,7 @@ class HighsOptions : public HighsOptionsStruct {
|
|
1118
1345
|
}
|
1119
1346
|
|
1120
1347
|
void deleteRecords() {
|
1121
|
-
for (
|
1348
|
+
for (size_t i = 0; i < records.size(); i++) delete records[i];
|
1122
1349
|
}
|
1123
1350
|
|
1124
1351
|
public:
|
@@ -2,7 +2,7 @@
|
|
2
2
|
/* */
|
3
3
|
/* This file is part of the HiGHS linear optimization suite */
|
4
4
|
/* */
|
5
|
-
/* Written and engineered 2008-
|
5
|
+
/* Written and engineered 2008-2024 by Julian Hall, Ivet Galabova, */
|
6
6
|
/* Leona Gottwald and Michael Feldmeier */
|
7
7
|
/* */
|
8
8
|
/* Available as open-source under the MIT License */
|