casadi 3.6.5__cp310-none-win_amd64.whl → 3.6.7__cp310-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/bin/libtinyxml2.dll +0 -0
- casadi/blasfeo.lib +0 -0
- casadi/casadi-cli.exe +0 -0
- casadi/casadi.lib +0 -0
- casadi/casadi.py +739 -308
- casadi/cbc.exe +0 -0
- casadi/clp.exe +0 -0
- casadi/cmake/casadi-config-version.cmake +1 -1
- casadi/cmake/highs/highs-config.cmake +7 -14
- casadi/cmake/highs/highs-targets-release.cmake +13 -13
- casadi/cmake/highs/highs-targets.cmake +11 -9
- 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 +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/dlfcn.h +94 -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/ipopt.lib +0 -0
- casadi/lapack.lib +0 -0
- casadi/lib/libtinyxml2.dll.a +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_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_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/libcoinmetis.la +1 -1
- 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/libdaqpstat.a +0 -0
- casadi/{libFortranHighs.dll → 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.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/libtinyxml2.dll +0 -0
- casadi/libtrlib.dll +0 -0
- casadi/libtrlib.dll.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/sleqp.lib +0 -0
- casadi/spral_ssids.exe +0 -0
- 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 +503 -325
- casadi/include/highs/fortran/highs_fortran_api.mod +0 -0
- casadi/libFortranHighs.dll.a +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 */
|
@@ -154,7 +154,7 @@ class HighsPseudocost {
|
|
154
154
|
|
155
155
|
d = unit_gain - cost_total;
|
156
156
|
++nsamplestotal;
|
157
|
-
cost_total += d / nsamplestotal;
|
157
|
+
cost_total += d / static_cast<double>(nsamplestotal);
|
158
158
|
} else {
|
159
159
|
double unit_gain = -objdelta / delta;
|
160
160
|
double d = unit_gain - pseudocostdown[col];
|
@@ -163,7 +163,7 @@ class HighsPseudocost {
|
|
163
163
|
|
164
164
|
d = unit_gain - cost_total;
|
165
165
|
++nsamplestotal;
|
166
|
-
cost_total += d / nsamplestotal;
|
166
|
+
cost_total += d / static_cast<double>(nsamplestotal);
|
167
167
|
}
|
168
168
|
}
|
169
169
|
|
@@ -171,7 +171,7 @@ class HighsPseudocost {
|
|
171
171
|
bool upbranch) {
|
172
172
|
double d = ninferences - inferences_total;
|
173
173
|
++ninferencestotal;
|
174
|
-
inferences_total += d / ninferencestotal;
|
174
|
+
inferences_total += d / static_cast<double>(ninferencestotal);
|
175
175
|
if (upbranch) {
|
176
176
|
d = ninferences - inferencesup[col];
|
177
177
|
ninferencesup[col] += 1;
|
@@ -202,9 +202,10 @@ class HighsPseudocost {
|
|
202
202
|
double cost;
|
203
203
|
|
204
204
|
if (nsamplesup[col] == 0 || nsamplesup[col] < minreliable) {
|
205
|
-
double weightPs =
|
206
|
-
|
207
|
-
|
205
|
+
double weightPs =
|
206
|
+
nsamplesup[col] == 0
|
207
|
+
? 0
|
208
|
+
: 0.9 + 0.1 * nsamplesup[col] / static_cast<double>(minreliable);
|
208
209
|
cost = weightPs * pseudocostup[col];
|
209
210
|
cost += (1.0 - weightPs) * getAvgPseudocost();
|
210
211
|
} else
|
@@ -217,9 +218,10 @@ class HighsPseudocost {
|
|
217
218
|
double cost;
|
218
219
|
|
219
220
|
if (nsamplesdown[col] == 0 || nsamplesdown[col] < minreliable) {
|
220
|
-
double weightPs = nsamplesdown[col] == 0
|
221
|
-
|
222
|
-
|
221
|
+
double weightPs = nsamplesdown[col] == 0
|
222
|
+
? 0
|
223
|
+
: 0.9 + 0.1 * nsamplesdown[col] /
|
224
|
+
static_cast<double>(minreliable);
|
223
225
|
cost = weightPs * pseudocostdown[col];
|
224
226
|
cost += (1.0 - weightPs) * getAvgPseudocost();
|
225
227
|
} else
|
@@ -257,12 +259,15 @@ class HighsPseudocost {
|
|
257
259
|
|
258
260
|
double cutOffScoreUp =
|
259
261
|
ncutoffsup[col] /
|
260
|
-
std::max(1.0, double(ncutoffsup[col] +
|
262
|
+
std::max(1.0, static_cast<double>(ncutoffsup[col]) +
|
263
|
+
static_cast<double>(nsamplesup[col]));
|
261
264
|
double cutOffScoreDown =
|
262
265
|
ncutoffsdown[col] /
|
263
|
-
std::max(1.0, double(ncutoffsdown[col] +
|
264
|
-
|
265
|
-
|
266
|
+
std::max(1.0, static_cast<double>(ncutoffsdown[col]) +
|
267
|
+
static_cast<double>(nsamplesdown[col]));
|
268
|
+
double avgCutoffs = static_cast<double>(ncutoffstotal) /
|
269
|
+
std::max(1.0, static_cast<double>(ncutoffstotal) +
|
270
|
+
static_cast<double>(nsamplestotal));
|
266
271
|
|
267
272
|
double cutoffScore = std::max(cutOffScoreUp, 1e-6) *
|
268
273
|
std::max(cutOffScoreDown, 1e-6) /
|
@@ -271,7 +276,8 @@ class HighsPseudocost {
|
|
271
276
|
double conflictScoreUp = conflictscoreup[col] / conflict_weight;
|
272
277
|
double conflictScoreDown = conflictscoredown[col] / conflict_weight;
|
273
278
|
double conflictScoreAvg =
|
274
|
-
conflict_avg_score /
|
279
|
+
conflict_avg_score /
|
280
|
+
(conflict_weight * static_cast<double>(conflictscoreup.size()));
|
275
281
|
double conflictScore = std::max(conflictScoreUp, 1e-6) *
|
276
282
|
std::max(conflictScoreDown, 1e-6) /
|
277
283
|
std::max(1e-6, conflictScoreAvg * conflictScoreAvg);
|
@@ -297,15 +303,18 @@ class HighsPseudocost {
|
|
297
303
|
|
298
304
|
double cutOffScoreUp =
|
299
305
|
ncutoffsup[col] /
|
300
|
-
std::max(1.0, double(ncutoffsup[col] +
|
301
|
-
|
302
|
-
|
306
|
+
std::max(1.0, static_cast<double>(ncutoffsup[col]) +
|
307
|
+
static_cast<double>(nsamplesup[col]));
|
308
|
+
double avgCutoffs = static_cast<double>(ncutoffstotal) /
|
309
|
+
std::max(1.0, static_cast<double>(ncutoffstotal) +
|
310
|
+
static_cast<double>(nsamplestotal));
|
303
311
|
|
304
312
|
double cutoffScore = cutOffScoreUp / std::max(1e-6, avgCutoffs);
|
305
313
|
|
306
314
|
double conflictScoreUp = conflictscoreup[col] / conflict_weight;
|
307
315
|
double conflictScoreAvg =
|
308
|
-
conflict_avg_score /
|
316
|
+
conflict_avg_score /
|
317
|
+
(conflict_weight * static_cast<double>(conflictscoreup.size()));
|
309
318
|
double conflictScore = conflictScoreUp / std::max(1e-6, conflictScoreAvg);
|
310
319
|
|
311
320
|
auto mapScore = [](double score) { return 1.0 - 1.0 / (1.0 + score); };
|
@@ -323,15 +332,18 @@ class HighsPseudocost {
|
|
323
332
|
|
324
333
|
double cutOffScoreDown =
|
325
334
|
ncutoffsdown[col] /
|
326
|
-
std::max(1.0, double(ncutoffsdown[col] +
|
327
|
-
|
328
|
-
|
335
|
+
std::max(1.0, static_cast<double>(ncutoffsdown[col]) +
|
336
|
+
static_cast<double>(nsamplesdown[col]));
|
337
|
+
double avgCutoffs = static_cast<double>(ncutoffstotal) /
|
338
|
+
std::max(1.0, static_cast<double>(ncutoffstotal) +
|
339
|
+
static_cast<double>(nsamplestotal));
|
329
340
|
|
330
341
|
double cutoffScore = cutOffScoreDown / std::max(1e-6, avgCutoffs);
|
331
342
|
|
332
343
|
double conflictScoreDown = conflictscoredown[col] / conflict_weight;
|
333
344
|
double conflictScoreAvg =
|
334
|
-
conflict_avg_score /
|
345
|
+
conflict_avg_score /
|
346
|
+
(conflict_weight * static_cast<double>(conflictscoredown.size()));
|
335
347
|
double conflictScore = conflictScoreDown / std::max(1e-6, conflictScoreAvg);
|
336
348
|
|
337
349
|
auto mapScore = [](double score) { return 1.0 - 1.0 / (1.0 + score); };
|
@@ -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 */
|
@@ -96,6 +96,7 @@ class HighsSearch {
|
|
96
96
|
std::shared_ptr<const StabilizerOrbits> stabilizerOrbits = nullptr)
|
97
97
|
: lower_bound(parentlb),
|
98
98
|
estimate(parentestimate),
|
99
|
+
branching_point(0.0),
|
99
100
|
lp_objective(-kHighsInf),
|
100
101
|
other_child_lb(parentlb),
|
101
102
|
nodeBasis(std::move(parentBasis)),
|
@@ -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 */
|
@@ -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 */
|
@@ -20,6 +20,7 @@
|
|
20
20
|
|
21
21
|
#include "lp_data/HConst.h"
|
22
22
|
#include "util/HighsCDouble.h"
|
23
|
+
#include "util/HighsUtils.h"
|
23
24
|
|
24
25
|
// class HighsHessian;
|
25
26
|
|
@@ -37,12 +38,16 @@ class HighsHessian {
|
|
37
38
|
double objectiveValue(const std::vector<double>& solution) const;
|
38
39
|
HighsCDouble objectiveCDoubleValue(const std::vector<double>& solution) const;
|
39
40
|
void exactResize();
|
41
|
+
void deleteCols(const HighsIndexCollection& index_collection);
|
40
42
|
void clear();
|
41
43
|
bool formatOk() const {
|
42
44
|
return (this->format_ == HessianFormat::kTriangular ||
|
43
45
|
this->format_ == HessianFormat::kSquare);
|
44
46
|
};
|
47
|
+
bool scaleOk(const HighsInt cost_scale, const double small_matrix_value,
|
48
|
+
const double large_matrix_value) const;
|
45
49
|
HighsInt numNz() const;
|
50
|
+
|
46
51
|
void print() const;
|
47
52
|
};
|
48
53
|
|
@@ -41,6 +41,8 @@ HighsStatus extractTriangularHessian(const HighsOptions& options,
|
|
41
41
|
void triangularToSquareHessian(const HighsHessian& hessian,
|
42
42
|
vector<HighsInt>& start, vector<HighsInt>& index,
|
43
43
|
vector<double>& value);
|
44
|
+
void completeHessian(const HighsInt full_dim, HighsHessian& hessian);
|
45
|
+
|
44
46
|
void reportHessian(const HighsLogOptions& log_options, const HighsInt dim,
|
45
47
|
const HighsInt num_nz, const HighsInt* start,
|
46
48
|
const HighsInt* index, const double* value);
|
@@ -29,11 +29,20 @@ class HighsModel {
|
|
29
29
|
HighsHessian hessian_;
|
30
30
|
bool operator==(const HighsModel& model) const;
|
31
31
|
bool equalButForNames(const HighsModel& model) const;
|
32
|
-
bool isQp() const { return this->hessian_.dim_; }
|
32
|
+
bool isQp() const { return (this->hessian_.dim_ != 0); }
|
33
33
|
bool isMip() const { return this->lp_.isMip(); }
|
34
34
|
bool isEmpty() const {
|
35
35
|
return (this->lp_.num_col_ == 0 && this->lp_.num_row_ == 0);
|
36
36
|
}
|
37
|
+
bool needsMods(const double infinite_cost) const {
|
38
|
+
return this->lp_.needsMods(infinite_cost);
|
39
|
+
}
|
40
|
+
bool hasMods() const { return this->lp_.hasMods(); }
|
41
|
+
bool userCostScaleOk(const HighsInt user_cost_scale,
|
42
|
+
const double small_matrix_value,
|
43
|
+
const double large_matrix_value,
|
44
|
+
const double infinite_cost) const;
|
45
|
+
void userCostScale(const HighsInt user_cost_scale);
|
37
46
|
void clear();
|
38
47
|
double objectiveValue(const std::vector<double>& solution) const;
|
39
48
|
void objectiveGradient(const std::vector<double>& solution,
|
@@ -114,7 +114,8 @@ class HighsMutex {
|
|
114
114
|
}
|
115
115
|
|
116
116
|
void unlock() {
|
117
|
-
unsigned int prevState = state.fetch_add(
|
117
|
+
unsigned int prevState = state.fetch_add(
|
118
|
+
std::numeric_limits<unsigned int>::max(), std::memory_order_release);
|
118
119
|
|
119
120
|
if (prevState != 1) {
|
120
121
|
unsigned int notifyWorkerId = (prevState >> 1) - 1;
|
@@ -23,8 +23,13 @@ namespace parallel {
|
|
23
23
|
using mutex = HighsMutex;
|
24
24
|
|
25
25
|
inline void initialize_scheduler(int numThreads = 0) {
|
26
|
-
if (numThreads == 0)
|
26
|
+
if (numThreads == 0) {
|
27
|
+
#ifdef HIGHS_NO_DEFAULT_THREADS
|
28
|
+
numThreads = 1;
|
29
|
+
#else
|
27
30
|
numThreads = (std::thread::hardware_concurrency() + 1) / 2;
|
31
|
+
#endif
|
32
|
+
}
|
28
33
|
HighsTaskExecutor::initialize(numThreads);
|
29
34
|
}
|
30
35
|
|
@@ -125,4 +130,4 @@ void for_each(HighsInt start, HighsInt end, F&& f, HighsInt grainSize = 1) {
|
|
125
130
|
|
126
131
|
} // namespace highs
|
127
132
|
|
128
|
-
#endif
|
133
|
+
#endif
|
@@ -109,8 +109,7 @@ class HighsTask {
|
|
109
109
|
}
|
110
110
|
|
111
111
|
void cancel() {
|
112
|
-
|
113
|
-
metadata.stealer.fetch_or(kCancelFlag, std::memory_order_release);
|
112
|
+
metadata.stealer.fetch_or(kCancelFlag, std::memory_order_release);
|
114
113
|
}
|
115
114
|
|
116
115
|
/// run task as owner, if not cancelled
|
@@ -0,0 +1,93 @@
|
|
1
|
+
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
2
|
+
/* */
|
3
|
+
/* This file is part of the HiGHS linear optimization suite */
|
4
|
+
/* */
|
5
|
+
/* Written and engineered 2008-2024 by Julian Hall, Ivet Galabova, */
|
6
|
+
/* Leona Gottwald and Michael Feldmeier */
|
7
|
+
/* */
|
8
|
+
/* Available as open-source under the MIT License */
|
9
|
+
/* */
|
10
|
+
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
11
|
+
/**@file pdlp/CupdlpWrapper.h
|
12
|
+
* @brief
|
13
|
+
*/
|
14
|
+
#ifndef PDLP_CUPDLP_WRAPPER_H_
|
15
|
+
#define PDLP_CUPDLP_WRAPPER_H_
|
16
|
+
|
17
|
+
#include <algorithm>
|
18
|
+
#include <cassert>
|
19
|
+
|
20
|
+
#include "lp_data/HighsSolution.h"
|
21
|
+
#include "pdlp/cupdlp/cupdlp.h"
|
22
|
+
|
23
|
+
typedef enum CONSTRAINT_TYPE { EQ = 0, LEQ, GEQ, BOUND } constraint_type;
|
24
|
+
|
25
|
+
#define cupdlp_init_int(var, size) \
|
26
|
+
{ (var) = (int*)malloc((size) * sizeof(int)); }
|
27
|
+
|
28
|
+
#define cupdlp_init_double(var, size) \
|
29
|
+
{ (var) = (double*)malloc((size) * sizeof(double)); }
|
30
|
+
|
31
|
+
#define cupdlp_init_work(var, size) \
|
32
|
+
{ (var) = (CUPDLPwork*)malloc((size) * sizeof(CUPDLPwork)); }
|
33
|
+
|
34
|
+
#define cupdlp_init_problem(var, size) \
|
35
|
+
{ (var) = (CUPDLPproblem*)malloc((size) * sizeof(CUPDLPproblem)); }
|
36
|
+
|
37
|
+
#define cupdlp_init_data(var, size) \
|
38
|
+
{ (var) = (CUPDLPdata*)malloc((size) * sizeof(CUPDLPdata)); }
|
39
|
+
|
40
|
+
#define cupdlp_init_vec_double(var, size) \
|
41
|
+
{ (var) = (double*)malloc((size) * sizeof(double)); }
|
42
|
+
|
43
|
+
#define cupdlp_init_zero_vec_double(var, size) \
|
44
|
+
{ (var) = (double*)calloc(size, sizeof(double)); }
|
45
|
+
|
46
|
+
#define cupdlp_copy_vec(dst, src, type, size) \
|
47
|
+
memcpy(dst, src, sizeof(type) * (size))
|
48
|
+
|
49
|
+
//#define cupdlp_init_csc_cpu(var, size) \
|
50
|
+
// {\
|
51
|
+
// (var) = (CUPDLPcsc*)malloc((size) * sizeof(CUPDLPcsc));\
|
52
|
+
// }
|
53
|
+
|
54
|
+
cupdlp_retcode problem_create(CUPDLPproblem** prob);
|
55
|
+
// cupdlp_retcode csc_create(CUPDLPcsc **csc_cpu);
|
56
|
+
|
57
|
+
cupdlp_retcode problem_alloc(
|
58
|
+
CUPDLPproblem* prob, cupdlp_int nRows, cupdlp_int nCols, cupdlp_int nEqs,
|
59
|
+
cupdlp_float* cost, cupdlp_float offset, cupdlp_float sign_origin,
|
60
|
+
void* matrix, CUPDLP_MATRIX_FORMAT src_matrix_format,
|
61
|
+
CUPDLP_MATRIX_FORMAT dst_matrix_format, cupdlp_float* rhs,
|
62
|
+
cupdlp_float* lower, cupdlp_float* upper, cupdlp_float* alloc_matrix_time,
|
63
|
+
cupdlp_float* copy_vec_time);
|
64
|
+
|
65
|
+
cupdlp_retcode data_alloc(CUPDLPdata* data, cupdlp_int nRows, cupdlp_int nCols,
|
66
|
+
void* matrix, CUPDLP_MATRIX_FORMAT src_matrix_format,
|
67
|
+
CUPDLP_MATRIX_FORMAT dst_matrix_format);
|
68
|
+
|
69
|
+
double infNorm(double* x, cupdlp_int n);
|
70
|
+
|
71
|
+
void cupdlp_haslb(cupdlp_float* haslb, const cupdlp_float* lb,
|
72
|
+
const cupdlp_float bound, const cupdlp_int len);
|
73
|
+
|
74
|
+
void cupdlp_hasub(cupdlp_float* hasub, const cupdlp_float* ub,
|
75
|
+
const cupdlp_float bound, const cupdlp_int len);
|
76
|
+
|
77
|
+
HighsStatus solveLpCupdlp(HighsLpSolverObject& solver_object);
|
78
|
+
|
79
|
+
HighsStatus solveLpCupdlp(const HighsOptions& options, HighsTimer& timer,
|
80
|
+
const HighsLp& lp, HighsBasis& highs_basis,
|
81
|
+
HighsSolution& highs_solution,
|
82
|
+
HighsModelStatus& model_status, HighsInfo& highs_info,
|
83
|
+
HighsCallback& callback);
|
84
|
+
int formulateLP_highs(const HighsLp& lp, double** cost, int* nCols, int* nRows,
|
85
|
+
int* nnz, int* nEqs, int** csc_beg, int** csc_idx,
|
86
|
+
double** csc_val, double** rhs, double** lower,
|
87
|
+
double** upper, double* offset, double* sign_origin,
|
88
|
+
int* nCols_origin, int** constraint_new_idx,
|
89
|
+
int* constraint_type);
|
90
|
+
|
91
|
+
cupdlp_int getCupdlpLogLevel(const HighsOptions& options);
|
92
|
+
|
93
|
+
#endif
|
@@ -0,0 +1,41 @@
|
|
1
|
+
#ifndef CUPDLP_CS_H
|
2
|
+
#define CUPDLP_CS_H
|
3
|
+
|
4
|
+
#include "cupdlp_defs.h"
|
5
|
+
|
6
|
+
/* sparse matrix in column-oriented form used in reading mps*/
|
7
|
+
typedef struct cupdlp_cs_sparse {
|
8
|
+
int nzmax;
|
9
|
+
int m; /* number of rows */
|
10
|
+
int n; /* number of columns */
|
11
|
+
int *p; /* column pointers (size n+1) or col indices (size nzmax) */
|
12
|
+
int *i; /* row indices, size nzmax */
|
13
|
+
double *x; /* numerical values, size nzmax */
|
14
|
+
int nz; /* # of entries in triplet matrix, -1 for compressed-col */
|
15
|
+
} cupdlp_dcs;
|
16
|
+
|
17
|
+
int cupdlp_dcs_entry(cupdlp_dcs *T, int i, int j, double x);
|
18
|
+
cupdlp_dcs *cupdlp_dcs_compress(const cupdlp_dcs *T);
|
19
|
+
double cupdlp_dcs_norm(const cupdlp_dcs *A);
|
20
|
+
int cupdlp_dcs_print(const cupdlp_dcs *A, int brief);
|
21
|
+
|
22
|
+
/* utilities */
|
23
|
+
void *_dcs_calloc(int n, size_t size);
|
24
|
+
void *cupdlp_dcs_free(void *p);
|
25
|
+
void *cupdlp_dcs_realloc(void *p, int n, size_t size, int *ok);
|
26
|
+
cupdlp_dcs *cupdlp_dcs_spalloc(int m, int n, int nzmax, int values, int t);
|
27
|
+
cupdlp_dcs *cupdlp_dcs_spfree(cupdlp_dcs *A);
|
28
|
+
int cupdlp_dcs_sprealloc(cupdlp_dcs *A, int nzmax);
|
29
|
+
void *cupdlp_dcs_malloc(int n, size_t size);
|
30
|
+
|
31
|
+
/* utilities */
|
32
|
+
double cupdlp_dcs_cumsum(int *p, int *c, int n);
|
33
|
+
cupdlp_dcs *cupdlp_dcs_done(cupdlp_dcs *C, void *w, void *x, int ok);
|
34
|
+
int *cupdlp_dcs_idone(int *p, cupdlp_dcs *C, void *w, int ok);
|
35
|
+
cupdlp_dcs *cupdlp_dcs_transpose(const cupdlp_dcs *A, int values);
|
36
|
+
|
37
|
+
#define IS_CSC(A) (A && (A->nz == -1))
|
38
|
+
#define IS_TRIPLET(A) (A && (A->nz >= 0))
|
39
|
+
/*--------------------------------------------------------------------------*/
|
40
|
+
|
41
|
+
#endif
|