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.
Files changed (448) 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 +7 -7
  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/{lib/cmake/tinyxml2/tinyxml2-static-targets.cmake → cmake/ghc_filesystem/ghc_filesystem-targets.cmake} +10 -10
  12. casadi/cmake/highs/highs-targets-release.cmake +2 -2
  13. casadi/cmake/highs/highs-targets.cmake +3 -3
  14. casadi/cmake/libzip/libzip-config-version.cmake +43 -0
  15. casadi/cmake/libzip/libzip-config.cmake +69 -0
  16. casadi/cmake/libzip/libzip-targets-release.cmake +19 -0
  17. casadi/cmake/libzip/libzip-targets.cmake +107 -0
  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/cmake/osqp/osqp-targets.cmake +2 -2
  22. casadi/cmake/proxsuite/proxsuiteTargets.cmake +2 -2
  23. casadi/cmake/qdldl/qdldl-targets.cmake +2 -2
  24. casadi/cmake/sleqp/sleqp-targets.cmake +2 -2
  25. casadi/cmake/trlib/trlib-config.cmake +2 -2
  26. casadi/highs +0 -0
  27. casadi/include/casadi/casadi.i +194 -44
  28. casadi/include/casadi/config.h +11 -11
  29. casadi/include/casadi/core/archiver.hpp +58 -0
  30. casadi/include/casadi/core/blazing_spline.hpp +47 -0
  31. casadi/include/casadi/core/calculus.hpp +57 -2
  32. casadi/include/casadi/core/casadi_common.hpp +37 -0
  33. casadi/include/casadi/core/casadi_meta.hpp +15 -0
  34. casadi/include/casadi/core/casadi_misc.hpp +7 -0
  35. casadi/include/casadi/core/code_generator.hpp +95 -17
  36. casadi/include/casadi/core/core.hpp +5 -0
  37. casadi/include/casadi/core/dae_builder.hpp +283 -141
  38. casadi/include/casadi/core/dm.hpp +3 -0
  39. casadi/include/casadi/core/filesystem.hpp +58 -0
  40. casadi/include/casadi/core/fmu.hpp +51 -16
  41. casadi/include/casadi/core/function.hpp +19 -0
  42. casadi/include/casadi/core/generic_matrix.hpp +214 -7
  43. casadi/include/casadi/core/generic_shared.hpp +318 -0
  44. casadi/include/casadi/core/generic_shared_impl.hpp +214 -0
  45. casadi/include/casadi/core/generic_shared_internal.hpp +215 -0
  46. casadi/include/casadi/core/generic_type.hpp +3 -0
  47. casadi/include/casadi/core/global_options.hpp +10 -0
  48. casadi/include/casadi/core/integrator.hpp +41 -7
  49. casadi/include/casadi/core/matrix_decl.hpp +67 -0
  50. casadi/include/casadi/core/mx.hpp +63 -2
  51. casadi/include/casadi/core/options.hpp +6 -3
  52. casadi/include/casadi/core/optistack.hpp +43 -9
  53. casadi/include/casadi/core/printable.hpp +8 -0
  54. casadi/include/casadi/core/resource.hpp +107 -0
  55. casadi/include/casadi/core/runtime/casadi_blazing_1d_boor_eval.hpp +112 -0
  56. casadi/include/casadi/core/runtime/casadi_blazing_2d_boor_eval.hpp +311 -0
  57. casadi/include/casadi/core/runtime/casadi_blazing_3d_boor_eval.hpp +645 -0
  58. casadi/include/casadi/core/runtime/casadi_blazing_de_boor.hpp +101 -0
  59. casadi/include/casadi/core/runtime/casadi_nlp.hpp +8 -2
  60. casadi/include/casadi/core/runtime/casadi_printme.hpp +25 -0
  61. casadi/include/casadi/core/serializer.hpp +12 -4
  62. casadi/include/casadi/core/serializing_stream.hpp +3 -0
  63. casadi/include/casadi/core/shared_object.hpp +73 -161
  64. casadi/include/casadi/core/sparsity.hpp +13 -1
  65. casadi/include/casadi/core/sparsity_interface.hpp +19 -1
  66. casadi/include/casadi/core/sx.hpp +41 -0
  67. casadi/include/casadi/core/sx_elem.hpp +25 -0
  68. casadi/include/casadi/core/xml_node.hpp +5 -0
  69. casadi/include/casadi/doc.i +9703 -6539
  70. casadi/include/casadi/doc_merged.i +6483 -4447
  71. casadi/include/casadi/valgrind-casadi.supp +138 -0
  72. casadi/include/casadi/valgrind-python.supp +2470 -0
  73. casadi/include/fatrop/blasfeo_wrapper/LinearAlgebraBlasfeo.hpp +4 -1
  74. casadi/include/ghc/filesystem.hpp +6083 -0
  75. casadi/include/ghc/fs_fwd.hpp +38 -0
  76. casadi/include/ghc/fs_impl.hpp +35 -0
  77. casadi/include/ghc/fs_std.hpp +60 -0
  78. casadi/include/ghc/fs_std_fwd.hpp +63 -0
  79. casadi/include/ghc/fs_std_impl.hpp +46 -0
  80. casadi/include/highs/HConfig.h +6 -4
  81. casadi/include/highs/Highs.h +260 -86
  82. casadi/include/highs/filereaderlp/reader.hpp +10 -10
  83. casadi/include/highs/interfaces/highs_c_api.h +195 -22
  84. casadi/include/highs/io/Filereader.h +4 -6
  85. casadi/include/highs/io/FilereaderEms.h +0 -3
  86. casadi/include/highs/io/FilereaderLp.h +0 -3
  87. casadi/include/highs/io/FilereaderMps.h +0 -3
  88. casadi/include/highs/io/HMPSIO.h +1 -4
  89. casadi/include/highs/io/HMpsFF.h +8 -5
  90. casadi/include/highs/io/HighsIO.h +10 -5
  91. casadi/include/highs/io/LoadOptions.h +0 -3
  92. casadi/include/highs/ipm/IpxSolution.h +0 -3
  93. casadi/include/highs/ipm/IpxWrapper.h +4 -7
  94. casadi/include/highs/ipm/ipx/control.h +1 -0
  95. casadi/include/highs/ipm/ipx/ipx_parameters.h +1 -0
  96. casadi/include/highs/ipm/ipx/lp_solver.h +3 -2
  97. casadi/include/highs/ipm/ipx/model.h +7 -3
  98. casadi/include/highs/lp_data/HConst.h +21 -6
  99. casadi/include/highs/lp_data/HStruct.h +40 -4
  100. casadi/include/highs/lp_data/HighsAnalysis.h +0 -3
  101. casadi/include/highs/lp_data/HighsCallback.h +10 -3
  102. casadi/include/highs/lp_data/HighsCallbackStruct.h +3 -3
  103. casadi/include/highs/lp_data/HighsDebug.h +0 -3
  104. casadi/include/highs/lp_data/HighsIis.h +62 -0
  105. casadi/include/highs/lp_data/HighsInfo.h +50 -43
  106. casadi/include/highs/lp_data/HighsInfoDebug.h +0 -3
  107. casadi/include/highs/lp_data/HighsLp.h +2 -3
  108. casadi/include/highs/lp_data/HighsLpSolverObject.h +0 -3
  109. casadi/include/highs/lp_data/HighsLpUtils.h +38 -6
  110. casadi/include/highs/lp_data/HighsModelUtils.h +21 -18
  111. casadi/include/highs/lp_data/HighsOptions.h +134 -22
  112. casadi/include/highs/lp_data/HighsRanging.h +0 -3
  113. casadi/include/highs/lp_data/HighsSolution.h +10 -3
  114. casadi/include/highs/lp_data/HighsSolutionDebug.h +0 -3
  115. casadi/include/highs/lp_data/HighsSolve.h +0 -3
  116. casadi/include/highs/lp_data/HighsStatus.h +0 -3
  117. casadi/include/highs/mip/HighsCliqueTable.h +3 -3
  118. casadi/include/highs/mip/HighsConflictPool.h +0 -3
  119. casadi/include/highs/mip/HighsCutGeneration.h +13 -3
  120. casadi/include/highs/mip/HighsCutPool.h +0 -3
  121. casadi/include/highs/mip/HighsDebugSol.h +0 -3
  122. casadi/include/highs/mip/HighsDomain.h +16 -4
  123. casadi/include/highs/mip/HighsDomainChange.h +0 -3
  124. casadi/include/highs/mip/HighsDynamicRowMatrix.h +0 -3
  125. casadi/include/highs/mip/HighsGFkSolve.h +3 -6
  126. casadi/include/highs/mip/HighsImplications.h +29 -5
  127. casadi/include/highs/mip/HighsLpAggregator.h +0 -3
  128. casadi/include/highs/mip/HighsLpRelaxation.h +0 -3
  129. casadi/include/highs/mip/HighsMipAnalysis.h +52 -0
  130. casadi/include/highs/mip/HighsMipSolver.h +11 -4
  131. casadi/include/highs/mip/HighsMipSolverData.h +67 -6
  132. casadi/include/highs/mip/HighsModkSeparator.h +1 -4
  133. casadi/include/highs/mip/HighsNodeQueue.h +0 -3
  134. casadi/include/highs/mip/HighsObjectiveFunction.h +0 -3
  135. casadi/include/highs/mip/HighsPathSeparator.h +1 -4
  136. casadi/include/highs/mip/HighsPrimalHeuristics.h +7 -5
  137. casadi/include/highs/mip/HighsPseudocost.h +0 -3
  138. casadi/include/highs/mip/HighsRedcostFixing.h +0 -3
  139. casadi/include/highs/mip/HighsSearch.h +0 -3
  140. casadi/include/highs/mip/HighsSeparation.h +0 -3
  141. casadi/include/highs/mip/HighsSeparator.h +1 -5
  142. casadi/include/highs/mip/HighsTableauSeparator.h +1 -4
  143. casadi/include/highs/mip/HighsTransformedLp.h +0 -3
  144. casadi/include/highs/mip/MipTimer.h +471 -0
  145. casadi/include/highs/parallel/HighsBinarySemaphore.h +1 -1
  146. casadi/include/highs/parallel/HighsCacheAlign.h +1 -1
  147. casadi/include/highs/parallel/HighsCombinable.h +1 -1
  148. casadi/include/highs/parallel/HighsMutex.h +1 -1
  149. casadi/include/highs/parallel/HighsRaceTimer.h +1 -1
  150. casadi/include/highs/parallel/HighsSchedulerConstants.h +1 -1
  151. casadi/include/highs/parallel/HighsSplitDeque.h +1 -1
  152. casadi/include/highs/parallel/HighsTaskExecutor.h +68 -55
  153. casadi/include/highs/pdlp/CupdlpWrapper.h +18 -7
  154. casadi/include/highs/pdlp/cupdlp/cupdlp_cs.h +2 -3
  155. casadi/include/highs/pdlp/cupdlp/cupdlp_defs.h +16 -6
  156. casadi/include/highs/pdlp/cupdlp/cupdlp_linalg.h +10 -4
  157. casadi/include/highs/pdlp/cupdlp/cupdlp_proj.h +3 -3
  158. casadi/include/highs/pdlp/cupdlp/cupdlp_restart.h +6 -6
  159. casadi/include/highs/pdlp/cupdlp/cupdlp_scaling.h +26 -0
  160. casadi/include/highs/pdlp/cupdlp/cupdlp_solver.h +11 -11
  161. casadi/include/highs/pdlp/cupdlp/cupdlp_step.h +8 -4
  162. casadi/include/highs/pdlp/cupdlp/cupdlp_utils.c +253 -172
  163. casadi/include/highs/presolve/HPresolve.h +50 -10
  164. casadi/include/highs/presolve/HPresolveAnalysis.h +0 -3
  165. casadi/include/highs/presolve/HighsPostsolveStack.h +39 -6
  166. casadi/include/highs/presolve/HighsSymmetry.h +0 -3
  167. casadi/include/highs/presolve/ICrash.h +0 -3
  168. casadi/include/highs/presolve/ICrashUtil.h +1 -4
  169. casadi/include/highs/presolve/ICrashX.h +0 -3
  170. casadi/include/highs/presolve/PresolveComponent.h +0 -3
  171. casadi/include/highs/qpsolver/a_asm.hpp +20 -17
  172. casadi/include/highs/qpsolver/a_quass.hpp +5 -9
  173. casadi/include/highs/qpsolver/basis.hpp +12 -10
  174. casadi/include/highs/qpsolver/crashsolution.hpp +4 -3
  175. casadi/include/highs/qpsolver/dantzigpricing.hpp +3 -2
  176. casadi/include/highs/qpsolver/devexpricing.hpp +3 -1
  177. casadi/include/highs/qpsolver/factor.hpp +6 -5
  178. casadi/include/highs/qpsolver/feasibility_bounded.hpp +31 -29
  179. casadi/include/highs/qpsolver/feasibility_highs.hpp +94 -70
  180. casadi/include/highs/qpsolver/gradient.hpp +1 -1
  181. casadi/include/highs/qpsolver/instance.hpp +1 -1
  182. casadi/include/highs/qpsolver/pricing.hpp +2 -2
  183. casadi/include/highs/qpsolver/qpconst.hpp +2 -2
  184. casadi/include/highs/qpsolver/quass.hpp +2 -2
  185. casadi/include/highs/qpsolver/runtime.hpp +2 -2
  186. casadi/include/highs/qpsolver/settings.hpp +20 -8
  187. casadi/include/highs/qpsolver/steepestedgepricing.hpp +38 -39
  188. casadi/include/highs/simplex/HApp.h +88 -34
  189. casadi/include/highs/simplex/HEkk.h +24 -11
  190. casadi/include/highs/simplex/HEkkDual.h +2 -4
  191. casadi/include/highs/simplex/HEkkDualRHS.h +0 -3
  192. casadi/include/highs/simplex/HEkkDualRow.h +0 -3
  193. casadi/include/highs/simplex/HEkkPrimal.h +1 -5
  194. casadi/include/highs/simplex/HSimplex.h +0 -3
  195. casadi/include/highs/simplex/HSimplexDebug.h +0 -3
  196. casadi/include/highs/simplex/HSimplexNla.h +0 -26
  197. casadi/include/highs/simplex/HSimplexReport.h +0 -3
  198. casadi/include/highs/simplex/HighsSimplexAnalysis.h +5 -8
  199. casadi/include/highs/simplex/SimplexConst.h +10 -11
  200. casadi/include/highs/simplex/SimplexStruct.h +9 -12
  201. casadi/include/highs/simplex/SimplexTimer.h +83 -101
  202. casadi/include/highs/test/DevKkt.h +0 -3
  203. casadi/include/highs/test/KktCh2.h +0 -3
  204. casadi/include/highs/util/FactorTimer.h +39 -64
  205. casadi/include/highs/util/HFactor.h +4 -4
  206. casadi/include/highs/util/HFactorConst.h +0 -3
  207. casadi/include/highs/util/HFactorDebug.h +0 -3
  208. casadi/include/highs/util/HSet.h +0 -3
  209. casadi/include/highs/util/HVector.h +0 -3
  210. casadi/include/highs/util/HVectorBase.h +1 -4
  211. casadi/include/highs/util/HighsCDouble.h +12 -3
  212. casadi/include/highs/util/HighsComponent.h +0 -3
  213. casadi/include/highs/util/HighsDataStack.h +0 -3
  214. casadi/include/highs/util/HighsDisjointSets.h +0 -3
  215. casadi/include/highs/util/HighsHash.h +9 -12
  216. casadi/include/highs/util/HighsHashTree.h +15 -11
  217. casadi/include/highs/util/HighsInt.h +0 -3
  218. casadi/include/highs/util/HighsIntegers.h +0 -3
  219. casadi/include/highs/util/HighsLinearSumBounds.h +0 -3
  220. casadi/include/highs/util/HighsMatrixPic.h +0 -3
  221. casadi/include/highs/util/HighsMatrixSlice.h +3 -6
  222. casadi/include/highs/util/HighsMatrixUtils.h +0 -3
  223. casadi/include/highs/util/HighsMemoryAllocation.h +11 -3
  224. casadi/include/highs/util/HighsRandom.h +3 -6
  225. casadi/include/highs/util/HighsRbTree.h +0 -3
  226. casadi/include/highs/util/HighsSort.h +0 -3
  227. casadi/include/highs/util/HighsSparseMatrix.h +6 -3
  228. casadi/include/highs/util/HighsSparseVectorSum.h +0 -3
  229. casadi/include/highs/util/HighsSplay.h +0 -3
  230. casadi/include/highs/util/HighsTimer.h +94 -56
  231. casadi/include/highs/util/HighsUtils.h +10 -3
  232. casadi/include/highs/util/stringutil.h +14 -12
  233. casadi/include/licenses/ghc-external/LICENSE +19 -0
  234. casadi/include/licenses/libz-external/LICENSE +22 -0
  235. casadi/include/licenses/libz-external/contrib/dotzlib/LICENSE_1_0.txt +23 -0
  236. casadi/include/licenses/libzip-external/LICENSE +31 -0
  237. casadi/include/zconf.h +545 -0
  238. casadi/include/zip.h +528 -0
  239. casadi/include/zipconf.h +48 -0
  240. casadi/include/zlib.h +1938 -0
  241. casadi/libCbc.3.10.11.dylib +0 -0
  242. casadi/libCbc.3.dylib +0 -0
  243. casadi/libCbc.dylib +0 -0
  244. casadi/libCbc.la +1 -1
  245. casadi/libCbcSolver.3.10.11.dylib +0 -0
  246. casadi/libCbcSolver.3.dylib +0 -0
  247. casadi/libCbcSolver.dylib +0 -0
  248. casadi/libCbcSolver.la +1 -1
  249. casadi/libCgl.1.10.8.dylib +0 -0
  250. casadi/libCgl.1.dylib +0 -0
  251. casadi/libCgl.dylib +0 -0
  252. casadi/libCgl.la +1 -1
  253. casadi/libClp.1.14.9.dylib +0 -0
  254. casadi/libClp.1.dylib +0 -0
  255. casadi/libClp.dylib +0 -0
  256. casadi/libClp.la +1 -1
  257. casadi/libClpSolver.1.14.9.dylib +0 -0
  258. casadi/libClpSolver.1.dylib +0 -0
  259. casadi/libClpSolver.dylib +0 -0
  260. casadi/libClpSolver.la +1 -1
  261. casadi/libCoinUtils.3.11.10.dylib +0 -0
  262. casadi/libCoinUtils.3.dylib +0 -0
  263. casadi/libCoinUtils.dylib +0 -0
  264. casadi/libOsi.1.13.9.dylib +0 -0
  265. casadi/libOsi.1.dylib +0 -0
  266. casadi/libOsi.dylib +0 -0
  267. casadi/libOsiCbc.3.10.11.dylib +0 -0
  268. casadi/libOsiCbc.3.dylib +0 -0
  269. casadi/libOsiCbc.dylib +0 -0
  270. casadi/libOsiCbc.la +1 -1
  271. casadi/libOsiClp.1.14.9.dylib +0 -0
  272. casadi/libOsiClp.1.dylib +0 -0
  273. casadi/libOsiClp.dylib +0 -0
  274. casadi/libOsiClp.la +1 -1
  275. casadi/libOsiCommonTests.1.13.9.dylib +0 -0
  276. casadi/libOsiCommonTests.1.dylib +0 -0
  277. casadi/libOsiCommonTests.dylib +0 -0
  278. casadi/libblasfeo.dylib +0 -0
  279. casadi/libbonmin.4.8.9.dylib +0 -0
  280. casadi/libbonmin.4.dylib +0 -0
  281. casadi/libbonmin.dylib +0 -0
  282. casadi/libbonmin.la +1 -1
  283. casadi/libc++.1.0.dylib +0 -0
  284. casadi/libcasadi.3.7.dylib +0 -0
  285. casadi/libcasadi.dylib +0 -0
  286. casadi/libcasadi_archiver_libzip.3.7.dylib +0 -0
  287. casadi/libcasadi_archiver_libzip.dylib +0 -0
  288. casadi/libcasadi_conic_cbc.3.7.dylib +0 -0
  289. casadi/libcasadi_conic_cbc.dylib +0 -0
  290. casadi/libcasadi_conic_clp.3.7.dylib +0 -0
  291. casadi/libcasadi_conic_clp.dylib +0 -0
  292. casadi/libcasadi_conic_cplex.3.7.dylib +0 -0
  293. casadi/libcasadi_conic_cplex.dylib +0 -0
  294. casadi/libcasadi_conic_daqp.3.7.dylib +0 -0
  295. casadi/libcasadi_conic_daqp.dylib +0 -0
  296. casadi/libcasadi_conic_fatrop.3.7.dylib +0 -0
  297. casadi/libcasadi_conic_fatrop.dylib +0 -0
  298. casadi/libcasadi_conic_gurobi.3.7.dylib +0 -0
  299. casadi/libcasadi_conic_gurobi.dylib +0 -0
  300. casadi/libcasadi_conic_highs.3.7.dylib +0 -0
  301. casadi/libcasadi_conic_highs.dylib +0 -0
  302. casadi/libcasadi_conic_ipqp.3.7.dylib +0 -0
  303. casadi/libcasadi_conic_ipqp.dylib +0 -0
  304. casadi/libcasadi_conic_nlpsol.3.7.dylib +0 -0
  305. casadi/libcasadi_conic_nlpsol.dylib +0 -0
  306. casadi/libcasadi_conic_osqp.3.7.dylib +0 -0
  307. casadi/libcasadi_conic_osqp.dylib +0 -0
  308. casadi/libcasadi_conic_proxqp.3.7.dylib +0 -0
  309. casadi/libcasadi_conic_proxqp.dylib +0 -0
  310. casadi/libcasadi_conic_qpoases.3.7.dylib +0 -0
  311. casadi/libcasadi_conic_qpoases.dylib +0 -0
  312. casadi/libcasadi_conic_qrqp.3.7.dylib +0 -0
  313. casadi/libcasadi_conic_qrqp.dylib +0 -0
  314. casadi/libcasadi_conic_superscs.3.7.dylib +0 -0
  315. casadi/libcasadi_conic_superscs.dylib +0 -0
  316. casadi/libcasadi_filesystem_ghc.3.7.dylib +0 -0
  317. casadi/libcasadi_filesystem_ghc.dylib +0 -0
  318. casadi/libcasadi_importer_shell.3.7.dylib +0 -0
  319. casadi/libcasadi_importer_shell.dylib +0 -0
  320. casadi/libcasadi_integrator_collocation.3.7.dylib +0 -0
  321. casadi/libcasadi_integrator_collocation.dylib +0 -0
  322. casadi/libcasadi_integrator_cvodes.3.7.dylib +0 -0
  323. casadi/libcasadi_integrator_cvodes.dylib +0 -0
  324. casadi/libcasadi_integrator_idas.3.7.dylib +0 -0
  325. casadi/libcasadi_integrator_idas.dylib +0 -0
  326. casadi/libcasadi_integrator_rk.3.7.dylib +0 -0
  327. casadi/libcasadi_integrator_rk.dylib +0 -0
  328. casadi/libcasadi_interpolant_bspline.3.7.dylib +0 -0
  329. casadi/libcasadi_interpolant_bspline.dylib +0 -0
  330. casadi/libcasadi_interpolant_linear.3.7.dylib +0 -0
  331. casadi/libcasadi_interpolant_linear.dylib +0 -0
  332. casadi/libcasadi_linsol_csparse.3.7.dylib +0 -0
  333. casadi/libcasadi_linsol_csparse.dylib +0 -0
  334. casadi/libcasadi_linsol_csparsecholesky.3.7.dylib +0 -0
  335. casadi/libcasadi_linsol_csparsecholesky.dylib +0 -0
  336. casadi/libcasadi_linsol_lapacklu.3.7.dylib +0 -0
  337. casadi/libcasadi_linsol_lapacklu.dylib +0 -0
  338. casadi/libcasadi_linsol_lapackqr.3.7.dylib +0 -0
  339. casadi/libcasadi_linsol_lapackqr.dylib +0 -0
  340. casadi/libcasadi_linsol_ldl.3.7.dylib +0 -0
  341. casadi/libcasadi_linsol_ldl.dylib +0 -0
  342. casadi/libcasadi_linsol_lsqr.3.7.dylib +0 -0
  343. casadi/libcasadi_linsol_lsqr.dylib +0 -0
  344. casadi/libcasadi_linsol_ma27.3.7.dylib +0 -0
  345. casadi/libcasadi_linsol_ma27.dylib +0 -0
  346. casadi/libcasadi_linsol_mumps.3.7.dylib +0 -0
  347. casadi/libcasadi_linsol_mumps.dylib +0 -0
  348. casadi/libcasadi_linsol_qr.3.7.dylib +0 -0
  349. casadi/libcasadi_linsol_qr.dylib +0 -0
  350. casadi/libcasadi_linsol_symbolicqr.3.7.dylib +0 -0
  351. casadi/libcasadi_linsol_symbolicqr.dylib +0 -0
  352. casadi/libcasadi_linsol_tridiag.3.7.dylib +0 -0
  353. casadi/libcasadi_linsol_tridiag.dylib +0 -0
  354. casadi/libcasadi_nlpsol_ampl.3.7.dylib +0 -0
  355. casadi/libcasadi_nlpsol_ampl.dylib +0 -0
  356. casadi/libcasadi_nlpsol_blocksqp.3.7.dylib +0 -0
  357. casadi/libcasadi_nlpsol_blocksqp.dylib +0 -0
  358. casadi/libcasadi_nlpsol_bonmin.3.7.dylib +0 -0
  359. casadi/libcasadi_nlpsol_bonmin.dylib +0 -0
  360. casadi/libcasadi_nlpsol_fatrop.3.7.dylib +0 -0
  361. casadi/libcasadi_nlpsol_fatrop.dylib +0 -0
  362. casadi/libcasadi_nlpsol_feasiblesqpmethod.3.7.dylib +0 -0
  363. casadi/libcasadi_nlpsol_feasiblesqpmethod.dylib +0 -0
  364. casadi/libcasadi_nlpsol_ipopt.3.7.dylib +0 -0
  365. casadi/libcasadi_nlpsol_ipopt.dylib +0 -0
  366. casadi/libcasadi_nlpsol_knitro.3.7.dylib +0 -0
  367. casadi/libcasadi_nlpsol_knitro.dylib +0 -0
  368. casadi/libcasadi_nlpsol_madnlp.3.7.dylib +0 -0
  369. casadi/libcasadi_nlpsol_madnlp.dylib +0 -0
  370. casadi/libcasadi_nlpsol_qrsqp.3.7.dylib +0 -0
  371. casadi/libcasadi_nlpsol_qrsqp.dylib +0 -0
  372. casadi/libcasadi_nlpsol_scpgen.3.7.dylib +0 -0
  373. casadi/libcasadi_nlpsol_scpgen.dylib +0 -0
  374. casadi/libcasadi_nlpsol_sleqp.3.7.dylib +0 -0
  375. casadi/libcasadi_nlpsol_sleqp.dylib +0 -0
  376. casadi/libcasadi_nlpsol_snopt.3.7.dylib +0 -0
  377. casadi/libcasadi_nlpsol_snopt.dylib +0 -0
  378. casadi/libcasadi_nlpsol_sqpmethod.3.7.dylib +0 -0
  379. casadi/libcasadi_nlpsol_sqpmethod.dylib +0 -0
  380. casadi/libcasadi_rootfinder_fast_newton.3.7.dylib +0 -0
  381. casadi/libcasadi_rootfinder_fast_newton.dylib +0 -0
  382. casadi/libcasadi_rootfinder_kinsol.3.7.dylib +0 -0
  383. casadi/libcasadi_rootfinder_kinsol.dylib +0 -0
  384. casadi/libcasadi_rootfinder_newton.3.7.dylib +0 -0
  385. casadi/libcasadi_rootfinder_newton.dylib +0 -0
  386. casadi/libcasadi_rootfinder_nlpsol.3.7.dylib +0 -0
  387. casadi/libcasadi_rootfinder_nlpsol.dylib +0 -0
  388. casadi/libcasadi_sundials_common.3.7.dylib +0 -0
  389. casadi/libcasadi_sundials_common.dylib +0 -0
  390. casadi/libcasadi_xmlfile_tinyxml.3.7.dylib +0 -0
  391. casadi/libcasadi_xmlfile_tinyxml.dylib +0 -0
  392. casadi/libcoinmetis.2.dylib +0 -0
  393. casadi/libcoinmetis.dylib +0 -0
  394. casadi/libcoinmumps.3.dylib +0 -0
  395. casadi/libcoinmumps.dylib +0 -0
  396. casadi/libcoinmumps.la +1 -1
  397. casadi/libcplex_adaptor.dylib +0 -0
  398. casadi/libdaqp.dylib +0 -0
  399. casadi/libdaqpstat.a +0 -0
  400. casadi/libfatrop.dylib +0 -0
  401. casadi/libgcc_s.1.1.dylib +0 -0
  402. casadi/libgfortran.5.dylib +0 -0
  403. casadi/libgurobi_adaptor.dylib +0 -0
  404. casadi/libhighs.1.10.dylib +0 -0
  405. casadi/libhighs.1.7.dylib +0 -0
  406. casadi/libhighs.1.dylib +0 -0
  407. casadi/libhighs.dylib +0 -0
  408. casadi/libindirect.a +0 -0
  409. casadi/libipopt.3.dylib +0 -0
  410. casadi/libipopt.dylib +0 -0
  411. casadi/libipopt.la +1 -1
  412. casadi/liblinsys.a +0 -0
  413. casadi/libmatlab_ipc.dylib +0 -0
  414. casadi/libosqp.a +0 -0
  415. casadi/libosqp.dylib +0 -0
  416. casadi/libqdldl.a +0 -0
  417. casadi/libqdldl.dylib +0 -0
  418. casadi/libquadmath.0.dylib +0 -0
  419. casadi/libsipopt.3.dylib +0 -0
  420. casadi/libsipopt.dylib +0 -0
  421. casadi/libsipopt.la +1 -1
  422. casadi/libsleqp.1.0.1.dylib +0 -0
  423. casadi/libsleqp.dylib +0 -0
  424. casadi/libsuperscs.a +0 -0
  425. casadi/libtrlib.0.4.dylib +0 -0
  426. casadi/libtrlib.dylib +0 -0
  427. casadi/libz.1.2.13.dylib +0 -0
  428. casadi/libz.1.3.1.dylib +0 -0
  429. casadi/libz.1.dylib +0 -0
  430. casadi/libz.a +0 -0
  431. casadi/libz.dylib +0 -0
  432. casadi/libzip.a +0 -0
  433. casadi/pkgconfig/casadi.pc +1 -1
  434. casadi/pkgconfig/coinmumps.pc +1 -1
  435. casadi/pkgconfig/highs.pc +1 -1
  436. casadi/pkgconfig/libzip.pc +14 -0
  437. casadi/tools/__init__.py +3 -1
  438. casadi/tools/graph/graph.py +1 -1
  439. casadi/tools/structure3.py +2 -2
  440. {casadi-3.6.7.dist-info → casadi-3.7.0.dist-info}/METADATA +1 -1
  441. {casadi-3.6.7.dist-info → casadi-3.7.0.dist-info}/RECORD +442 -399
  442. casadi/include/tinyxml2.h +0 -2380
  443. casadi/lib/cmake/tinyxml2/tinyxml2-config.cmake +0 -57
  444. casadi/lib/cmake/tinyxml2/tinyxml2-static-targets-release.cmake +0 -19
  445. casadi/lib/libtinyxml2.a +0 -0
  446. casadi/lib/pkgconfig/tinyxml2.pc +0 -10
  447. casadi/tools/structure.py +0 -1446
  448. {casadi-3.6.7.dist-info → casadi-3.7.0.dist-info}/WHEEL +0 -0
