casadi 3.6.7__cp37-none-win_amd64.whl → 3.7.0__cp37-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.
Files changed (442) hide show
  1. casadi/_casadi.pyd +0 -0
  2. casadi/blasfeo.lib +0 -0
  3. casadi/casadi-cli.exe +0 -0
  4. casadi/casadi.lib +0 -0
  5. casadi/casadi.py +6070 -3038
  6. casadi/cbc.exe +0 -0
  7. casadi/clp.exe +0 -0
  8. casadi/cmake/casadi-config-version.cmake +1 -1
  9. casadi/cmake/casadi-targets-release.cmake +5 -5
  10. casadi/cmake/casadi-targets.cmake +5 -5
  11. casadi/{lib/cmake/tinyxml2/tinyxml2-config-version.cmake → cmake/ghc_filesystem/ghc_filesystem-config-version.cmake} +19 -10
  12. casadi/cmake/ghc_filesystem/ghc_filesystem-config.cmake +30 -0
  13. casadi/cmake/ghc_filesystem/ghc_filesystem-targets.cmake +99 -0
  14. casadi/cmake/highs/highs-config.cmake +1 -0
  15. casadi/cmake/highs/highs-targets.cmake +2 -2
  16. casadi/cmake/libzip/libzip-config-version.cmake +48 -0
  17. casadi/cmake/libzip/libzip-config.cmake +69 -0
  18. casadi/cmake/libzip/libzip-targets-release.cmake +19 -0
  19. casadi/{lib/cmake/tinyxml2/tinyxml2-shared-targets.cmake → cmake/libzip/libzip-targets.cmake} +11 -7
  20. casadi/cmake/libzip/modules/FindMbedTLS.cmake +141 -0
  21. casadi/cmake/libzip/modules/FindNettle.cmake +141 -0
  22. casadi/cmake/libzip/modules/Findzstd.cmake +186 -0
  23. casadi/daqp.lib +0 -0
  24. casadi/fatrop.lib +0 -0
  25. casadi/highs.exe +0 -0
  26. casadi/highs.lib +0 -0
  27. casadi/hpipm.lib +0 -0
  28. casadi/include/casadi/casadi.i +194 -44
  29. casadi/include/casadi/config.h +11 -11
  30. casadi/include/casadi/core/archiver.hpp +58 -0
  31. casadi/include/casadi/core/blazing_spline.hpp +47 -0
  32. casadi/include/casadi/core/calculus.hpp +57 -2
  33. casadi/include/casadi/core/casadi_common.hpp +37 -0
  34. casadi/include/casadi/core/casadi_meta.hpp +15 -0
  35. casadi/include/casadi/core/casadi_misc.hpp +7 -0
  36. casadi/include/casadi/core/code_generator.hpp +95 -17
  37. casadi/include/casadi/core/core.hpp +5 -0
  38. casadi/include/casadi/core/dae_builder.hpp +283 -141
  39. casadi/include/casadi/core/dm.hpp +3 -0
  40. casadi/include/casadi/core/filesystem.hpp +58 -0
  41. casadi/include/casadi/core/fmu.hpp +51 -16
  42. casadi/include/casadi/core/function.hpp +19 -0
  43. casadi/include/casadi/core/generic_matrix.hpp +214 -7
  44. casadi/include/casadi/core/generic_shared.hpp +318 -0
  45. casadi/include/casadi/core/generic_shared_impl.hpp +214 -0
  46. casadi/include/casadi/core/generic_shared_internal.hpp +215 -0
  47. casadi/include/casadi/core/generic_type.hpp +3 -0
  48. casadi/include/casadi/core/global_options.hpp +10 -0
  49. casadi/include/casadi/core/integrator.hpp +41 -7
  50. casadi/include/casadi/core/matrix_decl.hpp +67 -0
  51. casadi/include/casadi/core/mx.hpp +63 -2
  52. casadi/include/casadi/core/options.hpp +6 -3
  53. casadi/include/casadi/core/optistack.hpp +43 -9
  54. casadi/include/casadi/core/printable.hpp +8 -0
  55. casadi/include/casadi/core/resource.hpp +107 -0
  56. casadi/include/casadi/core/runtime/casadi_blazing_1d_boor_eval.hpp +112 -0
  57. casadi/include/casadi/core/runtime/casadi_blazing_2d_boor_eval.hpp +311 -0
  58. casadi/include/casadi/core/runtime/casadi_blazing_3d_boor_eval.hpp +645 -0
  59. casadi/include/casadi/core/runtime/casadi_blazing_de_boor.hpp +101 -0
  60. casadi/include/casadi/core/runtime/casadi_nlp.hpp +8 -2
  61. casadi/include/casadi/core/runtime/casadi_printme.hpp +25 -0
  62. casadi/include/casadi/core/serializer.hpp +12 -4
  63. casadi/include/casadi/core/serializing_stream.hpp +3 -0
  64. casadi/include/casadi/core/shared_object.hpp +73 -161
  65. casadi/include/casadi/core/sparsity.hpp +13 -1
  66. casadi/include/casadi/core/sparsity_interface.hpp +19 -1
  67. casadi/include/casadi/core/sx.hpp +41 -0
  68. casadi/include/casadi/core/sx_elem.hpp +25 -0
  69. casadi/include/casadi/core/xml_node.hpp +5 -0
  70. casadi/include/casadi/doc.i +9703 -6539
  71. casadi/include/casadi/doc_merged.i +6483 -4447
  72. casadi/include/casadi/valgrind-casadi.supp +138 -0
  73. casadi/include/casadi/valgrind-python.supp +2470 -0
  74. casadi/include/fatrop/blasfeo_wrapper/LinearAlgebraBlasfeo.hpp +4 -1
  75. casadi/include/ghc/filesystem.hpp +6083 -0
  76. casadi/include/ghc/fs_fwd.hpp +38 -0
  77. casadi/include/ghc/fs_impl.hpp +35 -0
  78. casadi/include/ghc/fs_std.hpp +60 -0
  79. casadi/include/ghc/fs_std_fwd.hpp +63 -0
  80. casadi/include/ghc/fs_std_impl.hpp +46 -0
  81. casadi/include/highs/HConfig.h +7 -5
  82. casadi/include/highs/Highs.h +260 -86
  83. casadi/include/highs/filereaderlp/reader.hpp +10 -10
  84. casadi/include/highs/interfaces/highs_c_api.h +195 -22
  85. casadi/include/highs/io/Filereader.h +4 -6
  86. casadi/include/highs/io/FilereaderEms.h +0 -3
  87. casadi/include/highs/io/FilereaderLp.h +0 -3
  88. casadi/include/highs/io/FilereaderMps.h +0 -3
  89. casadi/include/highs/io/HMPSIO.h +1 -4
  90. casadi/include/highs/io/HMpsFF.h +8 -5
  91. casadi/include/highs/io/HighsIO.h +10 -5
  92. casadi/include/highs/io/LoadOptions.h +0 -3
  93. casadi/include/highs/ipm/IpxSolution.h +0 -3
  94. casadi/include/highs/ipm/IpxWrapper.h +4 -7
  95. casadi/include/highs/ipm/ipx/control.h +1 -0
  96. casadi/include/highs/ipm/ipx/ipx_parameters.h +1 -0
  97. casadi/include/highs/ipm/ipx/lp_solver.h +3 -2
  98. casadi/include/highs/ipm/ipx/model.h +7 -3
  99. casadi/include/highs/lp_data/HConst.h +21 -6
  100. casadi/include/highs/lp_data/HStruct.h +40 -4
  101. casadi/include/highs/lp_data/HighsAnalysis.h +0 -3
  102. casadi/include/highs/lp_data/HighsCallback.h +10 -3
  103. casadi/include/highs/lp_data/HighsCallbackStruct.h +3 -3
  104. casadi/include/highs/lp_data/HighsDebug.h +0 -3
  105. casadi/include/highs/lp_data/HighsIis.h +62 -0
  106. casadi/include/highs/lp_data/HighsInfo.h +50 -43
  107. casadi/include/highs/lp_data/HighsInfoDebug.h +0 -3
  108. casadi/include/highs/lp_data/HighsLp.h +2 -3
  109. casadi/include/highs/lp_data/HighsLpSolverObject.h +0 -3
  110. casadi/include/highs/lp_data/HighsLpUtils.h +38 -6
  111. casadi/include/highs/lp_data/HighsModelUtils.h +21 -18
  112. casadi/include/highs/lp_data/HighsOptions.h +134 -22
  113. casadi/include/highs/lp_data/HighsRanging.h +0 -3
  114. casadi/include/highs/lp_data/HighsSolution.h +10 -3
  115. casadi/include/highs/lp_data/HighsSolutionDebug.h +0 -3
  116. casadi/include/highs/lp_data/HighsSolve.h +0 -3
  117. casadi/include/highs/lp_data/HighsStatus.h +0 -3
  118. casadi/include/highs/mip/HighsCliqueTable.h +3 -3
  119. casadi/include/highs/mip/HighsConflictPool.h +0 -3
  120. casadi/include/highs/mip/HighsCutGeneration.h +13 -3
  121. casadi/include/highs/mip/HighsCutPool.h +0 -3
  122. casadi/include/highs/mip/HighsDebugSol.h +0 -3
  123. casadi/include/highs/mip/HighsDomain.h +16 -4
  124. casadi/include/highs/mip/HighsDomainChange.h +0 -3
  125. casadi/include/highs/mip/HighsDynamicRowMatrix.h +0 -3
  126. casadi/include/highs/mip/HighsGFkSolve.h +3 -6
  127. casadi/include/highs/mip/HighsImplications.h +29 -5
  128. casadi/include/highs/mip/HighsLpAggregator.h +0 -3
  129. casadi/include/highs/mip/HighsLpRelaxation.h +0 -3
  130. casadi/include/highs/mip/HighsMipAnalysis.h +52 -0
  131. casadi/include/highs/mip/HighsMipSolver.h +11 -4
  132. casadi/include/highs/mip/HighsMipSolverData.h +67 -6
  133. casadi/include/highs/mip/HighsModkSeparator.h +1 -4
  134. casadi/include/highs/mip/HighsNodeQueue.h +0 -3
  135. casadi/include/highs/mip/HighsObjectiveFunction.h +0 -3
  136. casadi/include/highs/mip/HighsPathSeparator.h +1 -4
  137. casadi/include/highs/mip/HighsPrimalHeuristics.h +7 -5
  138. casadi/include/highs/mip/HighsPseudocost.h +0 -3
  139. casadi/include/highs/mip/HighsRedcostFixing.h +0 -3
  140. casadi/include/highs/mip/HighsSearch.h +0 -3
  141. casadi/include/highs/mip/HighsSeparation.h +0 -3
  142. casadi/include/highs/mip/HighsSeparator.h +1 -5
  143. casadi/include/highs/mip/HighsTableauSeparator.h +1 -4
  144. casadi/include/highs/mip/HighsTransformedLp.h +0 -3
  145. casadi/include/highs/mip/MipTimer.h +471 -0
  146. casadi/include/highs/parallel/HighsBinarySemaphore.h +1 -1
  147. casadi/include/highs/parallel/HighsCacheAlign.h +1 -1
  148. casadi/include/highs/parallel/HighsCombinable.h +1 -1
  149. casadi/include/highs/parallel/HighsMutex.h +1 -1
  150. casadi/include/highs/parallel/HighsRaceTimer.h +1 -1
  151. casadi/include/highs/parallel/HighsSchedulerConstants.h +1 -1
  152. casadi/include/highs/parallel/HighsSplitDeque.h +1 -1
  153. casadi/include/highs/parallel/HighsTaskExecutor.h +68 -55
  154. casadi/include/highs/pdlp/CupdlpWrapper.h +18 -7
  155. casadi/include/highs/pdlp/cupdlp/cupdlp_cs.h +2 -3
  156. casadi/include/highs/pdlp/cupdlp/cupdlp_defs.h +16 -6
  157. casadi/include/highs/pdlp/cupdlp/cupdlp_linalg.h +10 -4
  158. casadi/include/highs/pdlp/cupdlp/cupdlp_proj.h +3 -3
  159. casadi/include/highs/pdlp/cupdlp/cupdlp_restart.h +6 -6
  160. casadi/include/highs/pdlp/cupdlp/cupdlp_scaling.h +26 -0
  161. casadi/include/highs/pdlp/cupdlp/cupdlp_solver.h +11 -11
  162. casadi/include/highs/pdlp/cupdlp/cupdlp_step.h +8 -4
  163. casadi/include/highs/pdlp/cupdlp/cupdlp_utils.c +253 -172
  164. casadi/include/highs/presolve/HPresolve.h +50 -10
  165. casadi/include/highs/presolve/HPresolveAnalysis.h +0 -3
  166. casadi/include/highs/presolve/HighsPostsolveStack.h +39 -6
  167. casadi/include/highs/presolve/HighsSymmetry.h +0 -3
  168. casadi/include/highs/presolve/ICrash.h +0 -3
  169. casadi/include/highs/presolve/ICrashUtil.h +1 -4
  170. casadi/include/highs/presolve/ICrashX.h +0 -3
  171. casadi/include/highs/presolve/PresolveComponent.h +0 -3
  172. casadi/include/highs/qpsolver/a_asm.hpp +20 -17
  173. casadi/include/highs/qpsolver/a_quass.hpp +5 -9
  174. casadi/include/highs/qpsolver/basis.hpp +12 -10
  175. casadi/include/highs/qpsolver/crashsolution.hpp +4 -3
  176. casadi/include/highs/qpsolver/dantzigpricing.hpp +3 -2
  177. casadi/include/highs/qpsolver/devexpricing.hpp +3 -1
  178. casadi/include/highs/qpsolver/factor.hpp +6 -5
  179. casadi/include/highs/qpsolver/feasibility_bounded.hpp +31 -29
  180. casadi/include/highs/qpsolver/feasibility_highs.hpp +94 -70
  181. casadi/include/highs/qpsolver/gradient.hpp +1 -1
  182. casadi/include/highs/qpsolver/instance.hpp +1 -1
  183. casadi/include/highs/qpsolver/pricing.hpp +2 -2
  184. casadi/include/highs/qpsolver/qpconst.hpp +2 -2
  185. casadi/include/highs/qpsolver/quass.hpp +2 -2
  186. casadi/include/highs/qpsolver/runtime.hpp +2 -2
  187. casadi/include/highs/qpsolver/settings.hpp +20 -8
  188. casadi/include/highs/qpsolver/steepestedgepricing.hpp +38 -39
  189. casadi/include/highs/simplex/HApp.h +88 -34
  190. casadi/include/highs/simplex/HEkk.h +24 -11
  191. casadi/include/highs/simplex/HEkkDual.h +2 -4
  192. casadi/include/highs/simplex/HEkkDualRHS.h +0 -3
  193. casadi/include/highs/simplex/HEkkDualRow.h +0 -3
  194. casadi/include/highs/simplex/HEkkPrimal.h +1 -5
  195. casadi/include/highs/simplex/HSimplex.h +0 -3
  196. casadi/include/highs/simplex/HSimplexDebug.h +0 -3
  197. casadi/include/highs/simplex/HSimplexNla.h +0 -26
  198. casadi/include/highs/simplex/HSimplexReport.h +0 -3
  199. casadi/include/highs/simplex/HighsSimplexAnalysis.h +5 -8
  200. casadi/include/highs/simplex/SimplexConst.h +10 -11
  201. casadi/include/highs/simplex/SimplexStruct.h +9 -12
  202. casadi/include/highs/simplex/SimplexTimer.h +83 -101
  203. casadi/include/highs/test/DevKkt.h +0 -3
  204. casadi/include/highs/test/KktCh2.h +0 -3
  205. casadi/include/highs/util/FactorTimer.h +39 -64
  206. casadi/include/highs/util/HFactor.h +4 -4
  207. casadi/include/highs/util/HFactorConst.h +0 -3
  208. casadi/include/highs/util/HFactorDebug.h +0 -3
  209. casadi/include/highs/util/HSet.h +0 -3
  210. casadi/include/highs/util/HVector.h +0 -3
  211. casadi/include/highs/util/HVectorBase.h +1 -4
  212. casadi/include/highs/util/HighsCDouble.h +12 -3
  213. casadi/include/highs/util/HighsComponent.h +0 -3
  214. casadi/include/highs/util/HighsDataStack.h +0 -3
  215. casadi/include/highs/util/HighsDisjointSets.h +0 -3
  216. casadi/include/highs/util/HighsHash.h +9 -12
  217. casadi/include/highs/util/HighsHashTree.h +15 -11
  218. casadi/include/highs/util/HighsInt.h +0 -3
  219. casadi/include/highs/util/HighsIntegers.h +0 -3
  220. casadi/include/highs/util/HighsLinearSumBounds.h +0 -3
  221. casadi/include/highs/util/HighsMatrixPic.h +0 -3
  222. casadi/include/highs/util/HighsMatrixSlice.h +3 -6
  223. casadi/include/highs/util/HighsMatrixUtils.h +0 -3
  224. casadi/include/highs/util/HighsMemoryAllocation.h +11 -3
  225. casadi/include/highs/util/HighsRandom.h +3 -6
  226. casadi/include/highs/util/HighsRbTree.h +0 -3
  227. casadi/include/highs/util/HighsSort.h +0 -3
  228. casadi/include/highs/util/HighsSparseMatrix.h +6 -3
  229. casadi/include/highs/util/HighsSparseVectorSum.h +0 -3
  230. casadi/include/highs/util/HighsSplay.h +0 -3
  231. casadi/include/highs/util/HighsTimer.h +94 -56
  232. casadi/include/highs/util/HighsUtils.h +10 -3
  233. casadi/include/highs/util/stringutil.h +14 -12
  234. casadi/include/licenses/ghc-external/LICENSE +19 -0
  235. casadi/include/licenses/libz-external/LICENSE +22 -0
  236. casadi/include/licenses/libz-external/contrib/dotzlib/LICENSE_1_0.txt +23 -0
  237. casadi/include/licenses/libzip-external/LICENSE +31 -0
  238. casadi/include/zconf.h +545 -0
  239. casadi/include/zip.h +528 -0
  240. casadi/include/zipconf.h +48 -0
  241. casadi/include/zlib.h +1938 -0
  242. casadi/ipopt.lib +0 -0
  243. casadi/lapack.lib +0 -0
  244. casadi/libCbc-3.dll +0 -0
  245. casadi/libCbc.dll.a +0 -0
  246. casadi/libCbcSolver-3.dll +0 -0
  247. casadi/libCbcSolver.dll.a +0 -0
  248. casadi/libCgl-1.dll +0 -0
  249. casadi/libCgl.dll.a +0 -0
  250. casadi/libClp-1.dll +0 -0
  251. casadi/libClp.dll.a +0 -0
  252. casadi/libClpSolver-1.dll +0 -0
  253. casadi/libClpSolver.dll.a +0 -0
  254. casadi/libCoinUtils-3.dll +0 -0
  255. casadi/libCoinUtils.dll.a +0 -0
  256. casadi/libOsi-1.dll +0 -0
  257. casadi/libOsi.dll.a +0 -0
  258. casadi/libOsiCbc-3.dll +0 -0
  259. casadi/libOsiCbc.dll.a +0 -0
  260. casadi/libOsiClp-1.dll +0 -0
  261. casadi/libOsiClp.dll.a +0 -0
  262. casadi/libOsiCommonTests-1.dll +0 -0
  263. casadi/libOsiCommonTests.dll.a +0 -0
  264. casadi/libalpaqa.dll +0 -0
  265. casadi/libalpaqa.dll.a +0 -0
  266. casadi/libblasfeo.dll +0 -0
  267. casadi/libblasfeo.dll.a +0 -0
  268. casadi/libbonmin-4.dll +0 -0
  269. casadi/libbonmin.dll.a +0 -0
  270. casadi/libcasadi-tp-openblas.dll +0 -0
  271. casadi/libcasadi-tp-openblas.dll.a +0 -0
  272. casadi/libcasadi.dll +0 -0
  273. casadi/libcasadi.dll.a +0 -0
  274. casadi/libcasadi.lib +0 -0
  275. casadi/libcasadi_archiver_libzip.dll +0 -0
  276. casadi/libcasadi_archiver_libzip.dll.a +0 -0
  277. casadi/libcasadi_conic_cbc.dll +0 -0
  278. casadi/libcasadi_conic_cbc.dll.a +0 -0
  279. casadi/libcasadi_conic_clp.dll +0 -0
  280. casadi/libcasadi_conic_clp.dll.a +0 -0
  281. casadi/libcasadi_conic_cplex.dll +0 -0
  282. casadi/libcasadi_conic_cplex.dll.a +0 -0
  283. casadi/libcasadi_conic_daqp.dll +0 -0
  284. casadi/libcasadi_conic_daqp.dll.a +0 -0
  285. casadi/libcasadi_conic_fatrop.dll +0 -0
  286. casadi/libcasadi_conic_fatrop.dll.a +0 -0
  287. casadi/libcasadi_conic_gurobi.dll +0 -0
  288. casadi/libcasadi_conic_gurobi.dll.a +0 -0
  289. casadi/libcasadi_conic_highs.dll +0 -0
  290. casadi/libcasadi_conic_highs.dll.a +0 -0
  291. casadi/libcasadi_conic_hpipm.dll +0 -0
  292. casadi/libcasadi_conic_hpipm.dll.a +0 -0
  293. casadi/libcasadi_conic_ipqp.dll +0 -0
  294. casadi/libcasadi_conic_ipqp.dll.a +0 -0
  295. casadi/libcasadi_conic_nlpsol.dll +0 -0
  296. casadi/libcasadi_conic_nlpsol.dll.a +0 -0
  297. casadi/libcasadi_conic_osqp.dll +0 -0
  298. casadi/libcasadi_conic_osqp.dll.a +0 -0
  299. casadi/libcasadi_conic_proxqp.dll +0 -0
  300. casadi/libcasadi_conic_proxqp.dll.a +0 -0
  301. casadi/libcasadi_conic_qpoases.dll +0 -0
  302. casadi/libcasadi_conic_qpoases.dll.a +0 -0
  303. casadi/libcasadi_conic_qrqp.dll +0 -0
  304. casadi/libcasadi_conic_qrqp.dll.a +0 -0
  305. casadi/libcasadi_conic_superscs.dll +0 -0
  306. casadi/libcasadi_conic_superscs.dll.a +0 -0
  307. casadi/libcasadi_filesystem_ghc.dll +0 -0
  308. casadi/libcasadi_filesystem_ghc.dll.a +0 -0
  309. casadi/libcasadi_importer_shell.dll +0 -0
  310. casadi/libcasadi_importer_shell.dll.a +0 -0
  311. casadi/libcasadi_integrator_collocation.dll +0 -0
  312. casadi/libcasadi_integrator_collocation.dll.a +0 -0
  313. casadi/libcasadi_integrator_cvodes.dll +0 -0
  314. casadi/libcasadi_integrator_cvodes.dll.a +0 -0
  315. casadi/libcasadi_integrator_idas.dll +0 -0
  316. casadi/libcasadi_integrator_idas.dll.a +0 -0
  317. casadi/libcasadi_integrator_rk.dll +0 -0
  318. casadi/libcasadi_integrator_rk.dll.a +0 -0
  319. casadi/libcasadi_interpolant_bspline.dll +0 -0
  320. casadi/libcasadi_interpolant_bspline.dll.a +0 -0
  321. casadi/libcasadi_interpolant_linear.dll +0 -0
  322. casadi/libcasadi_interpolant_linear.dll.a +0 -0
  323. casadi/libcasadi_linsol_csparse.dll +0 -0
  324. casadi/libcasadi_linsol_csparse.dll.a +0 -0
  325. casadi/libcasadi_linsol_csparsecholesky.dll +0 -0
  326. casadi/libcasadi_linsol_csparsecholesky.dll.a +0 -0
  327. casadi/libcasadi_linsol_lapacklu.dll +0 -0
  328. casadi/libcasadi_linsol_lapacklu.dll.a +0 -0
  329. casadi/libcasadi_linsol_lapackqr.dll +0 -0
  330. casadi/libcasadi_linsol_lapackqr.dll.a +0 -0
  331. casadi/libcasadi_linsol_ldl.dll +0 -0
  332. casadi/libcasadi_linsol_ldl.dll.a +0 -0
  333. casadi/libcasadi_linsol_lsqr.dll +0 -0
  334. casadi/libcasadi_linsol_lsqr.dll.a +0 -0
  335. casadi/libcasadi_linsol_ma27.dll +0 -0
  336. casadi/libcasadi_linsol_ma27.dll.a +0 -0
  337. casadi/libcasadi_linsol_mumps.dll +0 -0
  338. casadi/libcasadi_linsol_mumps.dll.a +0 -0
  339. casadi/libcasadi_linsol_qr.dll +0 -0
  340. casadi/libcasadi_linsol_qr.dll.a +0 -0
  341. casadi/libcasadi_linsol_symbolicqr.dll +0 -0
  342. casadi/libcasadi_linsol_symbolicqr.dll.a +0 -0
  343. casadi/libcasadi_linsol_tridiag.dll +0 -0
  344. casadi/libcasadi_linsol_tridiag.dll.a +0 -0
  345. casadi/libcasadi_nlpsol_alpaqa.dll +0 -0
  346. casadi/libcasadi_nlpsol_alpaqa.dll.a +0 -0
  347. casadi/libcasadi_nlpsol_ampl.dll +0 -0
  348. casadi/libcasadi_nlpsol_ampl.dll.a +0 -0
  349. casadi/libcasadi_nlpsol_blocksqp.dll +0 -0
  350. casadi/libcasadi_nlpsol_blocksqp.dll.a +0 -0
  351. casadi/libcasadi_nlpsol_bonmin.dll +0 -0
  352. casadi/libcasadi_nlpsol_bonmin.dll.a +0 -0
  353. casadi/libcasadi_nlpsol_fatrop.dll +0 -0
  354. casadi/libcasadi_nlpsol_fatrop.dll.a +0 -0
  355. casadi/libcasadi_nlpsol_feasiblesqpmethod.dll +0 -0
  356. casadi/libcasadi_nlpsol_feasiblesqpmethod.dll.a +0 -0
  357. casadi/libcasadi_nlpsol_ipopt.dll +0 -0
  358. casadi/libcasadi_nlpsol_ipopt.dll.a +0 -0
  359. casadi/libcasadi_nlpsol_knitro.dll +0 -0
  360. casadi/libcasadi_nlpsol_knitro.dll.a +0 -0
  361. casadi/libcasadi_nlpsol_madnlp.dll +0 -0
  362. casadi/libcasadi_nlpsol_madnlp.dll.a +0 -0
  363. casadi/libcasadi_nlpsol_qrsqp.dll +0 -0
  364. casadi/libcasadi_nlpsol_qrsqp.dll.a +0 -0
  365. casadi/libcasadi_nlpsol_scpgen.dll +0 -0
  366. casadi/libcasadi_nlpsol_scpgen.dll.a +0 -0
  367. casadi/libcasadi_nlpsol_sleqp.dll +0 -0
  368. casadi/libcasadi_nlpsol_sleqp.dll.a +0 -0
  369. casadi/libcasadi_nlpsol_snopt.dll +0 -0
  370. casadi/libcasadi_nlpsol_snopt.dll.a +0 -0
  371. casadi/libcasadi_nlpsol_sqpmethod.dll +0 -0
  372. casadi/libcasadi_nlpsol_sqpmethod.dll.a +0 -0
  373. casadi/libcasadi_nlpsol_worhp.dll +0 -0
  374. casadi/libcasadi_nlpsol_worhp.dll.a +0 -0
  375. casadi/libcasadi_rootfinder_fast_newton.dll +0 -0
  376. casadi/libcasadi_rootfinder_fast_newton.dll.a +0 -0
  377. casadi/libcasadi_rootfinder_kinsol.dll +0 -0
  378. casadi/libcasadi_rootfinder_kinsol.dll.a +0 -0
  379. casadi/libcasadi_rootfinder_newton.dll +0 -0
  380. casadi/libcasadi_rootfinder_newton.dll.a +0 -0
  381. casadi/libcasadi_rootfinder_nlpsol.dll +0 -0
  382. casadi/libcasadi_rootfinder_nlpsol.dll.a +0 -0
  383. casadi/libcasadi_sundials_common.dll +0 -0
  384. casadi/libcasadi_sundials_common.dll.a +0 -0
  385. casadi/libcasadi_xmlfile_tinyxml.dll +0 -0
  386. casadi/libcasadi_xmlfile_tinyxml.dll.a +0 -0
  387. casadi/libcoinmetis-2.dll +0 -0
  388. casadi/libcoinmetis.dll.a +0 -0
  389. casadi/libcoinmumps-3.dll +0 -0
  390. casadi/libcoinmumps.dll.a +0 -0
  391. casadi/libcplex_adaptor.dll +0 -0
  392. casadi/libdaqp.dll +0 -0
  393. casadi/libdaqp.dll.a +0 -0
  394. casadi/libdl.dll +0 -0
  395. casadi/libdl.dll.a +0 -0
  396. casadi/libfatrop.dll +0 -0
  397. casadi/libfatrop.dll.a +0 -0
  398. casadi/libgurobi_adaptor.dll +0 -0
  399. casadi/libhighs.dll +0 -0
  400. casadi/libhighs.dll.a +0 -0
  401. casadi/libhpipm.dll +0 -0
  402. casadi/libhpipm.dll.a +0 -0
  403. casadi/libipopt-3.dll +0 -0
  404. casadi/libipopt.dll.a +0 -0
  405. casadi/libmatlab_ipc.dll +0 -0
  406. casadi/libmatlab_ipc.dll.a +0 -0
  407. casadi/libosqp.dll +0 -0
  408. casadi/libosqp.dll.a +0 -0
  409. casadi/libqdldl.dll +0 -0
  410. casadi/libqdldl.dll.a +0 -0
  411. casadi/libsipopt-3.dll +0 -0
  412. casadi/libsipopt.dll.a +0 -0
  413. casadi/libsleqp.dll +0 -0
  414. casadi/libsleqp.dll.a +0 -0
  415. casadi/libtrlib.dll +0 -0
  416. casadi/libtrlib.dll.a +0 -0
  417. casadi/libzip.a +0 -0
  418. casadi/libzlib.dll +0 -0
  419. casadi/libzlib.dll.a +0 -0
  420. casadi/libzlibstatic.a +0 -0
  421. casadi/matlab_ipc.lib +0 -0
  422. casadi/osqp.lib +0 -0
  423. casadi/pkgconfig/casadi.pc +1 -1
  424. casadi/pkgconfig/highs.pc +1 -1
  425. casadi/pkgconfig/libzip.pc +14 -0
  426. casadi/sleqp.lib +0 -0
  427. casadi/spral_ssids.exe +0 -0
  428. casadi/std-e414687e404555e5.dll +0 -0
  429. casadi/tools/__init__.py +3 -1
  430. casadi/tools/graph/graph.py +1 -1
  431. casadi/tools/structure3.py +2 -2
  432. {casadi-3.6.7.dist-info → casadi-3.7.0.dist-info}/METADATA +1 -1
  433. {casadi-3.6.7.dist-info → casadi-3.7.0.dist-info}/RECORD +434 -393
  434. casadi/bin/libtinyxml2.dll +0 -0
  435. casadi/include/tinyxml2.h +0 -2380
  436. casadi/lib/cmake/tinyxml2/tinyxml2-config.cmake +0 -57
  437. casadi/lib/cmake/tinyxml2/tinyxml2-shared-targets-release.cmake +0 -19
  438. casadi/lib/libtinyxml2.dll.a +0 -0
  439. casadi/lib/pkgconfig/tinyxml2.pc +0 -10
  440. casadi/libtinyxml2.dll +0 -0
  441. casadi/tools/structure.py +0 -1446
  442. {casadi-3.6.7.dist-info → casadi-3.7.0.dist-info}/WHEEL +0 -0
