casadi 3.6.7__cp39-none-macosx_11_0_arm64.whl → 3.7.0__cp39-none-macosx_11_0_arm64.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 +6070 -3038
- casadi/cbc +0 -0
- casadi/clp +0 -0
- casadi/cmake/casadi-config-version.cmake +1 -1
- casadi/cmake/casadi-targets-release.cmake +5 -5
- casadi/cmake/casadi-targets.cmake +7 -7
- casadi/{lib/cmake/tinyxml2/tinyxml2-config-version.cmake → cmake/ghc_filesystem/ghc_filesystem-config-version.cmake} +30 -10
- casadi/cmake/ghc_filesystem/ghc_filesystem-config.cmake +30 -0
- casadi/{lib/cmake/tinyxml2/tinyxml2-static-targets.cmake → cmake/ghc_filesystem/ghc_filesystem-targets.cmake} +10 -10
- casadi/cmake/highs/highs-targets-release.cmake +2 -2
- casadi/cmake/highs/highs-targets.cmake +3 -3
- casadi/cmake/libzip/libzip-config-version.cmake +43 -0
- casadi/cmake/libzip/libzip-config.cmake +69 -0
- casadi/cmake/libzip/libzip-targets-release.cmake +19 -0
- casadi/cmake/libzip/libzip-targets.cmake +107 -0
- 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/osqp/osqp-targets.cmake +2 -2
- casadi/cmake/proxsuite/proxsuiteTargets.cmake +2 -2
- casadi/cmake/qdldl/qdldl-targets.cmake +2 -2
- casadi/cmake/sleqp/sleqp-targets.cmake +2 -2
- casadi/cmake/trlib/trlib-config.cmake +2 -2
- casadi/highs +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 +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/zconf.h +545 -0
- casadi/include/zip.h +528 -0
- casadi/include/zipconf.h +48 -0
- casadi/include/zlib.h +1938 -0
- casadi/libCbc.3.10.11.dylib +0 -0
- casadi/libCbc.3.dylib +0 -0
- casadi/libCbc.dylib +0 -0
- casadi/libCbc.la +1 -1
- casadi/libCbcSolver.3.10.11.dylib +0 -0
- casadi/libCbcSolver.3.dylib +0 -0
- casadi/libCbcSolver.dylib +0 -0
- casadi/libCbcSolver.la +1 -1
- casadi/libCgl.1.10.8.dylib +0 -0
- casadi/libCgl.1.dylib +0 -0
- casadi/libCgl.dylib +0 -0
- casadi/libCgl.la +1 -1
- casadi/libClp.1.14.9.dylib +0 -0
- casadi/libClp.1.dylib +0 -0
- casadi/libClp.dylib +0 -0
- casadi/libClp.la +1 -1
- casadi/libClpSolver.1.14.9.dylib +0 -0
- casadi/libClpSolver.1.dylib +0 -0
- casadi/libClpSolver.dylib +0 -0
- casadi/libClpSolver.la +1 -1
- casadi/libCoinUtils.3.11.10.dylib +0 -0
- casadi/libCoinUtils.3.dylib +0 -0
- casadi/libCoinUtils.dylib +0 -0
- casadi/libOsi.1.13.9.dylib +0 -0
- casadi/libOsi.1.dylib +0 -0
- casadi/libOsi.dylib +0 -0
- casadi/libOsiCbc.3.10.11.dylib +0 -0
- casadi/libOsiCbc.3.dylib +0 -0
- casadi/libOsiCbc.dylib +0 -0
- casadi/libOsiCbc.la +1 -1
- casadi/libOsiClp.1.14.9.dylib +0 -0
- casadi/libOsiClp.1.dylib +0 -0
- casadi/libOsiClp.dylib +0 -0
- casadi/libOsiClp.la +1 -1
- casadi/libOsiCommonTests.1.13.9.dylib +0 -0
- casadi/libOsiCommonTests.1.dylib +0 -0
- casadi/libOsiCommonTests.dylib +0 -0
- casadi/libblasfeo.dylib +0 -0
- casadi/libbonmin.4.8.9.dylib +0 -0
- casadi/libbonmin.4.dylib +0 -0
- casadi/libbonmin.dylib +0 -0
- casadi/libbonmin.la +1 -1
- casadi/libc++.1.0.dylib +0 -0
- casadi/libcasadi.3.7.dylib +0 -0
- casadi/libcasadi.dylib +0 -0
- casadi/libcasadi_archiver_libzip.3.7.dylib +0 -0
- casadi/libcasadi_archiver_libzip.dylib +0 -0
- casadi/libcasadi_conic_cbc.3.7.dylib +0 -0
- casadi/libcasadi_conic_cbc.dylib +0 -0
- casadi/libcasadi_conic_clp.3.7.dylib +0 -0
- casadi/libcasadi_conic_clp.dylib +0 -0
- casadi/libcasadi_conic_cplex.3.7.dylib +0 -0
- casadi/libcasadi_conic_cplex.dylib +0 -0
- casadi/libcasadi_conic_daqp.3.7.dylib +0 -0
- casadi/libcasadi_conic_daqp.dylib +0 -0
- casadi/libcasadi_conic_fatrop.3.7.dylib +0 -0
- casadi/libcasadi_conic_fatrop.dylib +0 -0
- casadi/libcasadi_conic_gurobi.3.7.dylib +0 -0
- casadi/libcasadi_conic_gurobi.dylib +0 -0
- casadi/libcasadi_conic_highs.3.7.dylib +0 -0
- casadi/libcasadi_conic_highs.dylib +0 -0
- casadi/libcasadi_conic_ipqp.3.7.dylib +0 -0
- casadi/libcasadi_conic_ipqp.dylib +0 -0
- casadi/libcasadi_conic_nlpsol.3.7.dylib +0 -0
- casadi/libcasadi_conic_nlpsol.dylib +0 -0
- casadi/libcasadi_conic_osqp.3.7.dylib +0 -0
- casadi/libcasadi_conic_osqp.dylib +0 -0
- casadi/libcasadi_conic_proxqp.3.7.dylib +0 -0
- casadi/libcasadi_conic_proxqp.dylib +0 -0
- casadi/libcasadi_conic_qpoases.3.7.dylib +0 -0
- casadi/libcasadi_conic_qpoases.dylib +0 -0
- casadi/libcasadi_conic_qrqp.3.7.dylib +0 -0
- casadi/libcasadi_conic_qrqp.dylib +0 -0
- casadi/libcasadi_conic_superscs.3.7.dylib +0 -0
- casadi/libcasadi_conic_superscs.dylib +0 -0
- casadi/libcasadi_filesystem_ghc.3.7.dylib +0 -0
- casadi/libcasadi_filesystem_ghc.dylib +0 -0
- casadi/libcasadi_importer_shell.3.7.dylib +0 -0
- casadi/libcasadi_importer_shell.dylib +0 -0
- casadi/libcasadi_integrator_collocation.3.7.dylib +0 -0
- casadi/libcasadi_integrator_collocation.dylib +0 -0
- casadi/libcasadi_integrator_cvodes.3.7.dylib +0 -0
- casadi/libcasadi_integrator_cvodes.dylib +0 -0
- casadi/libcasadi_integrator_idas.3.7.dylib +0 -0
- casadi/libcasadi_integrator_idas.dylib +0 -0
- casadi/libcasadi_integrator_rk.3.7.dylib +0 -0
- casadi/libcasadi_integrator_rk.dylib +0 -0
- casadi/libcasadi_interpolant_bspline.3.7.dylib +0 -0
- casadi/libcasadi_interpolant_bspline.dylib +0 -0
- casadi/libcasadi_interpolant_linear.3.7.dylib +0 -0
- casadi/libcasadi_interpolant_linear.dylib +0 -0
- casadi/libcasadi_linsol_csparse.3.7.dylib +0 -0
- casadi/libcasadi_linsol_csparse.dylib +0 -0
- casadi/libcasadi_linsol_csparsecholesky.3.7.dylib +0 -0
- casadi/libcasadi_linsol_csparsecholesky.dylib +0 -0
- casadi/libcasadi_linsol_lapacklu.3.7.dylib +0 -0
- casadi/libcasadi_linsol_lapacklu.dylib +0 -0
- casadi/libcasadi_linsol_lapackqr.3.7.dylib +0 -0
- casadi/libcasadi_linsol_lapackqr.dylib +0 -0
- casadi/libcasadi_linsol_ldl.3.7.dylib +0 -0
- casadi/libcasadi_linsol_ldl.dylib +0 -0
- casadi/libcasadi_linsol_lsqr.3.7.dylib +0 -0
- casadi/libcasadi_linsol_lsqr.dylib +0 -0
- casadi/libcasadi_linsol_ma27.3.7.dylib +0 -0
- casadi/libcasadi_linsol_ma27.dylib +0 -0
- casadi/libcasadi_linsol_mumps.3.7.dylib +0 -0
- casadi/libcasadi_linsol_mumps.dylib +0 -0
- casadi/libcasadi_linsol_qr.3.7.dylib +0 -0
- casadi/libcasadi_linsol_qr.dylib +0 -0
- casadi/libcasadi_linsol_symbolicqr.3.7.dylib +0 -0
- casadi/libcasadi_linsol_symbolicqr.dylib +0 -0
- casadi/libcasadi_linsol_tridiag.3.7.dylib +0 -0
- casadi/libcasadi_linsol_tridiag.dylib +0 -0
- casadi/libcasadi_nlpsol_ampl.3.7.dylib +0 -0
- casadi/libcasadi_nlpsol_ampl.dylib +0 -0
- casadi/libcasadi_nlpsol_blocksqp.3.7.dylib +0 -0
- casadi/libcasadi_nlpsol_blocksqp.dylib +0 -0
- casadi/libcasadi_nlpsol_bonmin.3.7.dylib +0 -0
- casadi/libcasadi_nlpsol_bonmin.dylib +0 -0
- casadi/libcasadi_nlpsol_fatrop.3.7.dylib +0 -0
- casadi/libcasadi_nlpsol_fatrop.dylib +0 -0
- casadi/libcasadi_nlpsol_feasiblesqpmethod.3.7.dylib +0 -0
- casadi/libcasadi_nlpsol_feasiblesqpmethod.dylib +0 -0
- casadi/libcasadi_nlpsol_ipopt.3.7.dylib +0 -0
- casadi/libcasadi_nlpsol_ipopt.dylib +0 -0
- casadi/libcasadi_nlpsol_knitro.3.7.dylib +0 -0
- casadi/libcasadi_nlpsol_knitro.dylib +0 -0
- casadi/libcasadi_nlpsol_madnlp.3.7.dylib +0 -0
- casadi/libcasadi_nlpsol_madnlp.dylib +0 -0
- casadi/libcasadi_nlpsol_qrsqp.3.7.dylib +0 -0
- casadi/libcasadi_nlpsol_qrsqp.dylib +0 -0
- casadi/libcasadi_nlpsol_scpgen.3.7.dylib +0 -0
- casadi/libcasadi_nlpsol_scpgen.dylib +0 -0
- casadi/libcasadi_nlpsol_sleqp.3.7.dylib +0 -0
- casadi/libcasadi_nlpsol_sleqp.dylib +0 -0
- casadi/libcasadi_nlpsol_snopt.3.7.dylib +0 -0
- casadi/libcasadi_nlpsol_snopt.dylib +0 -0
- casadi/libcasadi_nlpsol_sqpmethod.3.7.dylib +0 -0
- casadi/libcasadi_nlpsol_sqpmethod.dylib +0 -0
- casadi/libcasadi_rootfinder_fast_newton.3.7.dylib +0 -0
- casadi/libcasadi_rootfinder_fast_newton.dylib +0 -0
- casadi/libcasadi_rootfinder_kinsol.3.7.dylib +0 -0
- casadi/libcasadi_rootfinder_kinsol.dylib +0 -0
- casadi/libcasadi_rootfinder_newton.3.7.dylib +0 -0
- casadi/libcasadi_rootfinder_newton.dylib +0 -0
- casadi/libcasadi_rootfinder_nlpsol.3.7.dylib +0 -0
- casadi/libcasadi_rootfinder_nlpsol.dylib +0 -0
- casadi/libcasadi_sundials_common.3.7.dylib +0 -0
- casadi/libcasadi_sundials_common.dylib +0 -0
- casadi/libcasadi_xmlfile_tinyxml.3.7.dylib +0 -0
- casadi/libcasadi_xmlfile_tinyxml.dylib +0 -0
- casadi/libcoinmetis.2.dylib +0 -0
- casadi/libcoinmetis.dylib +0 -0
- casadi/libcoinmumps.3.dylib +0 -0
- casadi/libcoinmumps.dylib +0 -0
- casadi/libcoinmumps.la +1 -1
- casadi/libcplex_adaptor.dylib +0 -0
- casadi/libdaqp.dylib +0 -0
- casadi/libdaqpstat.a +0 -0
- casadi/libfatrop.dylib +0 -0
- casadi/libgcc_s.1.1.dylib +0 -0
- casadi/libgfortran.5.dylib +0 -0
- casadi/libgurobi_adaptor.dylib +0 -0
- casadi/libhighs.1.10.dylib +0 -0
- casadi/libhighs.1.7.dylib +0 -0
- casadi/libhighs.1.dylib +0 -0
- casadi/libhighs.dylib +0 -0
- casadi/libindirect.a +0 -0
- casadi/libipopt.3.dylib +0 -0
- casadi/libipopt.dylib +0 -0
- casadi/libipopt.la +1 -1
- casadi/liblinsys.a +0 -0
- casadi/libmatlab_ipc.dylib +0 -0
- casadi/libosqp.a +0 -0
- casadi/libosqp.dylib +0 -0
- casadi/libqdldl.a +0 -0
- casadi/libqdldl.dylib +0 -0
- casadi/libquadmath.0.dylib +0 -0
- casadi/libsipopt.3.dylib +0 -0
- casadi/libsipopt.dylib +0 -0
- casadi/libsipopt.la +1 -1
- casadi/libsleqp.1.0.1.dylib +0 -0
- casadi/libsleqp.dylib +0 -0
- casadi/libsuperscs.a +0 -0
- casadi/libtrlib.0.4.dylib +0 -0
- casadi/libtrlib.dylib +0 -0
- casadi/libz.1.2.13.dylib +0 -0
- casadi/libz.1.3.1.dylib +0 -0
- casadi/libz.1.dylib +0 -0
- casadi/libz.a +0 -0
- casadi/libz.dylib +0 -0
- casadi/libzip.a +0 -0
- casadi/pkgconfig/casadi.pc +1 -1
- casadi/pkgconfig/coinmumps.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 +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 +442 -399
- casadi/include/tinyxml2.h +0 -2380
- casadi/lib/cmake/tinyxml2/tinyxml2-config.cmake +0 -57
- casadi/lib/cmake/tinyxml2/tinyxml2-static-targets-release.cmake +0 -19
- casadi/lib/libtinyxml2.a +0 -0
- casadi/lib/pkgconfig/tinyxml2.pc +0 -10
- casadi/tools/structure.py +0 -1446
- {casadi-3.6.7.dist-info → casadi-3.7.0.dist-info}/WHEEL +0 -0
@@ -30,9 +30,11 @@ class HighsTaskExecutor {
|
|
30
30
|
public:
|
31
31
|
using cache_aligned = highs::cache_aligned;
|
32
32
|
struct ExecutorHandle {
|
33
|
-
|
33
|
+
HighsTaskExecutor* ptr{nullptr};
|
34
|
+
bool isMain{false};
|
34
35
|
|
35
|
-
|
36
|
+
void dispose();
|
37
|
+
~ExecutorHandle() { dispose(); }
|
36
38
|
};
|
37
39
|
|
38
40
|
private:
|
@@ -52,12 +54,15 @@ class HighsTaskExecutor {
|
|
52
54
|
}
|
53
55
|
#endif
|
54
56
|
|
55
|
-
std::
|
57
|
+
std::atomic<int> referenceCount;
|
58
|
+
std::atomic<bool> hasStopped{false};
|
59
|
+
|
56
60
|
cache_aligned::shared_ptr<HighsSplitDeque::WorkerBunk> workerBunk;
|
57
|
-
std::
|
61
|
+
std::vector<cache_aligned::unique_ptr<HighsSplitDeque>> workerDeques;
|
62
|
+
std::vector<std::thread> workerThreads;
|
58
63
|
|
59
64
|
HighsTask* random_steal_loop(HighsSplitDeque* localDeque) {
|
60
|
-
const int numWorkers = workerDeques.size();
|
65
|
+
const int numWorkers = static_cast<int>(workerDeques.size());
|
61
66
|
|
62
67
|
int numTries = 16 * (numWorkers - 1);
|
63
68
|
|
@@ -85,38 +90,32 @@ class HighsTaskExecutor {
|
|
85
90
|
return nullptr;
|
86
91
|
}
|
87
92
|
|
88
|
-
void run_worker(int workerId) {
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
HighsTask* currentTask = workerBunk->waitForNewTask(localDeque);
|
106
|
-
while (currentTask != nullptr) {
|
107
|
-
localDeque->runStolenTask(currentTask);
|
108
|
-
|
109
|
-
currentTask = random_steal_loop(localDeque);
|
110
|
-
if (currentTask != nullptr) continue;
|
111
|
-
|
112
|
-
currentTask = workerBunk->waitForNewTask(localDeque);
|
93
|
+
static void run_worker(int workerId, HighsTaskExecutor* ptr) {
|
94
|
+
auto& executorHandle = threadLocalExecutorHandle();
|
95
|
+
executorHandle.ptr = ptr;
|
96
|
+
|
97
|
+
if (!ptr->hasStopped) {
|
98
|
+
HighsSplitDeque* localDeque = ptr->workerDeques[workerId].get();
|
99
|
+
threadLocalWorkerDeque() = localDeque;
|
100
|
+
|
101
|
+
HighsTask* currentTask = ptr->workerBunk->waitForNewTask(localDeque);
|
102
|
+
while (currentTask != nullptr) {
|
103
|
+
localDeque->runStolenTask(currentTask);
|
104
|
+
|
105
|
+
currentTask = ptr->random_steal_loop(localDeque);
|
106
|
+
if (currentTask != nullptr) continue;
|
107
|
+
|
108
|
+
currentTask = ptr->workerBunk->waitForNewTask(localDeque);
|
109
|
+
}
|
113
110
|
}
|
111
|
+
|
112
|
+
executorHandle.dispose();
|
114
113
|
}
|
115
114
|
|
116
115
|
public:
|
117
116
|
HighsTaskExecutor(int numThreads) {
|
118
117
|
assert(numThreads > 0);
|
119
|
-
|
118
|
+
|
120
119
|
workerDeques.resize(numThreads);
|
121
120
|
workerBunk = cache_aligned::make_shared<HighsSplitDeque::WorkerBunk>();
|
122
121
|
for (int i = 0; i < numThreads; ++i)
|
@@ -124,8 +123,35 @@ class HighsTaskExecutor {
|
|
124
123
|
workerBunk, workerDeques.data(), i, numThreads);
|
125
124
|
|
126
125
|
threadLocalWorkerDeque() = workerDeques[0].get();
|
127
|
-
|
128
|
-
|
126
|
+
workerThreads.reserve(numThreads - 1);
|
127
|
+
referenceCount.store(numThreads);
|
128
|
+
|
129
|
+
for (int i = 1, numThreads = static_cast<int>(workerDeques.size());
|
130
|
+
i < numThreads; ++i) {
|
131
|
+
workerThreads.emplace_back(&HighsTaskExecutor::run_worker, i, this);
|
132
|
+
}
|
133
|
+
}
|
134
|
+
|
135
|
+
void stopWorkerThreads(bool blocking = false) {
|
136
|
+
// Check if stop has been called already.
|
137
|
+
auto& executorHandle = threadLocalExecutorHandle();
|
138
|
+
if (executorHandle.ptr == nullptr || hasStopped.exchange(true)) return;
|
139
|
+
|
140
|
+
// now inject the null task as termination signal to every worker
|
141
|
+
for (auto& workerDeque : workerDeques) {
|
142
|
+
workerDeque->injectTaskAndNotify(nullptr);
|
143
|
+
}
|
144
|
+
|
145
|
+
// only block if called on main thread, otherwise deadlock may occur
|
146
|
+
if (blocking && executorHandle.isMain) {
|
147
|
+
for (auto& workerThread : workerThreads) {
|
148
|
+
workerThread.join();
|
149
|
+
}
|
150
|
+
} else {
|
151
|
+
for (auto& workerThread : workerThreads) {
|
152
|
+
workerThread.detach();
|
153
|
+
}
|
154
|
+
}
|
129
155
|
}
|
130
156
|
|
131
157
|
static HighsSplitDeque* getThisWorkerDeque() {
|
@@ -138,34 +164,21 @@ class HighsTaskExecutor {
|
|
138
164
|
|
139
165
|
static void initialize(int numThreads) {
|
140
166
|
auto& executorHandle = threadLocalExecutorHandle();
|
141
|
-
if (
|
142
|
-
executorHandle.
|
143
|
-
|
144
|
-
|
145
|
-
std::memory_order_release);
|
167
|
+
if (executorHandle.ptr == nullptr) {
|
168
|
+
executorHandle.isMain = true;
|
169
|
+
executorHandle.ptr = new (cache_aligned::alloc(sizeof(HighsTaskExecutor)))
|
170
|
+
HighsTaskExecutor(numThreads);
|
146
171
|
}
|
147
172
|
}
|
148
173
|
|
174
|
+
// can be called on main or worker threads
|
175
|
+
// blocking ignored unless called on main thread
|
149
176
|
static void shutdown(bool blocking = false) {
|
150
177
|
auto& executorHandle = threadLocalExecutorHandle();
|
151
|
-
if (executorHandle.ptr) {
|
152
|
-
// first spin until every worker has acquired its executor reference
|
153
|
-
while (executorHandle.ptr.use_count() !=
|
154
|
-
(long)executorHandle.ptr->workerDeques.size())
|
155
|
-
HighsSpinMutex::yieldProcessor();
|
156
|
-
// set the active flag to false first with release ordering
|
157
|
-
executorHandle.ptr->mainWorkerHandle.store(nullptr,
|
158
|
-
std::memory_order_release);
|
159
|
-
// now inject the null task as termination signal to every worker
|
160
|
-
for (auto& workerDeque : executorHandle.ptr->workerDeques)
|
161
|
-
workerDeque->injectTaskAndNotify(nullptr);
|
162
|
-
// finally release the global executor reference
|
163
|
-
if (blocking) {
|
164
|
-
while (executorHandle.ptr.use_count() != 1)
|
165
|
-
HighsSpinMutex::yieldProcessor();
|
166
|
-
}
|
167
178
|
|
168
|
-
|
179
|
+
if (executorHandle.ptr != nullptr) {
|
180
|
+
executorHandle.ptr->stopWorkerThreads(blocking);
|
181
|
+
executorHandle.dispose();
|
169
182
|
}
|
170
183
|
}
|
171
184
|
|
@@ -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
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
@@ -20,6 +17,19 @@
|
|
20
17
|
#include "lp_data/HighsSolution.h"
|
21
18
|
#include "pdlp/cupdlp/cupdlp.h"
|
22
19
|
|
20
|
+
#ifdef CUPDLP_GPU
|
21
|
+
#include <cuda_runtime.h>
|
22
|
+
#endif
|
23
|
+
|
24
|
+
// #define CUPDLP_CPP_INIT(var, type, size) \
|
25
|
+
// { \
|
26
|
+
// (var) = (type *)malloc((size) * sizeof(type)); \
|
27
|
+
// if ((var) == NULL) { \
|
28
|
+
// retcode = 1; \
|
29
|
+
// goto exit_cleanup; \
|
30
|
+
// } \
|
31
|
+
// }
|
32
|
+
|
23
33
|
typedef enum CONSTRAINT_TYPE { EQ = 0, LEQ, GEQ, BOUND } constraint_type;
|
24
34
|
|
25
35
|
#define cupdlp_init_int(var, size) \
|
@@ -37,15 +47,16 @@ typedef enum CONSTRAINT_TYPE { EQ = 0, LEQ, GEQ, BOUND } constraint_type;
|
|
37
47
|
#define cupdlp_init_data(var, size) \
|
38
48
|
{ (var) = (CUPDLPdata*)malloc((size) * sizeof(CUPDLPdata)); }
|
39
49
|
|
50
|
+
#ifdef CUPDLP_CPU
|
51
|
+
|
40
52
|
#define cupdlp_init_vec_double(var, size) \
|
41
53
|
{ (var) = (double*)malloc((size) * sizeof(double)); }
|
42
54
|
|
43
|
-
#define cupdlp_init_zero_vec_double(var, size) \
|
44
|
-
{ (var) = (double*)calloc(size, sizeof(double)); }
|
45
|
-
|
46
55
|
#define cupdlp_copy_vec(dst, src, type, size) \
|
47
56
|
memcpy(dst, src, sizeof(type) * (size))
|
48
57
|
|
58
|
+
#endif
|
59
|
+
|
49
60
|
//#define cupdlp_init_csc_cpu(var, size) \
|
50
61
|
// {\
|
51
62
|
// (var) = (CUPDLPcsc*)malloc((size) * sizeof(CUPDLPcsc));\
|
@@ -86,7 +97,7 @@ int formulateLP_highs(const HighsLp& lp, double** cost, int* nCols, int* nRows,
|
|
86
97
|
double** csc_val, double** rhs, double** lower,
|
87
98
|
double** upper, double* offset, double* sign_origin,
|
88
99
|
int* nCols_origin, int** constraint_new_idx,
|
89
|
-
int
|
100
|
+
int** constraint_type);
|
90
101
|
|
91
102
|
cupdlp_int getCupdlpLogLevel(const HighsOptions& options);
|
92
103
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
#ifndef CUPDLP_CS_H
|
2
2
|
#define CUPDLP_CS_H
|
3
3
|
|
4
|
-
#include "cupdlp_defs.h"
|
4
|
+
#include "pdlp/cupdlp/cupdlp_defs.h"
|
5
5
|
|
6
6
|
/* sparse matrix in column-oriented form used in reading mps*/
|
7
7
|
typedef struct cupdlp_cs_sparse {
|
@@ -20,7 +20,7 @@ double cupdlp_dcs_norm(const cupdlp_dcs *A);
|
|
20
20
|
int cupdlp_dcs_print(const cupdlp_dcs *A, int brief);
|
21
21
|
|
22
22
|
/* utilities */
|
23
|
-
void *
|
23
|
+
void *cupdlp_dcs_calloc(int n, size_t size);
|
24
24
|
void *cupdlp_dcs_free(void *p);
|
25
25
|
void *cupdlp_dcs_realloc(void *p, int n, size_t size, int *ok);
|
26
26
|
cupdlp_dcs *cupdlp_dcs_spalloc(int m, int n, int nzmax, int values, int t);
|
@@ -31,7 +31,6 @@ void *cupdlp_dcs_malloc(int n, size_t size);
|
|
31
31
|
/* utilities */
|
32
32
|
double cupdlp_dcs_cumsum(int *p, int *c, int n);
|
33
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
34
|
cupdlp_dcs *cupdlp_dcs_transpose(const cupdlp_dcs *A, int values);
|
36
35
|
|
37
36
|
#define IS_CSC(A) (A && (A->nz == -1))
|
@@ -1,14 +1,18 @@
|
|
1
1
|
#ifndef CUPDLP_H_GUARD
|
2
2
|
#define CUPDLP_H_GUARD
|
3
3
|
|
4
|
-
|
5
|
-
#define
|
4
|
+
// The below already defined in CMake.
|
5
|
+
// #define CUPDLP_CPU
|
6
|
+
// #define CUPDLP_DEBUG (1)
|
6
7
|
#define CUPDLP_TIMER
|
7
8
|
|
8
|
-
#
|
9
|
+
#include "HConfig.h"
|
10
|
+
|
11
|
+
#ifdef CUPDLP_GPU
|
9
12
|
#include "cuda/cupdlp_cuda_kernels.cuh"
|
10
13
|
#include "cuda/cupdlp_cudalinalg.cuh"
|
11
14
|
#endif
|
15
|
+
|
12
16
|
#ifdef __cplusplus
|
13
17
|
extern "C" {
|
14
18
|
#endif
|
@@ -326,8 +330,12 @@ struct CUPDLP_ITERATES {
|
|
326
330
|
cupdlp_float *xLastRestart;
|
327
331
|
cupdlp_float *yLastRestart;
|
328
332
|
|
329
|
-
CUPDLPvec *x
|
330
|
-
|
333
|
+
CUPDLPvec *x[2]; // in iteration k, x^k stored in x[k % 2], x^{k+1} created in x[k + 1 % 2]
|
334
|
+
CUPDLPvec *y[2];
|
335
|
+
CUPDLPvec *ax[2];
|
336
|
+
CUPDLPvec *aty[2];
|
337
|
+
CUPDLPvec *xAverage, *yAverage, *axAverage, *atyAverage;
|
338
|
+
|
331
339
|
};
|
332
340
|
|
333
341
|
struct CUPDLP_STEPSIZE {
|
@@ -411,7 +419,9 @@ struct CUPDLP_WORK {
|
|
411
419
|
#ifndef CUPDLP_CPU
|
412
420
|
// CUDAmv *MV;
|
413
421
|
cusparseHandle_t cusparsehandle;
|
414
|
-
void *
|
422
|
+
void *dBuffer_csc_ATy;
|
423
|
+
void *dBuffer_csr_Ax;
|
424
|
+
|
415
425
|
// cusparseDnVecDescr_t vecbuffer;
|
416
426
|
cublasHandle_t cublashandle;
|
417
427
|
#endif
|
@@ -3,6 +3,7 @@
|
|
3
3
|
|
4
4
|
#include "cupdlp_defs.h"
|
5
5
|
#include "cupdlp_utils.h"
|
6
|
+
|
6
7
|
#ifndef CUPDLP_CPU
|
7
8
|
#include "cuda/cupdlp_cudalinalg.cuh"
|
8
9
|
#endif
|
@@ -162,11 +163,11 @@ void cupdlp_projPos(cupdlp_float *x, const cupdlp_int len);
|
|
162
163
|
/* xout = min(x, 0) */
|
163
164
|
void cupdlp_projNeg(cupdlp_float *x, const cupdlp_int len);
|
164
165
|
|
165
|
-
void cupdlp_haslb(cupdlp_float *haslb, const cupdlp_float *lb,
|
166
|
-
|
166
|
+
// void cupdlp_haslb(cupdlp_float *haslb, const cupdlp_float *lb,
|
167
|
+
// const cupdlp_float bound, const cupdlp_int len);
|
167
168
|
|
168
|
-
void cupdlp_hasub(cupdlp_float *hasub, const cupdlp_float *ub,
|
169
|
-
|
169
|
+
// void cupdlp_hasub(cupdlp_float *hasub, const cupdlp_float *ub,
|
170
|
+
// const cupdlp_float bound, const cupdlp_int len);
|
170
171
|
|
171
172
|
void cupdlp_filterlb(cupdlp_float *x, const cupdlp_float *lb,
|
172
173
|
const cupdlp_float bound, const cupdlp_int len);
|
@@ -180,4 +181,9 @@ void cupdlp_initvec(cupdlp_float *x, const cupdlp_float val,
|
|
180
181
|
void cupdlp_compute_interaction_and_movement(CUPDLPwork *w,
|
181
182
|
cupdlp_float *dMovement,
|
182
183
|
cupdlp_float *dIteraction);
|
184
|
+
|
185
|
+
// WIP
|
186
|
+
// double get_fabs_value(double* vec, int index);
|
187
|
+
// double get_fabs_value(double* vec, int index, int N);
|
188
|
+
|
183
189
|
#endif // CUPDLP_CUPDLP_LINALG_H
|
@@ -5,12 +5,12 @@
|
|
5
5
|
#ifndef CUPDLP_CUPDLP_PROJ_H
|
6
6
|
#define CUPDLP_CUPDLP_PROJ_H
|
7
7
|
|
8
|
-
#include "cupdlp_defs.h"
|
9
|
-
#include "glbopts.h"
|
8
|
+
#include "pdlp/cupdlp/cupdlp_defs.h"
|
9
|
+
#include "pdlp/cupdlp/glbopts.h"
|
10
10
|
|
11
11
|
void PDHG_Project_Bounds(CUPDLPwork *work, double *r);
|
12
12
|
|
13
|
-
void PDHG_Project_Row_Duals(CUPDLPwork *work, double *r);
|
13
|
+
// void PDHG_Project_Row_Duals(CUPDLPwork *work, double *r);
|
14
14
|
|
15
15
|
void PDHG_Restart_Iterate(CUPDLPwork *pdhg);
|
16
16
|
|
@@ -5,13 +5,13 @@
|
|
5
5
|
#ifndef CUPDLP_CUPDLP_RESTART_H
|
6
6
|
#define CUPDLP_CUPDLP_RESTART_H
|
7
7
|
|
8
|
-
#include "cupdlp_defs.h"
|
9
|
-
#include "cupdlp_linalg.h"
|
10
|
-
#include "cupdlp_proj.h"
|
8
|
+
#include "pdlp/cupdlp/cupdlp_defs.h"
|
9
|
+
#include "pdlp/cupdlp/cupdlp_linalg.h"
|
10
|
+
#include "pdlp/cupdlp/cupdlp_proj.h"
|
11
11
|
// #include "cupdlp_scaling.h"
|
12
|
-
#include "cupdlp_step.h"
|
13
|
-
#include "cupdlp_utils.h"
|
14
|
-
#include "glbopts.h"
|
12
|
+
#include "pdlp/cupdlp/cupdlp_step.h"
|
13
|
+
#include "pdlp/cupdlp/cupdlp_utils.h"
|
14
|
+
#include "pdlp/cupdlp/glbopts.h"
|
15
15
|
|
16
16
|
typedef enum {
|
17
17
|
PDHG_NO_RESTART = 0,
|
@@ -0,0 +1,26 @@
|
|
1
|
+
//
|
2
|
+
// Created by LJS on 23-11-30.
|
3
|
+
//
|
4
|
+
|
5
|
+
#ifndef CUPDLP_SCALING_H
|
6
|
+
#define CUPDLP_SCALING_H
|
7
|
+
|
8
|
+
#include "cupdlp_defs.h"
|
9
|
+
#include "glbopts.h"
|
10
|
+
#ifdef __cplusplus
|
11
|
+
extern "C" {
|
12
|
+
#endif
|
13
|
+
|
14
|
+
cupdlp_retcode PDHG_Scale_Data(cupdlp_int log_level, CUPDLPcsc* csc,
|
15
|
+
cupdlp_int ifScaling, CUPDLPscaling* scaling,
|
16
|
+
cupdlp_float* cost, cupdlp_float* lower,
|
17
|
+
cupdlp_float* upper, cupdlp_float* rhs);
|
18
|
+
|
19
|
+
cupdlp_retcode Init_Scaling(cupdlp_int log_level, CUPDLPscaling* scaling,
|
20
|
+
cupdlp_int ncols, cupdlp_int nrows,
|
21
|
+
cupdlp_float* cost, cupdlp_float* rhs);
|
22
|
+
|
23
|
+
#ifdef __cplusplus
|
24
|
+
}
|
25
|
+
#endif
|
26
|
+
#endif // CUPDLP_CUPDLP_SCALING_H
|
@@ -5,8 +5,8 @@
|
|
5
5
|
#ifndef CUPDLP_CUPDLP_SOLVER_H
|
6
6
|
#define CUPDLP_CUPDLP_SOLVER_H
|
7
7
|
|
8
|
-
#include "cupdlp_defs.h"
|
9
|
-
#include "glbopts.h"
|
8
|
+
#include "pdlp/cupdlp/cupdlp_defs.h"
|
9
|
+
#include "pdlp/cupdlp/glbopts.h"
|
10
10
|
|
11
11
|
#ifdef __cplusplus
|
12
12
|
extern "C" {
|
@@ -20,16 +20,16 @@ extern "C" {
|
|
20
20
|
} \
|
21
21
|
}
|
22
22
|
|
23
|
-
void PDHG_Compute_Primal_Feasibility(CUPDLPwork *work,
|
24
|
-
const
|
25
|
-
|
26
|
-
|
23
|
+
void PDHG_Compute_Primal_Feasibility(CUPDLPwork *work, cupdlp_float *primalResidual,
|
24
|
+
const cupdlp_float *ax, const cupdlp_float *x,
|
25
|
+
cupdlp_float *dPrimalFeasibility,
|
26
|
+
cupdlp_float *dPrimalObj);
|
27
27
|
|
28
|
-
void PDHG_Compute_Dual_Feasibility(CUPDLPwork *work,
|
29
|
-
const
|
30
|
-
const
|
31
|
-
|
32
|
-
|
28
|
+
void PDHG_Compute_Dual_Feasibility(CUPDLPwork *work, cupdlp_float *dualResidual,
|
29
|
+
const cupdlp_float *aty, const cupdlp_float *x,
|
30
|
+
const cupdlp_float *y, cupdlp_float *dDualFeasibility,
|
31
|
+
cupdlp_float *dDualObj, cupdlp_float *dComplementarity,
|
32
|
+
cupdlp_float *dSlackPos, cupdlp_float *dSlackNeg);
|
33
33
|
|
34
34
|
void PDHG_Compute_Residuals(CUPDLPwork *work);
|
35
35
|
|
@@ -5,9 +5,9 @@
|
|
5
5
|
#ifndef CUPDLP_CUPDLP_STEP_H
|
6
6
|
#define CUPDLP_CUPDLP_STEP_H
|
7
7
|
|
8
|
-
#include "cupdlp_defs.h"
|
8
|
+
#include "pdlp/cupdlp/cupdlp_defs.h"
|
9
9
|
// #include "cupdlp_scaling.h"
|
10
|
-
#include "glbopts.h"
|
10
|
+
#include "pdlp/cupdlp/glbopts.h"
|
11
11
|
|
12
12
|
cupdlp_retcode PDHG_Power_Method(CUPDLPwork *work, double *lambda);
|
13
13
|
|
@@ -27,7 +27,11 @@ void PDHG_Update_Average(CUPDLPwork *work);
|
|
27
27
|
|
28
28
|
cupdlp_retcode PDHG_Update_Iterate(CUPDLPwork *pdhg);
|
29
29
|
|
30
|
-
void PDHG_primalGradientStep(CUPDLPwork *work,
|
31
|
-
|
30
|
+
void PDHG_primalGradientStep(CUPDLPwork *work, CUPDLPvec *xUpdate,
|
31
|
+
const CUPDLPvec *x, const CUPDLPvec *ATy,
|
32
|
+
cupdlp_float dPrimalStepSize);
|
33
|
+
void PDHG_dualGradientStep(CUPDLPwork *work, CUPDLPvec *yUpdate,
|
34
|
+
const CUPDLPvec *y, const CUPDLPvec *Ax,
|
35
|
+
const CUPDLPvec *AxUpdate, cupdlp_float dDualStepSize);
|
32
36
|
|
33
37
|
#endif // CUPDLP_CUPDLP_STEP_H
|