casadi 3.6.7__cp37-none-manylinux2014_x86_64.whl → 3.7.1__cp37-none-manylinux2014_x86_64.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 (419) hide show
  1. casadi/_casadi.so +0 -0
  2. casadi/casadi-cli +0 -0
  3. casadi/casadi.py +6531 -3039
  4. casadi/cbc +0 -0
  5. casadi/clp +0 -0
  6. casadi/cmake/alpaqa/alpaqaTargets-release.cmake +4 -4
  7. casadi/cmake/casadi-config-version.cmake +1 -1
  8. casadi/cmake/casadi-config.cmake +1 -1
  9. casadi/cmake/casadi-targets-release.cmake +5 -5
  10. casadi/cmake/casadi-targets.cmake +5 -5
  11. casadi/cmake/highs/highs-targets-release.cmake +2 -2
  12. casadi/cmake/highs/highs-targets.cmake +1 -1
  13. casadi/cmake/libzip/libzip-config-version.cmake +48 -0
  14. casadi/cmake/libzip/libzip-config.cmake +69 -0
  15. casadi/cmake/libzip/libzip-targets-release.cmake +19 -0
  16. casadi/cmake/{trlib/trlib-config.cmake → libzip/libzip-targets.cmake} +7 -7
  17. casadi/cmake/libzip/modules/FindMbedTLS.cmake +141 -0
  18. casadi/cmake/libzip/modules/FindNettle.cmake +141 -0
  19. casadi/cmake/libzip/modules/Findzstd.cmake +186 -0
  20. casadi/cmake/sleqp/sleqp-targets-release.cmake +2 -2
  21. casadi/highs +0 -0
  22. casadi/include/casadi/casadi.i +276 -47
  23. casadi/include/casadi/config.h +11 -11
  24. casadi/include/casadi/core/archiver.hpp +58 -0
  25. casadi/include/casadi/core/blazing_spline.hpp +47 -0
  26. casadi/include/casadi/core/calculus.hpp +57 -2
  27. casadi/include/casadi/core/callback.hpp +9 -0
  28. casadi/include/casadi/core/casadi_common.hpp +37 -0
  29. casadi/include/casadi/core/casadi_meta.hpp +15 -0
  30. casadi/include/casadi/core/casadi_misc.hpp +21 -0
  31. casadi/include/casadi/core/code_generator.hpp +115 -19
  32. casadi/include/casadi/core/core.hpp +5 -0
  33. casadi/include/casadi/core/dae_builder.hpp +303 -141
  34. casadi/include/casadi/core/dm.hpp +3 -0
  35. casadi/include/casadi/core/filesystem.hpp +58 -0
  36. casadi/include/casadi/core/fmu.hpp +62 -16
  37. casadi/include/casadi/core/function.hpp +24 -0
  38. casadi/include/casadi/core/generic_matrix.hpp +214 -7
  39. casadi/include/casadi/core/generic_shared.hpp +395 -0
  40. casadi/include/casadi/core/generic_shared_impl.hpp +218 -0
  41. casadi/include/casadi/core/generic_shared_internal.hpp +215 -0
  42. casadi/include/casadi/core/generic_type.hpp +3 -0
  43. casadi/include/casadi/core/global_options.hpp +10 -0
  44. casadi/include/casadi/core/integrator.hpp +41 -7
  45. casadi/include/casadi/core/matrix_decl.hpp +71 -0
  46. casadi/include/casadi/core/mx.hpp +63 -2
  47. casadi/include/casadi/core/nlp_builder.hpp +2 -1
  48. casadi/include/casadi/core/options.hpp +6 -3
  49. casadi/include/casadi/core/optistack.hpp +43 -9
  50. casadi/include/casadi/core/printable.hpp +8 -0
  51. casadi/include/casadi/core/resource.hpp +107 -0
  52. casadi/include/casadi/core/runtime/casadi_blazing_1d_boor_eval.hpp +112 -0
  53. casadi/include/casadi/core/runtime/casadi_blazing_2d_boor_eval.hpp +311 -0
  54. casadi/include/casadi/core/runtime/casadi_blazing_3d_boor_eval.hpp +645 -0
  55. casadi/include/casadi/core/runtime/casadi_blazing_de_boor.hpp +101 -0
  56. casadi/include/casadi/core/runtime/casadi_finite_diff.hpp +1 -1
  57. casadi/include/casadi/core/runtime/casadi_nlp.hpp +8 -2
  58. casadi/include/casadi/core/runtime/casadi_print_canonical.hpp +55 -0
  59. casadi/include/casadi/core/runtime/casadi_print_scalar.hpp +25 -0
  60. casadi/include/casadi/core/runtime/casadi_print_vector.hpp +32 -0
  61. casadi/include/casadi/core/runtime/casadi_printme.hpp +26 -0
  62. casadi/include/casadi/core/serializer.hpp +13 -5
  63. casadi/include/casadi/core/serializing_stream.hpp +9 -2
  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 +10026 -6513
  71. casadi/include/casadi/doc_merged.i +6744 -4449
  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 +6 -4
  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/sleqp/defs.h +2 -2
  239. casadi/include/zconf.h +545 -0
  240. casadi/include/zip.h +528 -0
  241. casadi/include/zipconf.h +48 -0
  242. casadi/include/zlib.h +1938 -0
  243. casadi/libCbcSolver.so +0 -0
  244. casadi/libCbcSolver.so.3 +0 -0
  245. casadi/libCbcSolver.so.3.10.11 +0 -0
  246. casadi/libClpSolver.so +0 -0
  247. casadi/libClpSolver.so.1 +0 -0
  248. casadi/libClpSolver.so.1.14.9 +0 -0
  249. casadi/libbonmin.so +0 -0
  250. casadi/libbonmin.so.4 +0 -0
  251. casadi/libbonmin.so.4.8.9 +0 -0
  252. casadi/libcasadi.so +0 -0
  253. casadi/libcasadi.so.3.7 +0 -0
  254. casadi/libcasadi_archiver_libzip.so +0 -0
  255. casadi/libcasadi_archiver_libzip.so.3.7 +0 -0
  256. casadi/libcasadi_conic_cbc.so +0 -0
  257. casadi/libcasadi_conic_cbc.so.3.7 +0 -0
  258. casadi/libcasadi_conic_clp.so +0 -0
  259. casadi/libcasadi_conic_clp.so.3.7 +0 -0
  260. casadi/libcasadi_conic_cplex.so +0 -0
  261. casadi/libcasadi_conic_cplex.so.3.7 +0 -0
  262. casadi/libcasadi_conic_daqp.so +0 -0
  263. casadi/libcasadi_conic_daqp.so.3.7 +0 -0
  264. casadi/libcasadi_conic_fatrop.so +0 -0
  265. casadi/libcasadi_conic_fatrop.so.3.7 +0 -0
  266. casadi/libcasadi_conic_gurobi.so +0 -0
  267. casadi/libcasadi_conic_gurobi.so.3.7 +0 -0
  268. casadi/libcasadi_conic_highs.so +0 -0
  269. casadi/libcasadi_conic_highs.so.3.7 +0 -0
  270. casadi/libcasadi_conic_hpipm.so +0 -0
  271. casadi/libcasadi_conic_hpipm.so.3.7 +0 -0
  272. casadi/libcasadi_conic_ipqp.so +0 -0
  273. casadi/libcasadi_conic_ipqp.so.3.7 +0 -0
  274. casadi/libcasadi_conic_nlpsol.so +0 -0
  275. casadi/libcasadi_conic_nlpsol.so.3.7 +0 -0
  276. casadi/libcasadi_conic_osqp.so +0 -0
  277. casadi/libcasadi_conic_osqp.so.3.7 +0 -0
  278. casadi/libcasadi_conic_proxqp.so +0 -0
  279. casadi/libcasadi_conic_proxqp.so.3.7 +0 -0
  280. casadi/libcasadi_conic_qpoases.so +0 -0
  281. casadi/libcasadi_conic_qpoases.so.3.7 +0 -0
  282. casadi/libcasadi_conic_qrqp.so +0 -0
  283. casadi/libcasadi_conic_qrqp.so.3.7 +0 -0
  284. casadi/libcasadi_conic_superscs.so +0 -0
  285. casadi/libcasadi_conic_superscs.so.3.7 +0 -0
  286. casadi/libcasadi_filesystem_ghc.so +0 -0
  287. casadi/libcasadi_filesystem_ghc.so.3.7 +0 -0
  288. casadi/libcasadi_importer_shell.so +0 -0
  289. casadi/libcasadi_importer_shell.so.3.7 +0 -0
  290. casadi/libcasadi_integrator_collocation.so +0 -0
  291. casadi/libcasadi_integrator_collocation.so.3.7 +0 -0
  292. casadi/libcasadi_integrator_cvodes.so +0 -0
  293. casadi/libcasadi_integrator_cvodes.so.3.7 +0 -0
  294. casadi/libcasadi_integrator_idas.so +0 -0
  295. casadi/libcasadi_integrator_idas.so.3.7 +0 -0
  296. casadi/libcasadi_integrator_rk.so +0 -0
  297. casadi/libcasadi_integrator_rk.so.3.7 +0 -0
  298. casadi/libcasadi_interpolant_bspline.so +0 -0
  299. casadi/libcasadi_interpolant_bspline.so.3.7 +0 -0
  300. casadi/libcasadi_interpolant_linear.so +0 -0
  301. casadi/libcasadi_interpolant_linear.so.3.7 +0 -0
  302. casadi/libcasadi_linsol_csparse.so +0 -0
  303. casadi/libcasadi_linsol_csparse.so.3.7 +0 -0
  304. casadi/libcasadi_linsol_csparsecholesky.so +0 -0
  305. casadi/libcasadi_linsol_csparsecholesky.so.3.7 +0 -0
  306. casadi/libcasadi_linsol_lapacklu.so +0 -0
  307. casadi/libcasadi_linsol_lapacklu.so.3.7 +0 -0
  308. casadi/libcasadi_linsol_lapackqr.so +0 -0
  309. casadi/libcasadi_linsol_lapackqr.so.3.7 +0 -0
  310. casadi/libcasadi_linsol_ldl.so +0 -0
  311. casadi/libcasadi_linsol_ldl.so.3.7 +0 -0
  312. casadi/libcasadi_linsol_lsqr.so +0 -0
  313. casadi/libcasadi_linsol_lsqr.so.3.7 +0 -0
  314. casadi/libcasadi_linsol_ma27.so +0 -0
  315. casadi/libcasadi_linsol_ma27.so.3.7 +0 -0
  316. casadi/libcasadi_linsol_mumps.so +0 -0
  317. casadi/libcasadi_linsol_mumps.so.3.7 +0 -0
  318. casadi/libcasadi_linsol_qr.so +0 -0
  319. casadi/libcasadi_linsol_qr.so.3.7 +0 -0
  320. casadi/libcasadi_linsol_symbolicqr.so +0 -0
  321. casadi/libcasadi_linsol_symbolicqr.so.3.7 +0 -0
  322. casadi/libcasadi_linsol_tridiag.so +0 -0
  323. casadi/libcasadi_linsol_tridiag.so.3.7 +0 -0
  324. casadi/libcasadi_nlpsol_alpaqa.so +0 -0
  325. casadi/libcasadi_nlpsol_alpaqa.so.3.7 +0 -0
  326. casadi/libcasadi_nlpsol_ampl.so +0 -0
  327. casadi/libcasadi_nlpsol_ampl.so.3.7 +0 -0
  328. casadi/libcasadi_nlpsol_blocksqp.so +0 -0
  329. casadi/libcasadi_nlpsol_blocksqp.so.3.7 +0 -0
  330. casadi/libcasadi_nlpsol_bonmin.so +0 -0
  331. casadi/libcasadi_nlpsol_bonmin.so.3.7 +0 -0
  332. casadi/libcasadi_nlpsol_fatrop.so +0 -0
  333. casadi/libcasadi_nlpsol_fatrop.so.3.7 +0 -0
  334. casadi/libcasadi_nlpsol_feasiblesqpmethod.so +0 -0
  335. casadi/libcasadi_nlpsol_feasiblesqpmethod.so.3.7 +0 -0
  336. casadi/libcasadi_nlpsol_ipopt.so +0 -0
  337. casadi/libcasadi_nlpsol_ipopt.so.3.7 +0 -0
  338. casadi/libcasadi_nlpsol_knitro.so +0 -0
  339. casadi/libcasadi_nlpsol_knitro.so.3.7 +0 -0
  340. casadi/libcasadi_nlpsol_madnlp.so +0 -0
  341. casadi/libcasadi_nlpsol_madnlp.so.3.7 +0 -0
  342. casadi/libcasadi_nlpsol_qrsqp.so +0 -0
  343. casadi/libcasadi_nlpsol_qrsqp.so.3.7 +0 -0
  344. casadi/libcasadi_nlpsol_scpgen.so +0 -0
  345. casadi/libcasadi_nlpsol_scpgen.so.3.7 +0 -0
  346. casadi/libcasadi_nlpsol_sleqp.so +0 -0
  347. casadi/libcasadi_nlpsol_sleqp.so.3.7 +0 -0
  348. casadi/libcasadi_nlpsol_snopt.so +0 -0
  349. casadi/libcasadi_nlpsol_snopt.so.3.7 +0 -0
  350. casadi/libcasadi_nlpsol_sqpmethod.so +0 -0
  351. casadi/libcasadi_nlpsol_sqpmethod.so.3.7 +0 -0
  352. casadi/libcasadi_nlpsol_worhp.so +0 -0
  353. casadi/libcasadi_nlpsol_worhp.so.3.7 +0 -0
  354. casadi/libcasadi_rootfinder_fast_newton.so +0 -0
  355. casadi/libcasadi_rootfinder_fast_newton.so.3.7 +0 -0
  356. casadi/libcasadi_rootfinder_kinsol.so +0 -0
  357. casadi/libcasadi_rootfinder_kinsol.so.3.7 +0 -0
  358. casadi/libcasadi_rootfinder_newton.so +0 -0
  359. casadi/libcasadi_rootfinder_newton.so.3.7 +0 -0
  360. casadi/libcasadi_rootfinder_nlpsol.so +0 -0
  361. casadi/libcasadi_rootfinder_nlpsol.so.3.7 +0 -0
  362. casadi/libcasadi_sundials_common.so +0 -0
  363. casadi/libcasadi_sundials_common.so.3.7 +0 -0
  364. casadi/libcasadi_xmlfile_tinyxml.so +0 -0
  365. casadi/libcasadi_xmlfile_tinyxml.so.3.7 +0 -0
  366. casadi/libcoinmumps.so +0 -0
  367. casadi/libcoinmumps.so.3 +0 -0
  368. casadi/libcoinmumps.so.3.0.1 +0 -0
  369. casadi/libdaqpstat.a +0 -0
  370. casadi/libfatrop.so +0 -0
  371. casadi/libhighs.so +0 -0
  372. casadi/libhighs.so.1 +0 -0
  373. casadi/libhighs.so.1.10.0 +0 -0
  374. casadi/libindirect.a +0 -0
  375. casadi/libipopt.so +0 -0
  376. casadi/libipopt.so.3 +0 -0
  377. casadi/libipopt.so.3.14.11 +0 -0
  378. casadi/liblinsys.a +0 -0
  379. casadi/libosqp.a +0 -0
  380. casadi/libqdldl.a +0 -0
  381. casadi/libsipopt.so +0 -0
  382. casadi/libsipopt.so.3 +0 -0
  383. casadi/libsipopt.so.3.14.11 +0 -0
  384. casadi/libsleqp.so +0 -0
  385. casadi/libsleqp.so.1.0.1 +0 -0
  386. casadi/libspral.a +0 -0
  387. casadi/libsuperscs.a +0 -0
  388. casadi/libz.a +0 -0
  389. casadi/libz.so +0 -0
  390. casadi/libz.so.1 +0 -0
  391. casadi/libz.so.1.3.1 +0 -0
  392. casadi/libzip.a +0 -0
  393. casadi/pkgconfig/casadi.pc +1 -1
  394. casadi/pkgconfig/highs.pc +1 -1
  395. casadi/pkgconfig/libzip.pc +14 -0
  396. casadi/tools/__init__.py +3 -1
  397. casadi/tools/graph/graph.py +1 -1
  398. casadi/tools/structure3.py +7 -7
  399. {casadi-3.6.7.dist-info → casadi-3.7.1.dist-info}/METADATA +1 -1
  400. {casadi-3.6.7.dist-info → casadi-3.7.1.dist-info}/RECORD +400 -368
  401. casadi/cmake/proxsuite/find-external/Simde/FindSimde.cmake +0 -39
  402. casadi/cmake/proxsuite/proxsuiteConfig.cmake +0 -177
  403. casadi/cmake/proxsuite/proxsuiteConfigVersion.cmake +0 -70
  404. casadi/cmake/proxsuite/proxsuiteTargets.cmake +0 -115
  405. casadi/cmake/trlib/trlib-config-release.cmake +0 -19
  406. casadi/cmake/trlib/trlib-config-version.cmake +0 -88
  407. casadi/include/highs/lp_data/HighsRuntimeOptions.h +0 -276
  408. casadi/include/highs/pdlp/cupdlp/cupdlp_scaling_cuda.h +0 -28
  409. casadi/include/tinyxml2.h +0 -2380
  410. casadi/lib64/cmake/tinyxml2/tinyxml2-config-version.cmake +0 -70
  411. casadi/lib64/cmake/tinyxml2/tinyxml2-config.cmake +0 -57
  412. casadi/lib64/cmake/tinyxml2/tinyxml2-static-targets-release.cmake +0 -19
  413. casadi/lib64/cmake/tinyxml2/tinyxml2-static-targets.cmake +0 -103
  414. casadi/lib64/libtinyxml2.a +0 -0
  415. casadi/lib64/pkgconfig/tinyxml2.pc +0 -10
  416. casadi/libhighs.so.1.7.2 +0 -0
  417. casadi/pkgconfig/proxsuite.pc +0 -22
  418. casadi/tools/structure.py +0 -1446
  419. {casadi-3.6.7.dist-info → casadi-3.7.1.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
  /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
@@ -21,12 +18,13 @@
21
18
  #include "util/HighsInt.h"
22
19
 
23
20
  const std::string kHighsCopyrightStatement =
24
- "Copyright (c) 2024 HiGHS under MIT licence terms";
21
+ "Copyright (c) 2025 HiGHS under MIT licence terms";
25
22
 
26
23
  const size_t kHighsSize_tInf = std::numeric_limits<size_t>::max();
27
24
  const HighsInt kHighsIInf = std::numeric_limits<HighsInt>::max();
28
25
  const HighsInt kHighsIInf32 = std::numeric_limits<int>::max();
29
26
  const double kHighsInf = std::numeric_limits<double>::infinity();
27
+ const double kHighsUndefined = kHighsInf;
30
28
  const double kHighsTiny = 1e-14;
31
29
  const double kHighsMacheps = std::ldexp(1, -52);
32
30
  const double kHighsZero = 1e-50;
@@ -85,11 +83,14 @@ enum HighsAnalysisLevel {
85
83
  kHighsAnalysisLevelSolverTime = 8,
86
84
  kHighsAnalysisLevelNlaData = 16,
87
85
  kHighsAnalysisLevelNlaTime = 32,
86
+ kHighsAnalysisLevelMipData = 64,
87
+ kHighsAnalysisLevelMipTime = 128,
88
88
  kHighsAnalysisLevelMin = kHighsAnalysisLevelNone,
89
89
  kHighsAnalysisLevelMax =
90
90
  kHighsAnalysisLevelModelData + kHighsAnalysisLevelSolverSummaryData +
91
91
  kHighsAnalysisLevelSolverRuntimeData + kHighsAnalysisLevelSolverTime +
92
- kHighsAnalysisLevelNlaData + kHighsAnalysisLevelNlaTime
92
+ kHighsAnalysisLevelNlaData + kHighsAnalysisLevelNlaTime +
93
+ kHighsAnalysisLevelMipData + kHighsAnalysisLevelMipTime
93
94
  };
94
95
 
95
96
  enum class HighsVarType : uint8_t {
@@ -224,7 +225,8 @@ enum HighsCallbackType : int {
224
225
  kCallbackMipInterrupt, // 6
225
226
  kCallbackMipGetCutPool, // 7
226
227
  kCallbackMipDefineLazyConstraints, // 8
227
- kCallbackMax = kCallbackMipDefineLazyConstraints,
228
+ kCallbackMipUserSolution, // 9
229
+ kCallbackMax = kCallbackMipUserSolution,
228
230
  kNumCallbackType
229
231
  };
230
232
 
@@ -264,6 +266,15 @@ enum PresolveRuleType : int {
264
266
  kPresolveRuleCount,
265
267
  };
266
268
 
269
+ enum IisStrategy {
270
+ kIisStrategyMin = 0,
271
+ kIisStrategyFromLpRowPriority = kIisStrategyMin, // 0
272
+ kIisStrategyFromLpColPriority, // 1
273
+ // kIisStrategyFromRayRowPriority, // 2
274
+ // kIisStrategyFromRayColPriority, // 3
275
+ kIisStrategyMax = kIisStrategyFromLpColPriority
276
+ };
277
+
267
278
  // Default and max allowed power-of-two matrix scale factor
268
279
  const HighsInt kDefaultAllowedMatrixPow2Scale = 20;
269
280
  const HighsInt kMaxAllowedMatrixPow2Scale = 30;
@@ -278,6 +289,10 @@ const HighsInt kHighsIllegalInfeasibilityCount = -1;
278
289
  const double kHighsIllegalErrorValue = kHighsInf;
279
290
  const HighsInt kHighsIllegalErrorIndex = -1;
280
291
 
292
+ // Illegal values for complementarity violations used to indicate that true
293
+ // values aren't known
294
+ const double kHighsIllegalComplementarityViolation = kHighsInf;
295
+
281
296
  // Maximum upper bound on semi-variables
282
297
  const double kMaxSemiVariableUpper = 1e5;
283
298
 
@@ -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
  /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
@@ -33,6 +30,7 @@ struct HighsSolution {
33
30
  std::vector<double> col_dual;
34
31
  std::vector<double> row_value;
35
32
  std::vector<double> row_dual;
33
+ bool hasUndefined() const;
36
34
  void invalidate();
37
35
  void clear();
38
36
  };
@@ -52,22 +50,36 @@ struct RefactorInfo {
52
50
  void clear();
53
51
  };
54
52
 
53
+ // Unused, but retained since there is a const reference to this in a
54
+ // deprecated method
55
55
  struct HotStart {
56
56
  bool valid = false;
57
57
  RefactorInfo refactor_info;
58
58
  std::vector<int8_t> nonbasicMove;
59
- void clear();
60
59
  };
61
60
 
62
61
  struct HighsBasis {
62
+ // Logical flags for a HiGHS basis:
63
+ //
64
+ // valid: has been factored by HiGHS
65
+ //
66
+ // alien: a basis that's been set externally, so cannot be assumed
67
+ // to even have the right number of basic and nonbasic variables
68
+ //
69
+ // useful: a basis that may be useful
70
+ //
71
+ // Need useful since, by default, a basis is alien but not useful
63
72
  bool valid = false;
64
73
  bool alien = true;
74
+ bool useful = false;
65
75
  bool was_alien = true;
66
76
  HighsInt debug_id = -1;
67
77
  HighsInt debug_update_count = -1;
68
78
  std::string debug_origin_name = "None";
69
79
  std::vector<HighsBasisStatus> col_status;
70
80
  std::vector<HighsBasisStatus> row_status;
81
+ void print(std::string message = "") const;
82
+ void printScalars(std::string message = "") const;
71
83
  void invalidate();
72
84
  void clear();
73
85
  };
@@ -143,4 +155,28 @@ struct HighsIllConditioning {
143
155
  void clear();
144
156
  };
145
157
 
158
+ struct HighsLinearObjective {
159
+ double weight;
160
+ double offset;
161
+ std::vector<double> coefficients;
162
+ double abs_tolerance;
163
+ double rel_tolerance;
164
+ HighsInt priority;
165
+ void clear();
166
+ };
167
+
168
+ struct HighsSimplexStats {
169
+ bool valid;
170
+ HighsInt iteration_count;
171
+ HighsInt num_invert;
172
+ HighsInt last_invert_num_el;
173
+ HighsInt last_factored_basis_num_el;
174
+ double col_aq_density;
175
+ double row_ep_density;
176
+ double row_ap_density;
177
+ double row_DSE_density;
178
+ void report(FILE* file, const std::string message = "") const;
179
+ void initialise(const HighsInt iteration_count_ = 0);
180
+ };
181
+
146
182
  #endif /* LP_DATA_HSTRUCT_H_ */
@@ -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
  /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
@@ -19,6 +16,16 @@
19
16
  #include "lp_data/HStruct.h"
20
17
  #include "lp_data/HighsCallbackStruct.h"
21
18
 
19
+ enum userMipSolutionCallbackOrigin {
20
+ kUserMipSolutionCallbackOriginAfterSetup = 0,
21
+ kUserMipSolutionCallbackOriginBeforeDive,
22
+ kUserMipSolutionCallbackOriginEvaluateRootNode0,
23
+ kUserMipSolutionCallbackOriginEvaluateRootNode1,
24
+ kUserMipSolutionCallbackOriginEvaluateRootNode2,
25
+ kUserMipSolutionCallbackOriginEvaluateRootNode3,
26
+ kUserMipSolutionCallbackOriginEvaluateRootNode4
27
+ };
28
+
22
29
  using HighsCallbackFunctionType =
23
30
  std::function<void(int, const std::string&, const HighsCallbackDataOut*,
24
31
  HighsCallbackDataIn*, void*)>;
@@ -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
  /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
@@ -32,6 +29,7 @@ typedef struct {
32
29
  HighsInt pdlp_iteration_count;
33
30
  double objective_function_value;
34
31
  int64_t mip_node_count;
32
+ int64_t mip_total_lp_iterations;
35
33
  double mip_primal_bound;
36
34
  double mip_dual_bound;
37
35
  double mip_gap;
@@ -44,10 +42,12 @@ typedef struct {
44
42
  double* cutpool_value;
45
43
  double* cutpool_lower;
46
44
  double* cutpool_upper;
45
+ HighsInt user_solution_callback_origin;
47
46
  } HighsCallbackDataOut;
48
47
 
49
48
  typedef struct {
50
49
  int user_interrupt;
50
+ double* user_solution;
51
51
  } HighsCallbackDataIn;
52
52
 
53
53
  // Additional callback handling
@@ -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
  /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
@@ -0,0 +1,62 @@
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 lp_data/HighsIis.h
9
+ * @brief Class-independent utilities for HiGHS
10
+ */
11
+ #ifndef LP_DATA_HIGHSIIS_H_
12
+ #define LP_DATA_HIGHSIIS_H_
13
+
14
+ #include "lp_data/HighsLp.h"
15
+
16
+ const bool kIisDevReport = false;
17
+
18
+ enum IisBoundStatus {
19
+ kIisBoundStatusDropped = -1,
20
+ kIisBoundStatusNull, // 0
21
+ kIisBoundStatusFree, // 1
22
+ kIisBoundStatusLower, // 2
23
+ kIisBoundStatusUpper, // 3
24
+ kIisBoundStatusBoxed // 4
25
+ };
26
+
27
+ struct HighsIisInfo {
28
+ double simplex_time = 0;
29
+ HighsInt simplex_iterations = 0;
30
+ };
31
+
32
+ class HighsIis {
33
+ public:
34
+ HighsIis() {}
35
+
36
+ void invalidate();
37
+ std::string iisBoundStatusToString(HighsInt bound_status) const;
38
+ void report(const std::string message, const HighsLp& lp) const;
39
+ void addCol(const HighsInt col, const HighsInt status = kIisBoundStatusNull);
40
+ void addRow(const HighsInt row, const HighsInt status = kIisBoundStatusNull);
41
+ void removeCol(const HighsInt col);
42
+ void removeRow(const HighsInt row);
43
+ HighsStatus getData(const HighsLp& lp, const HighsOptions& options,
44
+ const HighsBasis& basis,
45
+ const std::vector<HighsInt>& infeasible_row);
46
+
47
+ HighsStatus compute(const HighsLp& lp, const HighsOptions& options,
48
+ const HighsBasis* basis = nullptr);
49
+
50
+ bool trivial(const HighsLp& lp, const HighsOptions& options);
51
+
52
+ // Data members
53
+ bool valid_ = false;
54
+ HighsInt strategy_ = kIisStrategyMin;
55
+ std::vector<HighsInt> col_index_;
56
+ std::vector<HighsInt> row_index_;
57
+ std::vector<HighsInt> col_bound_;
58
+ std::vector<HighsInt> row_bound_;
59
+ std::vector<HighsIisInfo> info_;
60
+ };
61
+
62
+ #endif // LP_DATA_HIGHSIIS_H_
@@ -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
  /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
@@ -87,46 +84,6 @@ class InfoRecordDouble : public InfoRecord {
87
84
  virtual ~InfoRecordDouble() {}
88
85
  };
89
86
 
90
- InfoStatus getInfoIndex(const HighsLogOptions& report_log_options,
91
- const std::string& name,
92
- const std::vector<InfoRecord*>& info_records,
93
- HighsInt& index);
94
-
95
- InfoStatus checkInfo(const HighsLogOptions& report_log_options,
96
- const std::vector<InfoRecord*>& info_records);
97
- InfoStatus checkInfo(const InfoRecordInt& info);
98
- InfoStatus checkInfo(const InfoRecordDouble& info);
99
-
100
- InfoStatus getLocalInfoValue(const HighsLogOptions& report_log_options,
101
- const std::string& name, const bool valid,
102
- const std::vector<InfoRecord*>& info_records,
103
- int64_t& value);
104
- InfoStatus getLocalInfoValue(const HighsLogOptions& report_log_options,
105
- const std::string& name, const bool valid,
106
- const std::vector<InfoRecord*>& info_records,
107
- HighsInt& value);
108
- InfoStatus getLocalInfoValue(const HighsLogOptions& report_log_options,
109
- const std::string& name, const bool valid,
110
- const std::vector<InfoRecord*>& info_records,
111
- double& value);
112
-
113
- InfoStatus getLocalInfoType(const HighsLogOptions& report_log_options,
114
- const std::string& name,
115
- const std::vector<InfoRecord*>& info_records,
116
- HighsInfoType& type);
117
-
118
- HighsStatus writeInfoToFile(
119
- FILE* file, const bool valid, const std::vector<InfoRecord*>& info_records,
120
- const HighsFileType file_type = HighsFileType::kOther);
121
- void reportInfo(FILE* file, const std::vector<InfoRecord*>& info_records,
122
- const HighsFileType file_type = HighsFileType::kOther);
123
- void reportInfo(FILE* file, const InfoRecordInt64& info,
124
- const HighsFileType file_type = HighsFileType::kOther);
125
- void reportInfo(FILE* file, const InfoRecordInt& info,
126
- const HighsFileType file_type = HighsFileType::kOther);
127
- void reportInfo(FILE* file, const InfoRecordDouble& info,
128
- const HighsFileType file_type = HighsFileType::kOther);
129
-
130
87
  // For now, but later change so HiGHS properties are string based so that new
131
88
  // info (for debug and testing too) can be added easily. The info below
132
89
  // are just what has been used to parse info from argv.
@@ -155,6 +112,7 @@ struct HighsInfoStruct {
155
112
  double sum_dual_infeasibilities;
156
113
  double max_complementarity_violation;
157
114
  double sum_complementarity_violations;
115
+ double primal_dual_integral;
158
116
  };
159
117
 
160
118
  class HighsInfo : public HighsInfoStruct {
@@ -313,10 +271,59 @@ class HighsInfo : public HighsInfoStruct {
313
271
  "sum_complementarity_violations", "Sum of complementarity violations",
314
272
  advanced, &sum_complementarity_violations, 0);
315
273
  records.push_back(record_double);
274
+
275
+ record_double =
276
+ new InfoRecordDouble("primal_dual_integral", "Primal-dual integral",
277
+ advanced, &primal_dual_integral, 0);
278
+ records.push_back(record_double);
316
279
  }
317
280
 
318
281
  public:
319
282
  std::vector<InfoRecord*> records;
320
283
  };
321
284
 
285
+ HighsStatus writeInfoToFile(
286
+ FILE* file, const bool valid, const HighsInfo& info,
287
+ const HighsFileType file_type = HighsFileType::kFull);
288
+
289
+ InfoStatus getInfoIndex(const HighsLogOptions& report_log_options,
290
+ const std::string& name,
291
+ const std::vector<InfoRecord*>& info_records,
292
+ HighsInt& index);
293
+
294
+ InfoStatus checkInfo(const HighsLogOptions& report_log_options,
295
+ const std::vector<InfoRecord*>& info_records);
296
+ InfoStatus checkInfo(const InfoRecordInt& info);
297
+ InfoStatus checkInfo(const InfoRecordDouble& info);
298
+
299
+ InfoStatus getLocalInfoValue(const HighsLogOptions& report_log_options,
300
+ const std::string& name, const bool valid,
301
+ const std::vector<InfoRecord*>& info_records,
302
+ int64_t& value);
303
+ InfoStatus getLocalInfoValue(const HighsLogOptions& report_log_options,
304
+ const std::string& name, const bool valid,
305
+ const std::vector<InfoRecord*>& info_records,
306
+ HighsInt& value);
307
+ InfoStatus getLocalInfoValue(const HighsLogOptions& report_log_options,
308
+ const std::string& name, const bool valid,
309
+ const std::vector<InfoRecord*>& info_records,
310
+ double& value);
311
+
312
+ InfoStatus getLocalInfoType(const HighsLogOptions& report_log_options,
313
+ const std::string& name,
314
+ const std::vector<InfoRecord*>& info_records,
315
+ HighsInfoType& type);
316
+
317
+ HighsStatus writeInfoToFile(
318
+ FILE* file, const bool valid, const std::vector<InfoRecord*>& info_records,
319
+ const HighsFileType file_type = HighsFileType::kFull);
320
+ void reportInfo(FILE* file, const std::vector<InfoRecord*>& info_records,
321
+ const HighsFileType file_type = HighsFileType::kFull);
322
+ void reportInfo(FILE* file, const InfoRecordInt64& info,
323
+ const HighsFileType file_type = HighsFileType::kFull);
324
+ void reportInfo(FILE* file, const InfoRecordInt& info,
325
+ const HighsFileType file_type = HighsFileType::kFull);
326
+ void reportInfo(FILE* file, const InfoRecordDouble& info,
327
+ const HighsFileType file_type = HighsFileType::kFull);
328
+
322
329
  #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
  /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
@@ -61,7 +58,9 @@ class HighsLp {
61
58
 
62
59
  bool operator==(const HighsLp& lp) const;
63
60
  bool equalButForNames(const HighsLp& lp) const;
61
+ bool equalButForScalingAndNames(const HighsLp& lp) const;
64
62
  bool equalNames(const HighsLp& lp) const;
63
+ bool equalScaling(const HighsLp& lp) const;
65
64
  bool isMip() const;
66
65
  bool hasSemiVariables() const;
67
66
  bool hasInfiniteCost(const double infinite_cost) const;
@@ -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
  /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
@@ -201,7 +198,7 @@ void getLpMatrixCoefficient(const HighsLp& lp, const HighsInt row,
201
198
  void analyseLp(const HighsLogOptions& log_options, const HighsLp& lp);
202
199
 
203
200
  HighsStatus readSolutionFile(const std::string filename,
204
- const HighsOptions& options, const HighsLp& lp,
201
+ const HighsOptions& options, HighsLp& lp,
205
202
  HighsBasis& basis, HighsSolution& solution,
206
203
  const HighsInt style);
207
204
 
@@ -216,7 +213,9 @@ bool readSolutionFileKeywordLineOk(std::string& keyword,
216
213
  std::ifstream& in_file);
217
214
  bool readSolutionFileHashKeywordIntLineOk(std::string& keyword, HighsInt& value,
218
215
  std::ifstream& in_file);
219
- bool readSolutionFileIdDoubleLineOk(double& value, std::ifstream& in_file);
216
+ bool readSolutionFileIdIgnoreLineOk(std::string& id, std::ifstream& in_file);
217
+ bool readSolutionFileIdDoubleLineOk(std::string& id, double& value,
218
+ std::ifstream& in_file);
220
219
  bool readSolutionFileIdDoubleIntLineOk(double& value, HighsInt& index,
221
220
  std::ifstream& in_file);
222
221
 
@@ -225,7 +224,8 @@ void assessColPrimalSolution(const HighsOptions& options, const double primal,
225
224
  const HighsVarType type, double& col_infeasibility,
226
225
  double& integer_infeasibility);
227
226
 
228
- HighsStatus assessLpPrimalSolution(const HighsOptions& options,
227
+ HighsStatus assessLpPrimalSolution(const std::string message,
228
+ const HighsOptions& options,
229
229
  const HighsLp& lp,
230
230
  const HighsSolution& solution, bool& valid,
231
231
  bool& integral, bool& feasible);
@@ -263,4 +263,36 @@ HighsLp withoutSemiVariables(const HighsLp& lp, HighsSolution& solution,
263
263
 
264
264
  void removeRowsOfCountOne(const HighsLogOptions& log_options, HighsLp& lp);
265
265
 
266
+ // Get subvectors from data structure of data0, data1, data2 and
267
+ // matrix, where the storage of the matrix is compatible with the
268
+ // vectors to be extracted from it
269
+ //
270
+ // Data to be extracted is given by sub_* being nullpointer
271
+ //
272
+ // * cost, lower and upper bounds for columns, and column-wise LP constraint
273
+ // matrix
274
+ //
275
+ // * lower and upper bounds for rows, and row-wise LP constraint
276
+ // * matrix. "cost" is nullptr, and so must be sub_vector_data0
277
+ //
278
+ void getSubVectors(const HighsIndexCollection& index_collection,
279
+ const HighsInt data_dim, const double* data0,
280
+ const double* data1, const double* data2,
281
+ const HighsSparseMatrix& matrix, HighsInt& num_sub_vector,
282
+ double* sub_vector_data0, double* sub_vector_data1,
283
+ double* sub_vector_data2, HighsInt& sub_matrix_num_nz,
284
+ HighsInt* sub_matrix_start, HighsInt* sub_matrix_index,
285
+ double* sub_matrix_value);
286
+
287
+ void getSubVectorsTranspose(const HighsIndexCollection& index_collection,
288
+ const HighsInt data_dim, const double* data0,
289
+ const double* data1, const double* data2,
290
+ const HighsSparseMatrix& matrix,
291
+ HighsInt& num_sub_vector, double* sub_vector_data0,
292
+ double* sub_vector_data1, double* sub_vector_data2,
293
+ HighsInt& sub_matrix_num_nz,
294
+ HighsInt* sub_matrix_start,
295
+ HighsInt* sub_matrix_index,
296
+ double* sub_matrix_value);
297
+
266
298
  #endif // LP_DATA_HIGHSLPUTILS_H_
@@ -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
  /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
@@ -31,29 +28,33 @@ bool hasNamesWithSpaces(const HighsLogOptions& log_options,
31
28
  const HighsInt num_name,
32
29
  const std::vector<std::string>& names);
33
30
  void writeModelBoundSolution(
34
- FILE* file, const bool columns, const HighsInt dim,
35
- const std::vector<double>& lower, const std::vector<double>& upper,
36
- const std::vector<std::string>& names, const bool have_primal,
37
- const std::vector<double>& primal, const bool have_dual,
38
- const std::vector<double>& dual, const bool have_basis,
39
- const std::vector<HighsBasisStatus>& status,
31
+ FILE* file, const HighsLogOptions& log_options, const bool columns,
32
+ const HighsInt dim, const std::vector<double>& lower,
33
+ const std::vector<double>& upper, const std::vector<std::string>& names,
34
+ const bool have_primal, const std::vector<double>& primal,
35
+ const bool have_dual, const std::vector<double>& dual,
36
+ const bool have_basis, const std::vector<HighsBasisStatus>& status,
40
37
  const HighsVarType* integrality = NULL);
41
38
 
42
- void writeModelObjective(FILE* file, const HighsModel& model,
39
+ void writeModelObjective(FILE* file, const HighsLogOptions& log_options,
40
+ const HighsModel& model,
43
41
  const std::vector<double>& primal_solution);
44
42
 
45
- void writeLpObjective(FILE* file, const HighsLp& lp,
43
+ void writeLpObjective(FILE* file, const HighsLogOptions& log_options,
44
+ const HighsLp& lp,
46
45
  const std::vector<double>& primal_solution);
47
46
 
48
- void writeObjectiveValue(FILE* file, const double objective_value);
47
+ void writeObjectiveValue(FILE* file, const HighsLogOptions& log_options,
48
+ const double objective_value);
49
49
 
50
- void writePrimalSolution(FILE* file, const HighsLp& lp,
50
+ void writePrimalSolution(FILE* file, const HighsLogOptions& log_options,
51
+ const HighsLp& lp,
51
52
  const std::vector<double>& primal_solution,
52
53
  const bool sparse = false);
53
54
 
54
- void writeModelSolution(FILE* file, const HighsModel& model,
55
- const HighsSolution& solution, const HighsInfo& info,
56
- const bool sparse = false);
55
+ void writeModelSolution(FILE* file, const HighsLogOptions& log_options,
56
+ const HighsModel& model, const HighsSolution& solution,
57
+ const HighsInfo& info, const bool sparse = false);
57
58
 
58
59
  HighsInt maxNameLength(const HighsInt num_name,
59
60
  const std::vector<std::string>& names);
@@ -68,7 +69,8 @@ void writeSolutionFile(FILE* file, const HighsOptions& options,
68
69
  const HighsModelStatus model_status,
69
70
  const HighsInt style);
70
71
 
71
- void writeGlpsolCostRow(FILE* file, const bool raw, const bool is_mip,
72
+ void writeGlpsolCostRow(FILE* file, const HighsLogOptions& log_options,
73
+ const bool raw, const bool is_mip,
72
74
  const HighsInt row_id, const std::string objective_name,
73
75
  const double objective_function_value);
74
76
 
@@ -78,7 +80,8 @@ void writeGlpsolSolution(FILE* file, const HighsOptions& options,
78
80
  const HighsModelStatus model_status,
79
81
  const HighsInfo& info, const bool raw);
80
82
 
81
- void writeOldRawSolution(FILE* file, const HighsLp& lp, const HighsBasis& basis,
83
+ void writeOldRawSolution(FILE* file, const HighsLogOptions& log_options,
84
+ const HighsLp& lp, const HighsBasis& basis,
82
85
  const HighsSolution& solution);
83
86
 
84
87
  HighsBasisStatus checkedVarHighsNonbasicStatus(