@@ -2,16 +2,16 @@
2
2
  // Created by chuwen on 23-11-26.
3
3
  //
4
4
 
5
- #include "cupdlp_utils.h"
5
+ #include "pdlp/cupdlp/cupdlp_utils.h"
6
6
 
7
7
  #include <limits.h>
8
8
  #include <stdio.h>
9
9
 
10
10
  #include <time.h>
11
11
 
12
- #include "cupdlp_cs.h"
13
- #include "cupdlp_linalg.h"
14
- #include "glbopts.h"
12
+ #include "pdlp/cupdlp/cupdlp_cs.h"
13
+ #include "pdlp/cupdlp/cupdlp_linalg.h"
14
+ #include "pdlp/cupdlp/glbopts.h"
15
15
 
16
16
  #ifndef CUPDLP_CPU
17
17
 
@@ -44,7 +44,23 @@ cupdlp_int csc_clear(CUPDLPcsc *csc) {
44
44
  if (csc->colMatElem) {
45
45
  CUPDLP_FREE_VEC(csc->colMatElem);
46
46
  }
47
- CUPDLP_FREE_VEC(csc);
47
+ cupdlp_free(csc);
48
+ }
49
+ return 0;
50
+ }
51
+
52
+ cupdlp_int csc_clear_host(CUPDLPcsc *csc) {
53
+ if (csc) {
54
+ if (csc->colMatBeg) {
55
+ cupdlp_free(csc->colMatBeg);
56
+ }
57
+ if (csc->colMatIdx) {
58
+ cupdlp_free(csc->colMatIdx);
59
+ }
60
+ if (csc->colMatElem) {
61
+ cupdlp_free(csc->colMatElem);
62
+ }
63
+ cupdlp_free(csc);
48
64
  }
49
65
  return 0;
50
66
  }
