casadi 3.6.5__cp39-none-manylinux2014_i686.whl → 3.6.7__cp39-none-manylinux2014_i686.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (369) hide show
  1. casadi/_casadi.so +0 -0
  2. casadi/casadi.py +739 -308
  3. casadi/cbc +0 -0
  4. casadi/clp +0 -0
  5. casadi/cmake/casadi-config-version.cmake +1 -1
  6. casadi/cmake/highs/highs-config.cmake +6 -13
  7. casadi/cmake/highs/highs-targets-release.cmake +13 -13
  8. casadi/cmake/highs/highs-targets.cmake +13 -10
  9. casadi/highs +0 -0
  10. casadi/include/casadi/casadi.i +3 -0
  11. casadi/include/casadi/casadi_c.h +2 -0
  12. casadi/include/casadi/config.h +8 -8
  13. casadi/include/casadi/core/casadi_common.hpp +1 -0
  14. casadi/include/casadi/core/casadi_misc.hpp +52 -0
  15. casadi/include/casadi/core/casadi_types.hpp +3 -2
  16. casadi/include/casadi/core/code_generator.hpp +30 -1
  17. casadi/include/casadi/core/global_options.hpp +2 -0
  18. casadi/include/casadi/core/mx.hpp +18 -3
  19. casadi/include/casadi/core/optistack.hpp +23 -0
  20. casadi/include/casadi/core/runtime/casadi_nlp.hpp +19 -4
  21. casadi/include/casadi/core/runtime/casadi_ocp_block.hpp +55 -0
  22. casadi/include/casadi/core/runtime/casadi_oracle.hpp +44 -0
  23. casadi/include/casadi/core/runtime/casadi_oracle_callback.hpp +39 -0
  24. casadi/include/casadi/core/runtime/casadi_runtime.hpp +4 -1
  25. casadi/include/casadi/core/runtime/casadi_scaled_copy.hpp +31 -0
  26. casadi/include/casadi/core/serializing_stream.hpp +2 -2
  27. casadi/include/casadi/core/sparsity.hpp +7 -0
  28. casadi/include/casadi/doc.i +1513 -1016
  29. casadi/include/casadi/doc_merged.i +965 -719
  30. casadi/include/casadi/mem.h +1 -0
  31. casadi/include/daqp/api.h +46 -0
  32. casadi/include/daqp/auxiliary.h +29 -0
  33. casadi/include/daqp/bnb.h +32 -0
  34. casadi/include/daqp/codegen.h +18 -0
  35. casadi/include/daqp/constants.h +92 -0
  36. casadi/include/daqp/daqp.h +22 -0
  37. casadi/include/daqp/daqp_prox.h +18 -0
  38. casadi/include/daqp/factorization.h +18 -0
  39. casadi/include/daqp/types.h +161 -0
  40. casadi/include/daqp/utils.h +44 -0
  41. casadi/include/highs/HConfig.h +6 -5
  42. casadi/include/highs/Highs.h +93 -23
  43. casadi/include/highs/filereaderlp/def.hpp +19 -0
  44. casadi/include/highs/interfaces/highs_c_api.h +200 -24
  45. casadi/include/highs/io/Filereader.h +1 -1
  46. casadi/include/highs/io/FilereaderEms.h +1 -1
  47. casadi/include/highs/io/FilereaderLp.h +1 -1
  48. casadi/include/highs/io/FilereaderMps.h +1 -1
  49. casadi/include/highs/io/HMPSIO.h +1 -1
  50. casadi/include/highs/io/HMpsFF.h +5 -3
  51. casadi/include/highs/io/HighsIO.h +18 -8
  52. casadi/include/highs/io/LoadOptions.h +1 -1
  53. casadi/include/highs/ipm/IpxSolution.h +35 -0
  54. casadi/include/highs/ipm/IpxWrapper.h +1 -1
  55. casadi/include/highs/ipm/basiclu/basiclu.h +161 -0
  56. casadi/include/highs/ipm/basiclu/basiclu_factorize.h +247 -0
  57. casadi/include/highs/ipm/basiclu/basiclu_get_factors.h +108 -0
  58. casadi/include/highs/ipm/basiclu/basiclu_initialize.h +119 -0
  59. casadi/include/highs/ipm/basiclu/basiclu_obj_factorize.h +34 -0
  60. casadi/include/highs/ipm/basiclu/basiclu_obj_free.h +19 -0
  61. casadi/include/highs/ipm/basiclu/basiclu_obj_get_factors.h +34 -0
  62. casadi/include/highs/ipm/basiclu/basiclu_obj_initialize.h +46 -0
  63. casadi/include/highs/ipm/basiclu/basiclu_obj_solve_dense.h +29 -0
  64. casadi/include/highs/ipm/basiclu/basiclu_obj_solve_for_update.h +42 -0
  65. casadi/include/highs/ipm/basiclu/basiclu_obj_solve_sparse.h +32 -0
  66. casadi/include/highs/ipm/basiclu/basiclu_obj_update.h +31 -0
  67. casadi/include/highs/ipm/basiclu/basiclu_object.h +30 -0
  68. casadi/include/highs/ipm/basiclu/basiclu_solve_dense.h +75 -0
  69. casadi/include/highs/ipm/basiclu/basiclu_solve_for_update.h +169 -0
  70. casadi/include/highs/ipm/basiclu/basiclu_solve_sparse.h +112 -0
  71. casadi/include/highs/ipm/basiclu/basiclu_update.h +125 -0
  72. casadi/include/highs/ipm/basiclu/lu_def.h +39 -0
  73. casadi/include/highs/ipm/basiclu/lu_file.h +21 -0
  74. casadi/include/highs/ipm/basiclu/lu_internal.h +220 -0
  75. casadi/include/highs/ipm/basiclu/lu_list.h +168 -0
  76. casadi/include/highs/ipm/ipx/basiclu_kernel.h +20 -0
  77. casadi/include/highs/ipm/ipx/basiclu_wrapper.h +47 -0
  78. casadi/include/highs/ipm/ipx/basis.h +351 -0
  79. casadi/include/highs/ipm/ipx/conjugate_residuals.h +74 -0
  80. casadi/include/highs/ipm/ipx/control.h +163 -0
  81. casadi/include/highs/ipm/ipx/crossover.h +157 -0
  82. casadi/include/highs/ipm/ipx/diagonal_precond.h +45 -0
  83. casadi/include/highs/ipm/ipx/forrest_tomlin.h +102 -0
  84. casadi/include/highs/ipm/ipx/guess_basis.h +21 -0
  85. casadi/include/highs/ipm/ipx/indexed_vector.h +113 -0
  86. casadi/include/highs/ipm/ipx/info.h +27 -0
  87. casadi/include/highs/ipm/ipx/ipm.h +94 -0
  88. casadi/include/highs/ipm/ipx/ipx_c.h +47 -0
  89. casadi/include/highs/ipm/ipx/ipx_config.h +9 -0
  90. casadi/include/highs/ipm/ipx/ipx_info.h +111 -0
  91. casadi/include/highs/ipm/ipx/ipx_internal.h +88 -0
  92. casadi/include/highs/ipm/ipx/ipx_parameters.h +75 -0
  93. casadi/include/highs/ipm/ipx/ipx_status.h +57 -0
  94. casadi/include/highs/ipm/ipx/iterate.h +328 -0
  95. casadi/include/highs/ipm/ipx/kkt_solver.h +70 -0
  96. casadi/include/highs/ipm/ipx/kkt_solver_basis.h +66 -0
  97. casadi/include/highs/ipm/ipx/kkt_solver_diag.h +48 -0
  98. casadi/include/highs/ipm/ipx/linear_operator.h +26 -0
  99. casadi/include/highs/ipm/ipx/lp_solver.h +201 -0
  100. casadi/include/highs/ipm/ipx/lu_factorization.h +79 -0
  101. casadi/include/highs/ipm/ipx/lu_update.h +129 -0
  102. casadi/include/highs/ipm/ipx/maxvolume.h +54 -0
  103. casadi/include/highs/ipm/ipx/model.h +409 -0
  104. casadi/include/highs/ipm/ipx/multistream.h +52 -0
  105. casadi/include/highs/ipm/ipx/normal_matrix.h +44 -0
  106. casadi/include/highs/ipm/ipx/power_method.h +44 -0
  107. casadi/include/highs/ipm/ipx/sparse_matrix.h +195 -0
  108. casadi/include/highs/ipm/ipx/sparse_utils.h +58 -0
  109. casadi/include/highs/ipm/ipx/splitted_normal_matrix.h +63 -0
  110. casadi/include/highs/ipm/ipx/starting_basis.h +39 -0
  111. casadi/include/highs/ipm/ipx/symbolic_invert.h +29 -0
  112. casadi/include/highs/ipm/ipx/timer.h +24 -0
  113. casadi/include/highs/ipm/ipx/utils.h +39 -0
  114. casadi/include/highs/lp_data/HConst.h +20 -10
  115. casadi/include/highs/lp_data/HStruct.h +23 -1
  116. casadi/include/highs/lp_data/HighsAnalysis.h +1 -1
  117. casadi/include/highs/lp_data/HighsCallback.h +10 -3
  118. casadi/include/highs/lp_data/HighsCallbackStruct.h +31 -5
  119. casadi/include/highs/lp_data/HighsDebug.h +1 -1
  120. casadi/include/highs/lp_data/HighsInfo.h +20 -2
  121. casadi/include/highs/lp_data/HighsInfoDebug.h +1 -1
  122. casadi/include/highs/lp_data/HighsLp.h +17 -1
  123. casadi/include/highs/lp_data/HighsLpSolverObject.h +1 -1
  124. casadi/include/highs/lp_data/HighsLpUtils.h +19 -19
  125. casadi/include/highs/lp_data/HighsModelUtils.h +1 -1
  126. casadi/include/highs/lp_data/HighsOptions.h +237 -10
  127. casadi/include/highs/lp_data/HighsRanging.h +1 -1
  128. casadi/include/highs/lp_data/HighsRuntimeOptions.h +2 -2
  129. casadi/include/highs/lp_data/HighsSolution.h +2 -2
  130. casadi/include/highs/lp_data/HighsSolutionDebug.h +1 -1
  131. casadi/include/highs/lp_data/HighsSolve.h +3 -1
  132. casadi/include/highs/lp_data/HighsStatus.h +1 -1
  133. casadi/include/highs/mip/HighsCliqueTable.h +4 -4
  134. casadi/include/highs/mip/HighsConflictPool.h +1 -1
  135. casadi/include/highs/mip/HighsCutGeneration.h +1 -1
  136. casadi/include/highs/mip/HighsCutPool.h +2 -2
  137. casadi/include/highs/mip/HighsDebugSol.h +22 -29
  138. casadi/include/highs/mip/HighsDomain.h +10 -2
  139. casadi/include/highs/mip/HighsDomainChange.h +1 -1
  140. casadi/include/highs/mip/HighsDynamicRowMatrix.h +5 -3
  141. casadi/include/highs/mip/HighsGFkSolve.h +3 -3
  142. casadi/include/highs/mip/HighsImplications.h +3 -3
  143. casadi/include/highs/mip/HighsLpAggregator.h +1 -1
  144. casadi/include/highs/mip/HighsLpRelaxation.h +6 -1
  145. casadi/include/highs/mip/HighsMipSolver.h +4 -2
  146. casadi/include/highs/mip/HighsMipSolverData.h +47 -4
  147. casadi/include/highs/mip/HighsModkSeparator.h +2 -2
  148. casadi/include/highs/mip/HighsNodeQueue.h +5 -3
  149. casadi/include/highs/mip/HighsObjectiveFunction.h +1 -1
  150. casadi/include/highs/mip/HighsPathSeparator.h +2 -2
  151. casadi/include/highs/mip/HighsPrimalHeuristics.h +1 -1
  152. casadi/include/highs/mip/HighsPseudocost.h +35 -23
  153. casadi/include/highs/mip/HighsRedcostFixing.h +1 -1
  154. casadi/include/highs/mip/HighsSearch.h +2 -1
  155. casadi/include/highs/mip/HighsSeparation.h +1 -1
  156. casadi/include/highs/mip/HighsSeparator.h +1 -1
  157. casadi/include/highs/mip/HighsTableauSeparator.h +1 -1
  158. casadi/include/highs/mip/HighsTransformedLp.h +1 -1
  159. casadi/include/highs/model/HighsHessian.h +5 -0
  160. casadi/include/highs/model/HighsHessianUtils.h +2 -0
  161. casadi/include/highs/model/HighsModel.h +10 -1
  162. casadi/include/highs/parallel/HighsMutex.h +2 -1
  163. casadi/include/highs/parallel/HighsParallel.h +7 -2
  164. casadi/include/highs/parallel/HighsTask.h +1 -2
  165. casadi/include/highs/pdlp/CupdlpWrapper.h +93 -0
  166. casadi/include/highs/pdlp/cupdlp/cupdlp_cs.h +41 -0
  167. casadi/include/highs/pdlp/cupdlp/cupdlp_defs.h +423 -0
  168. casadi/include/highs/pdlp/cupdlp/cupdlp_linalg.h +183 -0
  169. casadi/include/highs/pdlp/cupdlp/cupdlp_proj.h +19 -0
  170. casadi/include/highs/pdlp/cupdlp/cupdlp_restart.h +31 -0
  171. casadi/include/highs/pdlp/cupdlp/cupdlp_scaling_cuda.h +28 -0
  172. casadi/include/highs/pdlp/cupdlp/cupdlp_solver.h +98 -0
  173. casadi/include/highs/pdlp/cupdlp/cupdlp_step.h +33 -0
  174. casadi/include/highs/pdlp/cupdlp/cupdlp_utils.c +1726 -0
  175. casadi/include/highs/pdqsort/pdqsort.h +532 -0
  176. casadi/include/highs/presolve/HPresolve.h +27 -14
  177. casadi/include/highs/presolve/HPresolveAnalysis.h +1 -1
  178. casadi/include/highs/presolve/HighsPostsolveStack.h +92 -68
  179. casadi/include/highs/presolve/HighsSymmetry.h +6 -5
  180. casadi/include/highs/presolve/ICrash.h +8 -2
  181. casadi/include/highs/presolve/ICrashUtil.h +1 -1
  182. casadi/include/highs/presolve/ICrashX.h +1 -1
  183. casadi/include/highs/presolve/PresolveComponent.h +1 -1
  184. casadi/include/highs/qpsolver/a_asm.hpp +23 -12
  185. casadi/include/highs/qpsolver/a_quass.hpp +8 -1
  186. casadi/include/highs/qpsolver/basis.hpp +150 -0
  187. casadi/include/highs/qpsolver/crashsolution.hpp +12 -0
  188. casadi/include/highs/qpsolver/dantzigpricing.hpp +72 -0
  189. casadi/include/highs/qpsolver/devexpricing.hpp +99 -0
  190. casadi/include/highs/qpsolver/eventhandler.hpp +23 -0
  191. casadi/include/highs/qpsolver/factor.hpp +400 -0
  192. casadi/include/highs/qpsolver/feasibility_bounded.hpp +105 -0
  193. casadi/include/highs/qpsolver/feasibility_highs.hpp +270 -0
  194. casadi/include/highs/qpsolver/gradient.hpp +39 -0
  195. casadi/include/highs/qpsolver/instance.hpp +63 -0
  196. casadi/include/highs/qpsolver/matrix.hpp +335 -0
  197. casadi/include/highs/qpsolver/pricing.hpp +15 -0
  198. casadi/include/highs/qpsolver/qpconst.hpp +27 -0
  199. casadi/include/highs/qpsolver/{vector.hpp → qpvector.hpp} +25 -25
  200. casadi/include/highs/qpsolver/quass.hpp +1 -1
  201. casadi/include/highs/qpsolver/ratiotest.hpp +19 -0
  202. casadi/include/highs/qpsolver/runtime.hpp +38 -0
  203. casadi/include/highs/qpsolver/settings.hpp +57 -0
  204. casadi/include/highs/qpsolver/snippets.hpp +29 -0
  205. casadi/include/highs/qpsolver/statistics.hpp +23 -0
  206. casadi/include/highs/qpsolver/steepestedgepricing.hpp +167 -0
  207. casadi/include/highs/simplex/HApp.h +1 -1
  208. casadi/include/highs/simplex/HEkk.h +52 -18
  209. casadi/include/highs/simplex/HEkkDual.h +1 -1
  210. casadi/include/highs/simplex/HEkkDualRHS.h +6 -7
  211. casadi/include/highs/simplex/HEkkDualRow.h +2 -2
  212. casadi/include/highs/simplex/HEkkPrimal.h +6 -1
  213. casadi/include/highs/simplex/HSimplex.h +1 -3
  214. casadi/include/highs/simplex/HSimplexDebug.h +1 -1
  215. casadi/include/highs/simplex/HSimplexNla.h +1 -1
  216. casadi/include/highs/simplex/HSimplexReport.h +1 -1
  217. casadi/include/highs/simplex/HighsSimplexAnalysis.h +228 -100
  218. casadi/include/highs/simplex/SimplexConst.h +1 -1
  219. casadi/include/highs/simplex/SimplexStruct.h +2 -2
  220. casadi/include/highs/simplex/SimplexTimer.h +1 -1
  221. casadi/include/highs/test/DevKkt.h +1 -1
  222. casadi/include/highs/test/KktCh2.h +1 -1
  223. casadi/include/highs/util/FactorTimer.h +1 -1
  224. casadi/include/highs/util/HFactor.h +35 -6
  225. casadi/include/highs/util/HFactorConst.h +1 -1
  226. casadi/include/highs/util/HFactorDebug.h +1 -1
  227. casadi/include/highs/util/HSet.h +1 -1
  228. casadi/include/highs/util/HVector.h +1 -1
  229. casadi/include/highs/util/HVectorBase.h +1 -1
  230. casadi/include/highs/util/HighsCDouble.h +3 -3
  231. casadi/include/highs/util/HighsComponent.h +1 -1
  232. casadi/include/highs/util/HighsDataStack.h +4 -4
  233. casadi/include/highs/util/HighsDisjointSets.h +1 -1
  234. casadi/include/highs/util/HighsHash.h +28 -21
  235. casadi/include/highs/util/HighsHashTree.h +63 -63
  236. casadi/include/highs/util/HighsInt.h +1 -1
  237. casadi/include/highs/util/HighsIntegers.h +8 -9
  238. casadi/include/highs/util/HighsLinearSumBounds.h +1 -1
  239. casadi/include/highs/util/HighsMatrixPic.h +1 -1
  240. casadi/include/highs/util/HighsMatrixSlice.h +9 -6
  241. casadi/include/highs/util/HighsMatrixUtils.h +1 -1
  242. casadi/include/highs/util/HighsMemoryAllocation.h +55 -0
  243. casadi/include/highs/util/HighsRandom.h +27 -15
  244. casadi/include/highs/util/HighsRbTree.h +2 -2
  245. casadi/include/highs/util/HighsSort.h +7 -7
  246. casadi/include/highs/util/HighsSparseMatrix.h +5 -2
  247. casadi/include/highs/util/HighsSparseVectorSum.h +2 -2
  248. casadi/include/highs/util/HighsSplay.h +1 -1
  249. casadi/include/highs/util/HighsTimer.h +18 -9
  250. casadi/include/highs/util/HighsUtils.h +15 -8
  251. casadi/include/highs/util/stringutil.h +9 -4
  252. casadi/include/highs/zstr/strict_fstream.hpp +237 -0
  253. casadi/include/highs/zstr/zstr.hpp +472 -0
  254. casadi/include/licenses/daqp-external/LICENSE +21 -0
  255. casadi/include/licenses/highs-external/{LICENSE → LICENSE.txt} +1 -1
  256. casadi/include/osqp/constants.h +2 -3
  257. casadi/include/osqp/version.h +9 -0
  258. casadi/lib/libtinyxml2.a +0 -0
  259. casadi/libCbcSolver.so +0 -0
  260. casadi/libCbcSolver.so.3 +0 -0
  261. casadi/libCbcSolver.so.3.10.11 +0 -0
  262. casadi/libClpSolver.so +0 -0
  263. casadi/libClpSolver.so.1 +0 -0
  264. casadi/libClpSolver.so.1.14.9 +0 -0
  265. casadi/libbonmin.so +0 -0
  266. casadi/libbonmin.so.4 +0 -0
  267. casadi/libbonmin.so.4.8.9 +0 -0
  268. casadi/libcasadi.so +0 -0
  269. casadi/libcasadi.so.3.7 +0 -0
  270. casadi/libcasadi_conic_cbc.so +0 -0
  271. casadi/libcasadi_conic_cbc.so.3.7 +0 -0
  272. casadi/libcasadi_conic_clp.so +0 -0
  273. casadi/libcasadi_conic_clp.so.3.7 +0 -0
  274. casadi/libcasadi_conic_daqp.so +0 -0
  275. casadi/libcasadi_conic_daqp.so.3.7 +0 -0
  276. casadi/libcasadi_conic_gurobi.so +0 -0
  277. casadi/libcasadi_conic_gurobi.so.3.7 +0 -0
  278. casadi/libcasadi_conic_highs.so +0 -0
  279. casadi/libcasadi_conic_highs.so.3.7 +0 -0
  280. casadi/libcasadi_conic_ipqp.so +0 -0
  281. casadi/libcasadi_conic_ipqp.so.3.7 +0 -0
  282. casadi/libcasadi_conic_nlpsol.so +0 -0
  283. casadi/libcasadi_conic_nlpsol.so.3.7 +0 -0
  284. casadi/libcasadi_conic_osqp.so +0 -0
  285. casadi/libcasadi_conic_osqp.so.3.7 +0 -0
  286. casadi/libcasadi_conic_proxqp.so +0 -0
  287. casadi/libcasadi_conic_proxqp.so.3.7 +0 -0
  288. casadi/libcasadi_conic_qpoases.so +0 -0
  289. casadi/libcasadi_conic_qpoases.so.3.7 +0 -0
  290. casadi/libcasadi_conic_qrqp.so +0 -0
  291. casadi/libcasadi_conic_qrqp.so.3.7 +0 -0
  292. casadi/libcasadi_conic_superscs.so +0 -0
  293. casadi/libcasadi_conic_superscs.so.3.7 +0 -0
  294. casadi/libcasadi_integrator_collocation.so +0 -0
  295. casadi/libcasadi_integrator_collocation.so.3.7 +0 -0
  296. casadi/libcasadi_integrator_cvodes.so +0 -0
  297. casadi/libcasadi_integrator_cvodes.so.3.7 +0 -0
  298. casadi/libcasadi_integrator_idas.so +0 -0
  299. casadi/libcasadi_integrator_idas.so.3.7 +0 -0
  300. casadi/libcasadi_integrator_rk.so +0 -0
  301. casadi/libcasadi_integrator_rk.so.3.7 +0 -0
  302. casadi/libcasadi_nlpsol_alpaqa.so +0 -0
  303. casadi/libcasadi_nlpsol_alpaqa.so.3.7 +0 -0
  304. casadi/libcasadi_nlpsol_ampl.so +0 -0
  305. casadi/libcasadi_nlpsol_ampl.so.3.7 +0 -0
  306. casadi/libcasadi_nlpsol_blocksqp.so +0 -0
  307. casadi/libcasadi_nlpsol_blocksqp.so.3.7 +0 -0
  308. casadi/libcasadi_nlpsol_bonmin.so +0 -0
  309. casadi/libcasadi_nlpsol_bonmin.so.3.7 +0 -0
  310. casadi/libcasadi_nlpsol_feasiblesqpmethod.so +0 -0
  311. casadi/libcasadi_nlpsol_feasiblesqpmethod.so.3.7 +0 -0
  312. casadi/libcasadi_nlpsol_ipopt.so +0 -0
  313. casadi/libcasadi_nlpsol_ipopt.so.3.7 +0 -0
  314. casadi/libcasadi_nlpsol_knitro.so +0 -0
  315. casadi/libcasadi_nlpsol_knitro.so.3.7 +0 -0
  316. casadi/libcasadi_nlpsol_madnlp.so +0 -0
  317. casadi/libcasadi_nlpsol_madnlp.so.3.7 +0 -0
  318. casadi/libcasadi_nlpsol_qrsqp.so +0 -0
  319. casadi/libcasadi_nlpsol_qrsqp.so.3.7 +0 -0
  320. casadi/libcasadi_nlpsol_scpgen.so +0 -0
  321. casadi/libcasadi_nlpsol_scpgen.so.3.7 +0 -0
  322. casadi/libcasadi_nlpsol_sleqp.so +0 -0
  323. casadi/libcasadi_nlpsol_sleqp.so.3.7 +0 -0
  324. casadi/libcasadi_nlpsol_snopt.so +0 -0
  325. casadi/libcasadi_nlpsol_snopt.so.3.7 +0 -0
  326. casadi/libcasadi_nlpsol_sqpmethod.so +0 -0
  327. casadi/libcasadi_nlpsol_sqpmethod.so.3.7 +0 -0
  328. casadi/libcasadi_nlpsol_worhp.so +0 -0
  329. casadi/libcasadi_nlpsol_worhp.so.3.7 +0 -0
  330. casadi/libcasadi_rootfinder_fast_newton.so +0 -0
  331. casadi/libcasadi_rootfinder_fast_newton.so.3.7 +0 -0
  332. casadi/libcasadi_rootfinder_kinsol.so +0 -0
  333. casadi/libcasadi_rootfinder_kinsol.so.3.7 +0 -0
  334. casadi/libcasadi_rootfinder_newton.so +0 -0
  335. casadi/libcasadi_rootfinder_newton.so.3.7 +0 -0
  336. casadi/libcasadi_rootfinder_nlpsol.so +0 -0
  337. casadi/libcasadi_rootfinder_nlpsol.so.3.7 +0 -0
  338. casadi/libcasadi_sundials_common.so +0 -0
  339. casadi/libcasadi_sundials_common.so.3.7 +0 -0
  340. casadi/libcoinmetis.la +1 -1
  341. casadi/libcoinmetis.so +0 -0
  342. casadi/libcoinmetis.so.2 +0 -0
  343. casadi/libcoinmetis.so.2.0.0 +0 -0
  344. casadi/libdaqp.so +0 -0
  345. casadi/libdaqpstat.a +0 -0
  346. casadi/libhighs.so +0 -0
  347. casadi/libhighs.so.1 +0 -0
  348. casadi/libhighs.so.1.7.2 +0 -0
  349. casadi/libindirect.a +0 -0
  350. casadi/liblinsys.a +0 -0
  351. casadi/libmatlab_ipc.so +0 -0
  352. casadi/libosqp.a +0 -0
  353. casadi/libosqp.so +0 -0
  354. casadi/libqdldl.a +0 -0
  355. casadi/libsleqp.so +0 -0
  356. casadi/libsleqp.so.1.0.1 +0 -0
  357. casadi/libspral.a +0 -0
  358. casadi/libsuperscs.a +0 -0
  359. casadi/pkgconfig/casadi.pc +1 -1
  360. casadi/pkgconfig/highs.pc +1 -1
  361. casadi/tools/__init__.py +4 -0
  362. casadi/tools/bounds.py +3 -3
  363. {casadi-3.6.5.dist-info → casadi-3.6.7.dist-info}/METADATA +2 -2
  364. {casadi-3.6.5.dist-info → casadi-3.6.7.dist-info}/RECORD +365 -250
  365. casadi/include/highs/fortran/highs_fortran_api.mod +0 -0
  366. casadi/libFortranHighs.so +0 -0
  367. casadi/libhighs.so.1.6 +0 -0
  368. casadi/libhighs.so.1.6.0 +0 -0
  369. {casadi-3.6.5.dist-info → casadi-3.6.7.dist-info}/WHEEL +0 -0
