casadi 3.6.7__cp311-none-manylinux2014_i686.whl → 3.7.0__cp311-none-manylinux2014_i686.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.
Files changed (380) hide show
  1. casadi/_casadi.so +0 -0
  2. casadi/casadi-cli +0 -0
  3. casadi/casadi.py +6070 -3038
  4. casadi/cbc +0 -0
  5. casadi/clp +0 -0
  6. casadi/cmake/casadi-config-version.cmake +1 -1
  7. casadi/cmake/casadi-targets-release.cmake +5 -5
  8. casadi/cmake/casadi-targets.cmake +5 -5
  9. casadi/{lib/cmake/tinyxml2/tinyxml2-config-version.cmake → cmake/ghc_filesystem/ghc_filesystem-config-version.cmake} +30 -10
  10. casadi/cmake/ghc_filesystem/ghc_filesystem-config.cmake +30 -0
  11. casadi/cmake/ghc_filesystem/ghc_filesystem-targets.cmake +107 -0
  12. casadi/cmake/highs/highs-targets-release.cmake +2 -2
  13. casadi/cmake/highs/highs-targets.cmake +1 -1
  14. casadi/cmake/libzip/libzip-config-version.cmake +48 -0
  15. casadi/cmake/libzip/libzip-config.cmake +69 -0
  16. casadi/cmake/libzip/libzip-targets-release.cmake +19 -0
  17. casadi/{lib/cmake/tinyxml2/tinyxml2-static-targets.cmake → cmake/libzip/libzip-targets.cmake} +11 -7
  18. casadi/cmake/libzip/modules/FindMbedTLS.cmake +141 -0
  19. casadi/cmake/libzip/modules/FindNettle.cmake +141 -0
  20. casadi/cmake/libzip/modules/Findzstd.cmake +186 -0
  21. casadi/highs +0 -0
  22. casadi/include/casadi/casadi.i +194 -44
  23. casadi/include/casadi/config.h +11 -11
  24. casadi/include/casadi/core/archiver.hpp +58 -0
  25. casadi/include/casadi/core/blazing_spline.hpp +47 -0
  26. casadi/include/casadi/core/calculus.hpp +57 -2
  27. casadi/include/casadi/core/casadi_common.hpp +37 -0
  28. casadi/include/casadi/core/casadi_meta.hpp +15 -0
  29. casadi/include/casadi/core/casadi_misc.hpp +7 -0
  30. casadi/include/casadi/core/code_generator.hpp +95 -17
  31. casadi/include/casadi/core/core.hpp +5 -0
  32. casadi/include/casadi/core/dae_builder.hpp +283 -141
  33. casadi/include/casadi/core/dm.hpp +3 -0
  34. casadi/include/casadi/core/filesystem.hpp +58 -0
  35. casadi/include/casadi/core/fmu.hpp +51 -16
  36. casadi/include/casadi/core/function.hpp +19 -0
  37. casadi/include/casadi/core/generic_matrix.hpp +214 -7
  38. casadi/include/casadi/core/generic_shared.hpp +318 -0
  39. casadi/include/casadi/core/generic_shared_impl.hpp +214 -0
  40. casadi/include/casadi/core/generic_shared_internal.hpp +215 -0
  41. casadi/include/casadi/core/generic_type.hpp +3 -0
  42. casadi/include/casadi/core/global_options.hpp +10 -0
  43. casadi/include/casadi/core/integrator.hpp +41 -7
  44. casadi/include/casadi/core/matrix_decl.hpp +67 -0
  45. casadi/include/casadi/core/mx.hpp +63 -2
  46. casadi/include/casadi/core/options.hpp +6 -3
  47. casadi/include/casadi/core/optistack.hpp +43 -9
  48. casadi/include/casadi/core/printable.hpp +8 -0
  49. casadi/include/casadi/core/resource.hpp +107 -0
  50. casadi/include/casadi/core/runtime/casadi_blazing_1d_boor_eval.hpp +112 -0
  51. casadi/include/casadi/core/runtime/casadi_blazing_2d_boor_eval.hpp +311 -0
  52. casadi/include/casadi/core/runtime/casadi_blazing_3d_boor_eval.hpp +645 -0
  53. casadi/include/casadi/core/runtime/casadi_blazing_de_boor.hpp +101 -0
  54. casadi/include/casadi/core/runtime/casadi_nlp.hpp +8 -2
  55. casadi/include/casadi/core/runtime/casadi_printme.hpp +25 -0
  56. casadi/include/casadi/core/serializer.hpp +12 -4
  57. casadi/include/casadi/core/serializing_stream.hpp +3 -0
  58. casadi/include/casadi/core/shared_object.hpp +73 -161
  59. casadi/include/casadi/core/sparsity.hpp +13 -1
  60. casadi/include/casadi/core/sparsity_interface.hpp +19 -1
  61. casadi/include/casadi/core/sx.hpp +41 -0
  62. casadi/include/casadi/core/sx_elem.hpp +25 -0
  63. casadi/include/casadi/core/xml_node.hpp +5 -0
  64. casadi/include/casadi/doc.i +9703 -6539
  65. casadi/include/casadi/doc_merged.i +6483 -4447
  66. casadi/include/casadi/valgrind-casadi.supp +138 -0
  67. casadi/include/casadi/valgrind-python.supp +2470 -0
  68. casadi/include/highs/HConfig.h +6 -4
  69. casadi/include/highs/Highs.h +260 -86
  70. casadi/include/highs/filereaderlp/reader.hpp +10 -10
  71. casadi/include/highs/interfaces/highs_c_api.h +195 -22
  72. casadi/include/highs/io/Filereader.h +4 -6
  73. casadi/include/highs/io/FilereaderEms.h +0 -3
  74. casadi/include/highs/io/FilereaderLp.h +0 -3
  75. casadi/include/highs/io/FilereaderMps.h +0 -3
  76. casadi/include/highs/io/HMPSIO.h +1 -4
  77. casadi/include/highs/io/HMpsFF.h +8 -5
  78. casadi/include/highs/io/HighsIO.h +10 -5
  79. casadi/include/highs/io/LoadOptions.h +0 -3
  80. casadi/include/highs/ipm/IpxSolution.h +0 -3
  81. casadi/include/highs/ipm/IpxWrapper.h +4 -7
  82. casadi/include/highs/ipm/ipx/control.h +1 -0
  83. casadi/include/highs/ipm/ipx/ipx_parameters.h +1 -0
  84. casadi/include/highs/ipm/ipx/lp_solver.h +3 -2
  85. casadi/include/highs/ipm/ipx/model.h +7 -3
  86. casadi/include/highs/lp_data/HConst.h +21 -6
  87. casadi/include/highs/lp_data/HStruct.h +40 -4
  88. casadi/include/highs/lp_data/HighsAnalysis.h +0 -3
  89. casadi/include/highs/lp_data/HighsCallback.h +10 -3
  90. casadi/include/highs/lp_data/HighsCallbackStruct.h +3 -3
  91. casadi/include/highs/lp_data/HighsDebug.h +0 -3
  92. casadi/include/highs/lp_data/HighsIis.h +62 -0
  93. casadi/include/highs/lp_data/HighsInfo.h +50 -43
  94. casadi/include/highs/lp_data/HighsInfoDebug.h +0 -3
  95. casadi/include/highs/lp_data/HighsLp.h +2 -3
  96. casadi/include/highs/lp_data/HighsLpSolverObject.h +0 -3
  97. casadi/include/highs/lp_data/HighsLpUtils.h +38 -6
  98. casadi/include/highs/lp_data/HighsModelUtils.h +21 -18
  99. casadi/include/highs/lp_data/HighsOptions.h +134 -22
  100. casadi/include/highs/lp_data/HighsRanging.h +0 -3
  101. casadi/include/highs/lp_data/HighsSolution.h +10 -3
  102. casadi/include/highs/lp_data/HighsSolutionDebug.h +0 -3
  103. casadi/include/highs/lp_data/HighsSolve.h +0 -3
  104. casadi/include/highs/lp_data/HighsStatus.h +0 -3
  105. casadi/include/highs/mip/HighsCliqueTable.h +3 -3
  106. casadi/include/highs/mip/HighsConflictPool.h +0 -3
  107. casadi/include/highs/mip/HighsCutGeneration.h +13 -3
  108. casadi/include/highs/mip/HighsCutPool.h +0 -3
  109. casadi/include/highs/mip/HighsDebugSol.h +0 -3
  110. casadi/include/highs/mip/HighsDomain.h +16 -4
  111. casadi/include/highs/mip/HighsDomainChange.h +0 -3
  112. casadi/include/highs/mip/HighsDynamicRowMatrix.h +0 -3
  113. casadi/include/highs/mip/HighsGFkSolve.h +3 -6
  114. casadi/include/highs/mip/HighsImplications.h +29 -5
  115. casadi/include/highs/mip/HighsLpAggregator.h +0 -3
  116. casadi/include/highs/mip/HighsLpRelaxation.h +0 -3
  117. casadi/include/highs/mip/HighsMipAnalysis.h +52 -0
  118. casadi/include/highs/mip/HighsMipSolver.h +11 -4
  119. casadi/include/highs/mip/HighsMipSolverData.h +67 -6
  120. casadi/include/highs/mip/HighsModkSeparator.h +1 -4
  121. casadi/include/highs/mip/HighsNodeQueue.h +0 -3
  122. casadi/include/highs/mip/HighsObjectiveFunction.h +0 -3
  123. casadi/include/highs/mip/HighsPathSeparator.h +1 -4
  124. casadi/include/highs/mip/HighsPrimalHeuristics.h +7 -5
  125. casadi/include/highs/mip/HighsPseudocost.h +0 -3
  126. casadi/include/highs/mip/HighsRedcostFixing.h +0 -3
  127. casadi/include/highs/mip/HighsSearch.h +0 -3
  128. casadi/include/highs/mip/HighsSeparation.h +0 -3
  129. casadi/include/highs/mip/HighsSeparator.h +1 -5
  130. casadi/include/highs/mip/HighsTableauSeparator.h +1 -4
  131. casadi/include/highs/mip/HighsTransformedLp.h +0 -3
  132. casadi/include/highs/mip/MipTimer.h +471 -0
  133. casadi/include/highs/parallel/HighsBinarySemaphore.h +1 -1
  134. casadi/include/highs/parallel/HighsCacheAlign.h +1 -1
  135. casadi/include/highs/parallel/HighsCombinable.h +1 -1
  136. casadi/include/highs/parallel/HighsMutex.h +1 -1
  137. casadi/include/highs/parallel/HighsRaceTimer.h +1 -1
  138. casadi/include/highs/parallel/HighsSchedulerConstants.h +1 -1
  139. casadi/include/highs/parallel/HighsSplitDeque.h +1 -1
  140. casadi/include/highs/parallel/HighsTaskExecutor.h +68 -55
  141. casadi/include/highs/pdlp/CupdlpWrapper.h +18 -7
  142. casadi/include/highs/pdlp/cupdlp/cupdlp_cs.h +2 -3
  143. casadi/include/highs/pdlp/cupdlp/cupdlp_defs.h +16 -6
  144. casadi/include/highs/pdlp/cupdlp/cupdlp_linalg.h +10 -4
  145. casadi/include/highs/pdlp/cupdlp/cupdlp_proj.h +3 -3
  146. casadi/include/highs/pdlp/cupdlp/cupdlp_restart.h +6 -6
  147. casadi/include/highs/pdlp/cupdlp/cupdlp_scaling.h +26 -0
  148. casadi/include/highs/pdlp/cupdlp/cupdlp_solver.h +11 -11
  149. casadi/include/highs/pdlp/cupdlp/cupdlp_step.h +8 -4
  150. casadi/include/highs/pdlp/cupdlp/cupdlp_utils.c +253 -172
  151. casadi/include/highs/presolve/HPresolve.h +50 -10
  152. casadi/include/highs/presolve/HPresolveAnalysis.h +0 -3
  153. casadi/include/highs/presolve/HighsPostsolveStack.h +39 -6
  154. casadi/include/highs/presolve/HighsSymmetry.h +0 -3
  155. casadi/include/highs/presolve/ICrash.h +0 -3
  156. casadi/include/highs/presolve/ICrashUtil.h +1 -4
  157. casadi/include/highs/presolve/ICrashX.h +0 -3
  158. casadi/include/highs/presolve/PresolveComponent.h +0 -3
  159. casadi/include/highs/qpsolver/a_asm.hpp +20 -17
  160. casadi/include/highs/qpsolver/a_quass.hpp +5 -9
  161. casadi/include/highs/qpsolver/basis.hpp +12 -10
  162. casadi/include/highs/qpsolver/crashsolution.hpp +4 -3
  163. casadi/include/highs/qpsolver/dantzigpricing.hpp +3 -2
  164. casadi/include/highs/qpsolver/devexpricing.hpp +3 -1
  165. casadi/include/highs/qpsolver/factor.hpp +6 -5
  166. casadi/include/highs/qpsolver/feasibility_bounded.hpp +31 -29
  167. casadi/include/highs/qpsolver/feasibility_highs.hpp +94 -70
  168. casadi/include/highs/qpsolver/gradient.hpp +1 -1
  169. casadi/include/highs/qpsolver/instance.hpp +1 -1
  170. casadi/include/highs/qpsolver/pricing.hpp +2 -2
  171. casadi/include/highs/qpsolver/qpconst.hpp +2 -2
  172. casadi/include/highs/qpsolver/quass.hpp +2 -2
  173. casadi/include/highs/qpsolver/runtime.hpp +2 -2
  174. casadi/include/highs/qpsolver/settings.hpp +20 -8
  175. casadi/include/highs/qpsolver/steepestedgepricing.hpp +38 -39
  176. casadi/include/highs/simplex/HApp.h +88 -34
  177. casadi/include/highs/simplex/HEkk.h +24 -11
  178. casadi/include/highs/simplex/HEkkDual.h +2 -4
  179. casadi/include/highs/simplex/HEkkDualRHS.h +0 -3
  180. casadi/include/highs/simplex/HEkkDualRow.h +0 -3
  181. casadi/include/highs/simplex/HEkkPrimal.h +1 -5
  182. casadi/include/highs/simplex/HSimplex.h +0 -3
  183. casadi/include/highs/simplex/HSimplexDebug.h +0 -3
  184. casadi/include/highs/simplex/HSimplexNla.h +0 -26
  185. casadi/include/highs/simplex/HSimplexReport.h +0 -3
  186. casadi/include/highs/simplex/HighsSimplexAnalysis.h +5 -8
  187. casadi/include/highs/simplex/SimplexConst.h +10 -11
  188. casadi/include/highs/simplex/SimplexStruct.h +9 -12
  189. casadi/include/highs/simplex/SimplexTimer.h +83 -101
  190. casadi/include/highs/test/DevKkt.h +0 -3
  191. casadi/include/highs/test/KktCh2.h +0 -3
  192. casadi/include/highs/util/FactorTimer.h +39 -64
  193. casadi/include/highs/util/HFactor.h +4 -4
  194. casadi/include/highs/util/HFactorConst.h +0 -3
  195. casadi/include/highs/util/HFactorDebug.h +0 -3
  196. casadi/include/highs/util/HSet.h +0 -3
  197. casadi/include/highs/util/HVector.h +0 -3
  198. casadi/include/highs/util/HVectorBase.h +1 -4
  199. casadi/include/highs/util/HighsCDouble.h +12 -3
  200. casadi/include/highs/util/HighsComponent.h +0 -3
  201. casadi/include/highs/util/HighsDataStack.h +0 -3
  202. casadi/include/highs/util/HighsDisjointSets.h +0 -3
  203. casadi/include/highs/util/HighsHash.h +9 -12
  204. casadi/include/highs/util/HighsHashTree.h +15 -11
  205. casadi/include/highs/util/HighsInt.h +0 -3
  206. casadi/include/highs/util/HighsIntegers.h +0 -3
  207. casadi/include/highs/util/HighsLinearSumBounds.h +0 -3
  208. casadi/include/highs/util/HighsMatrixPic.h +0 -3
  209. casadi/include/highs/util/HighsMatrixSlice.h +3 -6
  210. casadi/include/highs/util/HighsMatrixUtils.h +0 -3
  211. casadi/include/highs/util/HighsMemoryAllocation.h +11 -3
  212. casadi/include/highs/util/HighsRandom.h +3 -6
  213. casadi/include/highs/util/HighsRbTree.h +0 -3
  214. casadi/include/highs/util/HighsSort.h +0 -3
  215. casadi/include/highs/util/HighsSparseMatrix.h +6 -3
  216. casadi/include/highs/util/HighsSparseVectorSum.h +0 -3
  217. casadi/include/highs/util/HighsSplay.h +0 -3
  218. casadi/include/highs/util/HighsTimer.h +94 -56
  219. casadi/include/highs/util/HighsUtils.h +10 -3
  220. casadi/include/highs/util/stringutil.h +14 -12
  221. casadi/include/licenses/ghc-external/LICENSE +19 -0
  222. casadi/include/licenses/libz-external/LICENSE +22 -0
  223. casadi/include/licenses/libz-external/contrib/dotzlib/LICENSE_1_0.txt +23 -0
  224. casadi/include/licenses/libzip-external/LICENSE +31 -0
  225. casadi/libCbcSolver.so +0 -0
  226. casadi/libCbcSolver.so.3 +0 -0
  227. casadi/libCbcSolver.so.3.10.11 +0 -0
  228. casadi/libClpSolver.so +0 -0
  229. casadi/libClpSolver.so.1 +0 -0
  230. casadi/libClpSolver.so.1.14.9 +0 -0
  231. casadi/libbonmin.so +0 -0
  232. casadi/libbonmin.so.4 +0 -0
  233. casadi/libbonmin.so.4.8.9 +0 -0
  234. casadi/libcasadi.so +0 -0
  235. casadi/libcasadi.so.3.7 +0 -0
  236. casadi/libcasadi_archiver_libzip.so +0 -0
  237. casadi/libcasadi_archiver_libzip.so.3.7 +0 -0
  238. casadi/libcasadi_conic_cbc.so +0 -0
  239. casadi/libcasadi_conic_cbc.so.3.7 +0 -0
  240. casadi/libcasadi_conic_clp.so +0 -0
  241. casadi/libcasadi_conic_clp.so.3.7 +0 -0
  242. casadi/libcasadi_conic_daqp.so +0 -0
  243. casadi/libcasadi_conic_daqp.so.3.7 +0 -0
  244. casadi/libcasadi_conic_gurobi.so +0 -0
  245. casadi/libcasadi_conic_gurobi.so.3.7 +0 -0
  246. casadi/libcasadi_conic_highs.so +0 -0
  247. casadi/libcasadi_conic_highs.so.3.7 +0 -0
  248. casadi/libcasadi_conic_ipqp.so +0 -0
  249. casadi/libcasadi_conic_ipqp.so.3.7 +0 -0
  250. casadi/libcasadi_conic_nlpsol.so +0 -0
  251. casadi/libcasadi_conic_nlpsol.so.3.7 +0 -0
  252. casadi/libcasadi_conic_osqp.so +0 -0
  253. casadi/libcasadi_conic_osqp.so.3.7 +0 -0
  254. casadi/libcasadi_conic_proxqp.so +0 -0
  255. casadi/libcasadi_conic_proxqp.so.3.7 +0 -0
  256. casadi/libcasadi_conic_qpoases.so +0 -0
  257. casadi/libcasadi_conic_qpoases.so.3.7 +0 -0
  258. casadi/libcasadi_conic_qrqp.so +0 -0
  259. casadi/libcasadi_conic_qrqp.so.3.7 +0 -0
  260. casadi/libcasadi_conic_superscs.so +0 -0
  261. casadi/libcasadi_conic_superscs.so.3.7 +0 -0
  262. casadi/libcasadi_filesystem_ghc.so +0 -0
  263. casadi/libcasadi_filesystem_ghc.so.3.7 +0 -0
  264. casadi/libcasadi_importer_shell.so +0 -0
  265. casadi/libcasadi_importer_shell.so.3.7 +0 -0
  266. casadi/libcasadi_integrator_collocation.so +0 -0
  267. casadi/libcasadi_integrator_collocation.so.3.7 +0 -0
  268. casadi/libcasadi_integrator_cvodes.so +0 -0
  269. casadi/libcasadi_integrator_cvodes.so.3.7 +0 -0
  270. casadi/libcasadi_integrator_idas.so +0 -0
  271. casadi/libcasadi_integrator_idas.so.3.7 +0 -0
  272. casadi/libcasadi_integrator_rk.so +0 -0
  273. casadi/libcasadi_integrator_rk.so.3.7 +0 -0
  274. casadi/libcasadi_interpolant_bspline.so +0 -0
  275. casadi/libcasadi_interpolant_bspline.so.3.7 +0 -0
  276. casadi/libcasadi_interpolant_linear.so +0 -0
  277. casadi/libcasadi_interpolant_linear.so.3.7 +0 -0
  278. casadi/libcasadi_linsol_csparse.so +0 -0
  279. casadi/libcasadi_linsol_csparse.so.3.7 +0 -0
  280. casadi/libcasadi_linsol_csparsecholesky.so +0 -0
  281. casadi/libcasadi_linsol_csparsecholesky.so.3.7 +0 -0
  282. casadi/libcasadi_linsol_lapacklu.so +0 -0
  283. casadi/libcasadi_linsol_lapacklu.so.3.7 +0 -0
  284. casadi/libcasadi_linsol_lapackqr.so +0 -0
  285. casadi/libcasadi_linsol_lapackqr.so.3.7 +0 -0
  286. casadi/libcasadi_linsol_ldl.so +0 -0
  287. casadi/libcasadi_linsol_ldl.so.3.7 +0 -0
  288. casadi/libcasadi_linsol_lsqr.so +0 -0
  289. casadi/libcasadi_linsol_lsqr.so.3.7 +0 -0
  290. casadi/libcasadi_linsol_ma27.so +0 -0
  291. casadi/libcasadi_linsol_ma27.so.3.7 +0 -0
  292. casadi/libcasadi_linsol_mumps.so +0 -0
  293. casadi/libcasadi_linsol_mumps.so.3.7 +0 -0
  294. casadi/libcasadi_linsol_qr.so +0 -0
  295. casadi/libcasadi_linsol_qr.so.3.7 +0 -0
  296. casadi/libcasadi_linsol_symbolicqr.so +0 -0
  297. casadi/libcasadi_linsol_symbolicqr.so.3.7 +0 -0
  298. casadi/libcasadi_linsol_tridiag.so +0 -0
  299. casadi/libcasadi_linsol_tridiag.so.3.7 +0 -0
  300. casadi/libcasadi_nlpsol_alpaqa.so +0 -0
  301. casadi/libcasadi_nlpsol_alpaqa.so.3.7 +0 -0
  302. casadi/libcasadi_nlpsol_ampl.so +0 -0
  303. casadi/libcasadi_nlpsol_ampl.so.3.7 +0 -0
  304. casadi/libcasadi_nlpsol_blocksqp.so +0 -0
  305. casadi/libcasadi_nlpsol_blocksqp.so.3.7 +0 -0
  306. casadi/libcasadi_nlpsol_bonmin.so +0 -0
  307. casadi/libcasadi_nlpsol_bonmin.so.3.7 +0 -0
  308. casadi/libcasadi_nlpsol_feasiblesqpmethod.so +0 -0
  309. casadi/libcasadi_nlpsol_feasiblesqpmethod.so.3.7 +0 -0
  310. casadi/libcasadi_nlpsol_ipopt.so +0 -0
  311. casadi/libcasadi_nlpsol_ipopt.so.3.7 +0 -0
  312. casadi/libcasadi_nlpsol_knitro.so +0 -0
  313. casadi/libcasadi_nlpsol_knitro.so.3.7 +0 -0
  314. casadi/libcasadi_nlpsol_madnlp.so +0 -0
  315. casadi/libcasadi_nlpsol_madnlp.so.3.7 +0 -0
  316. casadi/libcasadi_nlpsol_qrsqp.so +0 -0
  317. casadi/libcasadi_nlpsol_qrsqp.so.3.7 +0 -0
  318. casadi/libcasadi_nlpsol_scpgen.so +0 -0
  319. casadi/libcasadi_nlpsol_scpgen.so.3.7 +0 -0
  320. casadi/libcasadi_nlpsol_sleqp.so +0 -0
  321. casadi/libcasadi_nlpsol_sleqp.so.3.7 +0 -0
  322. casadi/libcasadi_nlpsol_snopt.so +0 -0
  323. casadi/libcasadi_nlpsol_snopt.so.3.7 +0 -0
  324. casadi/libcasadi_nlpsol_sqpmethod.so +0 -0
  325. casadi/libcasadi_nlpsol_sqpmethod.so.3.7 +0 -0
  326. casadi/libcasadi_nlpsol_worhp.so +0 -0
  327. casadi/libcasadi_nlpsol_worhp.so.3.7 +0 -0
  328. casadi/libcasadi_rootfinder_fast_newton.so +0 -0
  329. casadi/libcasadi_rootfinder_fast_newton.so.3.7 +0 -0
  330. casadi/libcasadi_rootfinder_kinsol.so +0 -0
  331. casadi/libcasadi_rootfinder_kinsol.so.3.7 +0 -0
  332. casadi/libcasadi_rootfinder_newton.so +0 -0
  333. casadi/libcasadi_rootfinder_newton.so.3.7 +0 -0
  334. casadi/libcasadi_rootfinder_nlpsol.so +0 -0
  335. casadi/libcasadi_rootfinder_nlpsol.so.3.7 +0 -0
  336. casadi/libcasadi_sundials_common.so +0 -0
  337. casadi/libcasadi_sundials_common.so.3.7 +0 -0
  338. casadi/libcasadi_xmlfile_tinyxml.so +0 -0
  339. casadi/libcasadi_xmlfile_tinyxml.so.3.7 +0 -0
  340. casadi/libcoinmumps.so +0 -0
  341. casadi/libcoinmumps.so.3 +0 -0
  342. casadi/libcoinmumps.so.3.0.1 +0 -0
  343. casadi/libdaqpstat.a +0 -0
  344. casadi/libhighs.so +0 -0
  345. casadi/libhighs.so.1 +0 -0
  346. casadi/libhighs.so.1.10.0 +0 -0
  347. casadi/libindirect.a +0 -0
  348. casadi/libipopt.so +0 -0
  349. casadi/libipopt.so.3 +0 -0
  350. casadi/libipopt.so.3.14.11 +0 -0
  351. casadi/liblinsys.a +0 -0
  352. casadi/libosqp.a +0 -0
  353. casadi/libqdldl.a +0 -0
  354. casadi/libsipopt.so +0 -0
  355. casadi/libsipopt.so.3 +0 -0
  356. casadi/libsipopt.so.3.14.11 +0 -0
  357. casadi/libsleqp.so +0 -0
  358. casadi/libsleqp.so.1.0.1 +0 -0
  359. casadi/libspral.a +0 -0
  360. casadi/libsuperscs.a +0 -0
  361. casadi/libz.a +0 -0
  362. casadi/libz.so +0 -0
  363. casadi/libz.so.1 +0 -0
  364. casadi/libz.so.1.3.1 +0 -0
  365. casadi/libzip.a +0 -0
  366. casadi/pkgconfig/casadi.pc +1 -1
  367. casadi/pkgconfig/highs.pc +1 -1
  368. casadi/pkgconfig/libzip.pc +14 -0
  369. casadi/tools/__init__.py +3 -1
  370. casadi/tools/graph/graph.py +1 -1
  371. casadi/tools/structure3.py +2 -2
  372. {casadi-3.6.7.dist-info → casadi-3.7.0.dist-info}/METADATA +1 -1
  373. {casadi-3.6.7.dist-info → casadi-3.7.0.dist-info}/RECORD +373 -340
  374. casadi/include/tinyxml2.h +0 -2380
  375. casadi/lib/cmake/tinyxml2/tinyxml2-config.cmake +0 -57
  376. casadi/lib/cmake/tinyxml2/tinyxml2-static-targets-release.cmake +0 -19
  377. casadi/lib/libtinyxml2.a +0 -0
  378. casadi/lib/pkgconfig/tinyxml2.pc +0 -10
  379. casadi/tools/structure.py +0 -1446
  380. {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
- cache_aligned::shared_ptr<HighsTaskExecutor> ptr{nullptr};
33
+ HighsTaskExecutor* ptr{nullptr};
34
+ bool isMain{false};
34
35
 
35
- ~ExecutorHandle();
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::vector<cache_aligned::unique_ptr<HighsSplitDeque>> workerDeques;
57
+ std::atomic<int> referenceCount;
58
+ std::atomic<bool> hasStopped{false};
59
+
56
60
  cache_aligned::shared_ptr<HighsSplitDeque::WorkerBunk> workerBunk;
57
- std::atomic<ExecutorHandle*> mainWorkerHandle;
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
- // spin until the global executor pointer is set up
90
- ExecutorHandle* executor;
91
- // Following yields warning C4706: assignment within conditional
92
- // expression when building libhighs on Windows (/W4):
93
- //
94
- // while (!(executor = mainWorkerHandle.load(std::memory_order_acquire)))
95
- // HighsSpinMutex::yieldProcessor();
96
- while (true) {
97
- executor = mainWorkerHandle.load(std::memory_order_acquire);
98
- if (executor != nullptr) break;
99
- HighsSpinMutex::yieldProcessor();
100
- }
101
- // now acquire a reference count of the global executor
102
- threadLocalExecutorHandle() = *executor;
103
- HighsSplitDeque* localDeque = workerDeques[workerId].get();
104
- threadLocalWorkerDeque() = localDeque;
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
- mainWorkerHandle.store(nullptr, std::memory_order_relaxed);
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
- for (int i = 1; i < numThreads; ++i)
128
- std::thread([&](int id) { run_worker(id); }, i).detach();
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 (!executorHandle.ptr) {
142
- executorHandle.ptr =
143
- cache_aligned::make_shared<HighsTaskExecutor>(numThreads);
144
- executorHandle.ptr->mainWorkerHandle.store(&executorHandle,
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
- executorHandle.ptr.reset();
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* constraint_type);
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 *_dcs_calloc(int n, size_t size);
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
- #define CUPDLP_CPU
5
- #define CUPDLP_DEBUG (0)
4
+ // The below already defined in CMake.
5
+ // #define CUPDLP_CPU
6
+ // #define CUPDLP_DEBUG (1)
6
7
  #define CUPDLP_TIMER
7
8
 
8
- #ifndef CUPDLP_CPU
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, *xUpdate, *xAverage, *y, *yUpdate, *yAverage, *ax, *axUpdate,
330
- *axAverage, *aty, *atyUpdate, *atyAverage;
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 *dBuffer;
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
- const cupdlp_float bound, const cupdlp_int len);
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
- const cupdlp_float bound, const cupdlp_int len);
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, double *primalResidual,
24
- const double *ax, const double *x,
25
- double *dPrimalFeasibility,
26
- double *dPrimalObj);
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, double *dualResidual,
29
- const double *aty, const double *x,
30
- const double *y, double *dDualFeasibility,
31
- double *dDualObj, double *dComplementarity,
32
- double *dSlackPos, double *dSlackNeg);
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, cupdlp_float dPrimalStepSize);
31
- void PDHG_dualGradientStep(CUPDLPwork *work, cupdlp_float dDualStepSize);
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