casadi 3.6.7__cp39-none-win_amd64.whl → 3.7.0__cp39-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,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
  /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
@@ -54,7 +51,6 @@ class OptionRecordBool : public OptionRecord {
54
51
  OptionRecordBool(std::string Xname, std::string Xdescription, bool Xadvanced,
55
52
  bool* Xvalue_pointer, bool Xdefault_value)
56
53
  : OptionRecord(HighsOptionType::kBool, Xname, Xdescription, Xadvanced) {
57
- advanced = Xadvanced;
58
54
  value = Xvalue_pointer;
59
55
  default_value = Xdefault_value;
60
56
  *value = default_value;
@@ -236,22 +232,28 @@ OptionStatus getLocalOptionType(
236
232
  void resetLocalOptions(std::vector<OptionRecord*>& option_records);
237
233
 
238
234
  HighsStatus writeOptionsToFile(
239
- FILE* file, const std::vector<OptionRecord*>& option_records,
235
+ FILE* file, const HighsLogOptions& report_log_options,
236
+ const std::vector<OptionRecord*>& option_records,
240
237
  const bool report_only_deviations = false,
241
- const HighsFileType file_type = HighsFileType::kOther);
242
- void reportOptions(FILE* file, const std::vector<OptionRecord*>& option_records,
243
- const bool report_only_deviations = true,
244
- const HighsFileType file_type = HighsFileType::kOther);
245
- void reportOption(FILE* file, const OptionRecordBool& option,
238
+ const HighsFileType file_type = HighsFileType::kFull);
239
+ void reportOptions(FILE* file, const HighsLogOptions& report_log_options,
240
+ const std::vector<OptionRecord*>& option_records,
241
+ const bool report_only_deviations = false,
242
+ const HighsFileType file_type = HighsFileType::kFull);
243
+ void reportOption(FILE* file, const HighsLogOptions& report_log_options,
244
+ const OptionRecordBool& option,
246
245
  const bool report_only_deviations,
247
246
  const HighsFileType file_type);
248
- void reportOption(FILE* file, const OptionRecordInt& option,
247
+ void reportOption(FILE* file, const HighsLogOptions& report_log_options,
248
+ const OptionRecordInt& option,
249
249
  const bool report_only_deviations,
250
250
  const HighsFileType file_type);
251
- void reportOption(FILE* file, const OptionRecordDouble& option,
251
+ void reportOption(FILE* file, const HighsLogOptions& report_log_options,
252
+ const OptionRecordDouble& option,
252
253
  const bool report_only_deviations,
253
254
  const HighsFileType file_type);
254
- void reportOption(FILE* file, const OptionRecordString& option,
255
+ void reportOption(FILE* file, const HighsLogOptions& report_log_options,
256
+ const OptionRecordString& option,
255
257
  const bool report_only_deviations,
256
258
  const HighsFileType file_type);
257
259
 
@@ -265,6 +267,8 @@ const HighsInt kKeepNRowsKeepRows = 1;
265
267
 
266
268
  // Strings for command line options
267
269
  const string kModelFileString = "model_file";
270
+ const string kReadBasisFile = "read_basis_file";
271
+ const string kWriteBasisFile = "write_basis_file";
268
272
  const string kPresolveString = "presolve";
269
273
  const string kSolverString = "solver";
270
274
  const string kParallelString = "parallel";
@@ -276,6 +280,7 @@ const string kSolutionFileString = "solution_file";
276
280
  const string kRangingString = "ranging";
277
281
  const string kVersionString = "version";
278
282
  const string kWriteModelFileString = "write_model_file";
283
+ const string kWritePresolvedModelFileString = "write_presolved_model_file";
279
284
  const string kReadSolutionFileString = "read_solution_file";
280
285
 
281
286
  // String for HiGHS log file option
@@ -301,6 +306,8 @@ struct HighsOptionsStruct {
301
306
  double primal_feasibility_tolerance;
302
307
  double dual_feasibility_tolerance;
303
308
  double ipm_optimality_tolerance;
309
+ double primal_residual_tolerance;
310
+ double dual_residual_tolerance;
304
311
  double objective_bound;
305
312
  double objective_target;
306
313
  HighsInt threads;
@@ -320,13 +327,16 @@ struct HighsOptionsStruct {
320
327
 
321
328
  std::string log_file;
322
329
  bool write_model_to_file;
330
+ bool write_presolved_model_to_file;
323
331
  bool write_solution_to_file;
324
332
  HighsInt write_solution_style;
325
333
  HighsInt glpsol_cost_row_location;
334
+ std::string write_presolved_model_file;
326
335
 
327
336
  // Control of HiGHS log
328
337
  bool output_flag;
329
338
  bool log_to_console;
339
+ bool timeless_log;
330
340
 
331
341
  // Options for IPM solver
332
342
  HighsInt ipm_iteration_limit;
@@ -342,6 +352,12 @@ struct HighsOptionsStruct {
342
352
  HighsInt qp_iteration_limit;
343
353
  HighsInt qp_nullspace_limit;
344
354
 
355
+ // Options for IIS calculation
356
+ HighsInt iis_strategy;
357
+
358
+ // Option for multi-objective optimization
359
+ bool blend_multi_objectives;
360
+
345
361
  // Advanced options
346
362
  HighsInt log_dev_level;
347
363
  bool log_githash;
@@ -350,6 +366,7 @@ struct HighsOptionsStruct {
350
366
  bool use_implied_bounds_from_presolve;
351
367
  bool lp_presolve_requires_basis_postsolve;
352
368
  bool mps_parser_type_free;
369
+ bool use_warm_start;
353
370
  HighsInt keep_n_rows;
354
371
  HighsInt cost_scale_factor;
355
372
  HighsInt allowed_matrix_scale_factor;
@@ -366,6 +383,7 @@ struct HighsOptionsStruct {
366
383
  HighsInt presolve_substitution_maxfillin;
367
384
  HighsInt presolve_rule_off;
368
385
  bool presolve_rule_logging;
386
+ bool presolve_remove_slacks;
369
387
  bool simplex_initial_condition_check;
370
388
  bool no_unnecessary_rebuild_refactor;
371
389
  double simplex_initial_condition_tolerance;
@@ -401,6 +419,7 @@ struct HighsOptionsStruct {
401
419
  bool mip_allow_restart;
402
420
  HighsInt mip_max_nodes;
403
421
  HighsInt mip_max_stall_nodes;
422
+ HighsInt mip_max_start_nodes;
404
423
  HighsInt mip_max_leaves;
405
424
  HighsInt mip_max_improving_sols;
406
425
  HighsInt mip_lp_age_limit;
@@ -420,6 +439,8 @@ struct HighsOptionsStruct {
420
439
  bool mip_improving_solution_save;
421
440
  bool mip_improving_solution_report_sparse;
422
441
  std::string mip_improving_solution_file;
442
+ bool mip_root_presolve_only;
443
+ HighsInt mip_lifting_for_probing;
423
444
 
424
445
  // Logging callback identifiers
425
446
  HighsLogOptions log_options;
@@ -442,6 +463,8 @@ struct HighsOptionsStruct {
442
463
  primal_feasibility_tolerance(0.0),
443
464
  dual_feasibility_tolerance(0.0),
444
465
  ipm_optimality_tolerance(0.0),
466
+ primal_residual_tolerance(0.0),
467
+ dual_residual_tolerance(0.0),
445
468
  objective_bound(0.0),
446
469
  objective_target(0.0),
447
470
  threads(0),
@@ -460,11 +483,14 @@ struct HighsOptionsStruct {
460
483
  simplex_max_concurrency(0),
461
484
  log_file(""),
462
485
  write_model_to_file(false),
486
+ write_presolved_model_to_file(false),
463
487
  write_solution_to_file(false),
464
488
  write_solution_style(0),
465
489
  glpsol_cost_row_location(0),
490
+ write_presolved_model_file(""),
466
491
  output_flag(false),
467
492
  log_to_console(false),
493
+ timeless_log(false),
468
494
  ipm_iteration_limit(0),
469
495
  pdlp_native_termination(false),
470
496
  pdlp_scaling(false),
@@ -473,6 +499,8 @@ struct HighsOptionsStruct {
473
499
  pdlp_d_gap_tol(0.0),
474
500
  qp_iteration_limit(0),
475
501
  qp_nullspace_limit(0),
502
+ iis_strategy(0),
503
+ blend_multi_objectives(false),
476
504
  log_dev_level(0),
477
505
  log_githash(false),
478
506
  solve_relaxation(false),
@@ -480,6 +508,7 @@ struct HighsOptionsStruct {
480
508
  use_implied_bounds_from_presolve(false),
481
509
  lp_presolve_requires_basis_postsolve(false),
482
510
  mps_parser_type_free(false),
511
+ use_warm_start(true),
483
512
  keep_n_rows(0),
484
513
  cost_scale_factor(0),
485
514
  allowed_matrix_scale_factor(0),
@@ -496,6 +525,7 @@ struct HighsOptionsStruct {
496
525
  presolve_substitution_maxfillin(0),
497
526
  presolve_rule_off(0),
498
527
  presolve_rule_logging(false),
528
+ presolve_remove_slacks(false),
499
529
  simplex_initial_condition_check(false),
500
530
  no_unnecessary_rebuild_refactor(false),
501
531
  simplex_initial_condition_tolerance(0.0),
@@ -527,6 +557,7 @@ struct HighsOptionsStruct {
527
557
  mip_allow_restart(false),
528
558
  mip_max_nodes(0),
529
559
  mip_max_stall_nodes(0),
560
+ mip_max_start_nodes(0),
530
561
  mip_max_leaves(0),
531
562
  mip_max_improving_sols(0),
532
563
  mip_lp_age_limit(0),
@@ -545,7 +576,11 @@ struct HighsOptionsStruct {
545
576
  #endif
546
577
  mip_improving_solution_save(false),
547
578
  mip_improving_solution_report_sparse(false),
548
- mip_improving_solution_file(""){};
579
+ // clang-format off
580
+ mip_improving_solution_file(""),
581
+ mip_root_presolve_only(false),
582
+ mip_lifting_for_probing(-1) {};
583
+ // clang-format on
549
584
  };
550
585
 
551
586
  // For now, but later change so HiGHS properties are string based so that new
@@ -687,6 +722,16 @@ class HighsOptions : public HighsOptionsStruct {
687
722
  &ipm_optimality_tolerance, 1e-12, 1e-8, kHighsInf);
688
723
  records.push_back(record_double);
689
724
 
725
+ record_double = new OptionRecordDouble(
726
+ "primal_residual_tolerance", "Primal residual tolerance", advanced,
727
+ &primal_residual_tolerance, 1e-10, 1e-7, kHighsInf);
728
+ records.push_back(record_double);
729
+
730
+ record_double = new OptionRecordDouble(
731
+ "dual_residual_tolerance", "Dual residual tolerance", advanced,
732
+ &dual_residual_tolerance, 1e-10, 1e-7, kHighsInf);
733
+ records.push_back(record_double);
734
+
690
735
  record_double = new OptionRecordDouble(
691
736
  "objective_bound",
692
737
  "Objective bound for termination of the dual simplex solver", advanced,
@@ -728,14 +773,15 @@ class HighsOptions : public HighsOptionsStruct {
728
773
 
729
774
  record_int = new OptionRecordInt(
730
775
  "highs_analysis_level", "Analysis level in HiGHS", now_advanced,
731
- &highs_analysis_level, kHighsAnalysisLevelMin, kHighsAnalysisLevelMin,
776
+ &highs_analysis_level, kHighsAnalysisLevelMin,
777
+ kHighsAnalysisLevelMin, // kHighsAnalysisLevelMipTime, //
732
778
  kHighsAnalysisLevelMax);
733
779
  records.push_back(record_int);
734
780
 
735
781
  record_int = new OptionRecordInt(
736
782
  "simplex_strategy",
737
783
  "Strategy for simplex solver 0 => Choose; 1 => Dual (serial); 2 => "
738
- "Dual (PAMI); 3 => Dual (SIP); 4 => Primal",
784
+ "Dual (SIP); 3 => Dual (PAMI); 4 => Primal",
739
785
  advanced, &simplex_strategy, kSimplexStrategyMin, kSimplexStrategyDual,
740
786
  kSimplexStrategyMax);
741
787
  records.push_back(record_int);
@@ -811,6 +857,11 @@ class HighsOptions : public HighsOptionsStruct {
811
857
  advanced, &log_to_console, true);
812
858
  records.push_back(record_bool);
813
859
 
860
+ record_bool = new OptionRecordBool(
861
+ "timeless_log", "Suppression of time-based data in logging", true,
862
+ &timeless_log, false);
863
+ records.push_back(record_bool);
864
+
814
865
  record_string =
815
866
  new OptionRecordString(kSolutionFileString, "Solution file", advanced,
816
867
  &solution_file, kHighsFilenameDefault);
@@ -896,6 +947,16 @@ class HighsOptions : public HighsOptionsStruct {
896
947
  advanced, &write_model_to_file, false);
897
948
  records.push_back(record_bool);
898
949
 
950
+ record_string = new OptionRecordString(
951
+ kWritePresolvedModelFileString, "Write presolved model file", advanced,
952
+ &write_presolved_model_file, kHighsFilenameDefault);
953
+ records.push_back(record_string);
954
+
955
+ record_bool = new OptionRecordBool(
956
+ "write_presolved_model_to_file", "Write the presolved model to a file",
957
+ advanced, &write_presolved_model_to_file, false);
958
+ records.push_back(record_bool);
959
+
899
960
  record_bool = new OptionRecordBool(
900
961
  "mip_detect_symmetry", "Whether MIP symmetry should be detected",
901
962
  advanced, &mip_detect_symmetry, true);
@@ -916,6 +977,13 @@ class HighsOptions : public HighsOptionsStruct {
916
977
  "MIP solver max number of nodes where estimate is above cutoff bound",
917
978
  advanced, &mip_max_stall_nodes, 0, kHighsIInf, kHighsIInf);
918
979
  records.push_back(record_int);
980
+
981
+ record_int = new OptionRecordInt(
982
+ "mip_max_start_nodes",
983
+ "MIP solver max number of nodes when completing a partial MIP start",
984
+ advanced, &mip_max_start_nodes, 0, 500, kHighsIInf);
985
+ records.push_back(record_int);
986
+
919
987
  #ifdef HIGHS_DEBUGSOL
920
988
  record_string = new OptionRecordString(
921
989
  "mip_debug_solution_file",
@@ -943,8 +1011,19 @@ class HighsOptions : public HighsOptionsStruct {
943
1011
  advanced, &mip_improving_solution_file, kHighsFilenameDefault);
944
1012
  records.push_back(record_string);
945
1013
 
1014
+ record_bool = new OptionRecordBool(
1015
+ "mip_root_presolve_only",
1016
+ "Whether MIP presolve is only applied at the root node", advanced,
1017
+ &mip_root_presolve_only, false);
1018
+ records.push_back(record_bool);
1019
+
946
1020
  record_int = new OptionRecordInt(
947
- "mip_max_leaves", "MIP solver max number of leave nodes", advanced,
1021
+ "mip_lifting_for_probing", "Level of lifting for probing that is used",
1022
+ advanced, &mip_lifting_for_probing, -1, -1, kHighsIInf);
1023
+ records.push_back(record_int);
1024
+
1025
+ record_int = new OptionRecordInt(
1026
+ "mip_max_leaves", "MIP solver max number of leaf nodes", advanced,
948
1027
  &mip_max_leaves, 0, kHighsIInf, kHighsIInf);
949
1028
  records.push_back(record_int);
950
1029
 
@@ -1069,17 +1148,40 @@ class HighsOptions : public HighsOptionsStruct {
1069
1148
  &qp_nullspace_limit, 0, 4000, kHighsIInf);
1070
1149
  records.push_back(record_int);
1071
1150
 
1151
+ record_int = new OptionRecordInt(
1152
+ "iis_strategy",
1153
+ "Strategy for IIS calculation: "
1154
+ // "Use LP and p"
1155
+ "Prioritise rows (default) / "
1156
+ // "Use LP and p"
1157
+ "Prioritise columns"
1158
+ // "Use unbounded dual ray and prioritise low number of rows
1159
+ // (default) / " "Use ray and prioritise low numbers of columns "
1160
+ " (0/1"
1161
+ // "/2/3)",
1162
+ ")",
1163
+ advanced, &iis_strategy, kIisStrategyMin, kIisStrategyFromLpRowPriority,
1164
+ kIisStrategyMax);
1165
+ records.push_back(record_int);
1166
+
1167
+ record_bool = new OptionRecordBool(
1168
+ "blend_multi_objectives",
1169
+ "Blend multiple objectives or apply lexicographically: Default = true",
1170
+ advanced, &blend_multi_objectives, true);
1171
+ records.push_back(record_bool);
1172
+
1072
1173
  // Fix the number of user settable options
1073
1174
  num_user_settable_options_ = static_cast<HighsInt>(records.size());
1074
1175
 
1075
1176
  // Advanced options
1076
1177
  advanced = true;
1077
1178
 
1078
- record_int = new OptionRecordInt(
1079
- "log_dev_level",
1080
- "Output development messages: 0 => none; 1 => info; 2 => verbose",
1081
- advanced, &log_dev_level, kHighsLogDevLevelMin, kHighsLogDevLevelNone,
1082
- kHighsLogDevLevelMax);
1179
+ record_int =
1180
+ new OptionRecordInt("log_dev_level",
1181
+ "Output development messages: 0 => none; 1 => "
1182
+ "info; 2 => detailed; 3 => verbose",
1183
+ advanced, &log_dev_level, kHighsLogDevLevelMin,
1184
+ kHighsLogDevLevelNone, kHighsLogDevLevelMax);
1083
1185
  records.push_back(record_int);
1084
1186
 
1085
1187
  record_bool = new OptionRecordBool("log_githash", "Log the githash",
@@ -1115,6 +1217,11 @@ class HighsOptions : public HighsOptionsStruct {
1115
1217
  advanced, &mps_parser_type_free, true);
1116
1218
  records.push_back(record_bool);
1117
1219
 
1220
+ record_bool = new OptionRecordBool("use_warm_start",
1221
+ "Use any warm start that is available",
1222
+ advanced, &use_warm_start, true);
1223
+ records.push_back(record_bool);
1224
+
1118
1225
  record_int =
1119
1226
  new OptionRecordInt("keep_n_rows",
1120
1227
  "For multiple N-rows in MPS files: delete rows / "
@@ -1275,6 +1382,11 @@ class HighsOptions : public HighsOptionsStruct {
1275
1382
  advanced, &presolve_rule_logging, false);
1276
1383
  records.push_back(record_bool);
1277
1384
 
1385
+ record_bool = new OptionRecordBool("presolve_remove_slacks",
1386
+ "Remove slacks after presolve", advanced,
1387
+ &presolve_remove_slacks, false);
1388
+ records.push_back(record_bool);
1389
+
1278
1390
  record_int = new OptionRecordInt(
1279
1391
  "presolve_substitution_maxfillin",
1280
1392
  "Maximal fillin allowed for substitutions in presolve", advanced,
@@ -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
  /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
@@ -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
  /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
@@ -95,6 +92,14 @@ bool getVariableKktFailures(const double primal_feasibility_tolerance,
95
92
  double& relative_primal_infeasibility,
96
93
  double& dual_infeasibility, double& value_residual);
97
94
 
95
+ bool getComplementarityViolations(const HighsLp& lp,
96
+ const HighsSolution& solution,
97
+ double& max_complementarity_violation,
98
+ double& sum_complementarity_violations);
99
+
100
+ bool computeDualObjectiveValue(const HighsLp& lp, const HighsSolution& solution,
101
+ double& dual_objective_value);
102
+
98
103
  double computeObjectiveValue(const HighsLp& lp, const HighsSolution& solution);
99
104
 
100
105
  void refineBasis(const HighsLp& lp, const HighsSolution& solution,
@@ -123,6 +128,8 @@ HighsStatus formSimplexLpBasisAndFactor(
123
128
 
124
129
  void accommodateAlienBasis(HighsLpSolverObject& solver_object);
125
130
 
131
+ void correctResiduals(HighsLpSolverObject& solver_object);
132
+
126
133
  void resetModelStatusAndHighsInfo(HighsLpSolverObject& solver_object);
127
134
  void resetModelStatusAndHighsInfo(HighsModelStatus& model_status,
128
135
  HighsInfo& highs_info);
@@ -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
  /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
@@ -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
  /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
@@ -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
  /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
@@ -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
  /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
@@ -285,6 +282,9 @@ class HighsCliqueTable {
285
282
  const std::vector<double>& sol, const HighsDomain& globaldom,
286
283
  double feastol);
287
284
 
285
+ std::vector<std::vector<CliqueVar>> computeMaximalCliques(
286
+ const std::vector<CliqueVar>& vars, double feastol);
287
+
288
288
  void cleanupFixed(HighsDomain& globaldom);
289
289
 
290
290
  void addImplications(HighsDomain& domain, HighsInt col, HighsInt val);
@@ -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
  /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
@@ -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
  /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
@@ -73,6 +70,19 @@ class HighsCutGeneration {
73
70
  bool preprocessBaseInequality(bool& hasUnboundedInts, bool& hasGeneralInts,
74
71
  bool& hasContinuous);
75
72
 
73
+ void flipComplementation(HighsInt index);
74
+
75
+ void removeComplementation();
76
+
77
+ void updateViolationAndNorm(HighsInt index, double aj, double& violation,
78
+ double& norm) const;
79
+
80
+ bool tryGenerateCut(std::vector<HighsInt>& inds, std::vector<double>& vals,
81
+ bool hasUnboundedInts, bool hasGeneralInts,
82
+ bool hasContinuous, double minEfficacy,
83
+ bool onlyInitialCMIRScale = false,
84
+ bool allowRejectCut = true, bool lpSol = true);
85
+
76
86
  public:
77
87
  HighsCutGeneration(const HighsLpRelaxation& lpRelaxation,
78
88
  HighsCutPool& cutpool);
@@ -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
  /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
@@ -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
  /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
@@ -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
  /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
@@ -311,7 +308,7 @@ class HighsDomain {
311
308
  std::deque<CutpoolPropagation> cutpoolpropagation;
312
309
  std::deque<ConflictPoolPropagation> conflictPoolPropagation;
313
310
 
314
- bool infeasible_ = 0;
311
+ bool infeasible_ = false;
315
312
  Reason infeasible_reason;
316
313
  HighsInt infeasible_pos;
317
314
 
@@ -327,11 +324,16 @@ class HighsDomain {
327
324
 
328
325
  void recomputeCapacityThreshold(HighsInt row);
329
326
 
327
+ void updateRedundantRows(HighsInt row, HighsInt direction, HighsInt numInf,
328
+ HighsCDouble activity, double bound);
329
+
330
330
  double doChangeBound(const HighsDomainChange& boundchg);
331
331
 
332
332
  std::vector<HighsInt> colLowerPos_;
333
333
  std::vector<HighsInt> colUpperPos_;
334
334
  std::vector<HighsInt> branchPos_;
335
+ HighsHashTable<HighsInt> redundantRows_;
336
+ bool recordRedundantRows_ = false;
335
337
 
336
338
  public:
337
339
  std::vector<double> col_lower_;
@@ -636,6 +638,16 @@ class HighsDomain {
636
638
  HighsInt numModelNonzeros() const { return mipsolver->numNonzero(); }
637
639
 
638
640
  bool inSubmip() const { return mipsolver->submip; }
641
+
642
+ void clearRedundantRows() { redundantRows_.clear(); };
643
+
644
+ const HighsHashTable<HighsInt>& getRedundantRows() const {
645
+ return redundantRows_;
646
+ };
647
+
648
+ double getRedundantRowValue(HighsInt row) const;
649
+
650
+ void setRecordRedundantRows(bool val) { recordRedundantRows_ = val; };
639
651
  };
640
652
 
641
653
  #endif
@@ -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
  /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
@@ -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
  /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
@@ -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
  /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
@@ -317,7 +314,7 @@ class HighsGFkSolve {
317
314
 
318
315
  // check if a solution exists by scanning the linearly dependent rows for
319
316
  // nonzero right hand sides
320
- bool hasSolution[kNumRhs];
317
+ std::array<bool, kNumRhs> hasSolution;
321
318
  HighsInt numRhsWithSolution = 0;
322
319
  for (int rhsIndex = 0; rhsIndex < kNumRhs; ++rhsIndex) {
323
320
  hasSolution[rhsIndex] = true;
@@ -341,7 +338,7 @@ class HighsGFkSolve {
341
338
  // now iterate a subset of the basic solutions.
342
339
  // When a column leaves the basis we do not allow it to enter again so that
343
340
  // we iterate at most one solution for each nonbasic column
344
- std::vector<SolutionEntry> solution[kNumRhs];
341
+ std::array<std::vector<SolutionEntry>, kNumRhs> solution;
345
342
  for (int rhsIndex = 0; rhsIndex < kNumRhs; ++rhsIndex)
346
343
  if (hasSolution[rhsIndex]) solution[rhsIndex].reserve(numCol);
347
344
 
@@ -384,7 +381,7 @@ class HighsGFkSolve {
384
381
  for (HighsInt i = numFactorRows - 1; i >= 0; --i) {
385
382
  HighsInt row = factorRowPerm[i];
386
383
 
387
- unsigned int solval[kNumRhs];
384
+ std::array<unsigned int, kNumRhs> solval;
388
385
 
389
386
  for (int rhsIndex = 0; rhsIndex < kNumRhs; ++rhsIndex) {
390
387
  if (!hasSolution[rhsIndex]) continue;