@@ -2,7 +2,7 @@
2
2
  /* */
3
3
  /* This file is part of the HiGHS linear optimization suite */
4
4
  /* */
5
- /* Written and engineered 2008-2023 by Julian Hall, Ivet Galabova, */
5
+ /* Written and engineered 2008-2024 by Julian Hall, Ivet Galabova, */
6
6
  /* Leona Gottwald and Michael Feldmeier */
7
7
  /* */
8
8
  /* Available as open-source under the MIT License */
@@ -37,7 +37,6 @@ HighsInt highsVersionMajor();
37
37
  HighsInt highsVersionMinor();
38
38
  HighsInt highsVersionPatch();
39
39
  const char* highsGithash();
40
- const char* highsCompilationDate();
41
40
 
42
41
  /**
43
42
  * @brief Class to set parameters and run HiGHS
@@ -78,11 +77,6 @@ class Highs {
78
77
  */
79
78
  std::string githash() const { return highsGithash(); }
80
79
 
81
- /**
82
- * @brief Return compilation date
83
- */
84
- std::string compilationDate() const { return highsCompilationDate(); }
85
-
86
80
  /**
87
81
  * @brief Reset the options and then call clearModel()
88
82
  */
@@ -384,6 +378,13 @@ class Highs {
384
378
  */
385
379
  double getInfinity() { return kHighsInf; }
386
380
 
381
+ /**
382
+ * @brief Get the size of HighsInt
383
+ */
384
+ HighsInt getSizeofHighsInt() {
385
+ return sizeof(options_.num_user_settable_options_);
386
+ }
387
+
387
388
  /**
388
389
  * @brief Get the run time of HiGHS
389
390
  */
@@ -409,6 +410,22 @@ class Highs {
409
410
  */
410
411
  const HighsPresolveLog& getPresolveLog() const { return presolve_log_; }
411
412
 
413
+ /**
414
+ * @brief Return a const pointer to the original column indices for
415
+ * the presolved model
416
+ */
417
+ const HighsInt* getPresolveOrigColsIndex() const {
418
+ return presolve_.data_.postSolveStack.getOrigColsIndex();
419
+ }
420
+
421
+ /**
422
+ * @brief Return a const pointer to the original row indices for the
423
+ * presolved model
424
+ */
425
+ const HighsInt* getPresolveOrigRowsIndex() const {
426
+ return presolve_.data_.postSolveStack.getOrigRowsIndex();
427
+ }
428
+
412
429
  /**
413
430
  * @brief Return a const reference to the incumbent LP
414
431
  */
@@ -482,6 +499,14 @@ class Highs {
482
499
  */
483
500
  HighsStatus getRanging(HighsRanging& ranging);
484
501
 
502
+ /**
503
+ * @brief Get the ill-conditioning information for the current basis
504
+ */
505
+ HighsStatus getIllConditioning(HighsIllConditioning& ill_conditioning,
506
+ const bool constraint,
507
+ const HighsInt method = 0,
508
+ const double ill_conditioning_bound = 1e-4);
509
+
485
510
  /**
486
511
  * @brief Get the current model objective value
487
512
  */
@@ -617,7 +642,7 @@ class Highs {
617
642
  * @brief Get multiple columns from the model given by a set
618
643
  */
619
644
  HighsStatus getCols(
620
- const HighsInt num_set_entries, //!< The number of indides in the set
645
+ const HighsInt num_set_entries, //!< The number of indices in the set
621
646
  const HighsInt* set, //!< Array of size num_set_entries with indices of
622
647
  //!< columns to get
623
648
  HighsInt& num_col, //!< Number of columns got from the model
@@ -689,7 +714,7 @@ class Highs {
689
714
  * @brief Get multiple rows from the model given by a set
690
715
  */
691
716
  HighsStatus getRows(
692
- const HighsInt num_set_entries, //!< The number of indides in the set
717
+ const HighsInt num_set_entries, //!< The number of indices in the set
693
718
  const HighsInt*
694
719
  set, //!< Array of size num_set_entries with indices of rows to get
695
720
  HighsInt& num_row, //!< Number of rows got from the model
@@ -739,6 +764,17 @@ class Highs {
739
764
  */
740
765
  HighsStatus writeModel(const std::string& filename = "");
741
766
 
767
+ /**
768
+ * @brief Write out the incumbent presolved model to a file
769
+ */
770
+ HighsStatus writePresolvedModel(const std::string& filename = "");
771
+
772
+ /**
773
+ * @brief Write out the given model to a file
774
+ */
775
+ HighsStatus writeLocalModel(HighsModel& model,
776
+ const std::string& filename = "");
777
+
742
778
  /**
743
779
  * @brief Write out the internal HighsBasis instance to a file
744
780
  */
@@ -786,6 +822,14 @@ class Highs {
786
822
  HighsStatus changeColsIntegrality(const HighsInt* mask,
787
823
  const HighsVarType* integrality);
788
824
 
825
+ /**
826
+ * @brief Clear the integrality of all columns
827
+ */
828
+ HighsStatus clearIntegrality() {
829
+ this->model_.lp_.integrality_.clear();
830
+ return HighsStatus::kOk;
831
+ }
832
+
789
833
  /**
790
834
  * @brief Change the cost of a column
791
835
  */
@@ -900,7 +944,7 @@ class Highs {
900
944
  * @brief Adds a variable to the incumbent model, without the cost or matrix
901
945
  * coefficients
902
946
  */
903
- HighsStatus addVar(const double lower, const double upper) {
947
+ HighsStatus addVar(const double lower = 0, const double upper = kHighsInf) {
904
948
  return this->addVars(1, &lower, &upper);
905
949
  }
906
950
 
@@ -943,8 +987,9 @@ class Highs {
943
987
 
944
988
  /**
945
989
  * @brief Delete multiple columns from the incumbent model given by
946
- * a mask (full length array with 1 => change; 0 => not). New index
947
- * of any column not deleted is returned in place of the value 0.
990
+ * a mask (full length array with 1 => delete; 0 => keep). New index
991
+ * of any column kept is returned in place of the value 0. For
992
+ * deleted columns, a value of -1 is returned.
948
993
  */
949
994
  HighsStatus deleteCols(HighsInt* mask);
950
995
 
@@ -964,9 +1009,10 @@ class Highs {
964
1009
  }
965
1010
 
966
1011
  /**
967
- * @brief Delete multiple variables from the incumbent model given by
968
- * a mask (full length array with 1 => change; 0 => not). New index
969
- * of any variable not deleted is returned in place of the value 0.
1012
+ * @brief Delete multiple variables from the incumbent model given
1013
+ * by a mask (full length array with 1 => delete; 0 => keep). New
1014
+ * index of any variable not deleted is returned in place of the
1015
+ * value 0. For deleted variables, a value of -1 is returned.
970
1016
  */
971
1017
  HighsStatus deleteVars(HighsInt* mask) { return deleteCols(mask); }
972
1018
 
@@ -983,8 +1029,9 @@ class Highs {
983
1029
 
984
1030
  /**
985
1031
  * @brief Delete multiple rows from the incumbent model given by a
986
- * mask (full length array with 1 => change; 0 => not). New index of
987
- * any row not deleted is returned in place of the value 0.
1032
+ * mask (full length array with 1 => delete; 0 => keep). New index
1033
+ * of any row not deleted is returned in place of the value 0. For
1034
+ * deleted rows, a value of -1 is returned.
988
1035
  */
989
1036
  HighsStatus deleteRows(HighsInt* mask);
990
1037
 
@@ -1019,20 +1066,22 @@ class Highs {
1019
1066
  /**
1020
1067
  * @brief Set the callback method to use for HiGHS
1021
1068
  */
1022
- HighsStatus setCallback(void (*user_callback)(const int, const char*,
1023
- const HighsCallbackDataOut*,
1024
- HighsCallbackDataIn*, void*),
1069
+ HighsStatus setCallback(HighsCallbackFunctionType user_callback,
1070
+ void* user_callback_data = nullptr);
1071
+ HighsStatus setCallback(HighsCCallbackType c_callback,
1025
1072
  void* user_callback_data = nullptr);
1026
1073
 
1027
1074
  /**
1028
1075
  * @brief Start callback of given type
1029
1076
  */
1030
1077
  HighsStatus startCallback(const int callback_type);
1078
+ HighsStatus startCallback(const HighsCallbackType callback_type);
1031
1079
 
1032
1080
  /**
1033
1081
  * @brief Stop callback of given type
1034
1082
  */
1035
1083
  HighsStatus stopCallback(const int callback_type);
1084
+ HighsStatus stopCallback(const HighsCallbackType callback_type);
1036
1085
 
1037
1086
  /**
1038
1087
  * @brief Use the HighsBasis passed to set the internal HighsBasis
@@ -1163,6 +1212,8 @@ class Highs {
1163
1212
 
1164
1213
  // Start of deprecated methods
1165
1214
 
1215
+ std::string compilationDate() const { return "deprecated"; }
1216
+
1166
1217
  HighsStatus setLogCallback(void (*user_log_callback)(HighsLogType,
1167
1218
  const char*, void*),
1168
1219
  void* user_log_callback_data = nullptr);
@@ -1301,7 +1352,7 @@ class Highs {
1301
1352
  this->model_.hessian_.exactResize();
1302
1353
  }
1303
1354
 
1304
- HighsStatus assignContinuousAtDiscreteSolution();
1355
+ HighsStatus completeSolutionFromDiscreteAssignment();
1305
1356
 
1306
1357
  HighsStatus callSolveLp(HighsLp& lp, const string message);
1307
1358
  HighsStatus callSolveQp();
@@ -1336,7 +1387,7 @@ class Highs {
1336
1387
  //
1337
1388
  // Methods to clear solver data for users in Highs class members
1338
1389
  // before (possibly) updating them with data from trying to solve
1339
- // the inumcumbent model.
1390
+ // the incumbent model.
1340
1391
  //
1341
1392
  // Invalidates all solver data in Highs class members by calling
1342
1393
  // invalidateModelStatus(), invalidateSolution(), invalidateBasis(),
@@ -1366,7 +1417,8 @@ class Highs {
1366
1417
 
1367
1418
  HighsStatus returnFromWriteSolution(FILE* file,
1368
1419
  const HighsStatus return_status);
1369
- HighsStatus returnFromRun(const HighsStatus return_status);
1420
+ HighsStatus returnFromRun(const HighsStatus return_status,
1421
+ const bool undo_mods);
1370
1422
  HighsStatus returnFromHighs(const HighsStatus return_status);
1371
1423
  void reportSolvedLpQpStats();
1372
1424
 
@@ -1444,6 +1496,7 @@ class Highs {
1444
1496
  HighsStatus getPrimalRayInterface(bool& has_primal_ray,
1445
1497
  double* primal_ray_value);
1446
1498
  HighsStatus getRangingInterface();
1499
+
1447
1500
  bool aFormatOk(const HighsInt num_nz, const HighsInt format);
1448
1501
  bool qFormatOk(const HighsInt num_nz, const HighsInt format);
1449
1502
  void clearZeroHessian();
@@ -1454,6 +1507,23 @@ class Highs {
1454
1507
 
1455
1508
  HighsStatus handleInfCost();
1456
1509
  void restoreInfCost(HighsStatus& return_status);
1510
+ HighsStatus optionChangeAction();
1511
+ HighsStatus computeIllConditioning(HighsIllConditioning& ill_conditioning,
1512
+ const bool constraint,
1513
+ const HighsInt method,
1514
+ const double ill_conditioning_bound);
1515
+ void formIllConditioningLp0(HighsLp& ill_conditioning_lp,
1516
+ std::vector<HighsInt>& basic_var,
1517
+ const bool constraint);
1518
+ void formIllConditioningLp1(HighsLp& ill_conditioning_lp,
1519
+ std::vector<HighsInt>& basic_var,
1520
+ const bool constraint,
1521
+ const double ill_conditioning_bound);
1522
+ bool infeasibleBoundsOk();
1457
1523
  };
1458
1524
 
1525
+ // Start of deprecated methods not in the Highs class
1526
+
1527
+ const char* highsCompilationDate();
1528
+
1459
1529
  #endif
@@ -0,0 +1,19 @@
1
+ #ifndef __READERLP_DEF_HPP__
2
+ #define __READERLP_DEF_HPP__
3
+
4
+ #include <stdexcept>
5
+ #include <string>
6
+
7
+ void inline lpassert(bool condition) {
8
+ if (!condition) {
9
+ throw std::invalid_argument("File not existent or illegal file format.");
10
+ }
11
+ }
12
+
13
+ const std::string LP_KEYWORD_INF[] = {"infinity", "inf"};
14
+ const std::string LP_KEYWORD_FREE[] = {"free"};
15
+
16
+ const unsigned int LP_KEYWORD_INF_N = 2;
17
+ const unsigned int LP_KEYWORD_FREE_N = 1;
18
+
19
+ #endif
@@ -2,7 +2,7 @@
2
2
  /* */
3
3
  /* This file is part of the HiGHS linear optimization suite */
4
4
  /* */
5
- /* Written and engineered 2008-2023 by Julian Hall, Ivet Galabova, */
5
+ /* Written and engineered 2008-2024 by Julian Hall, Ivet Galabova, */
6
6
  /* Leona Gottwald and Michael Feldmeier */
7
7
  /* */
8
8
  /* Available as open-source under the MIT License */
@@ -10,8 +10,20 @@
10
10
  /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
11
11
  #ifndef HIGHS_C_API
12
12
  #define HIGHS_C_API
13
-
14
- //#include "util/HighsInt.h"
13
+ //
14
+ // Welcome to the HiGHS C API!
15
+ //
16
+ // The simplest way to use HiGHS to solve an LP, MIP or QP from C is
17
+ // to pass the problem data to the appropriate method Highs_lpCall,
18
+ // Highs_mipCall or Highs_qpCall, and these methods return the
19
+ // appropriate solution information
20
+ //
21
+ // For sophisticated applications, where esoteric solutiuon
22
+ // information is needed, or if a sequence of modified models need to
23
+ // be solved, use the Highs_create method to generate a pointer to an
24
+ // instance of the C++ Highs class, and then use any of a large number
25
+ // of models for which this pointer is the first parameter.
26
+ //
15
27
  #include "lp_data/HighsCallbackStruct.h"
16
28
 
17
29
  const HighsInt kHighsMaximumStringLength = 512;
@@ -60,6 +72,7 @@ const HighsInt kHighsPresolveStatusReducedToEmpty = 4;
60
72
  const HighsInt kHighsPresolveStatusTimeout = 5;
61
73
  const HighsInt kHighsPresolveStatusNullError = 6;
62
74
  const HighsInt kHighsPresolveStatusOptionsError = 7;
75
+ const HighsInt kHighsPresolveStatusOutOfMemory = 8;
63
76
 
64
77
  const HighsInt kHighsModelStatusNotset = 0;
65
78
  const HighsInt kHighsModelStatusLoadError = 1;
@@ -89,9 +102,36 @@ const HighsInt kHighsBasisStatusNonbasic = 4;
89
102
  const HighsInt kHighsCallbackLogging = 0;
90
103
  const HighsInt kHighsCallbackSimplexInterrupt = 1;
91
104
  const HighsInt kHighsCallbackIpmInterrupt = 2;
92
- const HighsInt kHighsCallbackMipImprovingSolution = 3;
93
- const HighsInt kHighsCallbackMipLogging = 4;
94
- const HighsInt kHighsCallbackMipInterrupt = 5;
105
+ const HighsInt kHighsCallbackMipSolution = 3;
106
+ const HighsInt kHighsCallbackMipImprovingSolution = 4;
107
+ const HighsInt kHighsCallbackMipLogging = 5;
108
+ const HighsInt kHighsCallbackMipInterrupt = 6;
109
+ const HighsInt kHighsCallbackMipGetCutPool = 7;
110
+ const HighsInt kHighsCallbackMipDefineLazyConstraints = 8;
111
+
112
+ const char* const kHighsCallbackDataOutLogTypeName = "log_type";
113
+ const char* const kHighsCallbackDataOutRunningTimeName = "running_time";
114
+ const char* const kHighsCallbackDataOutSimplexIterationCountName =
115
+ "simplex_iteration_count";
116
+ const char* const kHighsCallbackDataOutIpmIterationCountName =
117
+ "ipm_iteration_count";
118
+ const char* const kHighsCallbackDataOutPdlpIterationCountName =
119
+ "pdlp_iteration_count";
120
+ const char* const kHighsCallbackDataOutObjectiveFunctionValueName =
121
+ "objective_function_value";
122
+ const char* const kHighsCallbackDataOutMipNodeCountName = "mip_node_count";
123
+ const char* const kHighsCallbackDataOutMipPrimalBoundName = "mip_primal_bound";
124
+ const char* const kHighsCallbackDataOutMipDualBoundName = "mip_dual_bound";
125
+ const char* const kHighsCallbackDataOutMipGapName = "mip_gap";
126
+ const char* const kHighsCallbackDataOutMipSolutionName = "mip_solution";
127
+ const char* const kHighsCallbackDataOutCutpoolNumColName = "cutpool_num_col";
128
+ const char* const kHighsCallbackDataOutCutpoolNumCutName = "cutpool_num_cut";
129
+ const char* const kHighsCallbackDataOutCutpoolNumNzName = "cutpool_num_nz";
130
+ const char* const kHighsCallbackDataOutCutpoolStartName = "cutpool_start";
131
+ const char* const kHighsCallbackDataOutCutpoolIndexName = "cutpool_index";
132
+ const char* const kHighsCallbackDataOutCutpoolValueName = "cutpool_value";
133
+ const char* const kHighsCallbackDataOutCutpoolLowerName = "cutpool_lower";
134
+ const char* const kHighsCallbackDataOutCutpoolUpperName = "cutpool_upper";
95
135
 
96
136
  #ifdef __cplusplus
97
137
  extern "C" {
@@ -261,13 +301,6 @@ HighsInt Highs_versionPatch(void);
261
301
  */
262
302
  const char* Highs_githash(void);
263
303
 
264
- /**
265
- * Return the HiGHS compilation date.
266
- *
267
- * @returns Thse HiGHS compilation date.
268
- */
269
- const char* Highs_compilationDate(void);
270
-
271
304
  /**
272
305
  * Read a model from `filename` into `highs`.
273
306
  *
@@ -288,6 +321,16 @@ HighsInt Highs_readModel(void* highs, const char* filename);
288
321
  */
289
322
  HighsInt Highs_writeModel(void* highs, const char* filename);
290
323
 
324
+ /**
325
+ * Write the presolved model in `highs` to `filename`.
326
+ *
327
+ * @param highs A pointer to the Highs instance.
328
+ * @param filename The filename to write.
329
+ *
330
+ * @returns A `kHighsStatus` constant indicating whether the call succeeded.
331
+ */
332
+ HighsInt Highs_writePresolvedModel(void* highs, const char* filename);
333
+
291
334
  /**
292
335
  * Reset the options and then call `clearModel`.
293
336
  *
@@ -321,6 +364,15 @@ HighsInt Highs_clearModel(void* highs);
321
364
  */
322
365
  HighsInt Highs_clearSolver(void* highs);
323
366
 
367
+ /**
368
+ * Presolve a model.
369
+ *
370
+ * @param highs A pointer to the Highs instance.
371
+ *
372
+ * @returns A `kHighsStatus` constant indicating whether the call succeeded.
373
+ */
374
+ HighsInt Highs_presolve(void* highs);
375
+
324
376
  /**
325
377
  * Optimize a model. The algorithm used by HiGHS depends on the options that
326
378
  * have been set.
@@ -331,6 +383,22 @@ HighsInt Highs_clearSolver(void* highs);
331
383
  */
332
384
  HighsInt Highs_run(void* highs);
333
385
 
386
+ /**
387
+ * Postsolve a model using a primal (and possibly dual) solution.
388
+ *
389
+ * @param highs A pointer to the Highs instance.
390
+ * @param col_value An array of length [num_col] with the column solution
391
+ * values.
392
+ * @param col_dual An array of length [num_col] with the column dual
393
+ * values, or a null pointer if not known.
394
+ * @param row_dual An array of length [num_row] with the row dual values,
395
+ * or a null pointer if not known.
396
+ *
397
+ * @returns A `kHighsStatus` constant indicating whether the call succeeded.
398
+ */
399
+ HighsInt Highs_postsolve(void* highs, const double* col_value,
400
+ const double* col_dual, const double* row_dual);
401
+
334
402
  /**
335
403
  * Write the solution information (including dual and basis status, if
336
404
  * available) to a file.
@@ -349,7 +417,7 @@ HighsInt Highs_writeSolution(const void* highs, const char* filename);
349
417
  * available) to a file in a human-readable format.
350
418
  *
351
419
  * The method identical to `Highs_writeSolution`, except that the
352
- * printout is in a human-readiable format.
420
+ * printout is in a human-readable format.
353
421
  *
354
422
  * @param highs A pointer to the Highs instance.
355
423
  * @param filename The name of the file to write the results to.
@@ -437,7 +505,7 @@ HighsInt Highs_passMip(void* highs, const HighsInt num_col,
437
505
  * @param q_value An array of length [q_num_nz] with values of matrix
438
506
  * entries. If the model is linear, pass NULL.
439
507
  * @param integrality An array of length [num_col] containing a `kHighsVarType`
440
- * consatnt for each column.
508
+ * constant for each column.
441
509
  *
442
510
  * @returns A `kHighsStatus` constant indicating whether the call succeeded.
443
511
  */
@@ -967,10 +1035,10 @@ HighsInt Highs_getBasisSolve(const void* highs, const double* rhs,
967
1035
  *
968
1036
  * @param highs A pointer to the Highs instance.
969
1037
  * @param rhs The right-hand side vector ``b``
970
- * @param solution_vector An array of length [num_row] in whcih to store the
1038
+ * @param solution_vector An array of length [num_row] in which to store the
971
1039
  * values of the non-zero elements.
972
1040
  * @param solution_num_nz The number of non-zeros in the solution.
973
- * @param solution_index An array of length [num_row] in whcih to store the
1041
+ * @param solution_index An array of length [num_row] in which to store the
974
1042
  * indices of the non-zero elements.
975
1043
  *
976
1044
  * @returns A `kHighsStatus` constant indicating whether the call succeeded.
@@ -1078,12 +1146,8 @@ HighsInt Highs_setSolution(void* highs, const double* col_value,
1078
1146
  *
1079
1147
  * @returns A `kHighsStatus` constant indicating whether the call succeeded.
1080
1148
  */
1081
- HighsInt Highs_setCallback(
1082
- void* highs,
1083
- void (*user_callback)(const int, const char*,
1084
- const struct HighsCallbackDataOut*,
1085
- struct HighsCallbackDataIn*, void*),
1086
- void* user_callback_data);
1149
+ HighsInt Highs_setCallback(void* highs, HighsCCallbackType user_callback,
1150
+ void* user_callback_data);
1087
1151
 
1088
1152
  /**
1089
1153
  * Start callback of given type
@@ -1325,6 +1389,15 @@ HighsInt Highs_changeColsIntegralityBySet(void* highs,
1325
1389
  HighsInt Highs_changeColsIntegralityByMask(void* highs, const HighsInt* mask,
1326
1390
  const HighsInt* integrality);
1327
1391
 
1392
+ /**
1393
+ * Clear the integrality of all columns
1394
+ *
1395
+ * @param highs A pointer to the Highs instance.
1396
+ *
1397
+ * @returns A `kHighsStatus` constant indicating whether the call succeeded.
1398
+ */
1399
+ HighsInt Highs_clearIntegrality(void* highs);
1400
+
1328
1401
  /**
1329
1402
  * Change the objective coefficient of a column.
1330
1403
  *
@@ -1844,6 +1917,15 @@ HighsInt Highs_scaleRow(void* highs, const HighsInt row, const double scaleval);
1844
1917
  */
1845
1918
  double Highs_getInfinity(const void* highs);
1846
1919
 
1920
+ /**
1921
+ * Return the size of integers used by HiGHS.
1922
+ *
1923
+ * @param highs A pointer to the Highs instance.
1924
+ *
1925
+ * @returns The size of integers used by HiGHS.
1926
+ */
1927
+ HighsInt Highs_getSizeofHighsInt(const void* highs);
1928
+
1847
1929
  /**
1848
1930
  * Return the number of columns in the model.
1849
1931
  *
@@ -1880,6 +1962,35 @@ HighsInt Highs_getNumNz(const void* highs);
1880
1962
  */
1881
1963
  HighsInt Highs_getHessianNumNz(const void* highs);
1882
1964
 
1965
+ /**
1966
+ * Return the number of columns in the presolved model.
1967
+ *
1968
+ * @param highs A pointer to the Highs instance.
1969
+ *
1970
+ * @returns The number of columns in the presolved model.
1971
+ */
1972
+ HighsInt Highs_getPresolvedNumCol(const void* highs);
1973
+
1974
+ /**
1975
+ * Return the number of rows in the presolved model.
1976
+ *
1977
+ * @param highs A pointer to the Highs instance.
1978
+ *
1979
+ * @returns The number of rows in the presolved model.
1980
+ */
1981
+ HighsInt Highs_getPresolvedNumRow(const void* highs);
1982
+
1983
+ /**
1984
+ * Return the number of nonzeros in the constraint matrix of the presolved
1985
+ * model.
1986
+ *
1987
+ * @param highs A pointer to the Highs instance.
1988
+ *
1989
+ * @returns The number of nonzeros in the constraint matrix of the presolved
1990
+ * model.
1991
+ */
1992
+ HighsInt Highs_getPresolvedNumNz(const void* highs);
1993
+
1883
1994
  /**
1884
1995
  * Get the data from a HiGHS model.
1885
1996
  *
@@ -1906,6 +2017,52 @@ HighsInt Highs_getModel(const void* highs, const HighsInt a_format,
1906
2017
  HighsInt* q_start, HighsInt* q_index, double* q_value,
1907
2018
  HighsInt* integrality);
1908
2019
 
2020
+ /**
2021
+ * Get the data from a HiGHS LP.
2022
+ *
2023
+ * The input arguments have the same meaning (in a different order) to those
2024
+ * used in `Highs_passModel`.
2025
+ *
2026
+ * Note that all arrays must be pre-allocated to the correct size before calling
2027
+ * `Highs_getModel`. Use the following query methods to check the appropriate
2028
+ * size:
2029
+ * - `Highs_getNumCol`
2030
+ * - `Highs_getNumRow`
2031
+ * - `Highs_getNumNz`
2032
+ *
2033
+ * @returns A `kHighsStatus` constant indicating whether the call succeeded.
2034
+ */
2035
+ HighsInt Highs_getLp(const void* highs, const HighsInt a_format,
2036
+ HighsInt* num_col, HighsInt* num_row, HighsInt* num_nz,
2037
+ HighsInt* sense, double* offset, double* col_cost,
2038
+ double* col_lower, double* col_upper, double* row_lower,
2039
+ double* row_upper, HighsInt* a_start, HighsInt* a_index,
2040
+ double* a_value, HighsInt* integrality);
2041
+
2042
+ /**
2043
+ * Get the data from a HiGHS presolved LP.
2044
+ *
2045
+ * The input arguments have the same meaning (in a different order) to those
2046
+ * used in `Highs_passModel`.
2047
+ *
2048
+ * Note that all arrays must be pre-allocated to the correct size before calling
2049
+ * `Highs_getModel`. Use the following query methods to check the appropriate
2050
+ * size:
2051
+ * - `Highs_getPresolvedNumCol`
2052
+ * - `Highs_getPresolvedNumRow`
2053
+ * - `Highs_getPresolvedNumNz`
2054
+ *
2055
+ * @returns A `kHighsStatus` constant indicating whether the call succeeded.
2056
+ */
2057
+ HighsInt Highs_getPresolvedLp(const void* highs, const HighsInt a_format,
2058
+ HighsInt* num_col, HighsInt* num_row,
2059
+ HighsInt* num_nz, HighsInt* sense, double* offset,
2060
+ double* col_cost, double* col_lower,
2061
+ double* col_upper, double* row_lower,
2062
+ double* row_upper, HighsInt* a_start,
2063
+ HighsInt* a_index, double* a_value,
2064
+ HighsInt* integrality);
2065
+
1909
2066
  /**
1910
2067
  * Set a primal (and possibly dual) solution as a starting point, then run
1911
2068
  * crossover to compute a basic feasible solution.
@@ -1930,7 +2087,7 @@ HighsInt Highs_crossover(void* highs, const int num_col, const int num_row,
1930
2087
 
1931
2088
  /**
1932
2089
  * Compute the ranging information for all costs and bounds. For
1933
- * nonbasic variables the ranging informaiton is relative to the
2090
+ * nonbasic variables the ranging information is relative to the
1934
2091
  * active bound. For basic variables the ranging information relates
1935
2092
  * to...
1936
2093
  *
@@ -2019,10 +2176,29 @@ HighsInt Highs_getRanging(
2019
2176
  */
2020
2177
  void Highs_resetGlobalScheduler(const HighsInt blocking);
2021
2178
 
2179
+ /**
2180
+ * Get a void* pointer to a callback data item
2181
+ *
2182
+ * @param data_out A pointer to the HighsCallbackDataOut instance.
2183
+ * @param item_name The name of the item.
2184
+ *
2185
+ * @returns A void* pointer to the callback data item, or NULL if item_name not
2186
+ * valid
2187
+ */
2188
+ const void* Highs_getCallbackDataOutItem(const HighsCallbackDataOut* data_out,
2189
+ const char* item_name);
2190
+
2022
2191
  // *********************
2023
2192
  // * Deprecated methods*
2024
2193
  // *********************
2025
2194
 
2195
+ /**
2196
+ * Return the HiGHS compilation date.
2197
+ *
2198
+ * @returns Thse HiGHS compilation date.
2199
+ */
2200
+ const char* Highs_compilationDate(void);
2201
+
2026
2202
  // These are deprecated because they don't follow the style guide. Constants
2027
2203
  // must begin with `k`.
2028
2204
  const HighsInt HighsStatuskError = -1;
@@ -2,7 +2,7 @@
2
2
  /* */
3
3
  /* This file is part of the HiGHS linear optimization suite */
4
4
  /* */
5
- /* Written and engineered 2008-2023 by Julian Hall, Ivet Galabova, */
5
+ /* Written and engineered 2008-2024 by Julian Hall, Ivet Galabova, */
6
6
  /* Leona Gottwald and Michael Feldmeier */
7
7
  /* */
8
8
  /* Available as open-source under the MIT License */
@@ -2,7 +2,7 @@
2
2
  /* */
3
3
  /* This file is part of the HiGHS linear optimization suite */
4
4
  /* */
5
- /* Written and engineered 2008-2023 by Julian Hall, Ivet Galabova, */
5
+ /* Written and engineered 2008-2024 by Julian Hall, Ivet Galabova, */
6
6
  /* Leona Gottwald and Michael Feldmeier */
7
7
  /* */
8
8
  /* Available as open-source under the MIT License */
@@ -2,7 +2,7 @@
2
2
  /* */
3
3
  /* This file is part of the HiGHS linear optimization suite */
4
4
  /* */
5
- /* Written and engineered 2008-2023 by Julian Hall, Ivet Galabova, */
5
+ /* Written and engineered 2008-2024 by Julian Hall, Ivet Galabova, */
6
6
  /* Leona Gottwald and Michael Feldmeier */
7
7
  /* */
8
8
  /* Available as open-source under the MIT License */
@@ -2,7 +2,7 @@
2
2
  /* */
3
3
  /* This file is part of the HiGHS linear optimization suite */
4
4
  /* */
5
- /* Written and engineered 2008-2023 by Julian Hall, Ivet Galabova, */
5
+ /* Written and engineered 2008-2024 by Julian Hall, Ivet Galabova, */
6
6
  /* Leona Gottwald and Michael Feldmeier */
7
7
  /* */
8
8
  /* Available as open-source under the MIT License */
@@ -2,7 +2,7 @@
2
2
  /* */
3
3
  /* This file is part of the HiGHS linear optimization suite */
4
4
  /* */
5
- /* Written and engineered 2008-2023 by Julian Hall, Ivet Galabova, */
5
+ /* Written and engineered 2008-2024 by Julian Hall, Ivet Galabova, */
6
6
  /* Leona Gottwald and Michael Feldmeier */
7
7
  /* */
8
8
  /* Available as open-source under the MIT License */