@@ -65,7 +81,7 @@ cupdlp_int csr_clear(CUPDLPcsr *csr) {
65
81
  if (csr->rowMatElem) {
66
82
  CUPDLP_FREE_VEC(csr->rowMatElem);
67
83
  }
68
- CUPDLP_FREE_VEC(csr);
84
+ cupdlp_free(csr);
69
85
  }
70
86
  return 0;
71
87
  }
@@ -132,7 +148,7 @@ void problem_clear(CUPDLPproblem *problem) {
132
148
  if (problem->hasUpper) {
133
149
  CUPDLP_FREE_VEC(problem->hasUpper);
134
150
  }
135
- CUPDLP_FREE_VEC(problem);
151
+ cupdlp_free(problem);
136
152
  }
137
153
  }
138
154
 
@@ -158,21 +174,21 @@ cupdlp_int vec_clear(CUPDLPvec *vec) {
158
174
 
159
175
  void iterates_clear(CUPDLPiterates *iterates) {
160
176
  if (iterates) {
161
- if (iterates->x) {
162
- // CUPDLP_FREE_VEC(iterates->x);
163
- vec_clear(iterates->x);
177
+ if (iterates->x[0]) {
178
+ // CUPDLP_FREE_VEC(iterates->x[0]);
179
+ vec_clear(iterates->x[0]);
164
180
  }
165
- if (iterates->y) {
166
- // CUPDLP_FREE_VEC(iterates->y);
167
- vec_clear(iterates->y);
181
+ if (iterates->x[1]) {
182
+ // CUPDLP_FREE_VEC(iterates->x[1]);
183
+ vec_clear(iterates->x[1]);
168
184
  }
169
- if (iterates->xUpdate) {
170
- // CUPDLP_FREE_VEC(iterates->xUpdate);
171
- vec_clear(iterates->xUpdate);
185
+ if (iterates->y[0]) {
186
+ // CUPDLP_FREE_VEC(iterates->y[0]);
187
+ vec_clear(iterates->y[0]);
172
188
  }
173
- if (iterates->yUpdate) {
174
- // CUPDLP_FREE_VEC(iterates->yUpdate);
175
- vec_clear(iterates->yUpdate);
189
+ if (iterates->y[1]) {
190
+ // CUPDLP_FREE_VEC(iterates->y[1]);
191
+ vec_clear(iterates->y[1]);
176
192
  }
177
193
  if (iterates->xSum) {
178
194
  CUPDLP_FREE_VEC(iterates->xSum);
@@ -194,31 +210,31 @@ void iterates_clear(CUPDLPiterates *iterates) {
194
210
  if (iterates->yLastRestart) {
195
211
  CUPDLP_FREE_VEC(iterates->yLastRestart);
196
212
  }
197
- if (iterates->ax) {
198
- // CUPDLP_FREE_VEC(iterates->ax);
199
- vec_clear(iterates->ax);
213
+ if (iterates->ax[0]) {
214
+ // CUPDLP_FREE_VEC(iterates->ax[0]);
215
+ vec_clear(iterates->ax[0]);
200
216
  }
201
- if (iterates->axUpdate) {
202
- // CUPDLP_FREE_VEC(iterates->axUpdate);
203
- vec_clear(iterates->axUpdate);
217
+ if (iterates->ax[1]) {
218
+ // CUPDLP_FREE_VEC(iterates->ax[1]);
219
+ vec_clear(iterates->ax[1]);
204
220
  }
205
221
  if (iterates->axAverage) {
206
222
  // CUPDLP_FREE_VEC(iterates->axAverage);
207
223
  vec_clear(iterates->axAverage);
208
224
  }
209
- if (iterates->aty) {
210
- // CUPDLP_FREE_VEC(iterates->aty);
211
- vec_clear(iterates->aty);
225
+ if (iterates->aty[0]) {
226
+ // CUPDLP_FREE_VEC(iterates->aty[0]);
227
+ vec_clear(iterates->aty[0]);
212
228
  }
213
- if (iterates->atyUpdate) {
214
- // CUPDLP_FREE_VEC(iterates->atyUpdate);
215
- vec_clear(iterates->atyUpdate);
229
+ if (iterates->aty[1]) {
230
+ // CUPDLP_FREE_VEC(iterates->aty[1]);
231
+ vec_clear(iterates->aty[1]);
216
232
  }
217
233
  if (iterates->atyAverage) {
218
234
  // CUPDLP_FREE_VEC(iterates->atyAverage);
219
235
  vec_clear(iterates->atyAverage);
220
236
  }
221
- CUPDLP_FREE_VEC(iterates);
237
+ cupdlp_free(iterates);
222
238
  }
223
239
  }
224
240
 
@@ -278,7 +294,7 @@ void resobj_clear(CUPDLPresobj *resobj) {
278
294
  // if (resobj->dualInfeasBound) {
279
295
  // CUPDLP_FREE_VEC(resobj->dualInfeasBound);
280
296
  // }
281
- CUPDLP_FREE_VEC(resobj);
297
+ cupdlp_free(resobj);
282
298
  }
283
299
  }
284
300
 
@@ -288,11 +304,13 @@ void stepsize_clear(CUPDLPstepsize *stepsize) {
288
304
  }
289
305
  }
290
306
 
291
- void timers_clear(CUPDLPtimers *timers) {
307
+ void timers_clear(int log_level, CUPDLPtimers *timers) {
292
308
  #ifndef CUPDLP_CPU
293
- cupdlp_printf("%20s %e\n", "Free Device memory", timers->FreeDeviceMemTime);
309
+ if (log_level)
310
+ cupdlp_printf("%20s %e\n\n", "Free Device memory", timers->FreeDeviceMemTime);
294
311
  #endif
295
312
 
313
+
296
314
  if (timers) {
297
315
  cupdlp_free(timers);
298
316
  }
@@ -301,12 +319,10 @@ void timers_clear(CUPDLPtimers *timers) {
301
319
  void scaling_clear(CUPDLPscaling *scaling) {
302
320
  if (scaling) {
303
321
  if (scaling->colScale) {
304
- // cupdlp_free(scaling->colScale);
305
- CUPDLP_FREE_VEC(scaling->colScale); // now on gpu
322
+ cupdlp_free(scaling->colScale);
306
323
  }
307
324
  if (scaling->rowScale) {
308
- // cupdlp_free(scaling->rowScale);
309
- CUPDLP_FREE_VEC(scaling->rowScale); // now on gpu
325
+ cupdlp_free(scaling->rowScale);
310
326
  }
311
327
  cupdlp_free(scaling);
312
328
  }
@@ -321,63 +337,80 @@ cupdlp_int PDHG_Clear(CUPDLPwork *w) {
321
337
  CUPDLPtimers *timers = w->timers;
322
338
  CUPDLPscaling *scaling = w->scaling;
323
339
 
324
- if (w) {
325
- cupdlp_float begin = getTimeStamp();
340
+
341
+ cupdlp_float begin = getTimeStamp();
326
342
  #ifndef CUPDLP_CPU
327
343
 
328
- // CUDAmv *MV = w->MV;
329
- // if (MV)
330
- // {
331
- // cupdlp_float begin = getTimeStamp();
332
- // cuda_free_mv(MV);
333
- // timers->FreeDeviceMemTime += getTimeStamp() - begin;
334
- // }
335
- CHECK_CUBLAS(cublasDestroy(w->cublashandle))
336
- CHECK_CUSPARSE(cusparseDestroy(w->cusparsehandle))
337
- CHECK_CUDA(cudaFree(w->dBuffer))
338
- if (w->buffer2) CUPDLP_FREE_VEC(w->buffer2);
339
- if (w->buffer3) CUPDLP_FREE_VEC(w->buffer3);
344
+ // CUDAmv *MV = w->MV;
345
+ // if (MV)
346
+ // {
347
+ // cupdlp_float begin = getTimeStamp();
348
+ // cuda_free_mv(MV);
349
+ // timers->FreeDeviceMemTime += getTimeStamp() - begin;
350
+ // }
351
+ CHECK_CUBLAS(cublasDestroy(w->cublashandle))
352
+ CHECK_CUSPARSE(cusparseDestroy(w->cusparsehandle))
353
+ CHECK_CUDA(cudaFree(w->dBuffer_csc_ATy))
354
+ CHECK_CUDA(cudaFree(w->dBuffer_csr_Ax))
355
+ if (w->buffer2) CUPDLP_FREE_VEC(w->buffer2);
356
+ if (w->buffer3) CUPDLP_FREE_VEC(w->buffer3);
340
357
  #endif
341
- if (w->colScale) CUPDLP_FREE_VEC(w->colScale);
342
- if (w->rowScale) CUPDLP_FREE_VEC(w->rowScale);
358
+ if (w->colScale) CUPDLP_FREE_VEC(w->colScale);
359
+ if (w->rowScale) CUPDLP_FREE_VEC(w->rowScale);
343
360
 
344
- if (w->buffer) {
345
- // CUPDLP_FREE_VEC(w->buffer);
346
- vec_clear(w->buffer);
347
- }
361
+ if (w->buffer) {
362
+ // CUPDLP_FREE_VEC(w->buffer);
363
+ vec_clear(w->buffer);
364
+ }
348
365
 
349
- if (problem) {
350
- // problem_clear(problem);
351
- problem = cupdlp_NULL;
352
- }
366
+ if (w->buffer2 != NULL) {
367
+ // CUPDLP_FREE_VEC(w->buffer);
368
+ free(w->buffer2);
369
+ }
353
370
 
354
- if (iterates) {
355
- iterates_clear(iterates);
356
- }
371
+ if (w->buffer3) {
372
+ // CUPDLP_FREE_VEC(w->buffer);
373
+ free(w->buffer3);
374
+ }
357
375
 
358
- if (resobj) {
359
- resobj_clear(resobj);
360
- }
376
+ if (problem) {
377
+ // problem_clear(problem);
378
+ problem = cupdlp_NULL;
379
+ }
380
+
381
+ if (iterates) {
382
+ iterates_clear(iterates);
383
+ }
384
+
385
+ if (resobj) {
386
+ resobj_clear(resobj);
387
+ }
361
388
 
362
389
  #ifndef CUPDLP_CPU
363
- timers->FreeDeviceMemTime += getTimeStamp() - begin;
390
+ timers->FreeDeviceMemTime += getTimeStamp() - begin;
364
391
  #endif
365
392
 
366
- if (settings) {
367
- settings_clear(settings);
368
- }
369
- if (stepsize) {
370
- stepsize_clear(stepsize);
371
- }
372
- if (timers) {
373
- timers_clear(timers);
374
- }
375
- if (scaling) {
376
- // scaling_clear(scaling);
377
- scaling = cupdlp_NULL;
378
- }
379
- cupdlp_free(w);
393
+ if (settings) {
394
+ settings_clear(settings);
395
+ }
396
+ if (stepsize) {
397
+ stepsize_clear(stepsize);
398
+ }
399
+ if (timers) {
400
+ timers_clear(w->settings->nLogLevel, timers);
380
401
  }
402
+ if (scaling) {
403
+ // scaling_clear(scaling);
404
+ // if (scaling->colScale) {
405
+ // cupdlp_free(scaling->colScale);
406
+ // }
407
+ // if (scaling->rowScale) {
408
+ // cupdlp_free(scaling->rowScale);
409
+ // }
410
+ // cupdlp_free(scaling);
411
+ scaling = cupdlp_NULL;
412
+ }
413
+ cupdlp_free(w);
381
414
 
382
415
  return 0;
383
416
  }
@@ -421,7 +454,7 @@ void PDHG_PrintPDHGParam(CUPDLPwork *w) {
421
454
  cupdlp_printf("\n");
422
455
  }
423
456
 
424
- void PDHG_PrintHugeCUPDHG() {
457
+ void PDHG_PrintHugeCUPDHG(void) {
425
458
  cupdlp_printf("\n");
426
459
  cupdlp_printf(" ____ _ _ ____ ____ _ ____\n");
427
460
  cupdlp_printf(" / ___| | | | _ \\| _ \\| | | _ \\\n");
@@ -431,7 +464,7 @@ void PDHG_PrintHugeCUPDHG() {
431
464
  cupdlp_printf("\n");
432
465
  }
433
466
 
434
- void PDHG_PrintUserParamHelper() {
467
+ void PDHG_PrintUserParamHelper(void) {
435
468
  PDHG_PrintHugeCUPDHG();
436
469
 
437
470
  cupdlp_printf("CUPDHG User Parameters:\n");
@@ -602,14 +635,14 @@ cupdlp_retcode getUserParam(int argc, char **argv,
602
635
  }
603
636
  }
604
637
 
605
- if (argc>0) {
606
- if (strcmp(argv[argc - 1], "-h") == 0) {
607
- PDHG_PrintUserParamHelper();
638
+ // if (argc>0) {
639
+ // if (strcmp(argv[argc - 1], "-h") == 0) {
640
+ // PDHG_PrintUserParamHelper();
608
641
 
609
- retcode = RETCODE_FAILED;
610
- goto exit_cleanup;
611
- }
612
- }
642
+ // retcode = RETCODE_FAILED;
643
+ // goto exit_cleanup;
644
+ // }
645
+ // }
613
646
 
614
647
  exit_cleanup:
615
648
  return retcode;
@@ -807,33 +840,52 @@ cupdlp_retcode resobj_Alloc(CUPDLPresobj *resobj, CUPDLPproblem *problem,
807
840
  cupdlp_int ncols, cupdlp_int nrows) {
808
841
  cupdlp_retcode retcode = RETCODE_OK;
809
842
 
810
- CUPDLP_INIT_ZERO_DOUBLE_VEC(resobj->primalResidual, nrows);
811
- CUPDLP_INIT_ZERO_DOUBLE_VEC(resobj->dualResidual, ncols);
812
- CUPDLP_INIT_ZERO_DOUBLE_VEC(resobj->primalResidualAverage, nrows);
813
- CUPDLP_INIT_ZERO_DOUBLE_VEC(resobj->dualResidualAverage, ncols);
814
- CUPDLP_INIT_ZERO_DOUBLE_VEC(resobj->dSlackPos, ncols);
815
- CUPDLP_INIT_ZERO_DOUBLE_VEC(resobj->dSlackNeg, ncols);
816
- CUPDLP_INIT_ZERO_DOUBLE_VEC(resobj->dSlackPosAverage, ncols);
817
- CUPDLP_INIT_ZERO_DOUBLE_VEC(resobj->dSlackNegAverage, ncols);
818
- CUPDLP_INIT_ZERO_DOUBLE_VEC(resobj->dLowerFiltered, ncols);
819
- CUPDLP_INIT_ZERO_DOUBLE_VEC(resobj->dUpperFiltered, ncols);
820
-
821
- CUPDLP_INIT_ZERO_DOUBLE_VEC(resobj->primalInfeasRay, ncols);
822
- CUPDLP_INIT_ZERO_DOUBLE_VEC(resobj->primalInfeasConstr, nrows);
823
- CUPDLP_INIT_ZERO_DOUBLE_VEC(resobj->primalInfeasBound, ncols);
824
- CUPDLP_INIT_ZERO_DOUBLE_VEC(resobj->dualInfeasRay, nrows);
825
- CUPDLP_INIT_ZERO_DOUBLE_VEC(resobj->dualInfeasLbRay, ncols);
826
- CUPDLP_INIT_ZERO_DOUBLE_VEC(resobj->dualInfeasUbRay, ncols);
827
- CUPDLP_INIT_ZERO_DOUBLE_VEC(resobj->dualInfeasConstr, ncols);
828
- // CUPDLP_INIT_DOUBLE_ZERO_VEC(resobj->dualInfeasBound, nrows);
843
+ #if !defined(CUPDLP_CPU) && USE_KERNELS
844
+ resobj->primalResidual = NULL;
845
+ resobj->dualResidual = NULL;
846
+ resobj->primalResidualAverage = NULL;
847
+ resobj->dualResidualAverage = NULL;
848
+ #else
849
+
850
+ cupdlp_init_zero_vec_double(resobj->primalResidual, nrows);
851
+ cupdlp_init_zero_vec_double(resobj->dualResidual, ncols);
852
+ cupdlp_init_zero_vec_double(resobj->primalResidualAverage, nrows);
853
+ cupdlp_init_zero_vec_double(resobj->dualResidualAverage, ncols);
854
+
855
+ #endif
856
+
857
+ cupdlp_init_zero_vec_double(resobj->dSlackPos, ncols);
858
+ cupdlp_init_zero_vec_double(resobj->dSlackNeg, ncols);
859
+ cupdlp_init_zero_vec_double(resobj->dSlackPosAverage, ncols);
860
+ cupdlp_init_zero_vec_double(resobj->dSlackNegAverage, ncols);
861
+ cupdlp_init_zero_vec_double(resobj->dLowerFiltered, ncols);
862
+ cupdlp_init_zero_vec_double(resobj->dUpperFiltered, ncols);
863
+
864
+ #if !defined(CUPDLP_CPU) && USE_KERNELS
865
+ resobj->primalInfeasRay = NULL;
866
+ resobj->primalInfeasConstr = NULL;
867
+ resobj->primalInfeasBound = NULL;
868
+ resobj->dualInfeasRay = NULL;
869
+ resobj->dualInfeasLbRay = NULL;
870
+ resobj->dualInfeasUbRay = NULL;
871
+ #else
872
+
873
+ cupdlp_init_zero_vec_double(resobj->primalInfeasRay, ncols);
874
+ cupdlp_init_zero_vec_double(resobj->primalInfeasConstr, nrows);
875
+ cupdlp_init_zero_vec_double(resobj->primalInfeasBound, ncols);
876
+ cupdlp_init_zero_vec_double(resobj->dualInfeasRay, nrows);
877
+ cupdlp_init_zero_vec_double(resobj->dualInfeasLbRay, ncols);
878
+ cupdlp_init_zero_vec_double(resobj->dualInfeasUbRay, ncols);
879
+ #endif
829
880
 
830
- // need to translate to cuda type
831
- // for (int i = 0; i < ncols; i++)
832
- // {
833
- // resobj->dLowerFiltered[i] = problem->lower[i] > -INFINITY ?
834
- // problem->lower[i] : 0.0; resobj->dUpperFiltered[i] = problem->upper[i]
835
- // < +INFINITY ? problem->upper[i] : 0.0;
836
- // }
881
+
882
+ #if !defined(CUPDLP_CPU) && USE_KERNELS
883
+ resobj->dualInfeasConstr = NULL;
884
+ #else
885
+ cupdlp_init_zero_vec_double(resobj->dualInfeasConstr, ncols);
886
+ #endif
887
+
888
+ // CUPDLP_INIT_DOUBLE_ZERO_VEC(resobj->dualInfeasBound, nrows);
837
889
 
838
890
  cupdlp_filterlb(resobj->dLowerFiltered, problem->lower, -INFINITY, ncols);
839
891
  cupdlp_filterub(resobj->dUpperFiltered, problem->upper, +INFINITY, ncols);
@@ -891,35 +943,35 @@ cupdlp_retcode iterates_Alloc(CUPDLPiterates *iterates, cupdlp_int ncols,
891
943
  iterates->nCols = ncols;
892
944
  iterates->nRows = nrows;
893
945
 
894
- CUPDLP_INIT_ZERO_DOUBLE_VEC(iterates->xSum, ncols);
895
- CUPDLP_INIT_ZERO_DOUBLE_VEC(iterates->ySum, nrows);
896
- CUPDLP_INIT_ZERO_DOUBLE_VEC(iterates->xLastRestart, ncols);
897
- CUPDLP_INIT_ZERO_DOUBLE_VEC(iterates->yLastRestart, nrows);
946
+ cupdlp_init_zero_vec_double(iterates->xSum, ncols);
947
+ cupdlp_init_zero_vec_double(iterates->ySum, nrows);
948
+ cupdlp_init_zero_vec_double(iterates->xLastRestart, ncols);
949
+ cupdlp_init_zero_vec_double(iterates->yLastRestart, nrows);
898
950
 
899
- CUPDLP_INIT_CUPDLP_VEC(iterates->x, 1);
900
- CUPDLP_INIT_CUPDLP_VEC(iterates->xUpdate, 1);
951
+ CUPDLP_INIT_CUPDLP_VEC(iterates->x[0], 1);
952
+ CUPDLP_INIT_CUPDLP_VEC(iterates->x[1], 1);
901
953
  CUPDLP_INIT_CUPDLP_VEC(iterates->xAverage, 1);
902
- CUPDLP_INIT_CUPDLP_VEC(iterates->y, 1);
903
- CUPDLP_INIT_CUPDLP_VEC(iterates->yUpdate, 1);
954
+ CUPDLP_INIT_CUPDLP_VEC(iterates->y[0], 1);
955
+ CUPDLP_INIT_CUPDLP_VEC(iterates->y[1], 1);
904
956
  CUPDLP_INIT_CUPDLP_VEC(iterates->yAverage, 1);
905
- CUPDLP_INIT_CUPDLP_VEC(iterates->ax, 1);
906
- CUPDLP_INIT_CUPDLP_VEC(iterates->axUpdate, 1);
957
+ CUPDLP_INIT_CUPDLP_VEC(iterates->ax[0], 1);
958
+ CUPDLP_INIT_CUPDLP_VEC(iterates->ax[1], 1);
907
959
  CUPDLP_INIT_CUPDLP_VEC(iterates->axAverage, 1);
908
- CUPDLP_INIT_CUPDLP_VEC(iterates->aty, 1);
909
- CUPDLP_INIT_CUPDLP_VEC(iterates->atyUpdate, 1);
960
+ CUPDLP_INIT_CUPDLP_VEC(iterates->aty[0], 1);
961
+ CUPDLP_INIT_CUPDLP_VEC(iterates->aty[1], 1);
910
962
  CUPDLP_INIT_CUPDLP_VEC(iterates->atyAverage, 1);
911
963
 
912
- CUPDLP_CALL(vec_Alloc(iterates->x, ncols));
913
- CUPDLP_CALL(vec_Alloc(iterates->xUpdate, ncols));
964
+ CUPDLP_CALL(vec_Alloc(iterates->x[0], ncols));
965
+ CUPDLP_CALL(vec_Alloc(iterates->x[1], ncols));
914
966
  CUPDLP_CALL(vec_Alloc(iterates->xAverage, ncols));
915
- CUPDLP_CALL(vec_Alloc(iterates->y, nrows));
916
- CUPDLP_CALL(vec_Alloc(iterates->yUpdate, nrows));
967
+ CUPDLP_CALL(vec_Alloc(iterates->y[0], nrows));
968
+ CUPDLP_CALL(vec_Alloc(iterates->y[1], nrows));
917
969
  CUPDLP_CALL(vec_Alloc(iterates->yAverage, nrows));
918
- CUPDLP_CALL(vec_Alloc(iterates->ax, nrows));
919
- CUPDLP_CALL(vec_Alloc(iterates->axUpdate, nrows));
970
+ CUPDLP_CALL(vec_Alloc(iterates->ax[0], nrows));
971
+ CUPDLP_CALL(vec_Alloc(iterates->ax[1], nrows));
920
972
  CUPDLP_CALL(vec_Alloc(iterates->axAverage, nrows));
921
- CUPDLP_CALL(vec_Alloc(iterates->aty, ncols));
922
- CUPDLP_CALL(vec_Alloc(iterates->atyUpdate, ncols));
973
+ CUPDLP_CALL(vec_Alloc(iterates->aty[0], ncols));
974
+ CUPDLP_CALL(vec_Alloc(iterates->aty[1], ncols));
923
975
  CUPDLP_CALL(vec_Alloc(iterates->atyAverage, ncols));
924
976
 
925
977
  // initialization
@@ -1003,11 +1055,11 @@ exit_cleanup:
1003
1055
 
1004
1056
  cupdlp_retcode vec_Alloc(CUPDLPvec *vec, cupdlp_int n) {
1005
1057
  cupdlp_retcode retcode = RETCODE_OK;
1006
- CUPDLP_INIT_ZERO_DOUBLE_VEC(vec->data, n);
1058
+ cupdlp_init_zero_vec_double(vec->data, n);
1007
1059
  vec->len = n;
1008
1060
  #ifndef CUPDLP_CPU
1009
1061
  CHECK_CUSPARSE(
1010
- cusparseCreateDnVec(&vec->cuda_vec, n, vec->data, CudaComputeType));
1062
+ cusparseCreateDnVec(&vec->cuda_vec, n, vec->data, CudaComputeType))
1011
1063
  #endif
1012
1064
 
1013
1065
  exit_cleanup:
@@ -1029,14 +1081,20 @@ cupdlp_retcode PDHG_Alloc(CUPDLPwork *w) {
1029
1081
  // buffer
1030
1082
  CUPDLP_INIT_CUPDLP_VEC(w->buffer, 1);
1031
1083
  CUPDLP_CALL(vec_Alloc(w->buffer, w->problem->data->nRows));
1032
- CUPDLP_INIT_ZERO_DOUBLE_VEC(w->buffer2,
1033
- MAX(w->problem->data->nCols, w->problem->data->nRows));
1034
- CUPDLP_INIT_ZERO_DOUBLE_VEC(w->buffer3,
1035
- MAX(w->problem->data->nCols, w->problem->data->nRows));
1084
+
1085
+
1086
+ cupdlp_init_zero_vec_double(w->buffer2,
1087
+ MAX(2048, MAX(w->problem->data->nCols, w->problem->data->nRows)));
1088
+ #if defined(CUPDLP_CPU) || !(USE_KERNELS) || (CUPDLP_DUMP_LINESEARCH_STATS && CUPDLP_DEBUG)
1089
+ cupdlp_init_zero_vec_double(w->buffer3,
1090
+ MAX(2048, MAX(w->problem->data->nCols, w->problem->data->nRows)));
1091
+ #else
1092
+ w->buffer3 = NULL;
1093
+ #endif
1036
1094
 
1037
1095
  // for scaling
1038
- CUPDLP_INIT_ZERO_DOUBLE_VEC(w->colScale, w->problem->data->nCols);
1039
- CUPDLP_INIT_ZERO_DOUBLE_VEC(w->rowScale, w->problem->data->nRows);
1096
+ cupdlp_init_zero_vec_double(w->colScale, w->problem->data->nCols);
1097
+ cupdlp_init_zero_vec_double(w->rowScale, w->problem->data->nRows);
1040
1098
 
1041
1099
  CUPDLP_CALL(settings_Alloc(w->settings));
1042
1100
  CUPDLP_CALL(resobj_Alloc(w->resobj, w->problem, w->problem->data->nCols,
@@ -1048,12 +1106,12 @@ cupdlp_retcode PDHG_Alloc(CUPDLPwork *w) {
1048
1106
  #ifndef CUPDLP_CPU
1049
1107
  // CHECK_CUSPARSE(cusparseCreate(&w->cusparsehandle));
1050
1108
  // CHECK_CUBLAS(cublasCreate(&w->cublashandle));
1051
- cuda_alloc_MVbuffer(
1109
+ CUPDLP_CALL(cuda_alloc_MVbuffer(
1052
1110
  // w->problem->data->matrix_format,
1053
1111
  w->cusparsehandle, w->problem->data->csc_matrix->cuda_csc,
1054
- w->iterates->x->cuda_vec, w->iterates->ax->cuda_vec,
1055
- w->problem->data->csr_matrix->cuda_csr, w->iterates->y->cuda_vec,
1056
- w->iterates->aty->cuda_vec, &w->dBuffer);
1112
+ w->iterates->x[0]->cuda_vec, w->iterates->ax[0]->cuda_vec,
1113
+ w->problem->data->csr_matrix->cuda_csr, w->iterates->y[0]->cuda_vec,
1114
+ w->iterates->aty[0]->cuda_vec, &w->dBuffer_csc_ATy, &w->dBuffer_csr_Ax))
1057
1115
  w->timers->AllocMem_CopyMatToDeviceTime += getTimeStamp() - begin;
1058
1116
  #endif
1059
1117
 
@@ -1077,14 +1135,30 @@ exit_cleanup:
1077
1135
  void PDHG_Destroy(CUPDLPwork **w) {
1078
1136
  if (w && *w) {
1079
1137
  PDHG_Clear(*w);
1080
- #ifndef CUPDLP_CPU
1081
- cudaDeviceReset();
1082
- #endif
1083
1138
  }
1084
1139
  }
1085
1140
 
1086
1141
  void PDHG_Init_Data(CUPDLPwork *work) {}
1087
1142
 
1143
+ // double my_clock(void) {
1144
+
1145
+ // #ifdef CUPDLP_TIMER
1146
+
1147
+ // #if defined(_WIN32) || defined(_WIN64)
1148
+ // return (double)clock() / CLOCKS_PER_SEC;
1149
+ // #else
1150
+ // struct timeval t;
1151
+ // gettimeofday(&t, NULL);
1152
+ // return (1e-06 * t.tv_usec + t.tv_sec);
1153
+ // #endif
1154
+
1155
+ // #else
1156
+ // return 0;
1157
+ // #endif
1158
+
1159
+ // }
1160
+
1161
+
1088
1162
  double my_clock(void) {
1089
1163
  #ifdef CUPDLP_TIMER
1090
1164
  // struct timeval t;
@@ -1308,6 +1382,7 @@ exit_cleanup:
1308
1382
 
1309
1383
  cupdlp_retcode csc_create(CUPDLPcsc **csc) {
1310
1384
  cupdlp_retcode retcode = RETCODE_OK;
1385
+
1311
1386
  CUPDLP_INIT_CSC_MATRIX(*csc, 1);
1312
1387
 
1313
1388
  exit_cleanup:
@@ -1318,7 +1393,7 @@ cupdlp_retcode dense_alloc_matrix(CUPDLPdense *dense, cupdlp_int nRows,
1318
1393
  cupdlp_int nCols, void *src,
1319
1394
  CUPDLP_MATRIX_FORMAT src_matrix_format) {
1320
1395
  cupdlp_retcode retcode = RETCODE_OK;
1321
- CUPDLP_INIT_ZERO_DOUBLE_VEC(dense->data, nRows * nCols);
1396
+ cupdlp_init_zero_vec_double(dense->data, nRows * nCols);
1322
1397
 
1323
1398
  switch (src_matrix_format) {
1324
1399
  case DENSE:
@@ -1356,9 +1431,9 @@ cupdlp_retcode csr_alloc_matrix(CUPDLPcsr *csr, cupdlp_int nRows,
1356
1431
  break;
1357
1432
  }
1358
1433
  // todo make sure this is right
1359
- CUPDLP_INIT_ZERO_INT_VEC(csr->rowMatBeg, nRows + 1);
1360
- CUPDLP_INIT_ZERO_INT_VEC(csr->rowMatIdx, nnz);
1361
- CUPDLP_INIT_ZERO_DOUBLE_VEC(csr->rowMatElem, nnz);
1434
+ cupdlp_init_zero_vec_int(csr->rowMatBeg, nRows + 1);
1435
+ cupdlp_init_zero_vec_int(csr->rowMatIdx, nnz);
1436
+ cupdlp_init_zero_vec_double(csr->rowMatElem, nnz);
1362
1437
 
1363
1438
  switch (src_matrix_format) {
1364
1439
  case DENSE:
@@ -1395,9 +1470,10 @@ cupdlp_retcode csc_alloc_matrix(CUPDLPcsc *csc, cupdlp_int nRows,
1395
1470
  default:
1396
1471
  break;
1397
1472
  }
1398
- CUPDLP_INIT_ZERO_INT_VEC(csc->colMatBeg, nCols + 1);
1399
- CUPDLP_INIT_ZERO_INT_VEC(csc->colMatIdx, nnz);
1400
- CUPDLP_INIT_ZERO_DOUBLE_VEC(csc->colMatElem, nnz);
1473
+
1474
+ cupdlp_init_zero_vec_int(csc->colMatBeg, nCols + 1);
1475
+ cupdlp_init_zero_vec_int(csc->colMatIdx, nnz);
1476
+ cupdlp_init_zero_vec_double(csc->colMatElem, nnz);
1401
1477
 
1402
1478
  switch (src_matrix_format) {
1403
1479
  case DENSE:
@@ -1422,7 +1498,7 @@ cupdlp_retcode dense_alloc(CUPDLPdense *dense, cupdlp_int nRows,
1422
1498
  dense->nRows = nRows;
1423
1499
  dense->nCols = nCols;
1424
1500
  dense->data = cupdlp_NULL;
1425
- CUPDLP_INIT_ZERO_DOUBLE_VEC(dense->data, nRows * nCols);
1501
+ cupdlp_init_zero_vec_double(dense->data, nRows * nCols);
1426
1502
 
1427
1503
  CUPDLP_COPY_VEC(dense->data, val, cupdlp_float, nRows * nCols);
1428
1504
  exit_cleanup:
@@ -1440,9 +1516,9 @@ cupdlp_retcode csr_alloc(CUPDLPcsr *csr, cupdlp_int nRows, cupdlp_int nCols,
1440
1516
  csr->rowMatIdx = cupdlp_NULL;
1441
1517
  csr->rowMatElem = cupdlp_NULL;
1442
1518
 
1443
- CUPDLP_INIT_ZERO_INT_VEC(csr->rowMatBeg, nRows + 1);
1444
- CUPDLP_INIT_ZERO_INT_VEC(csr->rowMatIdx, nnz);
1445
- CUPDLP_INIT_ZERO_DOUBLE_VEC(csr->rowMatElem, nnz);
1519
+ cupdlp_init_zero_vec_int(csr->rowMatBeg, nRows + 1);
1520
+ cupdlp_init_zero_vec_int(csr->rowMatIdx, nnz);
1521
+ cupdlp_init_zero_vec_double(csr->rowMatElem, nnz);
1446
1522
 
1447
1523
  CUPDLP_COPY_VEC(csr->rowMatBeg, row_ptr, cupdlp_int, nRows + 1);
1448
1524
  CUPDLP_COPY_VEC(csr->rowMatIdx, col_ind, cupdlp_int, nnz);
@@ -1461,9 +1537,9 @@ cupdlp_retcode csc_alloc(CUPDLPcsc *csc, cupdlp_int nRows, cupdlp_int nCols,
1461
1537
  csc->colMatBeg = cupdlp_NULL;
1462
1538
  csc->colMatIdx = cupdlp_NULL;
1463
1539
  csc->colMatElem = cupdlp_NULL;
1464
- CUPDLP_INIT_ZERO_INT_VEC(csc->colMatBeg, nCols + 1);
1465
- CUPDLP_INIT_ZERO_INT_VEC(csc->colMatIdx, nnz);
1466
- CUPDLP_INIT_ZERO_DOUBLE_VEC(csc->colMatElem, nnz);
1540
+ cupdlp_init_zero_vec_int(csc->colMatBeg, nCols + 1);
1541
+ cupdlp_init_zero_vec_int(csc->colMatIdx, nnz);
1542
+ cupdlp_init_zero_vec_double(csc->colMatElem, nnz);
1467
1543
 
1468
1544
  CUPDLP_COPY_VEC(csc->colMatBeg, col_ptr, cupdlp_int, nCols + 1);
1469
1545
  CUPDLP_COPY_VEC(csc->colMatIdx, row_ind, cupdlp_int, nnz);
@@ -1497,12 +1573,17 @@ void PDHG_Dump_Stats(CUPDLPwork *w) {
1497
1573
  cupdlp_printf("------------------------------------------------\n");
1498
1574
  cupdlp_printf("Iteration % 3d\n", w->timers->nIter);
1499
1575
  #if CUPDLP_DUMP_ITERATES
1500
- vecPrint("x", iterates->x->data, nCols);
1501
- vecPrint("y", iterates->y->data, nRows);
1576
+ cupdlp_int iter = w->timers->nIter;
1577
+ CUPDLPvec *x = iterates->x[iter % 2];
1578
+ CUPDLPvec *y = iterates->y[iter % 2];
1579
+ CUPDLPvec *aty = iterates->aty[iter % 2];
1580
+
1581
+ vecPrint("x", x->data, nCols);
1582
+ vecPrint("y", y->data, nRows);
1502
1583
  vecPrint("xSum", iterates->xSum, nCols);
1503
1584
  vecPrint("ySum", iterates->ySum, nRows);
1504
- vecPrint("Ax ", iterates->ax->data, nRows);
1505
- vecPrint("A'y", iterates->aty->data, nCols);
1585
+ vecPrint("Ax ", ax->data, nRows);
1586
+ vecPrint("A'y", aty->data, nCols);
1506
1587
  vecPrint("xLastRestart", iterates->xLastRestart, nCols);
1507
1588
  vecPrint("yLastRestart", iterates->yLastRestart, nRows);
1508
1589
  #endif