@@ -0,0 +1,471 @@
1
+ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2
+ /* */
3
+ /* This file is part of the HiGHS linear optimization suite */
4
+ /* */
5
+ /* Available as open-source under the MIT License */
6
+ /* */
7
+ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
8
+ /**@file mip/MipTimer.h
9
+ * @brief Indices of mip iClocks
10
+ */
11
+ #ifndef MIP_MIPTIMER_H_
12
+ #define MIP_MIPTIMER_H_
13
+
14
+ // Clocks for profiling the MIP dual mip solver
15
+ enum iClockMip {
16
+ kMipClockTotal = 0,
17
+ kMipClockPresolve,
18
+ kMipClockSolve,
19
+ kMipClockPostsolve,
20
+ // Level 1
21
+ kMipClockInit,
22
+ kMipClockRunPresolve,
23
+ kMipClockRunSetup,
24
+ kMipClockTrivialHeuristics,
25
+ kMipClockEvaluateRootNode,
26
+ kMipClockPerformAging0,
27
+ kMipClockSearch,
28
+ // Search
29
+ kMipClockProbingPresolve,
30
+ kMipClockPerformAging1,
31
+ kMipClockDive,
32
+ kMipClockOpenNodesToQueue0,
33
+ kMipClockDomainPropgate,
34
+ kMipClockPruneInfeasibleNodes,
35
+ kMipClockUpdateLocalDomain,
36
+ kMipClockNodeSearch,
37
+
38
+ // Evaluate root node
39
+ kMipClockStartSymmetryDetection,
40
+ kMipClockStartAnalyticCentreComputation,
41
+ kMipClockEvaluateRootLp,
42
+ kMipClockSeparateLpCuts,
43
+ kMipClockRandomizedRounding,
44
+ kMipClockPerformRestart,
45
+ kMipClockRootSeparation,
46
+ kMipClockFinishAnalyticCentreComputation,
47
+ kMipClockRootCentralRounding,
48
+ kMipClockRootSeparationRound0,
49
+ kMipClockRootHeuristicsReducedCost,
50
+ kMipClockRootSeparationRound1,
51
+ kMipClockRootHeuristicsRens,
52
+ kMipClockRootSeparationRound2,
53
+ kMipClockRootFeasibilityPump,
54
+ kMipClockRootSeparationRound3,
55
+ // kMipClock@,
56
+ // kMipClock@,
57
+ // kMipClock@,
58
+ // kMipClock@,
59
+
60
+ kMipClockEvaluateRootNode0,
61
+ kMipClockEvaluateRootNode1,
62
+ kMipClockEvaluateRootNode2,
63
+
64
+ // Dive
65
+ kMipClockDiveEvaluateNode,
66
+ kMipClockDivePrimalHeuristics,
67
+ kMipClockTheDive,
68
+ kMipClockBacktrackPlunge,
69
+ kMipClockPerformAging2,
70
+
71
+ // Dive primal heuristics
72
+ kMipClockDiveRandomizedRounding,
73
+ kMipClockDiveRens,
74
+ kMipClockDiveRins,
75
+
76
+ // NodeSearch
77
+ kMipClockCurrentNodeToQueue,
78
+ kMipClockSearchBacktrack,
79
+ kMipClockNodePrunedLoop,
80
+ kMipClockOpenNodesToQueue1,
81
+ kMipClockEvaluateNode1,
82
+ kMipClockNodeSearchSeparation,
83
+ kMipClockStoreBasis,
84
+ // kMipClock@,
85
+
86
+ // Separation
87
+ kMipClockRootSeparationRound,
88
+ kMipClockRootSeparationFinishAnalyticCentreComputation,
89
+ kMipClockRootSeparationCentralRounding,
90
+ kMipClockRootSeparationEvaluateRootLp,
91
+
92
+ // LP solves
93
+ kMipClockSimplexBasisSolveLp,
94
+ kMipClockSimplexNoBasisSolveLp,
95
+ kMipClockIpmSolveLp,
96
+
97
+ // Sub-MIP solves
98
+ kMipClockSubMipSolve,
99
+
100
+ kMipClockProbingImplications,
101
+
102
+ kNumMipClock //!< Number of MIP clocks
103
+ };
104
+
105
+ const double tolerance_percent_report = 0.1;
106
+
107
+ class MipTimer {
108
+ public:
109
+ void initialiseMipClocks(HighsTimerClock& mip_timer_clock) {
110
+ HighsTimer* timer_pointer = mip_timer_clock.timer_pointer_;
111
+ std::vector<HighsInt>& clock = mip_timer_clock.clock_;
112
+ clock.resize(kNumMipClock);
113
+ clock[kMipClockTotal] = 0;
114
+ clock[kMipClockPresolve] = timer_pointer->clock_def("MIP presolve");
115
+ clock[kMipClockSolve] = timer_pointer->clock_def("MIP solve");
116
+ clock[kMipClockPostsolve] = timer_pointer->clock_def("MIP postsolve");
117
+
118
+ // Sometimes the analytic centre clock isn't stopped - because it
119
+ // runs on a separate thread. Although it would be good to
120
+ // understand this better, for now don't assert that this clock
121
+ // has stopped in HighsTimer.h. This is done with a hard-coded
122
+ // clock ID that needs to equal clock[kMipClockIpmSolveLp]
123
+ //
124
+ // Define the clocks for evaluating the LPs first, so that
125
+ // clock[kMipClockIpmSolveLp] isn't changed by inserting new
126
+ // clocks
127
+ clock[kMipClockSimplexBasisSolveLp] =
128
+ timer_pointer->clock_def("Solve LP - simplex basis");
129
+ clock[kMipClockSimplexNoBasisSolveLp] =
130
+ timer_pointer->clock_def("Solve LP - simplex no basis");
131
+ clock[kMipClockIpmSolveLp] = timer_pointer->clock_def("Solve LP: IPM");
132
+ assert(clock[kMipClockIpmSolveLp] == 9);
133
+
134
+ // Level 1 - Should correspond to kMipClockTotal
135
+ clock[kMipClockInit] = timer_pointer->clock_def("Initialise");
136
+ clock[kMipClockRunPresolve] = timer_pointer->clock_def("Run presolve");
137
+ clock[kMipClockRunSetup] = timer_pointer->clock_def("Run setup");
138
+ clock[kMipClockTrivialHeuristics] =
139
+ timer_pointer->clock_def("Trivial heuristics");
140
+ clock[kMipClockEvaluateRootNode] =
141
+ timer_pointer->clock_def("Evaluate root node");
142
+ clock[kMipClockPerformAging0] = timer_pointer->clock_def("Perform aging 0");
143
+ clock[kMipClockSearch] = timer_pointer->clock_def("Search");
144
+ // kMipClockPostsolve
145
+
146
+ // Evaluate root node
147
+ clock[kMipClockStartSymmetryDetection] =
148
+ timer_pointer->clock_def("Start symmetry detection");
149
+ clock[kMipClockStartAnalyticCentreComputation] =
150
+ timer_pointer->clock_def("A-centre - start");
151
+ clock[kMipClockEvaluateRootLp] =
152
+ timer_pointer->clock_def("Evaluate root LP");
153
+ clock[kMipClockSeparateLpCuts] =
154
+ timer_pointer->clock_def("Separate LP cuts");
155
+ clock[kMipClockRandomizedRounding] =
156
+ timer_pointer->clock_def("Randomized rounding");
157
+ clock[kMipClockPerformRestart] =
158
+ timer_pointer->clock_def("Perform restart");
159
+ clock[kMipClockRootSeparation] =
160
+ timer_pointer->clock_def("Root separation");
161
+ clock[kMipClockFinishAnalyticCentreComputation] =
162
+ timer_pointer->clock_def("A-centre - finish");
163
+ clock[kMipClockRootCentralRounding] =
164
+ timer_pointer->clock_def("Root central rounding");
165
+ clock[kMipClockRootSeparationRound0] =
166
+ timer_pointer->clock_def("Root separation round 0");
167
+ clock[kMipClockRootHeuristicsReducedCost] =
168
+ timer_pointer->clock_def("Root heuristics reduced cost");
169
+ clock[kMipClockRootSeparationRound1] =
170
+ timer_pointer->clock_def("Root separation round 1");
171
+ clock[kMipClockRootHeuristicsRens] =
172
+ timer_pointer->clock_def("Root heuristics RENS");
173
+ clock[kMipClockRootSeparationRound2] =
174
+ timer_pointer->clock_def("Root separation round 2");
175
+ clock[kMipClockRootFeasibilityPump] =
176
+ timer_pointer->clock_def("Root feasibility pump");
177
+ clock[kMipClockRootSeparationRound3] =
178
+ timer_pointer->clock_def("Root separation round 3");
179
+ // clock[kMipClock@] = timer_pointer->clock_def("@");
180
+
181
+ clock[kMipClockEvaluateRootNode0] =
182
+ timer_pointer->clock_def("kMipClockEvaluateRootNode0");
183
+ clock[kMipClockEvaluateRootNode1] =
184
+ timer_pointer->clock_def("kMipClockEvaluateRootNode1");
185
+ clock[kMipClockEvaluateRootNode2] =
186
+ timer_pointer->clock_def("kMipClockEvaluateRootNode2");
187
+
188
+ // Separation
189
+ clock[kMipClockRootSeparationRound] =
190
+ timer_pointer->clock_def("Separation");
191
+ clock[kMipClockRootSeparationFinishAnalyticCentreComputation] =
192
+ timer_pointer->clock_def("A-centre - finish");
193
+ clock[kMipClockRootSeparationCentralRounding] =
194
+ timer_pointer->clock_def("Central rounding");
195
+ clock[kMipClockRootSeparationEvaluateRootLp] =
196
+ timer_pointer->clock_def("Evaluate root LP");
197
+
198
+ // Presolve - Should correspond to kMipClockRunPresolve
199
+ clock[kMipClockProbingPresolve] =
200
+ timer_pointer->clock_def("Probing - presolve");
201
+
202
+ // Search - Should correspond to kMipClockSearch
203
+ clock[kMipClockPerformAging1] = timer_pointer->clock_def("Perform aging 1");
204
+ clock[kMipClockDive] = timer_pointer->clock_def("Dive");
205
+ clock[kMipClockOpenNodesToQueue0] =
206
+ timer_pointer->clock_def("Open nodes to queue 0");
207
+ clock[kMipClockDomainPropgate] =
208
+ timer_pointer->clock_def("Domain propagate");
209
+ clock[kMipClockPruneInfeasibleNodes] =
210
+ timer_pointer->clock_def("Prune infeasible nodes");
211
+ clock[kMipClockUpdateLocalDomain] =
212
+ timer_pointer->clock_def("Update local domain");
213
+ clock[kMipClockNodeSearch] = timer_pointer->clock_def("Node search");
214
+ // clock[kMipClock@] = timer_pointer->clock_def("@");
215
+
216
+ // Dive - Should correspond to kMipClockDive
217
+ clock[kMipClockDiveEvaluateNode] =
218
+ timer_pointer->clock_def("Evaluate node");
219
+ clock[kMipClockDivePrimalHeuristics] =
220
+ timer_pointer->clock_def("Dive primal heuristics");
221
+ clock[kMipClockTheDive] = timer_pointer->clock_def("The dive");
222
+ clock[kMipClockBacktrackPlunge] =
223
+ timer_pointer->clock_def("Backtrack plunge");
224
+ clock[kMipClockPerformAging2] = timer_pointer->clock_def("Perform aging 2");
225
+
226
+ // Primal heuristics - Should correspond to kMipDiveClockPrimalHeuristics
227
+ clock[kMipClockDiveRandomizedRounding] =
228
+ timer_pointer->clock_def("Dive Randomized rounding");
229
+ clock[kMipClockDiveRens] = timer_pointer->clock_def("Dive RENS");
230
+ clock[kMipClockDiveRins] = timer_pointer->clock_def("Dive RINS");
231
+
232
+ // Node search
233
+ clock[kMipClockCurrentNodeToQueue] =
234
+ timer_pointer->clock_def("Current node to queue");
235
+ clock[kMipClockSearchBacktrack] =
236
+ timer_pointer->clock_def("Search backtrack");
237
+ clock[kMipClockNodePrunedLoop] =
238
+ timer_pointer->clock_def("Pruned loop search");
239
+ clock[kMipClockOpenNodesToQueue1] =
240
+ timer_pointer->clock_def("Open nodes to queue 1");
241
+ clock[kMipClockEvaluateNode1] = timer_pointer->clock_def("Evaluate node 1");
242
+ clock[kMipClockNodeSearchSeparation] =
243
+ timer_pointer->clock_def("Node search separation");
244
+ clock[kMipClockStoreBasis] = timer_pointer->clock_def("Store basis");
245
+ // clock[] = timer_pointer->clock_def("");
246
+
247
+ // Sub-MIP clock
248
+ clock[kMipClockSubMipSolve] = timer_pointer->clock_def("Sub-MIP solves");
249
+
250
+ clock[kMipClockProbingImplications] =
251
+ timer_pointer->clock_def("Probing - implications");
252
+ // clock[] = timer_pointer->clock_def("");
253
+ };
254
+
255
+ bool reportMipClockList(const char* grepStamp,
256
+ const std::vector<HighsInt> mip_clock_list,
257
+ const HighsTimerClock& mip_timer_clock,
258
+ const HighsInt kMipClockIdeal = kMipClockTotal,
259
+ const double tolerance_percent_report_ = -1) {
260
+ HighsTimer* timer_pointer = mip_timer_clock.timer_pointer_;
261
+ const std::vector<HighsInt>& clock = mip_timer_clock.clock_;
262
+ HighsInt mip_clock_list_size = mip_clock_list.size();
263
+ std::vector<HighsInt> clockList;
264
+ clockList.resize(mip_clock_list_size);
265
+ for (HighsInt en = 0; en < mip_clock_list_size; en++) {
266
+ clockList[en] = clock[mip_clock_list[en]];
267
+ }
268
+ const double ideal_sum_time =
269
+ timer_pointer->clock_time[clock[kMipClockIdeal]];
270
+ const double tolerance_percent_report =
271
+ tolerance_percent_report_ >= 0 ? tolerance_percent_report_ : 1e-8;
272
+ return timer_pointer->reportOnTolerance(
273
+ grepStamp, clockList, ideal_sum_time, tolerance_percent_report);
274
+ };
275
+
276
+ void csvMipClockList(const std::string grep_query,
277
+ const std::string model_name,
278
+ const std::vector<HighsInt> mip_clock_list,
279
+ const HighsTimerClock& mip_timer_clock,
280
+ const HighsInt kMipClockIdeal, const bool header,
281
+ const bool end_line) {
282
+ HighsTimer* timer_pointer = mip_timer_clock.timer_pointer_;
283
+ const std::vector<HighsInt>& clock = mip_timer_clock.clock_;
284
+ const double ideal_sum_time =
285
+ timer_pointer->clock_time[clock[kMipClockIdeal]];
286
+ if (ideal_sum_time < 1e-2) return;
287
+ const HighsInt num_clock = mip_clock_list.size();
288
+ if (header) {
289
+ printf("grep_%s,model,ideal", grep_query.c_str());
290
+ for (HighsInt iX = 0; iX < num_clock; iX++) {
291
+ HighsInt iclock = clock[mip_clock_list[iX]];
292
+ printf(",%s", timer_pointer->clock_names[iclock].c_str());
293
+ }
294
+ printf(",Unaccounted");
295
+ if (end_line) printf("\n");
296
+ return;
297
+ }
298
+ double sum_time = 0;
299
+ printf("grep_%s,%s,%11.4g", grep_query.c_str(), model_name.c_str(),
300
+ ideal_sum_time);
301
+ for (HighsInt iX = 0; iX < num_clock; iX++) {
302
+ HighsInt iclock = clock[mip_clock_list[iX]];
303
+ double time = timer_pointer->read(iclock);
304
+ sum_time += time;
305
+ printf(",%11.4g", time);
306
+ }
307
+ printf(",%11.4g", ideal_sum_time - sum_time);
308
+ if (end_line) printf("\n");
309
+ }
310
+
311
+ void reportMipCoreClock(const HighsTimerClock& mip_timer_clock) {
312
+ // const std::vector<HighsInt>& clock = mip_timer_clock.clock_;
313
+ const std::vector<HighsInt> mip_clock_list{
314
+ kMipClockPresolve, kMipClockSolve, kMipClockPostsolve};
315
+ reportMipClockList("MipCore_", mip_clock_list, mip_timer_clock,
316
+ kMipClockTotal);
317
+ };
318
+
319
+ void reportMipLevel1Clock(const HighsTimerClock& mip_timer_clock) {
320
+ const std::vector<HighsInt> mip_clock_list{kMipClockInit,
321
+ kMipClockRunPresolve,
322
+ kMipClockRunSetup,
323
+ kMipClockTrivialHeuristics,
324
+ kMipClockEvaluateRootNode,
325
+ kMipClockPerformAging0,
326
+ kMipClockSearch,
327
+ kMipClockPostsolve};
328
+ reportMipClockList("MipLevl1", mip_clock_list, mip_timer_clock,
329
+ kMipClockTotal, tolerance_percent_report);
330
+ };
331
+
332
+ void reportMipSolveLpClock(const HighsTimerClock& mip_timer_clock) {
333
+ const std::vector<HighsInt> mip_clock_list{kMipClockSimplexBasisSolveLp,
334
+ kMipClockSimplexNoBasisSolveLp,
335
+ kMipClockIpmSolveLp};
336
+ reportMipClockList("MipSlvLp", mip_clock_list, mip_timer_clock,
337
+ kMipClockTotal); //, tolerance_percent_report);
338
+ };
339
+
340
+ void reportMipSubMipSolveClock(const HighsTimerClock& mip_timer_clock) {
341
+ const std::vector<HighsInt> mip_clock_list{kMipClockSubMipSolve};
342
+ reportMipClockList("MipSlvLp", mip_clock_list, mip_timer_clock,
343
+ kMipClockTotal); //, tolerance_percent_report);
344
+ };
345
+
346
+ void reportMipPresolveClock(const HighsTimerClock& mip_timer_clock) {
347
+ const std::vector<HighsInt> mip_clock_list{kMipClockProbingPresolve};
348
+ reportMipClockList("MipPrslv", mip_clock_list, mip_timer_clock,
349
+ kMipClockRunPresolve, tolerance_percent_report);
350
+ };
351
+
352
+ void reportAltEvaluateRootNodeClock(const HighsTimerClock& mip_timer_clock) {
353
+ const std::vector<HighsInt> mip_clock_list{kMipClockEvaluateRootNode0,
354
+ kMipClockEvaluateRootNode1,
355
+ kMipClockEvaluateRootNode2};
356
+ reportMipClockList(
357
+ "AltEvaluateRootNode", mip_clock_list, mip_timer_clock,
358
+ kMipClockEvaluateRootNode); //, tolerance_percent_report);
359
+ };
360
+
361
+ void reportMipEvaluateRootNodeClock(const HighsTimerClock& mip_timer_clock) {
362
+ const std::vector<HighsInt> mip_clock_list{
363
+ kMipClockStartSymmetryDetection,
364
+ kMipClockStartAnalyticCentreComputation,
365
+ kMipClockEvaluateRootLp,
366
+ kMipClockSeparateLpCuts,
367
+ kMipClockRandomizedRounding,
368
+ kMipClockPerformRestart,
369
+ kMipClockRootSeparation,
370
+ kMipClockFinishAnalyticCentreComputation,
371
+ kMipClockRootCentralRounding,
372
+ kMipClockRootSeparationRound0,
373
+ kMipClockRootHeuristicsReducedCost,
374
+ kMipClockRootSeparationRound1,
375
+ kMipClockRootHeuristicsRens,
376
+ kMipClockRootSeparationRound2,
377
+ kMipClockRootFeasibilityPump,
378
+ kMipClockRootSeparationRound3
379
+ // kMipClock@,
380
+ // kMipClock@
381
+ };
382
+ reportMipClockList(
383
+ "MipEvaluateRootNode", mip_clock_list, mip_timer_clock,
384
+ kMipClockEvaluateRootNode); //, tolerance_percent_report);
385
+ };
386
+
387
+ void reportMipSeparationClock(const HighsTimerClock& mip_timer_clock) {
388
+ const std::vector<HighsInt> mip_clock_list{
389
+ kMipClockRootSeparationRound,
390
+ kMipClockRootSeparationFinishAnalyticCentreComputation,
391
+ kMipClockRootSeparationCentralRounding,
392
+ kMipClockRootSeparationEvaluateRootLp};
393
+ reportMipClockList("MipRootSeparation", mip_clock_list, mip_timer_clock,
394
+ kMipClockRootSeparation); //, tolerance_percent_report);
395
+ };
396
+
397
+ void reportMipSearchClock(const HighsTimerClock& mip_timer_clock) {
398
+ const std::vector<HighsInt> mip_clock_list{
399
+ kMipClockPerformAging1, kMipClockDive,
400
+ kMipClockOpenNodesToQueue0, kMipClockDomainPropgate,
401
+ kMipClockPruneInfeasibleNodes, kMipClockUpdateLocalDomain,
402
+ kMipClockNodeSearch,
403
+ // kMipClock@
404
+ };
405
+ reportMipClockList("MipSerch", mip_clock_list, mip_timer_clock,
406
+ kMipClockSearch, tolerance_percent_report);
407
+ };
408
+
409
+ void reportMipDiveClock(const HighsTimerClock& mip_timer_clock) {
410
+ const std::vector<HighsInt> mip_clock_list{
411
+ kMipClockDiveEvaluateNode, kMipClockDivePrimalHeuristics,
412
+ kMipClockTheDive, kMipClockBacktrackPlunge, kMipClockPerformAging2};
413
+ reportMipClockList("MipDive_", mip_clock_list, mip_timer_clock,
414
+ kMipClockDive, tolerance_percent_report);
415
+ };
416
+
417
+ void reportMipDivePrimalHeuristicsClock(
418
+ const HighsTimerClock& mip_timer_clock) {
419
+ const std::vector<HighsInt> mip_clock_list{
420
+ kMipClockDiveRandomizedRounding, kMipClockDiveRens, kMipClockDiveRins};
421
+ reportMipClockList("MipDivePrimalHeuristics", mip_clock_list,
422
+ mip_timer_clock, kMipClockDivePrimalHeuristics,
423
+ tolerance_percent_report);
424
+ };
425
+
426
+ void reportMipNodeSearchClock(const HighsTimerClock& mip_timer_clock) {
427
+ const std::vector<HighsInt> mip_clock_list{
428
+ kMipClockCurrentNodeToQueue, kMipClockNodePrunedLoop,
429
+ // kMipClockSearchBacktrack,
430
+ kMipClockOpenNodesToQueue1, kMipClockEvaluateNode1,
431
+ kMipClockNodeSearchSeparation}; //, kMipClockStoreBasis};
432
+ reportMipClockList("MipNodeSearch", mip_clock_list, mip_timer_clock,
433
+ kMipClockNodeSearch); //, tolerance_percent_report);
434
+ };
435
+
436
+ void csvMipClock(const std::string model_name,
437
+ const HighsTimerClock& mip_timer_clock, const bool header,
438
+ const bool end_line) {
439
+ const std::vector<HighsInt> mip_clock_list{
440
+ kMipClockRunPresolve, kMipClockEvaluateRootNode,
441
+ kMipClockDivePrimalHeuristics, kMipClockTheDive, kMipClockNodeSearch};
442
+ csvMipClockList("csvMIP", model_name, mip_clock_list, mip_timer_clock,
443
+ kMipClockTotal, header, end_line);
444
+ };
445
+
446
+ void csvEvaluateRootNodeClock(const std::string model_name,
447
+ const HighsTimerClock& mip_timer_clock,
448
+ const bool header, const bool end_line) {
449
+ const std::vector<HighsInt> mip_clock_list{
450
+ kMipClockStartSymmetryDetection,
451
+ kMipClockStartAnalyticCentreComputation,
452
+ kMipClockEvaluateRootLp,
453
+ kMipClockSeparateLpCuts,
454
+ kMipClockRandomizedRounding,
455
+ kMipClockPerformRestart,
456
+ kMipClockRootSeparation,
457
+ kMipClockFinishAnalyticCentreComputation,
458
+ kMipClockRootCentralRounding,
459
+ kMipClockRootSeparationRound0,
460
+ kMipClockRootHeuristicsReducedCost,
461
+ kMipClockRootSeparationRound1,
462
+ kMipClockRootHeuristicsRens,
463
+ kMipClockRootSeparationRound2,
464
+ kMipClockRootFeasibilityPump,
465
+ kMipClockRootSeparationRound3};
466
+ csvMipClockList("csvRootNode", model_name, mip_clock_list, mip_timer_clock,
467
+ kMipClockEvaluateRootNode, header, end_line);
468
+ };
469
+ };
470
+
471
+ #endif /* MIP_MIPTIMER_H_ */
@@ -110,4 +110,4 @@ class HighsBinarySemaphore {
110
110
  }
