casadi 3.6.7__cp312-none-manylinux2014_x86_64.whl → 3.7.1__cp312-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-cli +0 -0
- casadi/casadi.py +6531 -3039
- casadi/cbc +0 -0
- casadi/clp +0 -0
- casadi/cmake/alpaqa/alpaqaTargets-release.cmake +4 -4
- casadi/cmake/casadi-config-version.cmake +1 -1
- casadi/cmake/casadi-config.cmake +1 -1
- casadi/cmake/casadi-targets-release.cmake +5 -5
- casadi/cmake/casadi-targets.cmake +5 -5
- casadi/cmake/highs/highs-targets-release.cmake +2 -2
- casadi/cmake/highs/highs-targets.cmake +1 -1
- casadi/cmake/libzip/libzip-config-version.cmake +48 -0
- casadi/cmake/libzip/libzip-config.cmake +69 -0
- casadi/cmake/libzip/libzip-targets-release.cmake +19 -0
- casadi/cmake/{trlib/trlib-config.cmake → libzip/libzip-targets.cmake} +7 -7
- casadi/cmake/libzip/modules/FindMbedTLS.cmake +141 -0
- casadi/cmake/libzip/modules/FindNettle.cmake +141 -0
- casadi/cmake/libzip/modules/Findzstd.cmake +186 -0
- casadi/cmake/sleqp/sleqp-targets-release.cmake +2 -2
- casadi/highs +0 -0
- casadi/include/casadi/casadi.i +276 -47
- casadi/include/casadi/config.h +11 -11
- casadi/include/casadi/core/archiver.hpp +58 -0
- casadi/include/casadi/core/blazing_spline.hpp +47 -0
- casadi/include/casadi/core/calculus.hpp +57 -2
- casadi/include/casadi/core/callback.hpp +9 -0
- casadi/include/casadi/core/casadi_common.hpp +37 -0
- casadi/include/casadi/core/casadi_meta.hpp +15 -0
- casadi/include/casadi/core/casadi_misc.hpp +21 -0
- casadi/include/casadi/core/code_generator.hpp +115 -19
- casadi/include/casadi/core/core.hpp +5 -0
- casadi/include/casadi/core/dae_builder.hpp +303 -141
- casadi/include/casadi/core/dm.hpp +3 -0
- casadi/include/casadi/core/filesystem.hpp +58 -0
- casadi/include/casadi/core/fmu.hpp +62 -16
- casadi/include/casadi/core/function.hpp +24 -0
- casadi/include/casadi/core/generic_matrix.hpp +214 -7
- casadi/include/casadi/core/generic_shared.hpp +395 -0
- casadi/include/casadi/core/generic_shared_impl.hpp +218 -0
- casadi/include/casadi/core/generic_shared_internal.hpp +215 -0
- casadi/include/casadi/core/generic_type.hpp +3 -0
- casadi/include/casadi/core/global_options.hpp +10 -0
- casadi/include/casadi/core/integrator.hpp +41 -7
- casadi/include/casadi/core/matrix_decl.hpp +71 -0
- casadi/include/casadi/core/mx.hpp +63 -2
- casadi/include/casadi/core/nlp_builder.hpp +2 -1
- casadi/include/casadi/core/options.hpp +6 -3
- casadi/include/casadi/core/optistack.hpp +43 -9
- casadi/include/casadi/core/printable.hpp +8 -0
- casadi/include/casadi/core/resource.hpp +107 -0
- casadi/include/casadi/core/runtime/casadi_blazing_1d_boor_eval.hpp +112 -0
- casadi/include/casadi/core/runtime/casadi_blazing_2d_boor_eval.hpp +311 -0
- casadi/include/casadi/core/runtime/casadi_blazing_3d_boor_eval.hpp +645 -0
- casadi/include/casadi/core/runtime/casadi_blazing_de_boor.hpp +101 -0
- casadi/include/casadi/core/runtime/casadi_finite_diff.hpp +1 -1
- casadi/include/casadi/core/runtime/casadi_nlp.hpp +8 -2
- casadi/include/casadi/core/runtime/casadi_print_canonical.hpp +55 -0
- casadi/include/casadi/core/runtime/casadi_print_scalar.hpp +25 -0
- casadi/include/casadi/core/runtime/casadi_print_vector.hpp +32 -0
- casadi/include/casadi/core/runtime/casadi_printme.hpp +26 -0
- casadi/include/casadi/core/serializer.hpp +13 -5
- casadi/include/casadi/core/serializing_stream.hpp +9 -2
- casadi/include/casadi/core/shared_object.hpp +73 -161
- casadi/include/casadi/core/sparsity.hpp +13 -1
- casadi/include/casadi/core/sparsity_interface.hpp +19 -1
- casadi/include/casadi/core/sx.hpp +41 -0
- casadi/include/casadi/core/sx_elem.hpp +25 -0
- casadi/include/casadi/core/xml_node.hpp +5 -0
- casadi/include/casadi/doc.i +10026 -6513
- casadi/include/casadi/doc_merged.i +6744 -4449
- casadi/include/casadi/valgrind-casadi.supp +138 -0
- casadi/include/casadi/valgrind-python.supp +2470 -0
- casadi/include/fatrop/blasfeo_wrapper/LinearAlgebraBlasfeo.hpp +4 -1
- casadi/include/ghc/filesystem.hpp +6083 -0
- casadi/include/ghc/fs_fwd.hpp +38 -0
- casadi/include/ghc/fs_impl.hpp +35 -0
- casadi/include/ghc/fs_std.hpp +60 -0
- casadi/include/ghc/fs_std_fwd.hpp +63 -0
- casadi/include/ghc/fs_std_impl.hpp +46 -0
- casadi/include/highs/HConfig.h +6 -4
- casadi/include/highs/Highs.h +260 -86
- casadi/include/highs/filereaderlp/reader.hpp +10 -10
- casadi/include/highs/interfaces/highs_c_api.h +195 -22
- casadi/include/highs/io/Filereader.h +4 -6
- casadi/include/highs/io/FilereaderEms.h +0 -3
- casadi/include/highs/io/FilereaderLp.h +0 -3
- casadi/include/highs/io/FilereaderMps.h +0 -3
- casadi/include/highs/io/HMPSIO.h +1 -4
- casadi/include/highs/io/HMpsFF.h +8 -5
- casadi/include/highs/io/HighsIO.h +10 -5
- casadi/include/highs/io/LoadOptions.h +0 -3
- casadi/include/highs/ipm/IpxSolution.h +0 -3
- casadi/include/highs/ipm/IpxWrapper.h +4 -7
- casadi/include/highs/ipm/ipx/control.h +1 -0
- casadi/include/highs/ipm/ipx/ipx_parameters.h +1 -0
- casadi/include/highs/ipm/ipx/lp_solver.h +3 -2
- casadi/include/highs/ipm/ipx/model.h +7 -3
- casadi/include/highs/lp_data/HConst.h +21 -6
- casadi/include/highs/lp_data/HStruct.h +40 -4
- casadi/include/highs/lp_data/HighsAnalysis.h +0 -3
- casadi/include/highs/lp_data/HighsCallback.h +10 -3
- casadi/include/highs/lp_data/HighsCallbackStruct.h +3 -3
- casadi/include/highs/lp_data/HighsDebug.h +0 -3
- casadi/include/highs/lp_data/HighsIis.h +62 -0
- casadi/include/highs/lp_data/HighsInfo.h +50 -43
- casadi/include/highs/lp_data/HighsInfoDebug.h +0 -3
- casadi/include/highs/lp_data/HighsLp.h +2 -3
- casadi/include/highs/lp_data/HighsLpSolverObject.h +0 -3
- casadi/include/highs/lp_data/HighsLpUtils.h +38 -6
- casadi/include/highs/lp_data/HighsModelUtils.h +21 -18
- casadi/include/highs/lp_data/HighsOptions.h +134 -22
- casadi/include/highs/lp_data/HighsRanging.h +0 -3
- casadi/include/highs/lp_data/HighsSolution.h +10 -3
- casadi/include/highs/lp_data/HighsSolutionDebug.h +0 -3
- casadi/include/highs/lp_data/HighsSolve.h +0 -3
- casadi/include/highs/lp_data/HighsStatus.h +0 -3
- casadi/include/highs/mip/HighsCliqueTable.h +3 -3
- casadi/include/highs/mip/HighsConflictPool.h +0 -3
- casadi/include/highs/mip/HighsCutGeneration.h +13 -3
- casadi/include/highs/mip/HighsCutPool.h +0 -3
- casadi/include/highs/mip/HighsDebugSol.h +0 -3
- casadi/include/highs/mip/HighsDomain.h +16 -4
- casadi/include/highs/mip/HighsDomainChange.h +0 -3
- casadi/include/highs/mip/HighsDynamicRowMatrix.h +0 -3
- casadi/include/highs/mip/HighsGFkSolve.h +3 -6
- casadi/include/highs/mip/HighsImplications.h +29 -5
- casadi/include/highs/mip/HighsLpAggregator.h +0 -3
- casadi/include/highs/mip/HighsLpRelaxation.h +0 -3
- casadi/include/highs/mip/HighsMipAnalysis.h +52 -0
- casadi/include/highs/mip/HighsMipSolver.h +11 -4
- casadi/include/highs/mip/HighsMipSolverData.h +67 -6
- casadi/include/highs/mip/HighsModkSeparator.h +1 -4
- casadi/include/highs/mip/HighsNodeQueue.h +0 -3
- casadi/include/highs/mip/HighsObjectiveFunction.h +0 -3
- casadi/include/highs/mip/HighsPathSeparator.h +1 -4
- casadi/include/highs/mip/HighsPrimalHeuristics.h +7 -5
- casadi/include/highs/mip/HighsPseudocost.h +0 -3
- casadi/include/highs/mip/HighsRedcostFixing.h +0 -3
- casadi/include/highs/mip/HighsSearch.h +0 -3
- casadi/include/highs/mip/HighsSeparation.h +0 -3
- casadi/include/highs/mip/HighsSeparator.h +1 -5
- casadi/include/highs/mip/HighsTableauSeparator.h +1 -4
- casadi/include/highs/mip/HighsTransformedLp.h +0 -3
- casadi/include/highs/mip/MipTimer.h +471 -0
- casadi/include/highs/parallel/HighsBinarySemaphore.h +1 -1
- casadi/include/highs/parallel/HighsCacheAlign.h +1 -1
- casadi/include/highs/parallel/HighsCombinable.h +1 -1
- casadi/include/highs/parallel/HighsMutex.h +1 -1
- casadi/include/highs/parallel/HighsRaceTimer.h +1 -1
- casadi/include/highs/parallel/HighsSchedulerConstants.h +1 -1
- casadi/include/highs/parallel/HighsSplitDeque.h +1 -1
- casadi/include/highs/parallel/HighsTaskExecutor.h +68 -55
- casadi/include/highs/pdlp/CupdlpWrapper.h +18 -7
- casadi/include/highs/pdlp/cupdlp/cupdlp_cs.h +2 -3
- casadi/include/highs/pdlp/cupdlp/cupdlp_defs.h +16 -6
- casadi/include/highs/pdlp/cupdlp/cupdlp_linalg.h +10 -4
- casadi/include/highs/pdlp/cupdlp/cupdlp_proj.h +3 -3
- casadi/include/highs/pdlp/cupdlp/cupdlp_restart.h +6 -6
- casadi/include/highs/pdlp/cupdlp/cupdlp_scaling.h +26 -0
- casadi/include/highs/pdlp/cupdlp/cupdlp_solver.h +11 -11
- casadi/include/highs/pdlp/cupdlp/cupdlp_step.h +8 -4
- casadi/include/highs/pdlp/cupdlp/cupdlp_utils.c +253 -172
- casadi/include/highs/presolve/HPresolve.h +50 -10
- casadi/include/highs/presolve/HPresolveAnalysis.h +0 -3
- casadi/include/highs/presolve/HighsPostsolveStack.h +39 -6
- casadi/include/highs/presolve/HighsSymmetry.h +0 -3
- casadi/include/highs/presolve/ICrash.h +0 -3
- casadi/include/highs/presolve/ICrashUtil.h +1 -4
- casadi/include/highs/presolve/ICrashX.h +0 -3
- casadi/include/highs/presolve/PresolveComponent.h +0 -3
- casadi/include/highs/qpsolver/a_asm.hpp +20 -17
- casadi/include/highs/qpsolver/a_quass.hpp +5 -9
- casadi/include/highs/qpsolver/basis.hpp +12 -10
- casadi/include/highs/qpsolver/crashsolution.hpp +4 -3
- casadi/include/highs/qpsolver/dantzigpricing.hpp +3 -2
- casadi/include/highs/qpsolver/devexpricing.hpp +3 -1
- casadi/include/highs/qpsolver/factor.hpp +6 -5
- casadi/include/highs/qpsolver/feasibility_bounded.hpp +31 -29
- casadi/include/highs/qpsolver/feasibility_highs.hpp +94 -70
- casadi/include/highs/qpsolver/gradient.hpp +1 -1
- casadi/include/highs/qpsolver/instance.hpp +1 -1
- casadi/include/highs/qpsolver/pricing.hpp +2 -2
- casadi/include/highs/qpsolver/qpconst.hpp +2 -2
- casadi/include/highs/qpsolver/quass.hpp +2 -2
- casadi/include/highs/qpsolver/runtime.hpp +2 -2
- casadi/include/highs/qpsolver/settings.hpp +20 -8
- casadi/include/highs/qpsolver/steepestedgepricing.hpp +38 -39
- casadi/include/highs/simplex/HApp.h +88 -34
- casadi/include/highs/simplex/HEkk.h +24 -11
- casadi/include/highs/simplex/HEkkDual.h +2 -4
- casadi/include/highs/simplex/HEkkDualRHS.h +0 -3
- casadi/include/highs/simplex/HEkkDualRow.h +0 -3
- casadi/include/highs/simplex/HEkkPrimal.h +1 -5
- casadi/include/highs/simplex/HSimplex.h +0 -3
- casadi/include/highs/simplex/HSimplexDebug.h +0 -3
- casadi/include/highs/simplex/HSimplexNla.h +0 -26
- casadi/include/highs/simplex/HSimplexReport.h +0 -3
- casadi/include/highs/simplex/HighsSimplexAnalysis.h +5 -8
- casadi/include/highs/simplex/SimplexConst.h +10 -11
- casadi/include/highs/simplex/SimplexStruct.h +9 -12
- casadi/include/highs/simplex/SimplexTimer.h +83 -101
- casadi/include/highs/test/DevKkt.h +0 -3
- casadi/include/highs/test/KktCh2.h +0 -3
- casadi/include/highs/util/FactorTimer.h +39 -64
- casadi/include/highs/util/HFactor.h +4 -4
- casadi/include/highs/util/HFactorConst.h +0 -3
- casadi/include/highs/util/HFactorDebug.h +0 -3
- casadi/include/highs/util/HSet.h +0 -3
- casadi/include/highs/util/HVector.h +0 -3
- casadi/include/highs/util/HVectorBase.h +1 -4
- casadi/include/highs/util/HighsCDouble.h +12 -3
- casadi/include/highs/util/HighsComponent.h +0 -3
- casadi/include/highs/util/HighsDataStack.h +0 -3
- casadi/include/highs/util/HighsDisjointSets.h +0 -3
- casadi/include/highs/util/HighsHash.h +9 -12
- casadi/include/highs/util/HighsHashTree.h +15 -11
- casadi/include/highs/util/HighsInt.h +0 -3
- casadi/include/highs/util/HighsIntegers.h +0 -3
- casadi/include/highs/util/HighsLinearSumBounds.h +0 -3
- casadi/include/highs/util/HighsMatrixPic.h +0 -3
- casadi/include/highs/util/HighsMatrixSlice.h +3 -6
- casadi/include/highs/util/HighsMatrixUtils.h +0 -3
- casadi/include/highs/util/HighsMemoryAllocation.h +11 -3
- casadi/include/highs/util/HighsRandom.h +3 -6
- casadi/include/highs/util/HighsRbTree.h +0 -3
- casadi/include/highs/util/HighsSort.h +0 -3
- casadi/include/highs/util/HighsSparseMatrix.h +6 -3
- casadi/include/highs/util/HighsSparseVectorSum.h +0 -3
- casadi/include/highs/util/HighsSplay.h +0 -3
- casadi/include/highs/util/HighsTimer.h +94 -56
- casadi/include/highs/util/HighsUtils.h +10 -3
- casadi/include/highs/util/stringutil.h +14 -12
- casadi/include/licenses/ghc-external/LICENSE +19 -0
- casadi/include/licenses/libz-external/LICENSE +22 -0
- casadi/include/licenses/libz-external/contrib/dotzlib/LICENSE_1_0.txt +23 -0
- casadi/include/licenses/libzip-external/LICENSE +31 -0
- casadi/include/sleqp/defs.h +2 -2
- casadi/include/zconf.h +545 -0
- casadi/include/zip.h +528 -0
- casadi/include/zipconf.h +48 -0
- casadi/include/zlib.h +1938 -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_archiver_libzip.so +0 -0
- casadi/libcasadi_archiver_libzip.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_filesystem_ghc.so +0 -0
- casadi/libcasadi_filesystem_ghc.so.3.7 +0 -0
- casadi/libcasadi_importer_shell.so +0 -0
- casadi/libcasadi_importer_shell.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_interpolant_bspline.so +0 -0
- casadi/libcasadi_interpolant_bspline.so.3.7 +0 -0
- casadi/libcasadi_interpolant_linear.so +0 -0
- casadi/libcasadi_interpolant_linear.so.3.7 +0 -0
- casadi/libcasadi_linsol_csparse.so +0 -0
- casadi/libcasadi_linsol_csparse.so.3.7 +0 -0
- casadi/libcasadi_linsol_csparsecholesky.so +0 -0
- casadi/libcasadi_linsol_csparsecholesky.so.3.7 +0 -0
- casadi/libcasadi_linsol_lapacklu.so +0 -0
- casadi/libcasadi_linsol_lapacklu.so.3.7 +0 -0
- casadi/libcasadi_linsol_lapackqr.so +0 -0
- casadi/libcasadi_linsol_lapackqr.so.3.7 +0 -0
- casadi/libcasadi_linsol_ldl.so +0 -0
- casadi/libcasadi_linsol_ldl.so.3.7 +0 -0
- casadi/libcasadi_linsol_lsqr.so +0 -0
- casadi/libcasadi_linsol_lsqr.so.3.7 +0 -0
- casadi/libcasadi_linsol_ma27.so +0 -0
- casadi/libcasadi_linsol_ma27.so.3.7 +0 -0
- casadi/libcasadi_linsol_mumps.so +0 -0
- casadi/libcasadi_linsol_mumps.so.3.7 +0 -0
- casadi/libcasadi_linsol_qr.so +0 -0
- casadi/libcasadi_linsol_qr.so.3.7 +0 -0
- casadi/libcasadi_linsol_symbolicqr.so +0 -0
- casadi/libcasadi_linsol_symbolicqr.so.3.7 +0 -0
- casadi/libcasadi_linsol_tridiag.so +0 -0
- casadi/libcasadi_linsol_tridiag.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/libcasadi_xmlfile_tinyxml.so +0 -0
- casadi/libcasadi_xmlfile_tinyxml.so.3.7 +0 -0
- casadi/libcoinmumps.so +0 -0
- casadi/libcoinmumps.so.3 +0 -0
- casadi/libcoinmumps.so.3.0.1 +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.10.0 +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/libosqp.a +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/libz.a +0 -0
- casadi/libz.so +0 -0
- casadi/libz.so.1 +0 -0
- casadi/libz.so.1.3.1 +0 -0
- casadi/libzip.a +0 -0
- casadi/pkgconfig/casadi.pc +1 -1
- casadi/pkgconfig/highs.pc +1 -1
- casadi/pkgconfig/libzip.pc +14 -0
- casadi/tools/__init__.py +3 -1
- casadi/tools/graph/graph.py +1 -1
- casadi/tools/structure3.py +7 -7
- {casadi-3.6.7.dist-info → casadi-3.7.1.dist-info}/METADATA +1 -1
- {casadi-3.6.7.dist-info → casadi-3.7.1.dist-info}/RECORD +400 -368
- casadi/cmake/proxsuite/find-external/Simde/FindSimde.cmake +0 -39
- casadi/cmake/proxsuite/proxsuiteConfig.cmake +0 -177
- casadi/cmake/proxsuite/proxsuiteConfigVersion.cmake +0 -70
- casadi/cmake/proxsuite/proxsuiteTargets.cmake +0 -115
- casadi/cmake/trlib/trlib-config-release.cmake +0 -19
- casadi/cmake/trlib/trlib-config-version.cmake +0 -88
- casadi/include/highs/lp_data/HighsRuntimeOptions.h +0 -276
- casadi/include/highs/pdlp/cupdlp/cupdlp_scaling_cuda.h +0 -28
- casadi/include/tinyxml2.h +0 -2380
- casadi/lib64/cmake/tinyxml2/tinyxml2-config-version.cmake +0 -70
- casadi/lib64/cmake/tinyxml2/tinyxml2-config.cmake +0 -57
- casadi/lib64/cmake/tinyxml2/tinyxml2-static-targets-release.cmake +0 -19
- casadi/lib64/cmake/tinyxml2/tinyxml2-static-targets.cmake +0 -103
- casadi/lib64/libtinyxml2.a +0 -0
- casadi/lib64/pkgconfig/tinyxml2.pc +0 -10
- casadi/libhighs.so.1.7.2 +0 -0
- casadi/pkgconfig/proxsuite.pc +0 -22
- casadi/tools/structure.py +0 -1446
- {casadi-3.6.7.dist-info → casadi-3.7.1.dist-info}/WHEEL +0 -0
casadi/include/highs/Highs.h
CHANGED
@@ -2,9 +2,6 @@
|
|
2
2
|
/* */
|
3
3
|
/* This file is part of the HiGHS linear optimization suite */
|
4
4
|
/* */
|
5
|
-
/* Written and engineered 2008-2024 by Julian Hall, Ivet Galabova, */
|
6
|
-
/* Leona Gottwald and Michael Feldmeier */
|
7
|
-
/* */
|
8
5
|
/* Available as open-source under the MIT License */
|
9
6
|
/* */
|
10
7
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
@@ -17,6 +14,7 @@
|
|
17
14
|
#include <sstream>
|
18
15
|
|
19
16
|
#include "lp_data/HighsCallback.h"
|
17
|
+
#include "lp_data/HighsIis.h"
|
20
18
|
#include "lp_data/HighsLpUtils.h"
|
21
19
|
#include "lp_data/HighsRanging.h"
|
22
20
|
#include "lp_data/HighsSolutionDebug.h"
|
@@ -149,6 +147,24 @@ class Highs {
|
|
149
147
|
HighsStatus passHessian(const HighsInt dim, const HighsInt num_nz,
|
150
148
|
const HighsInt format, const HighsInt* start,
|
151
149
|
const HighsInt* index, const double* value);
|
150
|
+
/**
|
151
|
+
* @brief Pass multiple linear objectives for the incumbent model
|
152
|
+
*/
|
153
|
+
HighsStatus passLinearObjectives(
|
154
|
+
const HighsInt num_linear_objective,
|
155
|
+
const HighsLinearObjective* linear_objective);
|
156
|
+
|
157
|
+
/**
|
158
|
+
* @brief Add a linear objective for the incumbent model
|
159
|
+
*/
|
160
|
+
HighsStatus addLinearObjective(const HighsLinearObjective& linear_objective,
|
161
|
+
const HighsInt iObj = -1);
|
162
|
+
|
163
|
+
/**
|
164
|
+
* @brief Clear the multiple linear objective data
|
165
|
+
*/
|
166
|
+
HighsStatus clearLinearObjectives();
|
167
|
+
|
152
168
|
/**
|
153
169
|
* @brief Pass a column name to the incumbent model
|
154
170
|
*/
|
@@ -159,6 +175,11 @@ class Highs {
|
|
159
175
|
*/
|
160
176
|
HighsStatus passRowName(const HighsInt row, const std::string& name);
|
161
177
|
|
178
|
+
/**
|
179
|
+
* @brief Pass a model name to the incumbent model
|
180
|
+
*/
|
181
|
+
HighsStatus passModelName(const std::string& name);
|
182
|
+
|
162
183
|
/**
|
163
184
|
* @brief Read in a model
|
164
185
|
*/
|
@@ -170,12 +191,14 @@ class Highs {
|
|
170
191
|
HighsStatus readBasis(const std::string& filename);
|
171
192
|
|
172
193
|
/**
|
173
|
-
* @brief Presolve the incumbent model
|
194
|
+
* @brief Presolve the incumbent model, allowing the presolved model
|
195
|
+
* to be extracted. Subsequent solution of the incumbent model will
|
196
|
+
* only use presolve if there is no valid basis
|
174
197
|
*/
|
175
198
|
HighsStatus presolve();
|
176
199
|
|
177
200
|
/**
|
178
|
-
* @brief
|
201
|
+
* @brief Run the solver, accounting for any multiple objective
|
179
202
|
*/
|
180
203
|
HighsStatus run();
|
181
204
|
|
@@ -289,11 +312,11 @@ class Highs {
|
|
289
312
|
|
290
313
|
/**
|
291
314
|
* @brief Write (deviations from default values of) the options to a
|
292
|
-
* file,
|
293
|
-
*
|
315
|
+
* file, using the standard format used to read options from a file.
|
316
|
+
* Possible to write only deviations from default values.
|
294
317
|
*/
|
295
318
|
HighsStatus writeOptions(const std::string& filename, //!< The filename
|
296
|
-
const bool report_only_deviations = false)
|
319
|
+
const bool report_only_deviations = false);
|
297
320
|
|
298
321
|
/**
|
299
322
|
* @brief Returns the number of user-settable options
|
@@ -376,24 +399,35 @@ class Highs {
|
|
376
399
|
/**
|
377
400
|
* @brief Get the value of infinity used by HiGHS
|
378
401
|
*/
|
379
|
-
double getInfinity() { return kHighsInf; }
|
402
|
+
double getInfinity() const { return kHighsInf; }
|
380
403
|
|
381
404
|
/**
|
382
405
|
* @brief Get the size of HighsInt
|
383
406
|
*/
|
384
|
-
HighsInt getSizeofHighsInt() {
|
407
|
+
HighsInt getSizeofHighsInt() const {
|
385
408
|
return sizeof(options_.num_user_settable_options_);
|
386
409
|
}
|
387
410
|
|
388
411
|
/**
|
389
412
|
* @brief Get the run time of HiGHS
|
390
413
|
*/
|
391
|
-
double getRunTime() { return timer_.
|
414
|
+
double getRunTime() const { return timer_.read(); }
|
392
415
|
|
393
416
|
/**
|
394
417
|
* Methods for model output
|
395
418
|
*/
|
396
419
|
|
420
|
+
/**
|
421
|
+
* @brief Identify the standard form of the HighsLp instance in
|
422
|
+
* HiGHS
|
423
|
+
*/
|
424
|
+
HighsStatus getStandardFormLp(HighsInt& num_col, HighsInt& num_row,
|
425
|
+
HighsInt& num_nz, double& offset,
|
426
|
+
double* cost = nullptr, double* rhs = nullptr,
|
427
|
+
HighsInt* start = nullptr,
|
428
|
+
HighsInt* index = nullptr,
|
429
|
+
double* value = nullptr);
|
430
|
+
|
397
431
|
/**
|
398
432
|
* @brief Return a const reference to the presolved HighsLp instance in HiGHS
|
399
433
|
*/
|
@@ -476,20 +510,31 @@ class Highs {
|
|
476
510
|
}
|
477
511
|
|
478
512
|
/**
|
479
|
-
* @brief Indicate whether a dual unbounded ray exists, and
|
480
|
-
* it if it does
|
513
|
+
* @brief Indicate whether a dual unbounded ray exists, and (at the
|
514
|
+
* expense of solving an LP) gets it if it does not and
|
515
|
+
* dual_ray_value is not nullptr
|
481
516
|
*/
|
482
517
|
HighsStatus getDualRay(bool& has_dual_ray, double* dual_ray_value = nullptr);
|
483
518
|
|
484
519
|
/**
|
485
|
-
* @brief Indicate whether a dual unbounded ray exists, and gets
|
486
|
-
*
|
520
|
+
* @brief Indicate whether a dual unbounded ray exists, and gets it
|
521
|
+
* if it does
|
487
522
|
*/
|
488
523
|
HighsStatus getDualRaySparse(bool& has_dual_ray, HVector& row_ep_buffer);
|
489
524
|
|
490
525
|
/**
|
491
|
-
* @brief Indicate whether a
|
492
|
-
*
|
526
|
+
* @brief Indicate whether a dual unboundedness direction exists,
|
527
|
+
* and (at the expense of solving an LP) gets it if
|
528
|
+
* dual_unboundedness_direction is not nullptr
|
529
|
+
*/
|
530
|
+
HighsStatus getDualUnboundednessDirection(
|
531
|
+
bool& has_dual_unboundedness_direction,
|
532
|
+
double* dual_unboundedness_direction_value = nullptr);
|
533
|
+
|
534
|
+
/**
|
535
|
+
* @brief Indicate whether a primal unbounded ray exists, and (at
|
536
|
+
* the expense of solving an LP) gets it if primal_ray is not
|
537
|
+
* nullptr
|
493
538
|
*/
|
494
539
|
HighsStatus getPrimalRay(bool& has_primal_ray,
|
495
540
|
double* primal_ray_value = nullptr);
|
@@ -499,6 +544,16 @@ class Highs {
|
|
499
544
|
*/
|
500
545
|
HighsStatus getRanging(HighsRanging& ranging);
|
501
546
|
|
547
|
+
/**
|
548
|
+
* @brief Solve the feasibility relaxation problem
|
549
|
+
*/
|
550
|
+
HighsStatus feasibilityRelaxation(const double global_lower_penalty,
|
551
|
+
const double global_upper_penalty,
|
552
|
+
const double global_rhs_penalty,
|
553
|
+
const double* local_lower_penalty = nullptr,
|
554
|
+
const double* local_upper_penalty = nullptr,
|
555
|
+
const double* local_rhs_penalty = nullptr);
|
556
|
+
|
502
557
|
/**
|
503
558
|
* @brief Get the ill-conditioning information for the current basis
|
504
559
|
*/
|
@@ -508,10 +563,21 @@ class Highs {
|
|
508
563
|
const double ill_conditioning_bound = 1e-4);
|
509
564
|
|
510
565
|
/**
|
511
|
-
* @brief Get
|
566
|
+
* @brief Get (any) irreducible infeasible subsystem (IIS)
|
567
|
+
* information for the incumbent model
|
568
|
+
*/
|
569
|
+
HighsStatus getIis(HighsIis& iis);
|
570
|
+
|
571
|
+
/**
|
572
|
+
* @brief Get the current model objective function value
|
512
573
|
*/
|
513
574
|
double getObjectiveValue() const { return info_.objective_function_value; }
|
514
575
|
|
576
|
+
/**
|
577
|
+
* @brief Try to get the current dual objective function value
|
578
|
+
*/
|
579
|
+
HighsStatus getDualObjectiveValue(double& dual_objective_value) const;
|
580
|
+
|
515
581
|
/**
|
516
582
|
* Methods for operations with the invertible representation of the
|
517
583
|
* current basis matrix
|
@@ -586,6 +652,14 @@ class Highs {
|
|
586
652
|
HighsInt* col_num_nz = nullptr,
|
587
653
|
HighsInt* col_indices = nullptr);
|
588
654
|
|
655
|
+
/**
|
656
|
+
* @brief Get the condition number of the current basis matrix,
|
657
|
+
* possibly computing it exactly and reporting the error in the
|
658
|
+
* approximate condition number
|
659
|
+
*/
|
660
|
+
HighsStatus getKappa(double& kappa, const bool exact = false,
|
661
|
+
const bool report = false) const;
|
662
|
+
|
589
663
|
/**
|
590
664
|
* @brief Get the number of columns in the incumbent model
|
591
665
|
*/
|
@@ -636,7 +710,7 @@ class Highs {
|
|
636
710
|
HighsInt*
|
637
711
|
index, //!< Array of size num_nz with row indices for the columns
|
638
712
|
double* value //!< Array of size num_nz with row values for the columns
|
639
|
-
);
|
713
|
+
) const;
|
640
714
|
|
641
715
|
/**
|
642
716
|
* @brief Get multiple columns from the model given by a set
|
@@ -655,7 +729,7 @@ class Highs {
|
|
655
729
|
HighsInt*
|
656
730
|
index, //!< Array of size num_nz with row indices for the columns
|
657
731
|
double* value //!< Array of size num_nz with row values for the columns
|
658
|
-
);
|
732
|
+
) const;
|
659
733
|
|
660
734
|
/**
|
661
735
|
* @brief Get multiple columns from the model given by a mask
|
@@ -672,7 +746,7 @@ class Highs {
|
|
672
746
|
HighsInt*
|
673
747
|
index, //!< Array of size num_nz with row indices for the columns
|
674
748
|
double* value //!< Array of size num_nz with row values for the columns
|
675
|
-
);
|
749
|
+
) const;
|
676
750
|
|
677
751
|
/**
|
678
752
|
* @brief Get a column name from the incumbent model
|
@@ -708,7 +782,7 @@ class Highs {
|
|
708
782
|
HighsInt*
|
709
783
|
index, //!< Array of size num_nz with column indices for the rows
|
710
784
|
double* value //!< Array of size num_nz with column values for the rows
|
711
|
-
);
|
785
|
+
) const;
|
712
786
|
|
713
787
|
/**
|
714
788
|
* @brief Get multiple rows from the model given by a set
|
@@ -726,7 +800,7 @@ class Highs {
|
|
726
800
|
HighsInt*
|
727
801
|
index, //!< Array of size num_nz with column indices for the rows
|
728
802
|
double* value //!< Array of size num_nz with column values for the rows
|
729
|
-
);
|
803
|
+
) const;
|
730
804
|
|
731
805
|
/**
|
732
806
|
* @brief Get multiple rows from the model given by a mask
|
@@ -742,7 +816,7 @@ class Highs {
|
|
742
816
|
HighsInt*
|
743
817
|
index, //!< Array of size num_nz with column indices for the rows
|
744
818
|
double* value //!< Array of size num_nz with column values for the rows
|
745
|
-
);
|
819
|
+
) const;
|
746
820
|
|
747
821
|
/**
|
748
822
|
* @brief Get a row name from the incumbent model
|
@@ -757,7 +831,8 @@ class Highs {
|
|
757
831
|
/**
|
758
832
|
* @brief Get a matrix coefficient
|
759
833
|
*/
|
760
|
-
HighsStatus getCoeff(const HighsInt row, const HighsInt col,
|
834
|
+
HighsStatus getCoeff(const HighsInt row, const HighsInt col,
|
835
|
+
double& value) const;
|
761
836
|
|
762
837
|
/**
|
763
838
|
* @brief Write out the incumbent model to a file
|
@@ -778,7 +853,7 @@ class Highs {
|
|
778
853
|
/**
|
779
854
|
* @brief Write out the internal HighsBasis instance to a file
|
780
855
|
*/
|
781
|
-
HighsStatus writeBasis(const std::string& filename = "");
|
856
|
+
HighsStatus writeBasis(const std::string& filename = "") const;
|
782
857
|
|
783
858
|
/**
|
784
859
|
* Methods for incumbent model modification
|
@@ -974,6 +1049,16 @@ class Highs {
|
|
974
1049
|
const HighsInt* starts, const HighsInt* indices,
|
975
1050
|
const double* values);
|
976
1051
|
|
1052
|
+
HighsStatus ensureColwise() {
|
1053
|
+
this->model_.lp_.ensureColwise();
|
1054
|
+
return HighsStatus::kOk;
|
1055
|
+
}
|
1056
|
+
|
1057
|
+
HighsStatus ensureRowwise() {
|
1058
|
+
this->model_.lp_.ensureRowwise();
|
1059
|
+
return HighsStatus::kOk;
|
1060
|
+
}
|
1061
|
+
|
977
1062
|
/**
|
978
1063
|
* @brief Delete multiple columns from the incumbent model given by an
|
979
1064
|
* interval [from_col, to_col]
|
@@ -1063,6 +1148,12 @@ class Highs {
|
|
1063
1148
|
*/
|
1064
1149
|
HighsStatus setSolution(const HighsSolution& solution);
|
1065
1150
|
|
1151
|
+
/**
|
1152
|
+
* @brief Pass a sparse primal solution
|
1153
|
+
*/
|
1154
|
+
HighsStatus setSolution(const HighsInt num_entries, const HighsInt* index,
|
1155
|
+
const double* value);
|
1156
|
+
|
1066
1157
|
/**
|
1067
1158
|
* @brief Set the callback method to use for HiGHS
|
1068
1159
|
*/
|
@@ -1134,38 +1225,12 @@ class Highs {
|
|
1134
1225
|
static void resetGlobalScheduler(bool blocking = false);
|
1135
1226
|
|
1136
1227
|
// Start of advanced methods for HiGHS MIP solver
|
1137
|
-
/**
|
1138
|
-
* @brief Get the hot start basis data from the most recent simplex
|
1139
|
-
* solve. Advanced method: for HiGHS MIP solver
|
1140
|
-
*/
|
1141
|
-
const HotStart& getHotStart() const { return ekk_instance_.hot_start_; }
|
1142
|
-
|
1143
|
-
/**
|
1144
|
-
* @brief Set up for simplex using the supplied hot start
|
1145
|
-
* data. Advanced method: for HiGHS MIP solver
|
1146
|
-
*/
|
1147
|
-
HighsStatus setHotStart(const HotStart& hot_start);
|
1148
|
-
|
1149
|
-
/**
|
1150
|
-
* @brief Freeze the current internal HighsBasis instance and
|
1151
|
-
* standard NLA, returning a value to be used to recover this basis
|
1152
|
-
* and standard NLA at minimal cost. Advanced method: for HiGHS MIP
|
1153
|
-
* solver
|
1154
|
-
*/
|
1155
|
-
HighsStatus freezeBasis(HighsInt& frozen_basis_id);
|
1156
1228
|
|
1157
|
-
|
1158
|
-
|
1159
|
-
|
1160
|
-
|
1161
|
-
|
1162
|
-
|
1163
|
-
/**
|
1164
|
-
* @brief Check that all frozen basis data has been
|
1165
|
-
* cleared. Advanced method: for HiGHS MIP solver
|
1166
|
-
*/
|
1167
|
-
HighsStatus frozenBasisAllDataClear() {
|
1168
|
-
return ekk_instance_.frozenBasisAllDataClear();
|
1229
|
+
const HighsSimplexStats& getSimplexStats() const {
|
1230
|
+
return ekk_instance_.getSimplexStats();
|
1231
|
+
}
|
1232
|
+
void reportSimplexStats(FILE* file) const {
|
1233
|
+
ekk_instance_.reportSimplexStats(file);
|
1169
1234
|
}
|
1170
1235
|
|
1171
1236
|
/**
|
@@ -1210,6 +1275,27 @@ class Highs {
|
|
1210
1275
|
HighsStatus getBasisInverseRowSparse(const HighsInt row,
|
1211
1276
|
HVector& row_ep_buffer);
|
1212
1277
|
|
1278
|
+
/**
|
1279
|
+
* @Brief Get the primal simplex phase 1 dual values. Advanced
|
1280
|
+
* method: for HiGHS IIS calculation
|
1281
|
+
*/
|
1282
|
+
const std::vector<double>& getPrimalPhase1Dual() const {
|
1283
|
+
return ekk_instance_.primal_phase1_dual_;
|
1284
|
+
}
|
1285
|
+
|
1286
|
+
/**
|
1287
|
+
* @brief Development methods
|
1288
|
+
*/
|
1289
|
+
HighsInt defineClock(const char* name) {
|
1290
|
+
return this->timer_.clock_def(name);
|
1291
|
+
}
|
1292
|
+
void writeAllClocks() { this->timer_.writeAllClocks(); }
|
1293
|
+
HighsStatus clearModelNames() {
|
1294
|
+
this->model_.lp_.col_names_.clear();
|
1295
|
+
this->model_.lp_.row_names_.clear();
|
1296
|
+
return HighsStatus::kOk;
|
1297
|
+
}
|
1298
|
+
|
1213
1299
|
// Start of deprecated methods
|
1214
1300
|
|
1215
1301
|
std::string compilationDate() const { return "deprecated"; }
|
@@ -1278,9 +1364,8 @@ class Highs {
|
|
1278
1364
|
|
1279
1365
|
HighsStatus resetHighsOptions();
|
1280
1366
|
|
1281
|
-
HighsStatus writeHighsOptions(
|
1282
|
-
|
1283
|
-
const bool report_only_non_default_values = true);
|
1367
|
+
HighsStatus writeHighsOptions(const std::string& filename, //!< The filename
|
1368
|
+
const bool report_only_deviations = true);
|
1284
1369
|
|
1285
1370
|
HighsInt getSimplexIterationCount() {
|
1286
1371
|
deprecationMessage("getSimplexIterationCount", "None");
|
@@ -1312,6 +1397,50 @@ class Highs {
|
|
1312
1397
|
void deprecationMessage(const std::string& method_name,
|
1313
1398
|
const std::string& alt_method_name) const;
|
1314
1399
|
|
1400
|
+
/**
|
1401
|
+
* @brief Get the hot start basis data from the most recent simplex
|
1402
|
+
* solve. Advanced method: for HiGHS MIP solver
|
1403
|
+
*/
|
1404
|
+
const HotStart& getHotStart() const { return ekk_instance_.hot_start_; }
|
1405
|
+
|
1406
|
+
/**
|
1407
|
+
* @brief Set up for simplex using the supplied hot start
|
1408
|
+
* data. Advanced method: for HiGHS MIP solver
|
1409
|
+
*/
|
1410
|
+
HighsStatus setHotStart(const HotStart& hot_start) {
|
1411
|
+
this->deprecationMessage("setHotStart", "None");
|
1412
|
+
return HighsStatus::kError;
|
1413
|
+
}
|
1414
|
+
|
1415
|
+
/**
|
1416
|
+
* @brief Freeze the current internal HighsBasis instance and
|
1417
|
+
* standard NLA, returning a value to be used to recover this basis
|
1418
|
+
* and standard NLA at minimal cost. Advanced method: for HiGHS MIP
|
1419
|
+
* solver
|
1420
|
+
*/
|
1421
|
+
HighsStatus freezeBasis(HighsInt& frozen_basis_id) {
|
1422
|
+
this->deprecationMessage("freezeBasis", "None");
|
1423
|
+
return HighsStatus::kError;
|
1424
|
+
}
|
1425
|
+
|
1426
|
+
/**
|
1427
|
+
* @brief Unfreeze a frozen HighsBasis instance and standard NLA (if
|
1428
|
+
* possible). Advanced method: for HiGHS MIP solver
|
1429
|
+
*/
|
1430
|
+
HighsStatus unfreezeBasis(const HighsInt frozen_basis_id) {
|
1431
|
+
this->deprecationMessage("unfreezeBasis", "None");
|
1432
|
+
return HighsStatus::kError;
|
1433
|
+
}
|
1434
|
+
|
1435
|
+
/**
|
1436
|
+
* @brief Check that all frozen basis data has been
|
1437
|
+
* cleared. Advanced method: for HiGHS MIP solver
|
1438
|
+
*/
|
1439
|
+
HighsStatus frozenBasisAllDataClear() {
|
1440
|
+
this->deprecationMessage("frozenBasisAllDataClear", "None");
|
1441
|
+
return HighsStatus::kError;
|
1442
|
+
}
|
1443
|
+
|
1315
1444
|
// End of deprecated methods
|
1316
1445
|
private:
|
1317
1446
|
HighsSolution solution_;
|
@@ -1319,6 +1448,8 @@ class Highs {
|
|
1319
1448
|
ICrashInfo icrash_info_;
|
1320
1449
|
|
1321
1450
|
HighsModel model_;
|
1451
|
+
std::vector<HighsLinearObjective> multi_linear_objective_;
|
1452
|
+
|
1322
1453
|
HighsModel presolved_model_;
|
1323
1454
|
HighsTimer timer_;
|
1324
1455
|
|
@@ -1326,13 +1457,19 @@ class Highs {
|
|
1326
1457
|
HighsOptions options_;
|
1327
1458
|
HighsInfo info_;
|
1328
1459
|
HighsRanging ranging_;
|
1329
|
-
|
1460
|
+
HighsIis iis_;
|
1330
1461
|
std::vector<HighsObjectiveSolution> saved_objective_and_solution_;
|
1331
1462
|
|
1332
1463
|
HighsPresolveStatus model_presolve_status_ =
|
1333
1464
|
HighsPresolveStatus::kNotPresolved;
|
1334
1465
|
HighsModelStatus model_status_ = HighsModelStatus::kNotset;
|
1335
1466
|
|
1467
|
+
bool standard_form_valid_;
|
1468
|
+
double standard_form_offset_;
|
1469
|
+
std::vector<double> standard_form_cost_;
|
1470
|
+
std::vector<double> standard_form_rhs_;
|
1471
|
+
HighsSparseMatrix standard_form_matrix_;
|
1472
|
+
|
1336
1473
|
HEkk ekk_instance_;
|
1337
1474
|
|
1338
1475
|
HighsPresolveLog presolve_log_;
|
@@ -1345,7 +1482,10 @@ class Highs {
|
|
1345
1482
|
bool called_return_from_run = true;
|
1346
1483
|
HighsInt debug_run_call_num_ = 0;
|
1347
1484
|
|
1348
|
-
bool
|
1485
|
+
bool written_log_header_ = false;
|
1486
|
+
|
1487
|
+
void reportModelStats() const;
|
1488
|
+
HighsStatus solve();
|
1349
1489
|
|
1350
1490
|
void exactResizeModel() {
|
1351
1491
|
this->model_.lp_.exactResize();
|
@@ -1368,7 +1508,7 @@ class Highs {
|
|
1368
1508
|
HighsStatus openWriteFile(const string filename, const string method_name,
|
1369
1509
|
FILE*& file, HighsFileType& file_type) const;
|
1370
1510
|
|
1371
|
-
void reportModel();
|
1511
|
+
void reportModel(const HighsModel& model);
|
1372
1512
|
void newHighsBasis();
|
1373
1513
|
void forceHighsSolutionBasisSize();
|
1374
1514
|
//
|
@@ -1377,13 +1517,20 @@ class Highs {
|
|
1377
1517
|
// and basis data
|
1378
1518
|
void setHighsModelStatusAndClearSolutionAndBasis(
|
1379
1519
|
const HighsModelStatus model_status);
|
1380
|
-
|
1381
|
-
//
|
1382
|
-
//
|
1383
|
-
|
1384
|
-
|
1520
|
+
|
1521
|
+
// Clears derived model properties (like any presolved model,
|
1522
|
+
// standard form LP, and ray information) that (unlike solution and
|
1523
|
+
// basis) cannot be updated
|
1524
|
+
void clearDerivedModelProperties();
|
1525
|
+
|
1385
1526
|
// Clears the presolved model and its status
|
1386
1527
|
void clearPresolve();
|
1528
|
+
|
1529
|
+
// Clears the standard form LP
|
1530
|
+
void clearStandardFormLp();
|
1531
|
+
|
1532
|
+
// Clears the ray records
|
1533
|
+
void clearRayRecords() { this->ekk_instance_.clearRayRecords(); }
|
1387
1534
|
//
|
1388
1535
|
// Methods to clear solver data for users in Highs class members
|
1389
1536
|
// before (possibly) updating them with data from trying to solve
|
@@ -1391,8 +1538,9 @@ class Highs {
|
|
1391
1538
|
//
|
1392
1539
|
// Invalidates all solver data in Highs class members by calling
|
1393
1540
|
// invalidateModelStatus(), invalidateSolution(), invalidateBasis(),
|
1394
|
-
// invalidateInfo()
|
1395
|
-
|
1541
|
+
// invalidateRanging(), invalidateInfo(), invalidateEkk() and
|
1542
|
+
// invalidateIis()
|
1543
|
+
void invalidateSolverData();
|
1396
1544
|
//
|
1397
1545
|
// Invalidates the model status, solution_ and info_
|
1398
1546
|
void invalidateModelStatusSolutionAndInfo();
|
@@ -1415,6 +1563,9 @@ class Highs {
|
|
1415
1563
|
// Invalidates ekk_instance_
|
1416
1564
|
void invalidateEkk();
|
1417
1565
|
|
1566
|
+
// Invalidates iis_
|
1567
|
+
void invalidateIis();
|
1568
|
+
|
1418
1569
|
HighsStatus returnFromWriteSolution(FILE* file,
|
1419
1570
|
const HighsStatus return_status);
|
1420
1571
|
HighsStatus returnFromRun(const HighsStatus return_status,
|
@@ -1422,9 +1573,8 @@ class Highs {
|
|
1422
1573
|
HighsStatus returnFromHighs(const HighsStatus return_status);
|
1423
1574
|
void reportSolvedLpQpStats();
|
1424
1575
|
|
1425
|
-
void underDevelopmentLogMessage(const std::string& method_name);
|
1426
|
-
|
1427
1576
|
// Interface methods
|
1577
|
+
HighsStatus formStandardFormLp();
|
1428
1578
|
HighsStatus basisForSolution();
|
1429
1579
|
HighsStatus addColsInterface(
|
1430
1580
|
HighsInt ext_num_new_col, const double* ext_col_cost,
|
@@ -1445,18 +1595,17 @@ class Highs {
|
|
1445
1595
|
void deleteRowsInterface(HighsIndexCollection& index_collection);
|
1446
1596
|
|
1447
1597
|
void getColsInterface(const HighsIndexCollection& index_collection,
|
1448
|
-
HighsInt& num_col, double*
|
1449
|
-
double*
|
1450
|
-
HighsInt*
|
1451
|
-
double* col_matrix_value);
|
1598
|
+
HighsInt& num_col, double* cost, double* lower,
|
1599
|
+
double* upper, HighsInt& num_nz, HighsInt* start,
|
1600
|
+
HighsInt* index, double* value) const;
|
1452
1601
|
|
1453
1602
|
void getRowsInterface(const HighsIndexCollection& index_collection,
|
1454
|
-
HighsInt& num_row, double*
|
1455
|
-
HighsInt& num_nz, HighsInt*
|
1456
|
-
|
1603
|
+
HighsInt& num_row, double* lower, double* upper,
|
1604
|
+
HighsInt& num_nz, HighsInt* start, HighsInt* index,
|
1605
|
+
double* value) const;
|
1457
1606
|
|
1458
1607
|
void getCoefficientInterface(const HighsInt ext_row, const HighsInt ext_col,
|
1459
|
-
double& value);
|
1608
|
+
double& value) const;
|
1460
1609
|
|
1461
1610
|
HighsStatus changeObjectiveSenseInterface(const ObjSense ext_sense);
|
1462
1611
|
HighsStatus changeObjectiveOffsetInterface(const double ext_offset);
|
@@ -1487,8 +1636,6 @@ class Highs {
|
|
1487
1636
|
HighsInt* solution_num_nz,
|
1488
1637
|
HighsInt* solution_indices, bool transpose);
|
1489
1638
|
|
1490
|
-
HighsStatus setHotStartInterface(const HotStart& hot_start);
|
1491
|
-
|
1492
1639
|
void zeroIterationCounts();
|
1493
1640
|
|
1494
1641
|
HighsStatus getDualRayInterface(bool& has_dual_ray, double* dual_ray_value);
|
@@ -1497,13 +1644,36 @@ class Highs {
|
|
1497
1644
|
double* primal_ray_value);
|
1498
1645
|
HighsStatus getRangingInterface();
|
1499
1646
|
|
1647
|
+
HighsStatus getIisInterface();
|
1648
|
+
|
1649
|
+
HighsStatus elasticityFilterReturn(
|
1650
|
+
const HighsStatus return_status, const bool feasible_model,
|
1651
|
+
const HighsInt original_num_col, const HighsInt original_num_row,
|
1652
|
+
const std::vector<double>& original_col_cost,
|
1653
|
+
const std::vector<double>& original_col_lower,
|
1654
|
+
const std::vector<double> original_col_upper,
|
1655
|
+
const std::vector<HighsVarType> original_integrality);
|
1656
|
+
HighsStatus elasticityFilter(const double global_lower_penalty,
|
1657
|
+
const double global_upper_penalty,
|
1658
|
+
const double global_rhs_penalty,
|
1659
|
+
const double* local_lower_penalty,
|
1660
|
+
const double* local_upper_penalty,
|
1661
|
+
const double* local_rhs_penalty,
|
1662
|
+
const bool get_infeasible_row,
|
1663
|
+
std::vector<HighsInt>& infeasible_row_subset);
|
1664
|
+
HighsStatus extractIis(HighsInt& num_iis_col, HighsInt& num_iis_row,
|
1665
|
+
HighsInt* iis_col_index, HighsInt* iis_row_index,
|
1666
|
+
HighsInt* iis_col_bound, HighsInt* iis_row_bound);
|
1667
|
+
|
1668
|
+
HighsStatus returnFromLexicographicOptimization(
|
1669
|
+
const HighsStatus return_status, HighsInt original_lp_num_row);
|
1670
|
+
HighsStatus multiobjectiveSolve();
|
1671
|
+
|
1500
1672
|
bool aFormatOk(const HighsInt num_nz, const HighsInt format);
|
1501
1673
|
bool qFormatOk(const HighsInt num_nz, const HighsInt format);
|
1502
1674
|
void clearZeroHessian();
|
1503
|
-
HighsStatus checkOptimality(const std::string& solver_type
|
1504
|
-
|
1505
|
-
HighsStatus invertRequirementError(std::string method_name);
|
1506
|
-
HighsStatus lpInvertRequirementError(std::string method_name);
|
1675
|
+
HighsStatus checkOptimality(const std::string& solver_type);
|
1676
|
+
HighsStatus invertRequirementError(std::string method_name) const;
|
1507
1677
|
|
1508
1678
|
HighsStatus handleInfCost();
|
1509
1679
|
void restoreInfCost(HighsStatus& return_status);
|
@@ -1520,6 +1690,10 @@ class Highs {
|
|
1520
1690
|
const bool constraint,
|
1521
1691
|
const double ill_conditioning_bound);
|
1522
1692
|
bool infeasibleBoundsOk();
|
1693
|
+
bool validLinearObjective(const HighsLinearObjective& linear_objective,
|
1694
|
+
const HighsInt iObj) const;
|
1695
|
+
bool hasRepeatedLinearObjectivePriorities(
|
1696
|
+
const HighsLinearObjective* linear_objective = nullptr) const;
|
1523
1697
|
};
|
1524
1698
|
|
1525
1699
|
// Start of deprecated methods not in the Highs class
|
@@ -1,10 +1,10 @@
|
|
1
|
-
#ifndef __READERLP_READER_HPP__
|
2
|
-
#define __READERLP_READER_HPP__
|
3
|
-
|
4
|
-
#include <string>
|
5
|
-
|
6
|
-
#include "model.hpp"
|
7
|
-
|
8
|
-
Model readinstance(std::string filename);
|
9
|
-
|
10
|
-
#endif
|
1
|
+
#ifndef __READERLP_READER_HPP__
|
2
|
+
#define __READERLP_READER_HPP__
|
3
|
+
|
4
|
+
#include <string>
|
5
|
+
|
6
|
+
#include "model.hpp"
|
7
|
+
|
8
|
+
Model readinstance(std::string filename);
|
9
|
+
|
10
|
+
#endif
|