casadi 3.6.7__cp312-none-win_amd64.whl → 3.7.0__cp312-none-win_amd64.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.pyd +0 -0
- casadi/blasfeo.lib +0 -0
- casadi/casadi-cli.exe +0 -0
- casadi/casadi.lib +0 -0
- casadi/casadi.py +6070 -3038
- casadi/cbc.exe +0 -0
- casadi/clp.exe +0 -0
- casadi/cmake/casadi-config-version.cmake +1 -1
- casadi/cmake/casadi-targets-release.cmake +5 -5
- casadi/cmake/casadi-targets.cmake +5 -5
- casadi/{lib/cmake/tinyxml2/tinyxml2-config-version.cmake → cmake/ghc_filesystem/ghc_filesystem-config-version.cmake} +19 -10
- casadi/cmake/ghc_filesystem/ghc_filesystem-config.cmake +30 -0
- casadi/cmake/ghc_filesystem/ghc_filesystem-targets.cmake +99 -0
- casadi/cmake/highs/highs-config.cmake +1 -0
- casadi/cmake/highs/highs-targets.cmake +2 -2
- 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/{lib/cmake/tinyxml2/tinyxml2-shared-targets.cmake → cmake/libzip/libzip-targets.cmake} +11 -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/daqp.lib +0 -0
- casadi/fatrop.lib +0 -0
- casadi/highs.exe +0 -0
- casadi/highs.lib +0 -0
- casadi/hpipm.lib +0 -0
- casadi/include/casadi/casadi.i +194 -44
- 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/casadi_common.hpp +37 -0
- casadi/include/casadi/core/casadi_meta.hpp +15 -0
- casadi/include/casadi/core/casadi_misc.hpp +7 -0
- casadi/include/casadi/core/code_generator.hpp +95 -17
- casadi/include/casadi/core/core.hpp +5 -0
- casadi/include/casadi/core/dae_builder.hpp +283 -141
- casadi/include/casadi/core/dm.hpp +3 -0
- casadi/include/casadi/core/filesystem.hpp +58 -0
- casadi/include/casadi/core/fmu.hpp +51 -16
- casadi/include/casadi/core/function.hpp +19 -0
- casadi/include/casadi/core/generic_matrix.hpp +214 -7
- casadi/include/casadi/core/generic_shared.hpp +318 -0
- casadi/include/casadi/core/generic_shared_impl.hpp +214 -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 +67 -0
- casadi/include/casadi/core/mx.hpp +63 -2
- 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_nlp.hpp +8 -2
- casadi/include/casadi/core/runtime/casadi_printme.hpp +25 -0
- casadi/include/casadi/core/serializer.hpp +12 -4
- casadi/include/casadi/core/serializing_stream.hpp +3 -0
- 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 +9703 -6539
- casadi/include/casadi/doc_merged.i +6483 -4447
- 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 +7 -5
- 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/zconf.h +545 -0
- casadi/include/zip.h +528 -0
- casadi/include/zipconf.h +48 -0
- casadi/include/zlib.h +1938 -0
- casadi/ipopt.lib +0 -0
- casadi/lapack.lib +0 -0
- casadi/libCbc-3.dll +0 -0
- casadi/libCbc.dll.a +0 -0
- casadi/libCbcSolver-3.dll +0 -0
- casadi/libCbcSolver.dll.a +0 -0
- casadi/libCgl-1.dll +0 -0
- casadi/libCgl.dll.a +0 -0
- casadi/libClp-1.dll +0 -0
- casadi/libClp.dll.a +0 -0
- casadi/libClpSolver-1.dll +0 -0
- casadi/libClpSolver.dll.a +0 -0
- casadi/libCoinUtils-3.dll +0 -0
- casadi/libCoinUtils.dll.a +0 -0
- casadi/libOsi-1.dll +0 -0
- casadi/libOsi.dll.a +0 -0
- casadi/libOsiCbc-3.dll +0 -0
- casadi/libOsiCbc.dll.a +0 -0
- casadi/libOsiClp-1.dll +0 -0
- casadi/libOsiClp.dll.a +0 -0
- casadi/libOsiCommonTests-1.dll +0 -0
- casadi/libOsiCommonTests.dll.a +0 -0
- casadi/libalpaqa.dll +0 -0
- casadi/libalpaqa.dll.a +0 -0
- casadi/libblasfeo.dll +0 -0
- casadi/libblasfeo.dll.a +0 -0
- casadi/libbonmin-4.dll +0 -0
- casadi/libbonmin.dll.a +0 -0
- casadi/libcasadi-tp-openblas.dll +0 -0
- casadi/libcasadi-tp-openblas.dll.a +0 -0
- casadi/libcasadi.dll +0 -0
- casadi/libcasadi.dll.a +0 -0
- casadi/libcasadi.lib +0 -0
- casadi/libcasadi_archiver_libzip.dll +0 -0
- casadi/libcasadi_archiver_libzip.dll.a +0 -0
- casadi/libcasadi_conic_cbc.dll +0 -0
- casadi/libcasadi_conic_cbc.dll.a +0 -0
- casadi/libcasadi_conic_clp.dll +0 -0
- casadi/libcasadi_conic_clp.dll.a +0 -0
- casadi/libcasadi_conic_cplex.dll +0 -0
- casadi/libcasadi_conic_cplex.dll.a +0 -0
- casadi/libcasadi_conic_daqp.dll +0 -0
- casadi/libcasadi_conic_daqp.dll.a +0 -0
- casadi/libcasadi_conic_fatrop.dll +0 -0
- casadi/libcasadi_conic_fatrop.dll.a +0 -0
- casadi/libcasadi_conic_gurobi.dll +0 -0
- casadi/libcasadi_conic_gurobi.dll.a +0 -0
- casadi/libcasadi_conic_highs.dll +0 -0
- casadi/libcasadi_conic_highs.dll.a +0 -0
- casadi/libcasadi_conic_hpipm.dll +0 -0
- casadi/libcasadi_conic_hpipm.dll.a +0 -0
- casadi/libcasadi_conic_ipqp.dll +0 -0
- casadi/libcasadi_conic_ipqp.dll.a +0 -0
- casadi/libcasadi_conic_nlpsol.dll +0 -0
- casadi/libcasadi_conic_nlpsol.dll.a +0 -0
- casadi/libcasadi_conic_osqp.dll +0 -0
- casadi/libcasadi_conic_osqp.dll.a +0 -0
- casadi/libcasadi_conic_proxqp.dll +0 -0
- casadi/libcasadi_conic_proxqp.dll.a +0 -0
- casadi/libcasadi_conic_qpoases.dll +0 -0
- casadi/libcasadi_conic_qpoases.dll.a +0 -0
- casadi/libcasadi_conic_qrqp.dll +0 -0
- casadi/libcasadi_conic_qrqp.dll.a +0 -0
- casadi/libcasadi_conic_superscs.dll +0 -0
- casadi/libcasadi_conic_superscs.dll.a +0 -0
- casadi/libcasadi_filesystem_ghc.dll +0 -0
- casadi/libcasadi_filesystem_ghc.dll.a +0 -0
- casadi/libcasadi_importer_shell.dll +0 -0
- casadi/libcasadi_importer_shell.dll.a +0 -0
- casadi/libcasadi_integrator_collocation.dll +0 -0
- casadi/libcasadi_integrator_collocation.dll.a +0 -0
- casadi/libcasadi_integrator_cvodes.dll +0 -0
- casadi/libcasadi_integrator_cvodes.dll.a +0 -0
- casadi/libcasadi_integrator_idas.dll +0 -0
- casadi/libcasadi_integrator_idas.dll.a +0 -0
- casadi/libcasadi_integrator_rk.dll +0 -0
- casadi/libcasadi_integrator_rk.dll.a +0 -0
- casadi/libcasadi_interpolant_bspline.dll +0 -0
- casadi/libcasadi_interpolant_bspline.dll.a +0 -0
- casadi/libcasadi_interpolant_linear.dll +0 -0
- casadi/libcasadi_interpolant_linear.dll.a +0 -0
- casadi/libcasadi_linsol_csparse.dll +0 -0
- casadi/libcasadi_linsol_csparse.dll.a +0 -0
- casadi/libcasadi_linsol_csparsecholesky.dll +0 -0
- casadi/libcasadi_linsol_csparsecholesky.dll.a +0 -0
- casadi/libcasadi_linsol_lapacklu.dll +0 -0
- casadi/libcasadi_linsol_lapacklu.dll.a +0 -0
- casadi/libcasadi_linsol_lapackqr.dll +0 -0
- casadi/libcasadi_linsol_lapackqr.dll.a +0 -0
- casadi/libcasadi_linsol_ldl.dll +0 -0
- casadi/libcasadi_linsol_ldl.dll.a +0 -0
- casadi/libcasadi_linsol_lsqr.dll +0 -0
- casadi/libcasadi_linsol_lsqr.dll.a +0 -0
- casadi/libcasadi_linsol_ma27.dll +0 -0
- casadi/libcasadi_linsol_ma27.dll.a +0 -0
- casadi/libcasadi_linsol_mumps.dll +0 -0
- casadi/libcasadi_linsol_mumps.dll.a +0 -0
- casadi/libcasadi_linsol_qr.dll +0 -0
- casadi/libcasadi_linsol_qr.dll.a +0 -0
- casadi/libcasadi_linsol_symbolicqr.dll +0 -0
- casadi/libcasadi_linsol_symbolicqr.dll.a +0 -0
- casadi/libcasadi_linsol_tridiag.dll +0 -0
- casadi/libcasadi_linsol_tridiag.dll.a +0 -0
- casadi/libcasadi_nlpsol_alpaqa.dll +0 -0
- casadi/libcasadi_nlpsol_alpaqa.dll.a +0 -0
- casadi/libcasadi_nlpsol_ampl.dll +0 -0
- casadi/libcasadi_nlpsol_ampl.dll.a +0 -0
- casadi/libcasadi_nlpsol_blocksqp.dll +0 -0
- casadi/libcasadi_nlpsol_blocksqp.dll.a +0 -0
- casadi/libcasadi_nlpsol_bonmin.dll +0 -0
- casadi/libcasadi_nlpsol_bonmin.dll.a +0 -0
- casadi/libcasadi_nlpsol_fatrop.dll +0 -0
- casadi/libcasadi_nlpsol_fatrop.dll.a +0 -0
- casadi/libcasadi_nlpsol_feasiblesqpmethod.dll +0 -0
- casadi/libcasadi_nlpsol_feasiblesqpmethod.dll.a +0 -0
- casadi/libcasadi_nlpsol_ipopt.dll +0 -0
- casadi/libcasadi_nlpsol_ipopt.dll.a +0 -0
- casadi/libcasadi_nlpsol_knitro.dll +0 -0
- casadi/libcasadi_nlpsol_knitro.dll.a +0 -0
- casadi/libcasadi_nlpsol_madnlp.dll +0 -0
- casadi/libcasadi_nlpsol_madnlp.dll.a +0 -0
- casadi/libcasadi_nlpsol_qrsqp.dll +0 -0
- casadi/libcasadi_nlpsol_qrsqp.dll.a +0 -0
- casadi/libcasadi_nlpsol_scpgen.dll +0 -0
- casadi/libcasadi_nlpsol_scpgen.dll.a +0 -0
- casadi/libcasadi_nlpsol_sleqp.dll +0 -0
- casadi/libcasadi_nlpsol_sleqp.dll.a +0 -0
- casadi/libcasadi_nlpsol_snopt.dll +0 -0
- casadi/libcasadi_nlpsol_snopt.dll.a +0 -0
- casadi/libcasadi_nlpsol_sqpmethod.dll +0 -0
- casadi/libcasadi_nlpsol_sqpmethod.dll.a +0 -0
- casadi/libcasadi_nlpsol_worhp.dll +0 -0
- casadi/libcasadi_nlpsol_worhp.dll.a +0 -0
- casadi/libcasadi_rootfinder_fast_newton.dll +0 -0
- casadi/libcasadi_rootfinder_fast_newton.dll.a +0 -0
- casadi/libcasadi_rootfinder_kinsol.dll +0 -0
- casadi/libcasadi_rootfinder_kinsol.dll.a +0 -0
- casadi/libcasadi_rootfinder_newton.dll +0 -0
- casadi/libcasadi_rootfinder_newton.dll.a +0 -0
- casadi/libcasadi_rootfinder_nlpsol.dll +0 -0
- casadi/libcasadi_rootfinder_nlpsol.dll.a +0 -0
- casadi/libcasadi_sundials_common.dll +0 -0
- casadi/libcasadi_sundials_common.dll.a +0 -0
- casadi/libcasadi_xmlfile_tinyxml.dll +0 -0
- casadi/libcasadi_xmlfile_tinyxml.dll.a +0 -0
- casadi/libcoinmetis-2.dll +0 -0
- casadi/libcoinmetis.dll.a +0 -0
- casadi/libcoinmumps-3.dll +0 -0
- casadi/libcoinmumps.dll.a +0 -0
- casadi/libcplex_adaptor.dll +0 -0
- casadi/libdaqp.dll +0 -0
- casadi/libdaqp.dll.a +0 -0
- casadi/libdl.dll +0 -0
- casadi/libdl.dll.a +0 -0
- casadi/libfatrop.dll +0 -0
- casadi/libfatrop.dll.a +0 -0
- casadi/libgurobi_adaptor.dll +0 -0
- casadi/libhighs.dll +0 -0
- casadi/libhighs.dll.a +0 -0
- casadi/libhpipm.dll +0 -0
- casadi/libhpipm.dll.a +0 -0
- casadi/libipopt-3.dll +0 -0
- casadi/libipopt.dll.a +0 -0
- casadi/libmatlab_ipc.dll +0 -0
- casadi/libmatlab_ipc.dll.a +0 -0
- casadi/libosqp.dll +0 -0
- casadi/libosqp.dll.a +0 -0
- casadi/libqdldl.dll +0 -0
- casadi/libqdldl.dll.a +0 -0
- casadi/libsipopt-3.dll +0 -0
- casadi/libsipopt.dll.a +0 -0
- casadi/libsleqp.dll +0 -0
- casadi/libsleqp.dll.a +0 -0
- casadi/libtrlib.dll +0 -0
- casadi/libtrlib.dll.a +0 -0
- casadi/libzip.a +0 -0
- casadi/libzlib.dll +0 -0
- casadi/libzlib.dll.a +0 -0
- casadi/libzlibstatic.a +0 -0
- casadi/matlab_ipc.lib +0 -0
- casadi/osqp.lib +0 -0
- casadi/pkgconfig/casadi.pc +1 -1
- casadi/pkgconfig/highs.pc +1 -1
- casadi/pkgconfig/libzip.pc +14 -0
- casadi/sleqp.lib +0 -0
- casadi/spral_ssids.exe +0 -0
- casadi/std-e414687e404555e5.dll +0 -0
- casadi/tools/__init__.py +3 -1
- casadi/tools/graph/graph.py +1 -1
- casadi/tools/structure3.py +2 -2
- {casadi-3.6.7.dist-info → casadi-3.7.0.dist-info}/METADATA +1 -1
- {casadi-3.6.7.dist-info → casadi-3.7.0.dist-info}/RECORD +434 -393
- casadi/bin/libtinyxml2.dll +0 -0
- casadi/include/tinyxml2.h +0 -2380
- casadi/lib/cmake/tinyxml2/tinyxml2-config.cmake +0 -57
- casadi/lib/cmake/tinyxml2/tinyxml2-shared-targets-release.cmake +0 -19
- casadi/lib/libtinyxml2.dll.a +0 -0
- casadi/lib/pkgconfig/tinyxml2.pc +0 -10
- casadi/libtinyxml2.dll +0 -0
- casadi/tools/structure.py +0 -1446
- {casadi-3.6.7.dist-info → casadi-3.7.0.dist-info}/WHEEL +0 -0
@@ -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
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
@@ -29,6 +26,7 @@
|
|
29
26
|
#include "presolve/HPresolveAnalysis.h"
|
30
27
|
#include "util/HighsCDouble.h"
|
31
28
|
#include "util/HighsHash.h"
|
29
|
+
#include "util/HighsHashTree.h"
|
32
30
|
#include "util/HighsLinearSumBounds.h"
|
33
31
|
#include "util/HighsMatrixSlice.h"
|
34
32
|
|
@@ -43,7 +41,6 @@ class HPresolve {
|
|
43
41
|
HighsTimer* timer;
|
44
42
|
HighsMipSolver* mipsolver = nullptr;
|
45
43
|
double primal_feastol;
|
46
|
-
HighsInt run_clock = -1;
|
47
44
|
|
48
45
|
// triplet storage
|
49
46
|
std::vector<double> Avalue;
|
@@ -99,6 +96,10 @@ class HPresolve {
|
|
99
96
|
|
100
97
|
std::vector<std::pair<HighsInt, HighsInt>> substitutionOpportunities;
|
101
98
|
|
99
|
+
std::unordered_map<HighsInt,
|
100
|
+
HighsHashTree<std::pair<HighsInt, HighsInt>, double>>
|
101
|
+
liftingOpportunities;
|
102
|
+
|
102
103
|
// set with the sizes and indices of equation rows sorted by the size and a
|
103
104
|
// vector to access there iterator positions in the set by index for quick
|
104
105
|
// removal
|
@@ -158,11 +159,15 @@ class HPresolve {
|
|
158
159
|
|
159
160
|
void updateColImpliedBounds(HighsInt row, HighsInt col, double val);
|
160
161
|
|
161
|
-
void
|
162
|
+
void updateRowDualImpliedBounds(HighsInt row, HighsInt col, double val);
|
162
163
|
|
163
|
-
void
|
164
|
+
void resetColImpliedBounds(HighsInt col, HighsInt row = -1);
|
164
165
|
|
165
|
-
void
|
166
|
+
void resetRowDualImpliedBounds(HighsInt row, HighsInt col = -1);
|
167
|
+
|
168
|
+
void resetColImpliedBoundsDerivedFromRow(HighsInt row);
|
169
|
+
|
170
|
+
void resetRowDualImpliedBoundsDerivedFromCol(HighsInt col);
|
166
171
|
|
167
172
|
bool rowCoefficientsIntegral(HighsInt row, double scale) const;
|
168
173
|
|
@@ -174,10 +179,17 @@ class HPresolve {
|
|
174
179
|
HighsPostsolveStack::RowType& rowType,
|
175
180
|
bool relaxRowDualBounds = false);
|
176
181
|
|
182
|
+
bool isImpliedEquationAtLower(HighsInt row) const;
|
183
|
+
|
184
|
+
bool isImpliedEquationAtUpper(HighsInt row) const;
|
185
|
+
|
177
186
|
bool isImpliedIntegral(HighsInt col);
|
178
187
|
|
179
188
|
bool isImpliedInteger(HighsInt col);
|
180
189
|
|
190
|
+
bool convertImpliedInteger(HighsInt col, HighsInt row = -1,
|
191
|
+
bool skipInputChecks = false);
|
192
|
+
|
181
193
|
bool isLowerImplied(HighsInt col) const;
|
182
194
|
|
183
195
|
bool isUpperImplied(HighsInt col) const;
|
@@ -189,6 +201,11 @@ class HPresolve {
|
|
189
201
|
|
190
202
|
void reinsertEquation(HighsInt row);
|
191
203
|
|
204
|
+
void clearLiftingOpportunities(HighsInt row) {
|
205
|
+
auto search = liftingOpportunities.find(row);
|
206
|
+
if (search != liftingOpportunities.end()) search->second.clear();
|
207
|
+
};
|
208
|
+
|
192
209
|
#ifndef NDEBUG
|
193
210
|
void debugPrintRow(HighsPostsolveStack& postsolve_stack, HighsInt row);
|
194
211
|
#endif
|
@@ -209,6 +226,9 @@ class HPresolve {
|
|
209
226
|
void toCSR(std::vector<double>& ARval, std::vector<HighsInt>& ARindex,
|
210
227
|
std::vector<HighsInt>& ARstart);
|
211
228
|
|
229
|
+
void getRowPositions(HighsInt row,
|
230
|
+
std::vector<HighsInt>& myrowpositions) const;
|
231
|
+
|
212
232
|
void storeRow(HighsInt row);
|
213
233
|
|
214
234
|
HighsTripletPositionSlice getStoredRow() const;
|
@@ -223,9 +243,11 @@ class HPresolve {
|
|
223
243
|
|
224
244
|
void markColDeleted(HighsInt col);
|
225
245
|
|
226
|
-
|
246
|
+
bool fixColToLowerOrUnbounded(HighsPostsolveStack& postsolve_stack,
|
247
|
+
HighsInt col);
|
227
248
|
|
228
|
-
|
249
|
+
bool fixColToUpperOrUnbounded(HighsPostsolveStack& postsolve_stack,
|
250
|
+
HighsInt col);
|
229
251
|
|
230
252
|
void fixColToZero(HighsPostsolveStack& postsolve_stack, HighsInt col);
|
231
253
|
|
@@ -264,6 +286,10 @@ class HPresolve {
|
|
264
286
|
|
265
287
|
Result presolve(HighsPostsolveStack& postsolve_stack);
|
266
288
|
|
289
|
+
Result removeSlacks(HighsPostsolveStack& postsolve_stack);
|
290
|
+
|
291
|
+
Result checkTimeLimit();
|
292
|
+
|
267
293
|
Result checkLimits(HighsPostsolveStack& postsolve_stack);
|
268
294
|
|
269
295
|
void storeCurrentProblemSize();
|
@@ -292,6 +318,8 @@ class HPresolve {
|
|
292
318
|
|
293
319
|
Result runProbing(HighsPostsolveStack& postsolve_stack);
|
294
320
|
|
321
|
+
Result liftingForProbing(HighsPostsolveStack& postsolve_stack);
|
322
|
+
|
295
323
|
Result dominatedColumns(HighsPostsolveStack& postsolve_stack);
|
296
324
|
|
297
325
|
Result doubletonEq(HighsPostsolveStack& postsolve_stack, HighsInt row,
|
@@ -303,10 +331,16 @@ class HPresolve {
|
|
303
331
|
|
304
332
|
Result singletonCol(HighsPostsolveStack& postsolve_stack, HighsInt col);
|
305
333
|
|
334
|
+
void substituteFreeCol(HighsPostsolveStack& postsolve_stack, HighsInt row,
|
335
|
+
HighsInt col, bool relaxRowDualBounds = false);
|
336
|
+
|
306
337
|
Result rowPresolve(HighsPostsolveStack& postsolve_stack, HighsInt row);
|
307
338
|
|
308
339
|
Result colPresolve(HighsPostsolveStack& postsolve_stack, HighsInt col);
|
309
340
|
|
341
|
+
Result detectDominatedCol(HighsPostsolveStack& postsolve_stack, HighsInt col,
|
342
|
+
bool handleSingletonRows = true);
|
343
|
+
|
310
344
|
Result initialRowAndColPresolve(HighsPostsolveStack& postsolve_stack);
|
311
345
|
|
312
346
|
HighsModelStatus run(HighsPostsolveStack& postsolve_stack);
|
@@ -338,12 +372,18 @@ class HPresolve {
|
|
338
372
|
|
339
373
|
Result removeDoubletonEquations(HighsPostsolveStack& postsolve_stack);
|
340
374
|
|
341
|
-
|
375
|
+
Result strengthenInequalities(HighsPostsolveStack& postsolve_stack,
|
376
|
+
HighsInt& num_strenghtened);
|
342
377
|
|
343
378
|
HighsInt detectImpliedIntegers();
|
344
379
|
|
345
380
|
Result detectParallelRowsAndCols(HighsPostsolveStack& postsolve_stack);
|
346
381
|
|
382
|
+
template <typename RowStorageFormat>
|
383
|
+
Result equalityRowAddition(HighsPostsolveStack& postsolve_stack,
|
384
|
+
HighsInt stayrow, HighsInt removerow, double scale,
|
385
|
+
const HighsMatrixSlice<RowStorageFormat>& vector);
|
386
|
+
|
347
387
|
Result sparsify(HighsPostsolveStack& postsolve_stack);
|
348
388
|
|
349
389
|
void setRelaxedImpliedBounds();
|
@@ -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
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
@@ -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
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
@@ -219,6 +216,16 @@ class HighsPostsolveStack {
|
|
219
216
|
void transformToPresolvedSpace(std::vector<double>& primalSol) const;
|
220
217
|
};
|
221
218
|
|
219
|
+
struct SlackColSubstitution {
|
220
|
+
double rhs;
|
221
|
+
HighsInt row;
|
222
|
+
HighsInt col;
|
223
|
+
|
224
|
+
void undo(const HighsOptions& options,
|
225
|
+
const std::vector<Nonzero>& rowValues, HighsSolution& solution,
|
226
|
+
HighsBasis& basis);
|
227
|
+
};
|
228
|
+
|
222
229
|
/// tags for reduction
|
223
230
|
enum class ReductionType : uint8_t {
|
224
231
|
kLinearTransform,
|
@@ -234,6 +241,7 @@ class HighsPostsolveStack {
|
|
234
241
|
kForcingColumnRemovedRow,
|
235
242
|
kDuplicateRow,
|
236
243
|
kDuplicateColumn,
|
244
|
+
kSlackColSubstitution,
|
237
245
|
};
|
238
246
|
|
239
247
|
HighsDataStack reductionValues;
|
@@ -323,6 +331,19 @@ class HighsPostsolveStack {
|
|
323
331
|
reductionAdded(ReductionType::kFreeColSubstitution);
|
324
332
|
}
|
325
333
|
|
334
|
+
template <typename RowStorageFormat>
|
335
|
+
void slackColSubstitution(HighsInt row, HighsInt col, double rhs,
|
336
|
+
const HighsMatrixSlice<RowStorageFormat>& rowVec) {
|
337
|
+
rowValues.clear();
|
338
|
+
for (const HighsSliceNonzero& rowVal : rowVec)
|
339
|
+
rowValues.emplace_back(origColIndex[rowVal.index()], rowVal.value());
|
340
|
+
|
341
|
+
reductionValues.push(
|
342
|
+
SlackColSubstitution{rhs, origRowIndex[row], origColIndex[col]});
|
343
|
+
reductionValues.push(rowValues);
|
344
|
+
reductionAdded(ReductionType::kSlackColSubstitution);
|
345
|
+
}
|
346
|
+
|
326
347
|
template <typename ColStorageFormat>
|
327
348
|
void doubletonEquation(HighsInt row, HighsInt colSubst, HighsInt col,
|
328
349
|
double coefSubst, double coef, double rhs,
|
@@ -710,6 +731,13 @@ class HighsPostsolveStack {
|
|
710
731
|
reduction.undo(options, solution, basis);
|
711
732
|
break;
|
712
733
|
}
|
734
|
+
case ReductionType::kSlackColSubstitution: {
|
735
|
+
SlackColSubstitution reduction;
|
736
|
+
reductionValues.pop(rowValues);
|
737
|
+
reductionValues.pop(reduction);
|
738
|
+
reduction.undo(options, rowValues, solution, basis);
|
739
|
+
break;
|
740
|
+
}
|
713
741
|
default:
|
714
742
|
printf("Reduction case %d not handled\n",
|
715
743
|
int(reductions[i - 1].first));
|
@@ -756,9 +784,7 @@ class HighsPostsolveStack {
|
|
756
784
|
*/
|
757
785
|
|
758
786
|
// Only used for debugging
|
759
|
-
void undoUntil(const HighsOptions& options,
|
760
|
-
const std::vector<HighsInt>& flagRow,
|
761
|
-
const std::vector<HighsInt>& flagCol, HighsSolution& solution,
|
787
|
+
void undoUntil(const HighsOptions& options, HighsSolution& solution,
|
762
788
|
HighsBasis& basis, size_t numReductions) {
|
763
789
|
reductionValues.resetPosition();
|
764
790
|
|
@@ -887,6 +913,13 @@ class HighsPostsolveStack {
|
|
887
913
|
reductionValues.pop(reduction);
|
888
914
|
reduction.undo(options, solution, basis);
|
889
915
|
}
|
916
|
+
case ReductionType::kSlackColSubstitution: {
|
917
|
+
SlackColSubstitution reduction;
|
918
|
+
reductionValues.pop(rowValues);
|
919
|
+
reductionValues.pop(reduction);
|
920
|
+
reduction.undo(options, rowValues, solution, basis);
|
921
|
+
break;
|
922
|
+
}
|
890
923
|
}
|
891
924
|
}
|
892
925
|
#ifdef DEBUG_EXTRA
|
@@ -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
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
@@ -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
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
@@ -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
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
@@ -62,4 +59,4 @@ void updateResidualFast(const HighsLp& lp, const HighsSolution& sol,
|
|
62
59
|
// Allows negative residuals
|
63
60
|
void updateResidualIca(const HighsLp& lp, const HighsSolution& sol,
|
64
61
|
std::vector<double>& residual);
|
65
|
-
#endif
|
62
|
+
#endif
|
@@ -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
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
@@ -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
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
@@ -2,9 +2,9 @@
|
|
2
2
|
#define __SRC_LIB_QPSOLVER_ASM_HPP__
|
3
3
|
|
4
4
|
#include "qpsolver/instance.hpp"
|
5
|
-
#include "qpsolver/statistics.hpp"
|
6
5
|
#include "qpsolver/qpconst.hpp"
|
7
6
|
#include "qpsolver/settings.hpp"
|
7
|
+
#include "qpsolver/statistics.hpp"
|
8
8
|
#include "util/HighsTimer.h"
|
9
9
|
|
10
10
|
enum class QpAsmStatus {
|
@@ -24,7 +24,8 @@ struct QpSolution {
|
|
24
24
|
std::vector<BasisStatus> status_var;
|
25
25
|
std::vector<BasisStatus> status_con;
|
26
26
|
|
27
|
-
QpSolution(Instance& instance)
|
27
|
+
QpSolution(Instance& instance)
|
28
|
+
: primal(QpVector(instance.num_var)),
|
28
29
|
rowactivity(QpVector(instance.num_con)),
|
29
30
|
dualvar(instance.num_var),
|
30
31
|
dualcon(instance.num_con),
|
@@ -32,7 +33,6 @@ struct QpSolution {
|
|
32
33
|
status_con(instance.num_con) {}
|
33
34
|
};
|
34
35
|
|
35
|
-
|
36
36
|
struct QpHotstartInformation {
|
37
37
|
std::vector<HighsInt> active;
|
38
38
|
std::vector<HighsInt> inactive;
|
@@ -44,24 +44,27 @@ struct QpHotstartInformation {
|
|
44
44
|
: primal(QpVector(num_var)), rowact(QpVector(num_row)) {}
|
45
45
|
};
|
46
46
|
|
47
|
-
// the purpose of this is the pure algorithmic solution of a QP instance with
|
48
|
-
// scenarios:
|
49
|
-
// 1) start from a given phase1 solution
|
47
|
+
// the purpose of this is the pure algorithmic solution of a QP instance with
|
48
|
+
// given hotstart information. scenarios: 1) start from a given phase1 solution
|
50
49
|
// 2) start from a user-given hotstart solution
|
51
|
-
// 3) start from a qp solution that was attained from a scaled instance and
|
52
|
-
// 4) start from a qp solution that was attained from a perturbed
|
53
|
-
// 5) start from a qp solution and cleanup after
|
50
|
+
// 3) start from a qp solution that was attained from a scaled instance and
|
51
|
+
// cleanup 4) start from a qp solution that was attained from a perturbed
|
52
|
+
// instance and cleanup 5) start from a qp solution and cleanup after
|
53
|
+
// recomputing basis and reduced hessian factorization
|
54
54
|
|
55
55
|
std::string qpBasisStatusToString(const BasisStatus qp_basis_status);
|
56
56
|
std::string qpModelStatusToString(const QpModelStatus qp_model_status);
|
57
|
-
void assessQpPrimalFeasibility(
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
57
|
+
void assessQpPrimalFeasibility(
|
58
|
+
const Instance& instance, const double primal_feasibility_tolerance,
|
59
|
+
const std::vector<double>& var_value, const std::vector<double>& con_value,
|
60
|
+
HighsInt& num_var_infeasibilities, double& max_var_infeasibility,
|
61
|
+
double& sum_var_infeasibilities, HighsInt& num_con_infeasibilities,
|
62
|
+
double& max_con_infeasibility, double& sum_con_infeasibilities,
|
63
|
+
double& max_con_residual, double& sum_con_residuals);
|
65
64
|
|
65
|
+
QpAsmStatus solveqp_actual(Instance& instance, Settings& settings,
|
66
|
+
QpHotstartInformation& startinfo, Statistics& stats,
|
67
|
+
QpModelStatus& status, QpSolution& solution,
|
68
|
+
HighsTimer& qp_timer);
|
66
69
|
|
67
70
|
#endif
|
@@ -2,18 +2,14 @@
|
|
2
2
|
#define __SRC_LIB_QPSOLVER_QUASS_HPP__
|
3
3
|
|
4
4
|
#include "Highs.h"
|
5
|
+
#include "qpsolver/a_asm.hpp"
|
5
6
|
#include "qpsolver/instance.hpp"
|
6
7
|
#include "qpsolver/qpconst.hpp"
|
7
|
-
#include "qpsolver/a_asm.hpp"
|
8
8
|
#include "qpsolver/settings.hpp"
|
9
9
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
HighsModelStatus& highs_model_status,
|
15
|
-
HighsBasis& highs_basis,
|
16
|
-
HighsSolution& highs_solution,
|
17
|
-
HighsTimer& timer);
|
10
|
+
QpAsmStatus solveqp(Instance& instance, Settings& settings, Statistics& stats,
|
11
|
+
HighsModelStatus& highs_model_status,
|
12
|
+
HighsBasis& highs_basis, HighsSolution& highs_solution,
|
13
|
+
HighsTimer& timer);
|
18
14
|
|
19
15
|
#endif
|
@@ -85,9 +85,8 @@ class Basis {
|
|
85
85
|
HVector col_aq;
|
86
86
|
|
87
87
|
bool reinversion_hint = false;
|
88
|
-
public:
|
89
|
-
|
90
88
|
|
89
|
+
public:
|
91
90
|
Basis(Runtime& rt, std::vector<HighsInt> active,
|
92
91
|
std::vector<BasisStatus> atlower, std::vector<HighsInt> inactive);
|
93
92
|
|
@@ -99,7 +98,9 @@ class Basis {
|
|
99
98
|
|
100
99
|
HighsInt getnumactive() const { return active_constraint_index.size(); };
|
101
100
|
|
102
|
-
HighsInt getnuminactive() const {
|
101
|
+
HighsInt getnuminactive() const {
|
102
|
+
return non_active_constraint_index.size();
|
103
|
+
};
|
103
104
|
|
104
105
|
const std::vector<HighsInt>& getactive() const {
|
105
106
|
return active_constraint_index;
|
@@ -121,28 +122,29 @@ class Basis {
|
|
121
122
|
// Nullspace from now on)
|
122
123
|
void deactivate(HighsInt conid);
|
123
124
|
|
124
|
-
QpSolverStatus activate(const Settings& settings, HighsInt conid,
|
125
|
-
HighsInt nonactivetoremove,
|
125
|
+
QpSolverStatus activate(const Settings& settings, HighsInt conid,
|
126
|
+
BasisStatus atlower, HighsInt nonactivetoremove,
|
127
|
+
Pricing* pricing);
|
126
128
|
|
127
|
-
void updatebasis(const Settings& settings, HighsInt newactivecon,
|
128
|
-
Pricing* pricing);
|
129
|
+
void updatebasis(const Settings& settings, HighsInt newactivecon,
|
130
|
+
HighsInt droppedcon, Pricing* pricing);
|
129
131
|
|
130
132
|
QpVector btran(const QpVector& rhs, bool buffer = false, HighsInt p = -1);
|
131
133
|
|
132
134
|
QpVector ftran(const QpVector& rhs, bool buffer = false, HighsInt q = -1);
|
133
135
|
|
134
136
|
QpVector& btran(const QpVector& rhs, QpVector& target, bool buffer = false,
|
135
|
-
|
137
|
+
HighsInt p = -1);
|
136
138
|
|
137
139
|
QpVector& ftran(const QpVector& rhs, QpVector& target, bool buffer = false,
|
138
|
-
|
140
|
+
HighsInt q = -1);
|
139
141
|
|
140
142
|
QpVector recomputex(const Instance& inst);
|
141
143
|
|
142
144
|
void write(std::string filename);
|
143
145
|
|
144
146
|
QpVector& Ztprod(const QpVector& rhs, QpVector& target, bool buffer = false,
|
145
|
-
|
147
|
+
HighsInt q = -1);
|
146
148
|
|
147
149
|
QpVector& Zprod(const QpVector& rhs, QpVector& target);
|
148
150
|
};
|
@@ -2,11 +2,12 @@
|
|
2
2
|
#define __SRC_LIB_CRASHSOLUTION_HPP__
|
3
3
|
|
4
4
|
#include <cstdlib>
|
5
|
+
|
5
6
|
#include "runtime.hpp"
|
6
7
|
|
7
|
-
inline
|
8
|
-
|
9
|
-
|
8
|
+
inline bool isfreevar(Instance& instance, HighsInt idx) {
|
9
|
+
return instance.var_lo[idx] == -std::numeric_limits<double>::infinity() &&
|
10
|
+
instance.var_up[idx] == std::numeric_limits<double>::infinity();
|
10
11
|
}
|
11
12
|
|
12
13
|
#endif
|
@@ -52,8 +52,9 @@ class DantzigPricing : public Pricing {
|
|
52
52
|
|
53
53
|
public:
|
54
54
|
DantzigPricing(Runtime& rt, Basis& bas, ReducedCosts& rc)
|
55
|
-
|
56
|
-
|
55
|
+
// clang-format off
|
56
|
+
: runtime(rt), basis(bas), redcosts(rc) {};
|
57
|
+
// clang-format on
|
57
58
|
HighsInt price(const QpVector& x, const QpVector& gradient) {
|
58
59
|
HighsInt minidx = chooseconstrainttodrop(redcosts.getReducedCosts());
|
59
60
|
return minidx;
|
@@ -58,7 +58,9 @@ class DevexPricing : public Pricing {
|
|
58
58
|
: runtime(rt),
|
59
59
|
basis(bas),
|
60
60
|
redcosts(rc),
|
61
|
-
|
61
|
+
// clang-format off
|
62
|
+
weights(std::vector<double>(rt.instance.num_var, 1.0)) {};
|
63
|
+
// clang-format on
|
62
64
|
|
63
65
|
// B lambda = g
|
64
66
|
// lambda = inv(B)g
|
@@ -36,7 +36,7 @@ class CholeskyFactor {
|
|
36
36
|
HighsInt min_k_max = min(new_k_max, current_k_max);
|
37
37
|
for (HighsInt i = 0; i < min_k_max; i++) {
|
38
38
|
for (HighsInt j = 0; j < min_k_max; j++) {
|
39
|
-
|
39
|
+
assert(i * (new_k_max) + j < l_size);
|
40
40
|
L[i * (new_k_max) + j] = L_old[i * current_k_max + j];
|
41
41
|
}
|
42
42
|
}
|
@@ -52,7 +52,6 @@ class CholeskyFactor {
|
|
52
52
|
L.resize(current_k_max * current_k_max);
|
53
53
|
}
|
54
54
|
|
55
|
-
|
56
55
|
void recompute() {
|
57
56
|
std::vector<std::vector<double>> orig;
|
58
57
|
HighsInt dim_ns = basis.getinactive().size();
|
@@ -97,7 +96,8 @@ class CholeskyFactor {
|
|
97
96
|
uptodate = true;
|
98
97
|
}
|
99
98
|
|
100
|
-
QpSolverStatus expand(const QpVector& yp, QpVector& gyp, QpVector& l,
|
99
|
+
QpSolverStatus expand(const QpVector& yp, QpVector& gyp, QpVector& l,
|
100
|
+
QpVector& m) {
|
101
101
|
if (!uptodate) {
|
102
102
|
return QpSolverStatus::OK;
|
103
103
|
}
|
@@ -124,14 +124,15 @@ class CholeskyFactor {
|
|
124
124
|
// b*b -a*a = mu
|
125
125
|
// k(b-a) = 1
|
126
126
|
// b + a = k*mu
|
127
|
-
|
127
|
+
// Commented out unreachable code
|
128
128
|
// const double tolerance = 0.001;
|
129
129
|
//
|
130
130
|
// double beta = max(tolerance, sqrt(m.norm2() / L[0] + fabs(mu)));
|
131
131
|
// double k = 1 / (beta + sqrt(beta * beta - mu));
|
132
132
|
// double alpha = k * mu - beta;
|
133
133
|
//
|
134
|
-
// printf("k = %d, alpha = %lf, beta = %lf, k = %lf\n",
|
134
|
+
// printf("k = %d, alpha = %lf, beta = %lf, k = %lf\n",
|
135
|
+
// (int)current_k, alpha,
|
135
136
|
// beta, k);
|
136
137
|
//
|
137
138
|
// a.clear();
|