111
111
  };
112
112
 
113
- #endif
113
+ #endif
@@ -84,4 +84,4 @@ struct cache_aligned {
84
84
 
85
85
  } // namespace highs
86
86
 
87
- #endif
87
+ #endif
@@ -118,4 +118,4 @@ HighsCombinable<U, FConstruct> makeHighsCombinable(FConstruct&& fconstruct) {
118
118
  return HighsCombinable<U, FConstruct>(std::forward<FConstruct>(fconstruct));
119
119
  }
120
120
 
121
- #endif
121
+ #endif
@@ -126,4 +126,4 @@ class HighsMutex {
126
126
  }
127
127
  };
128
128
 
129
- #endif
129
+ #endif
@@ -40,4 +40,4 @@ class HighsRaceTimer {
40
40
  }
41
41
  };
42
42
 
43
- #endif
43
+ #endif
@@ -21,4 +21,4 @@ struct HighsSchedulerConstants {
21
21
  };
22
22
  };
23
23
 
24
- #endif
24
+ #endif
@@ -176,7 +176,7 @@ class HighsSplitDeque {
176
176
  static_assert(sizeof(StealerData) <= 64,
177
177
  "sizeof(StealerData) exceeds cache line size");
178
178
  static_assert(sizeof(WorkerBunkData) <= 64,
179
- "sizeof(GlobalQueueData) exceeds cache line size");
179
+ "sizeof(WorkerBunkData) exceeds cache line size");
180
180
 
181
181
  alignas(64) OwnerData ownerData;
182
182
  alignas(64) std::atomic<bool> splitRequest;