casadi 3.6.7__cp39-none-macosx_11_0_arm64.whl → 3.7.1__cp39-none-macosx_11_0_arm64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (459) 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/casadi-config-version.cmake +1 -1
  7. casadi/cmake/casadi-config.cmake +1 -1
  8. casadi/cmake/casadi-targets-release.cmake +5 -5
  9. casadi/cmake/casadi-targets.cmake +7 -7
  10. casadi/{lib/cmake/tinyxml2/tinyxml2-config-version.cmake → cmake/ghc_filesystem/ghc_filesystem-config-version.cmake} +30 -10
  11. casadi/cmake/ghc_filesystem/ghc_filesystem-config.cmake +30 -0
  12. casadi/{lib/cmake/tinyxml2/tinyxml2-static-targets.cmake → cmake/ghc_filesystem/ghc_filesystem-targets.cmake} +10 -10
  13. casadi/cmake/highs/highs-targets-release.cmake +2 -2
  14. casadi/cmake/highs/highs-targets.cmake +3 -3
  15. casadi/cmake/libzip/libzip-config-version.cmake +43 -0
  16. casadi/cmake/libzip/libzip-config.cmake +69 -0
  17. casadi/cmake/libzip/libzip-targets-release.cmake +19 -0
  18. casadi/cmake/libzip/libzip-targets.cmake +107 -0
  19. casadi/cmake/libzip/modules/FindMbedTLS.cmake +141 -0
  20. casadi/cmake/libzip/modules/FindNettle.cmake +141 -0
  21. casadi/cmake/libzip/modules/Findzstd.cmake +186 -0
  22. casadi/cmake/osqp/osqp-targets.cmake +2 -2
  23. casadi/cmake/proxsuite/proxsuiteTargets.cmake +2 -2
  24. casadi/cmake/qdldl/qdldl-targets.cmake +2 -2
  25. casadi/cmake/sleqp/sleqp-targets.cmake +2 -2
  26. casadi/cmake/trlib/trlib-config.cmake +2 -2
  27. casadi/highs +0 -0
  28. casadi/include/casadi/casadi.i +276 -47
  29. casadi/include/casadi/config.h +11 -11
  30. casadi/include/casadi/core/archiver.hpp +58 -0
  31. casadi/include/casadi/core/blazing_spline.hpp +47 -0
  32. casadi/include/casadi/core/calculus.hpp +57 -2
  33. casadi/include/casadi/core/callback.hpp +9 -0
  34. casadi/include/casadi/core/casadi_common.hpp +37 -0
  35. casadi/include/casadi/core/casadi_meta.hpp +15 -0
  36. casadi/include/casadi/core/casadi_misc.hpp +21 -0
  37. casadi/include/casadi/core/code_generator.hpp +115 -19
  38. casadi/include/casadi/core/core.hpp +5 -0
  39. casadi/include/casadi/core/dae_builder.hpp +303 -141
  40. casadi/include/casadi/core/dm.hpp +3 -0
  41. casadi/include/casadi/core/filesystem.hpp +58 -0
  42. casadi/include/casadi/core/fmu.hpp +62 -16
  43. casadi/include/casadi/core/function.hpp +24 -0
  44. casadi/include/casadi/core/generic_matrix.hpp +214 -7
  45. casadi/include/casadi/core/generic_shared.hpp +395 -0
  46. casadi/include/casadi/core/generic_shared_impl.hpp +218 -0
  47. casadi/include/casadi/core/generic_shared_internal.hpp +215 -0
  48. casadi/include/casadi/core/generic_type.hpp +3 -0
  49. casadi/include/casadi/core/global_options.hpp +10 -0
  50. casadi/include/casadi/core/integrator.hpp +41 -7
  51. casadi/include/casadi/core/matrix_decl.hpp +71 -0
  52. casadi/include/casadi/core/mx.hpp +63 -2
  53. casadi/include/casadi/core/nlp_builder.hpp +2 -1
  54. casadi/include/casadi/core/options.hpp +6 -3
  55. casadi/include/casadi/core/optistack.hpp +43 -9
  56. casadi/include/casadi/core/printable.hpp +8 -0
  57. casadi/include/casadi/core/resource.hpp +107 -0
  58. casadi/include/casadi/core/runtime/casadi_blazing_1d_boor_eval.hpp +112 -0
  59. casadi/include/casadi/core/runtime/casadi_blazing_2d_boor_eval.hpp +311 -0
  60. casadi/include/casadi/core/runtime/casadi_blazing_3d_boor_eval.hpp +645 -0
  61. casadi/include/casadi/core/runtime/casadi_blazing_de_boor.hpp +101 -0
  62. casadi/include/casadi/core/runtime/casadi_finite_diff.hpp +1 -1
  63. casadi/include/casadi/core/runtime/casadi_nlp.hpp +8 -2
  64. casadi/include/casadi/core/runtime/casadi_print_canonical.hpp +55 -0
  65. casadi/include/casadi/core/runtime/casadi_print_scalar.hpp +25 -0
  66. casadi/include/casadi/core/runtime/casadi_print_vector.hpp +32 -0
  67. casadi/include/casadi/core/runtime/casadi_printme.hpp +26 -0
  68. casadi/include/casadi/core/serializer.hpp +13 -5
  69. casadi/include/casadi/core/serializing_stream.hpp +9 -2
  70. casadi/include/casadi/core/shared_object.hpp +73 -161
  71. casadi/include/casadi/core/sparsity.hpp +13 -1
  72. casadi/include/casadi/core/sparsity_interface.hpp +19 -1
  73. casadi/include/casadi/core/sx.hpp +41 -0
  74. casadi/include/casadi/core/sx_elem.hpp +25 -0
  75. casadi/include/casadi/core/xml_node.hpp +5 -0
  76. casadi/include/casadi/doc.i +10026 -6513
  77. casadi/include/casadi/doc_merged.i +6744 -4449
  78. casadi/include/casadi/valgrind-casadi.supp +138 -0
  79. casadi/include/casadi/valgrind-python.supp +2470 -0
  80. casadi/include/fatrop/blasfeo_wrapper/LinearAlgebraBlasfeo.hpp +4 -1
  81. casadi/include/ghc/filesystem.hpp +6083 -0
  82. casadi/include/ghc/fs_fwd.hpp +38 -0
  83. casadi/include/ghc/fs_impl.hpp +35 -0
  84. casadi/include/ghc/fs_std.hpp +60 -0
  85. casadi/include/ghc/fs_std_fwd.hpp +63 -0
  86. casadi/include/ghc/fs_std_impl.hpp +46 -0
  87. casadi/include/highs/HConfig.h +6 -4
  88. casadi/include/highs/Highs.h +260 -86
  89. casadi/include/highs/filereaderlp/reader.hpp +10 -10
  90. casadi/include/highs/interfaces/highs_c_api.h +195 -22
  91. casadi/include/highs/io/Filereader.h +4 -6
  92. casadi/include/highs/io/FilereaderEms.h +0 -3
  93. casadi/include/highs/io/FilereaderLp.h +0 -3
  94. casadi/include/highs/io/FilereaderMps.h +0 -3
  95. casadi/include/highs/io/HMPSIO.h +1 -4
  96. casadi/include/highs/io/HMpsFF.h +8 -5
  97. casadi/include/highs/io/HighsIO.h +10 -5
  98. casadi/include/highs/io/LoadOptions.h +0 -3
  99. casadi/include/highs/ipm/IpxSolution.h +0 -3
  100. casadi/include/highs/ipm/IpxWrapper.h +4 -7
  101. casadi/include/highs/ipm/ipx/control.h +1 -0
  102. casadi/include/highs/ipm/ipx/ipx_parameters.h +1 -0
  103. casadi/include/highs/ipm/ipx/lp_solver.h +3 -2
  104. casadi/include/highs/ipm/ipx/model.h +7 -3
  105. casadi/include/highs/lp_data/HConst.h +21 -6
  106. casadi/include/highs/lp_data/HStruct.h +40 -4
  107. casadi/include/highs/lp_data/HighsAnalysis.h +0 -3
  108. casadi/include/highs/lp_data/HighsCallback.h +10 -3
  109. casadi/include/highs/lp_data/HighsCallbackStruct.h +3 -3
  110. casadi/include/highs/lp_data/HighsDebug.h +0 -3
  111. casadi/include/highs/lp_data/HighsIis.h +62 -0
  112. casadi/include/highs/lp_data/HighsInfo.h +50 -43
  113. casadi/include/highs/lp_data/HighsInfoDebug.h +0 -3
  114. casadi/include/highs/lp_data/HighsLp.h +2 -3
  115. casadi/include/highs/lp_data/HighsLpSolverObject.h +0 -3
  116. casadi/include/highs/lp_data/HighsLpUtils.h +38 -6
  117. casadi/include/highs/lp_data/HighsModelUtils.h +21 -18
  118. casadi/include/highs/lp_data/HighsOptions.h +134 -22
  119. casadi/include/highs/lp_data/HighsRanging.h +0 -3
  120. casadi/include/highs/lp_data/HighsSolution.h +10 -3
  121. casadi/include/highs/lp_data/HighsSolutionDebug.h +0 -3
  122. casadi/include/highs/lp_data/HighsSolve.h +0 -3
  123. casadi/include/highs/lp_data/HighsStatus.h +0 -3
  124. casadi/include/highs/mip/HighsCliqueTable.h +3 -3
  125. casadi/include/highs/mip/HighsConflictPool.h +0 -3
  126. casadi/include/highs/mip/HighsCutGeneration.h +13 -3
  127. casadi/include/highs/mip/HighsCutPool.h +0 -3
  128. casadi/include/highs/mip/HighsDebugSol.h +0 -3
  129. casadi/include/highs/mip/HighsDomain.h +16 -4
  130. casadi/include/highs/mip/HighsDomainChange.h +0 -3
  131. casadi/include/highs/mip/HighsDynamicRowMatrix.h +0 -3
  132. casadi/include/highs/mip/HighsGFkSolve.h +3 -6
  133. casadi/include/highs/mip/HighsImplications.h +29 -5
  134. casadi/include/highs/mip/HighsLpAggregator.h +0 -3
  135. casadi/include/highs/mip/HighsLpRelaxation.h +0 -3
  136. casadi/include/highs/mip/HighsMipAnalysis.h +52 -0
  137. casadi/include/highs/mip/HighsMipSolver.h +11 -4
  138. casadi/include/highs/mip/HighsMipSolverData.h +67 -6
  139. casadi/include/highs/mip/HighsModkSeparator.h +1 -4
  140. casadi/include/highs/mip/HighsNodeQueue.h +0 -3
  141. casadi/include/highs/mip/HighsObjectiveFunction.h +0 -3
  142. casadi/include/highs/mip/HighsPathSeparator.h +1 -4
  143. casadi/include/highs/mip/HighsPrimalHeuristics.h +7 -5
  144. casadi/include/highs/mip/HighsPseudocost.h +0 -3
  145. casadi/include/highs/mip/HighsRedcostFixing.h +0 -3
  146. casadi/include/highs/mip/HighsSearch.h +0 -3
  147. casadi/include/highs/mip/HighsSeparation.h +0 -3
  148. casadi/include/highs/mip/HighsSeparator.h +1 -5
  149. casadi/include/highs/mip/HighsTableauSeparator.h +1 -4
  150. casadi/include/highs/mip/HighsTransformedLp.h +0 -3
  151. casadi/include/highs/mip/MipTimer.h +471 -0
  152. casadi/include/highs/parallel/HighsBinarySemaphore.h +1 -1
  153. casadi/include/highs/parallel/HighsCacheAlign.h +1 -1
  154. casadi/include/highs/parallel/HighsCombinable.h +1 -1
  155. casadi/include/highs/parallel/HighsMutex.h +1 -1
  156. casadi/include/highs/parallel/HighsRaceTimer.h +1 -1
  157. casadi/include/highs/parallel/HighsSchedulerConstants.h +1 -1
  158. casadi/include/highs/parallel/HighsSplitDeque.h +1 -1
  159. casadi/include/highs/parallel/HighsTaskExecutor.h +68 -55
  160. casadi/include/highs/pdlp/CupdlpWrapper.h +18 -7
  161. casadi/include/highs/pdlp/cupdlp/cupdlp_cs.h +2 -3
  162. casadi/include/highs/pdlp/cupdlp/cupdlp_defs.h +16 -6
  163. casadi/include/highs/pdlp/cupdlp/cupdlp_linalg.h +10 -4
  164. casadi/include/highs/pdlp/cupdlp/cupdlp_proj.h +3 -3
  165. casadi/include/highs/pdlp/cupdlp/cupdlp_restart.h +6 -6
  166. casadi/include/highs/pdlp/cupdlp/cupdlp_scaling.h +26 -0
  167. casadi/include/highs/pdlp/cupdlp/cupdlp_solver.h +11 -11
  168. casadi/include/highs/pdlp/cupdlp/cupdlp_step.h +8 -4
  169. casadi/include/highs/pdlp/cupdlp/cupdlp_utils.c +253 -172
  170. casadi/include/highs/presolve/HPresolve.h +50 -10
  171. casadi/include/highs/presolve/HPresolveAnalysis.h +0 -3
  172. casadi/include/highs/presolve/HighsPostsolveStack.h +39 -6
  173. casadi/include/highs/presolve/HighsSymmetry.h +0 -3
  174. casadi/include/highs/presolve/ICrash.h +0 -3
  175. casadi/include/highs/presolve/ICrashUtil.h +1 -4
  176. casadi/include/highs/presolve/ICrashX.h +0 -3
  177. casadi/include/highs/presolve/PresolveComponent.h +0 -3
  178. casadi/include/highs/qpsolver/a_asm.hpp +20 -17
  179. casadi/include/highs/qpsolver/a_quass.hpp +5 -9
  180. casadi/include/highs/qpsolver/basis.hpp +12 -10
  181. casadi/include/highs/qpsolver/crashsolution.hpp +4 -3
  182. casadi/include/highs/qpsolver/dantzigpricing.hpp +3 -2
  183. casadi/include/highs/qpsolver/devexpricing.hpp +3 -1
  184. casadi/include/highs/qpsolver/factor.hpp +6 -5
  185. casadi/include/highs/qpsolver/feasibility_bounded.hpp +31 -29
  186. casadi/include/highs/qpsolver/feasibility_highs.hpp +94 -70
  187. casadi/include/highs/qpsolver/gradient.hpp +1 -1
  188. casadi/include/highs/qpsolver/instance.hpp +1 -1
  189. casadi/include/highs/qpsolver/pricing.hpp +2 -2
  190. casadi/include/highs/qpsolver/qpconst.hpp +2 -2
  191. casadi/include/highs/qpsolver/quass.hpp +2 -2
  192. casadi/include/highs/qpsolver/runtime.hpp +2 -2
  193. casadi/include/highs/qpsolver/settings.hpp +20 -8
  194. casadi/include/highs/qpsolver/steepestedgepricing.hpp +38 -39
  195. casadi/include/highs/simplex/HApp.h +88 -34
  196. casadi/include/highs/simplex/HEkk.h +24 -11
  197. casadi/include/highs/simplex/HEkkDual.h +2 -4
  198. casadi/include/highs/simplex/HEkkDualRHS.h +0 -3
  199. casadi/include/highs/simplex/HEkkDualRow.h +0 -3
  200. casadi/include/highs/simplex/HEkkPrimal.h +1 -5
  201. casadi/include/highs/simplex/HSimplex.h +0 -3
  202. casadi/include/highs/simplex/HSimplexDebug.h +0 -3
  203. casadi/include/highs/simplex/HSimplexNla.h +0 -26
  204. casadi/include/highs/simplex/HSimplexReport.h +0 -3
  205. casadi/include/highs/simplex/HighsSimplexAnalysis.h +5 -8
  206. casadi/include/highs/simplex/SimplexConst.h +10 -11
  207. casadi/include/highs/simplex/SimplexStruct.h +9 -12
  208. casadi/include/highs/simplex/SimplexTimer.h +83 -101
  209. casadi/include/highs/test/DevKkt.h +0 -3
  210. casadi/include/highs/test/KktCh2.h +0 -3
  211. casadi/include/highs/util/FactorTimer.h +39 -64
  212. casadi/include/highs/util/HFactor.h +4 -4
  213. casadi/include/highs/util/HFactorConst.h +0 -3
  214. casadi/include/highs/util/HFactorDebug.h +0 -3
  215. casadi/include/highs/util/HSet.h +0 -3
  216. casadi/include/highs/util/HVector.h +0 -3
  217. casadi/include/highs/util/HVectorBase.h +1 -4
  218. casadi/include/highs/util/HighsCDouble.h +12 -3
  219. casadi/include/highs/util/HighsComponent.h +0 -3
  220. casadi/include/highs/util/HighsDataStack.h +0 -3
  221. casadi/include/highs/util/HighsDisjointSets.h +0 -3
  222. casadi/include/highs/util/HighsHash.h +9 -12
  223. casadi/include/highs/util/HighsHashTree.h +15 -11
  224. casadi/include/highs/util/HighsInt.h +0 -3
  225. casadi/include/highs/util/HighsIntegers.h +0 -3
  226. casadi/include/highs/util/HighsLinearSumBounds.h +0 -3
  227. casadi/include/highs/util/HighsMatrixPic.h +0 -3
  228. casadi/include/highs/util/HighsMatrixSlice.h +3 -6
  229. casadi/include/highs/util/HighsMatrixUtils.h +0 -3
  230. casadi/include/highs/util/HighsMemoryAllocation.h +11 -3
  231. casadi/include/highs/util/HighsRandom.h +3 -6
  232. casadi/include/highs/util/HighsRbTree.h +0 -3
  233. casadi/include/highs/util/HighsSort.h +0 -3
  234. casadi/include/highs/util/HighsSparseMatrix.h +6 -3
  235. casadi/include/highs/util/HighsSparseVectorSum.h +0 -3
  236. casadi/include/highs/util/HighsSplay.h +0 -3
  237. casadi/include/highs/util/HighsTimer.h +94 -56
  238. casadi/include/highs/util/HighsUtils.h +10 -3
  239. casadi/include/highs/util/stringutil.h +14 -12
  240. casadi/include/licenses/LICENSE.bzip2.txt +42 -0
  241. casadi/include/licenses/ghc-external/LICENSE +19 -0
  242. casadi/include/licenses/libz-external/LICENSE +22 -0
  243. casadi/include/licenses/libz-external/contrib/dotzlib/LICENSE_1_0.txt +23 -0
  244. casadi/include/licenses/libzip-external/LICENSE +31 -0
  245. casadi/include/zconf.h +545 -0
  246. casadi/include/zip.h +528 -0
  247. casadi/include/zipconf.h +48 -0
  248. casadi/include/zlib.h +1938 -0
  249. casadi/libCbc.3.10.11.dylib +0 -0
  250. casadi/libCbc.3.dylib +0 -0
  251. casadi/libCbc.dylib +0 -0
  252. casadi/libCbc.la +1 -1
  253. casadi/libCbcSolver.3.10.11.dylib +0 -0
  254. casadi/libCbcSolver.3.dylib +0 -0
  255. casadi/libCbcSolver.dylib +0 -0
  256. casadi/libCbcSolver.la +1 -1
  257. casadi/libCgl.1.10.8.dylib +0 -0
  258. casadi/libCgl.1.dylib +0 -0
  259. casadi/libCgl.dylib +0 -0
  260. casadi/libCgl.la +1 -1
  261. casadi/libClp.1.14.9.dylib +0 -0
  262. casadi/libClp.1.dylib +0 -0
  263. casadi/libClp.dylib +0 -0
  264. casadi/libClp.la +1 -1
  265. casadi/libClpSolver.1.14.9.dylib +0 -0
  266. casadi/libClpSolver.1.dylib +0 -0
  267. casadi/libClpSolver.dylib +0 -0
  268. casadi/libClpSolver.la +1 -1
  269. casadi/libCoinUtils.3.11.10.dylib +0 -0
  270. casadi/libCoinUtils.3.dylib +0 -0
  271. casadi/libCoinUtils.dylib +0 -0
  272. casadi/libOsi.1.13.9.dylib +0 -0
  273. casadi/libOsi.1.dylib +0 -0
  274. casadi/libOsi.dylib +0 -0
  275. casadi/libOsiCbc.3.10.11.dylib +0 -0
  276. casadi/libOsiCbc.3.dylib +0 -0
  277. casadi/libOsiCbc.dylib +0 -0
  278. casadi/libOsiCbc.la +1 -1
  279. casadi/libOsiClp.1.14.9.dylib +0 -0
  280. casadi/libOsiClp.1.dylib +0 -0
  281. casadi/libOsiClp.dylib +0 -0
  282. casadi/libOsiClp.la +1 -1
  283. casadi/libOsiCommonTests.1.13.9.dylib +0 -0
  284. casadi/libOsiCommonTests.1.dylib +0 -0
  285. casadi/libOsiCommonTests.dylib +0 -0
  286. casadi/libblasfeo.dylib +0 -0
  287. casadi/libbonmin.4.8.9.dylib +0 -0
  288. casadi/libbonmin.4.dylib +0 -0
  289. casadi/libbonmin.dylib +0 -0
  290. casadi/libbonmin.la +1 -1
  291. casadi/libbz2.1.0.8.dylib +0 -0
  292. casadi/libc++.1.0.dylib +0 -0
  293. casadi/libcasadi.3.7.dylib +0 -0
  294. casadi/libcasadi.dylib +0 -0
  295. casadi/libcasadi_archiver_libzip.3.7.dylib +0 -0
  296. casadi/libcasadi_archiver_libzip.dylib +0 -0
  297. casadi/libcasadi_conic_cbc.3.7.dylib +0 -0
  298. casadi/libcasadi_conic_cbc.dylib +0 -0
  299. casadi/libcasadi_conic_clp.3.7.dylib +0 -0
  300. casadi/libcasadi_conic_clp.dylib +0 -0
  301. casadi/libcasadi_conic_cplex.3.7.dylib +0 -0
  302. casadi/libcasadi_conic_cplex.dylib +0 -0
  303. casadi/libcasadi_conic_daqp.3.7.dylib +0 -0
  304. casadi/libcasadi_conic_daqp.dylib +0 -0
  305. casadi/libcasadi_conic_fatrop.3.7.dylib +0 -0
  306. casadi/libcasadi_conic_fatrop.dylib +0 -0
  307. casadi/libcasadi_conic_gurobi.3.7.dylib +0 -0
  308. casadi/libcasadi_conic_gurobi.dylib +0 -0
  309. casadi/libcasadi_conic_highs.3.7.dylib +0 -0
  310. casadi/libcasadi_conic_highs.dylib +0 -0
  311. casadi/libcasadi_conic_ipqp.3.7.dylib +0 -0
  312. casadi/libcasadi_conic_ipqp.dylib +0 -0
  313. casadi/libcasadi_conic_nlpsol.3.7.dylib +0 -0
  314. casadi/libcasadi_conic_nlpsol.dylib +0 -0
  315. casadi/libcasadi_conic_osqp.3.7.dylib +0 -0
  316. casadi/libcasadi_conic_osqp.dylib +0 -0
  317. casadi/libcasadi_conic_proxqp.3.7.dylib +0 -0
  318. casadi/libcasadi_conic_proxqp.dylib +0 -0
  319. casadi/libcasadi_conic_qpoases.3.7.dylib +0 -0
  320. casadi/libcasadi_conic_qpoases.dylib +0 -0
  321. casadi/libcasadi_conic_qrqp.3.7.dylib +0 -0
  322. casadi/libcasadi_conic_qrqp.dylib +0 -0
  323. casadi/libcasadi_conic_superscs.3.7.dylib +0 -0
  324. casadi/libcasadi_conic_superscs.dylib +0 -0
  325. casadi/libcasadi_filesystem_ghc.3.7.dylib +0 -0
  326. casadi/libcasadi_filesystem_ghc.dylib +0 -0
  327. casadi/libcasadi_importer_shell.3.7.dylib +0 -0
  328. casadi/libcasadi_importer_shell.dylib +0 -0
  329. casadi/libcasadi_integrator_collocation.3.7.dylib +0 -0
  330. casadi/libcasadi_integrator_collocation.dylib +0 -0
  331. casadi/libcasadi_integrator_cvodes.3.7.dylib +0 -0
  332. casadi/libcasadi_integrator_cvodes.dylib +0 -0
  333. casadi/libcasadi_integrator_idas.3.7.dylib +0 -0
  334. casadi/libcasadi_integrator_idas.dylib +0 -0
  335. casadi/libcasadi_integrator_rk.3.7.dylib +0 -0
  336. casadi/libcasadi_integrator_rk.dylib +0 -0
  337. casadi/libcasadi_interpolant_bspline.3.7.dylib +0 -0
  338. casadi/libcasadi_interpolant_bspline.dylib +0 -0
  339. casadi/libcasadi_interpolant_linear.3.7.dylib +0 -0
  340. casadi/libcasadi_interpolant_linear.dylib +0 -0
  341. casadi/libcasadi_linsol_csparse.3.7.dylib +0 -0
  342. casadi/libcasadi_linsol_csparse.dylib +0 -0
  343. casadi/libcasadi_linsol_csparsecholesky.3.7.dylib +0 -0
  344. casadi/libcasadi_linsol_csparsecholesky.dylib +0 -0
  345. casadi/libcasadi_linsol_lapacklu.3.7.dylib +0 -0
  346. casadi/libcasadi_linsol_lapacklu.dylib +0 -0
  347. casadi/libcasadi_linsol_lapackqr.3.7.dylib +0 -0
  348. casadi/libcasadi_linsol_lapackqr.dylib +0 -0
  349. casadi/libcasadi_linsol_ldl.3.7.dylib +0 -0
  350. casadi/libcasadi_linsol_ldl.dylib +0 -0
  351. casadi/libcasadi_linsol_lsqr.3.7.dylib +0 -0
  352. casadi/libcasadi_linsol_lsqr.dylib +0 -0
  353. casadi/libcasadi_linsol_ma27.3.7.dylib +0 -0
  354. casadi/libcasadi_linsol_ma27.dylib +0 -0
  355. casadi/libcasadi_linsol_mumps.3.7.dylib +0 -0
  356. casadi/libcasadi_linsol_mumps.dylib +0 -0
  357. casadi/libcasadi_linsol_qr.3.7.dylib +0 -0
  358. casadi/libcasadi_linsol_qr.dylib +0 -0
  359. casadi/libcasadi_linsol_symbolicqr.3.7.dylib +0 -0
  360. casadi/libcasadi_linsol_symbolicqr.dylib +0 -0
  361. casadi/libcasadi_linsol_tridiag.3.7.dylib +0 -0
  362. casadi/libcasadi_linsol_tridiag.dylib +0 -0
  363. casadi/libcasadi_nlpsol_ampl.3.7.dylib +0 -0
  364. casadi/libcasadi_nlpsol_ampl.dylib +0 -0
  365. casadi/libcasadi_nlpsol_blocksqp.3.7.dylib +0 -0
  366. casadi/libcasadi_nlpsol_blocksqp.dylib +0 -0
  367. casadi/libcasadi_nlpsol_bonmin.3.7.dylib +0 -0
  368. casadi/libcasadi_nlpsol_bonmin.dylib +0 -0
  369. casadi/libcasadi_nlpsol_fatrop.3.7.dylib +0 -0
  370. casadi/libcasadi_nlpsol_fatrop.dylib +0 -0
  371. casadi/libcasadi_nlpsol_feasiblesqpmethod.3.7.dylib +0 -0
  372. casadi/libcasadi_nlpsol_feasiblesqpmethod.dylib +0 -0
  373. casadi/libcasadi_nlpsol_ipopt.3.7.dylib +0 -0
  374. casadi/libcasadi_nlpsol_ipopt.dylib +0 -0
  375. casadi/libcasadi_nlpsol_knitro.3.7.dylib +0 -0
  376. casadi/libcasadi_nlpsol_knitro.dylib +0 -0
  377. casadi/libcasadi_nlpsol_madnlp.3.7.dylib +0 -0
  378. casadi/libcasadi_nlpsol_madnlp.dylib +0 -0
  379. casadi/libcasadi_nlpsol_qrsqp.3.7.dylib +0 -0
  380. casadi/libcasadi_nlpsol_qrsqp.dylib +0 -0
  381. casadi/libcasadi_nlpsol_scpgen.3.7.dylib +0 -0
  382. casadi/libcasadi_nlpsol_scpgen.dylib +0 -0
  383. casadi/libcasadi_nlpsol_sleqp.3.7.dylib +0 -0
  384. casadi/libcasadi_nlpsol_sleqp.dylib +0 -0
  385. casadi/libcasadi_nlpsol_snopt.3.7.dylib +0 -0
  386. casadi/libcasadi_nlpsol_snopt.dylib +0 -0
  387. casadi/libcasadi_nlpsol_sqpmethod.3.7.dylib +0 -0
  388. casadi/libcasadi_nlpsol_sqpmethod.dylib +0 -0
  389. casadi/libcasadi_rootfinder_fast_newton.3.7.dylib +0 -0
  390. casadi/libcasadi_rootfinder_fast_newton.dylib +0 -0
  391. casadi/libcasadi_rootfinder_kinsol.3.7.dylib +0 -0
  392. casadi/libcasadi_rootfinder_kinsol.dylib +0 -0
  393. casadi/libcasadi_rootfinder_newton.3.7.dylib +0 -0
  394. casadi/libcasadi_rootfinder_newton.dylib +0 -0
  395. casadi/libcasadi_rootfinder_nlpsol.3.7.dylib +0 -0
  396. casadi/libcasadi_rootfinder_nlpsol.dylib +0 -0
  397. casadi/libcasadi_sundials_common.3.7.dylib +0 -0
  398. casadi/libcasadi_sundials_common.dylib +0 -0
  399. casadi/libcasadi_xmlfile_tinyxml.3.7.dylib +0 -0
  400. casadi/libcasadi_xmlfile_tinyxml.dylib +0 -0
  401. casadi/libcoinmetis.2.dylib +0 -0
  402. casadi/libcoinmetis.dylib +0 -0
  403. casadi/libcoinmumps.3.dylib +0 -0
  404. casadi/libcoinmumps.dylib +0 -0
  405. casadi/libcoinmumps.la +1 -1
  406. casadi/libcplex_adaptor.dylib +0 -0
  407. casadi/libdaqp.dylib +0 -0
  408. casadi/libdaqpstat.a +0 -0
  409. casadi/libfatrop.dylib +0 -0
  410. casadi/libgcc_s.1.1.dylib +0 -0
  411. casadi/libgfortran.5.dylib +0 -0
  412. casadi/libgurobi_adaptor.dylib +0 -0
  413. casadi/libhighs.1.10.dylib +0 -0
  414. casadi/libhighs.1.dylib +0 -0
  415. casadi/libhighs.dylib +0 -0
  416. casadi/libindirect.a +0 -0
  417. casadi/libipopt.3.dylib +0 -0
  418. casadi/libipopt.dylib +0 -0
  419. casadi/libipopt.la +1 -1
  420. casadi/liblinsys.a +0 -0
  421. casadi/libmatlab_ipc.dylib +0 -0
  422. casadi/libosqp.a +0 -0
  423. casadi/libosqp.dylib +0 -0
  424. casadi/libqdldl.a +0 -0
  425. casadi/libqdldl.dylib +0 -0
  426. casadi/libquadmath.0.dylib +0 -0
  427. casadi/libsipopt.3.dylib +0 -0
  428. casadi/libsipopt.dylib +0 -0
  429. casadi/libsipopt.la +1 -1
  430. casadi/libsleqp.1.0.1.dylib +0 -0
  431. casadi/libsleqp.dylib +0 -0
  432. casadi/libsuperscs.a +0 -0
  433. casadi/libtrlib.0.4.dylib +0 -0
  434. casadi/libtrlib.dylib +0 -0
  435. casadi/libz.1.2.13.dylib +0 -0
  436. casadi/libz.1.3.1.dylib +0 -0
  437. casadi/libz.1.dylib +0 -0
  438. casadi/libz.a +0 -0
  439. casadi/libz.dylib +0 -0
  440. casadi/libzip.a +0 -0
  441. casadi/pkgconfig/casadi.pc +1 -1
  442. casadi/pkgconfig/coinmumps.pc +1 -1
  443. casadi/pkgconfig/highs.pc +1 -1
  444. casadi/pkgconfig/libzip.pc +14 -0
  445. casadi/tools/__init__.py +3 -1
  446. casadi/tools/graph/graph.py +1 -1
  447. casadi/tools/structure3.py +7 -7
  448. {casadi-3.6.7.dist-info → casadi-3.7.1.dist-info}/METADATA +1 -1
  449. {casadi-3.6.7.dist-info → casadi-3.7.1.dist-info}/RECORD +450 -405
  450. casadi/include/highs/lp_data/HighsRuntimeOptions.h +0 -276
  451. casadi/include/highs/pdlp/cupdlp/cupdlp_scaling_cuda.h +0 -28
  452. casadi/include/tinyxml2.h +0 -2380
  453. casadi/lib/cmake/tinyxml2/tinyxml2-config.cmake +0 -57
  454. casadi/lib/cmake/tinyxml2/tinyxml2-static-targets-release.cmake +0 -19
  455. casadi/lib/libtinyxml2.a +0 -0
  456. casadi/lib/pkgconfig/tinyxml2.pc +0 -10
  457. casadi/libhighs.1.7.dylib +0 -0
  458. casadi/tools/structure.py +0 -1446
  459. {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
  /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
@@ -17,6 +14,7 @@
17
14
  #include <sstream>
18
15
 
19
16
  #include "lp_data/HighsCallback.h"
17
+ #include "lp_data/HighsIis.h"
20
18
  #include "lp_data/HighsLpUtils.h"
21
19
  #include "lp_data/HighsRanging.h"
22
20
  #include "lp_data/HighsSolutionDebug.h"
@@ -149,6 +147,24 @@ class Highs {
149
147
  HighsStatus passHessian(const HighsInt dim, const HighsInt num_nz,
150
148
  const HighsInt format, const HighsInt* start,
151
149
  const HighsInt* index, const double* value);
150
+ /**
151
+ * @brief Pass multiple linear objectives for the incumbent model
152
+ */
153
+ HighsStatus passLinearObjectives(
154
+ const HighsInt num_linear_objective,
155
+ const HighsLinearObjective* linear_objective);
156
+
157
+ /**
158
+ * @brief Add a linear objective for the incumbent model
159
+ */
160
+ HighsStatus addLinearObjective(const HighsLinearObjective& linear_objective,
161
+ const HighsInt iObj = -1);
162
+
163
+ /**
164
+ * @brief Clear the multiple linear objective data
165
+ */
166
+ HighsStatus clearLinearObjectives();
167
+
152
168
  /**
153
169
  * @brief Pass a column name to the incumbent model
154
170
  */
@@ -159,6 +175,11 @@ class Highs {
159
175
  */
160
176
  HighsStatus passRowName(const HighsInt row, const std::string& name);
161
177
 
178
+ /**
179
+ * @brief Pass a model name to the incumbent model
180
+ */
181
+ HighsStatus passModelName(const std::string& name);
182
+
162
183
  /**
163
184
  * @brief Read in a model
164
185
  */
@@ -170,12 +191,14 @@ class Highs {
170
191
  HighsStatus readBasis(const std::string& filename);
171
192
 
172
193
  /**
173
- * @brief Presolve the incumbent model
194
+ * @brief Presolve the incumbent model, allowing the presolved model
195
+ * to be extracted. Subsequent solution of the incumbent model will
196
+ * only use presolve if there is no valid basis
174
197
  */
175
198
  HighsStatus presolve();
176
199
 
177
200
  /**
178
- * @brief Solve the incumbent model according to the specified options
201
+ * @brief Run the solver, accounting for any multiple objective
179
202
  */
180
203
  HighsStatus run();
181
204
 
@@ -289,11 +312,11 @@ class Highs {
289
312
 
290
313
  /**
291
314
  * @brief Write (deviations from default values of) the options to a
292
- * file, with the extension ".html" producing HTML, otherwise using
293
- * the standard format used to read options from a file.
315
+ * file, using the standard format used to read options from a file.
316
+ * Possible to write only deviations from default values.
294
317
  */
295
318
  HighsStatus writeOptions(const std::string& filename, //!< The filename
296
- const bool report_only_deviations = false) const;
319
+ const bool report_only_deviations = false);
297
320
 
298
321
  /**
299
322
  * @brief Returns the number of user-settable options
@@ -376,24 +399,35 @@ class Highs {
376
399
  /**
377
400
  * @brief Get the value of infinity used by HiGHS
378
401
  */
379
- double getInfinity() { return kHighsInf; }
402
+ double getInfinity() const { return kHighsInf; }
380
403
 
381
404
  /**
382
405
  * @brief Get the size of HighsInt
383
406
  */
384
- HighsInt getSizeofHighsInt() {
407
+ HighsInt getSizeofHighsInt() const {
385
408
  return sizeof(options_.num_user_settable_options_);
386
409
  }
387
410
 
388
411
  /**
389
412
  * @brief Get the run time of HiGHS
390
413
  */
391
- double getRunTime() { return timer_.readRunHighsClock(); }
414
+ double getRunTime() const { return timer_.read(); }
392
415
 
393
416
  /**
394
417
  * Methods for model output
395
418
  */
396
419
 
420
+ /**
421
+ * @brief Identify the standard form of the HighsLp instance in
422
+ * HiGHS
423
+ */
424
+ HighsStatus getStandardFormLp(HighsInt& num_col, HighsInt& num_row,
425
+ HighsInt& num_nz, double& offset,
426
+ double* cost = nullptr, double* rhs = nullptr,
427
+ HighsInt* start = nullptr,
428
+ HighsInt* index = nullptr,
429
+ double* value = nullptr);
430
+
397
431
  /**
398
432
  * @brief Return a const reference to the presolved HighsLp instance in HiGHS
399
433
  */
@@ -476,20 +510,31 @@ class Highs {
476
510
  }
477
511
 
478
512
  /**
479
- * @brief Indicate whether a dual unbounded ray exists, and gets
480
- * it if it does and dual_ray is not nullptr
513
+ * @brief Indicate whether a dual unbounded ray exists, and (at the
514
+ * expense of solving an LP) gets it if it does not and
515
+ * dual_ray_value is not nullptr
481
516
  */
482
517
  HighsStatus getDualRay(bool& has_dual_ray, double* dual_ray_value = nullptr);
483
518
 
484
519
  /**
485
- * @brief Indicate whether a dual unbounded ray exists, and gets
486
- * it if it does
520
+ * @brief Indicate whether a dual unbounded ray exists, and gets it
521
+ * if it does
487
522
  */
488
523
  HighsStatus getDualRaySparse(bool& has_dual_ray, HVector& row_ep_buffer);
489
524
 
490
525
  /**
491
- * @brief Indicate whether a primal unbounded ray exists, and gets
492
- * it if it does and primal_ray is not nullptr
526
+ * @brief Indicate whether a dual unboundedness direction exists,
527
+ * and (at the expense of solving an LP) gets it if
528
+ * dual_unboundedness_direction is not nullptr
529
+ */
530
+ HighsStatus getDualUnboundednessDirection(
531
+ bool& has_dual_unboundedness_direction,
532
+ double* dual_unboundedness_direction_value = nullptr);
533
+
534
+ /**
535
+ * @brief Indicate whether a primal unbounded ray exists, and (at
536
+ * the expense of solving an LP) gets it if primal_ray is not
537
+ * nullptr
493
538
  */
494
539
  HighsStatus getPrimalRay(bool& has_primal_ray,
495
540
  double* primal_ray_value = nullptr);
@@ -499,6 +544,16 @@ class Highs {
499
544
  */
500
545
  HighsStatus getRanging(HighsRanging& ranging);
501
546
 
547
+ /**
548
+ * @brief Solve the feasibility relaxation problem
549
+ */
550
+ HighsStatus feasibilityRelaxation(const double global_lower_penalty,
551
+ const double global_upper_penalty,
552
+ const double global_rhs_penalty,
553
+ const double* local_lower_penalty = nullptr,
554
+ const double* local_upper_penalty = nullptr,
555
+ const double* local_rhs_penalty = nullptr);
556
+
502
557
  /**
503
558
  * @brief Get the ill-conditioning information for the current basis
504
559
  */
@@ -508,10 +563,21 @@ class Highs {
508
563
  const double ill_conditioning_bound = 1e-4);
509
564
 
510
565
  /**
511
- * @brief Get the current model objective value
566
+ * @brief Get (any) irreducible infeasible subsystem (IIS)
567
+ * information for the incumbent model
568
+ */
569
+ HighsStatus getIis(HighsIis& iis);
570
+
571
+ /**
572
+ * @brief Get the current model objective function value
512
573
  */
513
574
  double getObjectiveValue() const { return info_.objective_function_value; }
514
575
 
576
+ /**
577
+ * @brief Try to get the current dual objective function value
578
+ */
579
+ HighsStatus getDualObjectiveValue(double& dual_objective_value) const;
580
+
515
581
  /**
516
582
  * Methods for operations with the invertible representation of the
517
583
  * current basis matrix
@@ -586,6 +652,14 @@ class Highs {
586
652
  HighsInt* col_num_nz = nullptr,
587
653
  HighsInt* col_indices = nullptr);
588
654
 
655
+ /**
656
+ * @brief Get the condition number of the current basis matrix,
657
+ * possibly computing it exactly and reporting the error in the
658
+ * approximate condition number
659
+ */
660
+ HighsStatus getKappa(double& kappa, const bool exact = false,
661
+ const bool report = false) const;
662
+
589
663
  /**
590
664
  * @brief Get the number of columns in the incumbent model
591
665
  */
@@ -636,7 +710,7 @@ class Highs {
636
710
  HighsInt*
637
711
  index, //!< Array of size num_nz with row indices for the columns
638
712
  double* value //!< Array of size num_nz with row values for the columns
639
- );
713
+ ) const;
640
714
 
641
715
  /**
642
716
  * @brief Get multiple columns from the model given by a set
@@ -655,7 +729,7 @@ class Highs {
655
729
  HighsInt*
656
730
  index, //!< Array of size num_nz with row indices for the columns
657
731
  double* value //!< Array of size num_nz with row values for the columns
658
- );
732
+ ) const;
659
733
 
660
734
  /**
661
735
  * @brief Get multiple columns from the model given by a mask
@@ -672,7 +746,7 @@ class Highs {
672
746
  HighsInt*
673
747
  index, //!< Array of size num_nz with row indices for the columns
674
748
  double* value //!< Array of size num_nz with row values for the columns
675
- );
749
+ ) const;
676
750
 
677
751
  /**
678
752
  * @brief Get a column name from the incumbent model
@@ -708,7 +782,7 @@ class Highs {
708
782
  HighsInt*
709
783
  index, //!< Array of size num_nz with column indices for the rows
710
784
  double* value //!< Array of size num_nz with column values for the rows
711
- );
785
+ ) const;
712
786
 
713
787
  /**
714
788
  * @brief Get multiple rows from the model given by a set
@@ -726,7 +800,7 @@ class Highs {
726
800
  HighsInt*
727
801
  index, //!< Array of size num_nz with column indices for the rows
728
802
  double* value //!< Array of size num_nz with column values for the rows
729
- );
803
+ ) const;
730
804
 
731
805
  /**
732
806
  * @brief Get multiple rows from the model given by a mask
@@ -742,7 +816,7 @@ class Highs {
742
816
  HighsInt*
743
817
  index, //!< Array of size num_nz with column indices for the rows
744
818
  double* value //!< Array of size num_nz with column values for the rows
745
- );
819
+ ) const;
746
820
 
747
821
  /**
748
822
  * @brief Get a row name from the incumbent model
@@ -757,7 +831,8 @@ class Highs {
757
831
  /**
758
832
  * @brief Get a matrix coefficient
759
833
  */
760
- HighsStatus getCoeff(const HighsInt row, const HighsInt col, double& value);
834
+ HighsStatus getCoeff(const HighsInt row, const HighsInt col,
835
+ double& value) const;
761
836
 
762
837
  /**
763
838
  * @brief Write out the incumbent model to a file
@@ -778,7 +853,7 @@ class Highs {
778
853
  /**
779
854
  * @brief Write out the internal HighsBasis instance to a file
780
855
  */
781
- HighsStatus writeBasis(const std::string& filename = "");
856
+ HighsStatus writeBasis(const std::string& filename = "") const;
782
857
 
783
858
  /**
784
859
  * Methods for incumbent model modification
@@ -974,6 +1049,16 @@ class Highs {
974
1049
  const HighsInt* starts, const HighsInt* indices,
975
1050
  const double* values);
976
1051
 
1052
+ HighsStatus ensureColwise() {
1053
+ this->model_.lp_.ensureColwise();
1054
+ return HighsStatus::kOk;
1055
+ }
1056
+
1057
+ HighsStatus ensureRowwise() {
1058
+ this->model_.lp_.ensureRowwise();
1059
+ return HighsStatus::kOk;
1060
+ }
1061
+
977
1062
  /**
978
1063
  * @brief Delete multiple columns from the incumbent model given by an
979
1064
  * interval [from_col, to_col]
@@ -1063,6 +1148,12 @@ class Highs {
1063
1148
  */
1064
1149
  HighsStatus setSolution(const HighsSolution& solution);
1065
1150
 
1151
+ /**
1152
+ * @brief Pass a sparse primal solution
1153
+ */
1154
+ HighsStatus setSolution(const HighsInt num_entries, const HighsInt* index,
1155
+ const double* value);
1156
+
1066
1157
  /**
1067
1158
  * @brief Set the callback method to use for HiGHS
1068
1159
  */
@@ -1134,38 +1225,12 @@ class Highs {
1134
1225
  static void resetGlobalScheduler(bool blocking = false);
1135
1226
 
1136
1227
  // Start of advanced methods for HiGHS MIP solver
1137
- /**
1138
- * @brief Get the hot start basis data from the most recent simplex
1139
- * solve. Advanced method: for HiGHS MIP solver
1140
- */
1141
- const HotStart& getHotStart() const { return ekk_instance_.hot_start_; }
1142
-
1143
- /**
1144
- * @brief Set up for simplex using the supplied hot start
1145
- * data. Advanced method: for HiGHS MIP solver
1146
- */
1147
- HighsStatus setHotStart(const HotStart& hot_start);
1148
-
1149
- /**
1150
- * @brief Freeze the current internal HighsBasis instance and
1151
- * standard NLA, returning a value to be used to recover this basis
1152
- * and standard NLA at minimal cost. Advanced method: for HiGHS MIP
1153
- * solver
1154
- */
1155
- HighsStatus freezeBasis(HighsInt& frozen_basis_id);
1156
1228
 
1157
- /**
1158
- * @brief Unfreeze a frozen HighsBasis instance and standard NLA (if
1159
- * possible). Advanced method: for HiGHS MIP solver
1160
- */
1161
- HighsStatus unfreezeBasis(const HighsInt frozen_basis_id);
1162
-
1163
- /**
1164
- * @brief Check that all frozen basis data has been
1165
- * cleared. Advanced method: for HiGHS MIP solver
1166
- */
1167
- HighsStatus frozenBasisAllDataClear() {
1168
- return ekk_instance_.frozenBasisAllDataClear();
1229
+ const HighsSimplexStats& getSimplexStats() const {
1230
+ return ekk_instance_.getSimplexStats();
1231
+ }
1232
+ void reportSimplexStats(FILE* file) const {
1233
+ ekk_instance_.reportSimplexStats(file);
1169
1234
  }
1170
1235
 
1171
1236
  /**
@@ -1210,6 +1275,27 @@ class Highs {
1210
1275
  HighsStatus getBasisInverseRowSparse(const HighsInt row,
1211
1276
  HVector& row_ep_buffer);
1212
1277
 
1278
+ /**
1279
+ * @Brief Get the primal simplex phase 1 dual values. Advanced
1280
+ * method: for HiGHS IIS calculation
1281
+ */
1282
+ const std::vector<double>& getPrimalPhase1Dual() const {
1283
+ return ekk_instance_.primal_phase1_dual_;
1284
+ }
1285
+
1286
+ /**
1287
+ * @brief Development methods
1288
+ */
1289
+ HighsInt defineClock(const char* name) {
1290
+ return this->timer_.clock_def(name);
1291
+ }
1292
+ void writeAllClocks() { this->timer_.writeAllClocks(); }
1293
+ HighsStatus clearModelNames() {
1294
+ this->model_.lp_.col_names_.clear();
1295
+ this->model_.lp_.row_names_.clear();
1296
+ return HighsStatus::kOk;
1297
+ }
1298
+
1213
1299
  // Start of deprecated methods
1214
1300
 
1215
1301
  std::string compilationDate() const { return "deprecated"; }
@@ -1278,9 +1364,8 @@ class Highs {
1278
1364
 
1279
1365
  HighsStatus resetHighsOptions();
1280
1366
 
1281
- HighsStatus writeHighsOptions(
1282
- const std::string& filename, //!< The filename
1283
- const bool report_only_non_default_values = true);
1367
+ HighsStatus writeHighsOptions(const std::string& filename, //!< The filename
1368
+ const bool report_only_deviations = true);
1284
1369
 
1285
1370
  HighsInt getSimplexIterationCount() {
1286
1371
  deprecationMessage("getSimplexIterationCount", "None");
@@ -1312,6 +1397,50 @@ class Highs {
1312
1397
  void deprecationMessage(const std::string& method_name,
1313
1398
  const std::string& alt_method_name) const;
1314
1399
 
1400
+ /**
1401
+ * @brief Get the hot start basis data from the most recent simplex
1402
+ * solve. Advanced method: for HiGHS MIP solver
1403
+ */
1404
+ const HotStart& getHotStart() const { return ekk_instance_.hot_start_; }
1405
+
1406
+ /**
1407
+ * @brief Set up for simplex using the supplied hot start
1408
+ * data. Advanced method: for HiGHS MIP solver
1409
+ */
1410
+ HighsStatus setHotStart(const HotStart& hot_start) {
1411
+ this->deprecationMessage("setHotStart", "None");
1412
+ return HighsStatus::kError;
1413
+ }
1414
+
1415
+ /**
1416
+ * @brief Freeze the current internal HighsBasis instance and
1417
+ * standard NLA, returning a value to be used to recover this basis
1418
+ * and standard NLA at minimal cost. Advanced method: for HiGHS MIP
1419
+ * solver
1420
+ */
1421
+ HighsStatus freezeBasis(HighsInt& frozen_basis_id) {
1422
+ this->deprecationMessage("freezeBasis", "None");
1423
+ return HighsStatus::kError;
1424
+ }
1425
+
1426
+ /**
1427
+ * @brief Unfreeze a frozen HighsBasis instance and standard NLA (if
1428
+ * possible). Advanced method: for HiGHS MIP solver
1429
+ */
1430
+ HighsStatus unfreezeBasis(const HighsInt frozen_basis_id) {
1431
+ this->deprecationMessage("unfreezeBasis", "None");
1432
+ return HighsStatus::kError;
1433
+ }
1434
+
1435
+ /**
1436
+ * @brief Check that all frozen basis data has been
1437
+ * cleared. Advanced method: for HiGHS MIP solver
1438
+ */
1439
+ HighsStatus frozenBasisAllDataClear() {
1440
+ this->deprecationMessage("frozenBasisAllDataClear", "None");
1441
+ return HighsStatus::kError;
1442
+ }
1443
+
1315
1444
  // End of deprecated methods
1316
1445
  private:
1317
1446
  HighsSolution solution_;
@@ -1319,6 +1448,8 @@ class Highs {
1319
1448
  ICrashInfo icrash_info_;
1320
1449
 
1321
1450
  HighsModel model_;
1451
+ std::vector<HighsLinearObjective> multi_linear_objective_;
1452
+
1322
1453
  HighsModel presolved_model_;
1323
1454
  HighsTimer timer_;
1324
1455
 
@@ -1326,13 +1457,19 @@ class Highs {
1326
1457
  HighsOptions options_;
1327
1458
  HighsInfo info_;
1328
1459
  HighsRanging ranging_;
1329
-
1460
+ HighsIis iis_;
1330
1461
  std::vector<HighsObjectiveSolution> saved_objective_and_solution_;
1331
1462
 
1332
1463
  HighsPresolveStatus model_presolve_status_ =
1333
1464
  HighsPresolveStatus::kNotPresolved;
1334
1465
  HighsModelStatus model_status_ = HighsModelStatus::kNotset;
1335
1466
 
1467
+ bool standard_form_valid_;
1468
+ double standard_form_offset_;
1469
+ std::vector<double> standard_form_cost_;
1470
+ std::vector<double> standard_form_rhs_;
1471
+ HighsSparseMatrix standard_form_matrix_;
1472
+
1336
1473
  HEkk ekk_instance_;
1337
1474
 
1338
1475
  HighsPresolveLog presolve_log_;
@@ -1345,7 +1482,10 @@ class Highs {
1345
1482
  bool called_return_from_run = true;
1346
1483
  HighsInt debug_run_call_num_ = 0;
1347
1484
 
1348
- bool written_log_header = false;
1485
+ bool written_log_header_ = false;
1486
+
1487
+ void reportModelStats() const;
1488
+ HighsStatus solve();
1349
1489
 
1350
1490
  void exactResizeModel() {
1351
1491
  this->model_.lp_.exactResize();
@@ -1368,7 +1508,7 @@ class Highs {
1368
1508
  HighsStatus openWriteFile(const string filename, const string method_name,
1369
1509
  FILE*& file, HighsFileType& file_type) const;
1370
1510
 
1371
- void reportModel();
1511
+ void reportModel(const HighsModel& model);
1372
1512
  void newHighsBasis();
1373
1513
  void forceHighsSolutionBasisSize();
1374
1514
  //
@@ -1377,13 +1517,20 @@ class Highs {
1377
1517
  // and basis data
1378
1518
  void setHighsModelStatusAndClearSolutionAndBasis(
1379
1519
  const HighsModelStatus model_status);
1380
- //
1381
- // Sets model status, basis, solution and info from the
1382
- // highs_model_object
1383
- void setBasisValidity();
1384
- //
1520
+
1521
+ // Clears derived model properties (like any presolved model,
1522
+ // standard form LP, and ray information) that (unlike solution and
1523
+ // basis) cannot be updated
1524
+ void clearDerivedModelProperties();
1525
+
1385
1526
  // Clears the presolved model and its status
1386
1527
  void clearPresolve();
1528
+
1529
+ // Clears the standard form LP
1530
+ void clearStandardFormLp();
1531
+
1532
+ // Clears the ray records
1533
+ void clearRayRecords() { this->ekk_instance_.clearRayRecords(); }
1387
1534
  //
1388
1535
  // Methods to clear solver data for users in Highs class members
1389
1536
  // before (possibly) updating them with data from trying to solve
@@ -1391,8 +1538,9 @@ class Highs {
1391
1538
  //
1392
1539
  // Invalidates all solver data in Highs class members by calling
1393
1540
  // invalidateModelStatus(), invalidateSolution(), invalidateBasis(),
1394
- // invalidateInfo() and invalidateEkk()
1395
- void invalidateUserSolverData();
1541
+ // invalidateRanging(), invalidateInfo(), invalidateEkk() and
1542
+ // invalidateIis()
1543
+ void invalidateSolverData();
1396
1544
  //
1397
1545
  // Invalidates the model status, solution_ and info_
1398
1546
  void invalidateModelStatusSolutionAndInfo();
@@ -1415,6 +1563,9 @@ class Highs {
1415
1563
  // Invalidates ekk_instance_
1416
1564
  void invalidateEkk();
1417
1565
 
1566
+ // Invalidates iis_
1567
+ void invalidateIis();
1568
+
1418
1569
  HighsStatus returnFromWriteSolution(FILE* file,
1419
1570
  const HighsStatus return_status);
1420
1571
  HighsStatus returnFromRun(const HighsStatus return_status,
@@ -1422,9 +1573,8 @@ class Highs {
1422
1573
  HighsStatus returnFromHighs(const HighsStatus return_status);
1423
1574
  void reportSolvedLpQpStats();
1424
1575
 
1425
- void underDevelopmentLogMessage(const std::string& method_name);
1426
-
1427
1576
  // Interface methods
1577
+ HighsStatus formStandardFormLp();
1428
1578
  HighsStatus basisForSolution();
1429
1579
  HighsStatus addColsInterface(
1430
1580
  HighsInt ext_num_new_col, const double* ext_col_cost,
@@ -1445,18 +1595,17 @@ class Highs {
1445
1595
  void deleteRowsInterface(HighsIndexCollection& index_collection);
1446
1596
 
1447
1597
  void getColsInterface(const HighsIndexCollection& index_collection,
1448
- HighsInt& num_col, double* col_cost, double* col_lower,
1449
- double* col_upper, HighsInt& num_nz,
1450
- HighsInt* col_matrix_start, HighsInt* col_matrix_index,
1451
- double* col_matrix_value);
1598
+ HighsInt& num_col, double* cost, double* lower,
1599
+ double* upper, HighsInt& num_nz, HighsInt* start,
1600
+ HighsInt* index, double* value) const;
1452
1601
 
1453
1602
  void getRowsInterface(const HighsIndexCollection& index_collection,
1454
- HighsInt& num_row, double* row_lower, double* row_upper,
1455
- HighsInt& num_nz, HighsInt* row_matrix_start,
1456
- HighsInt* row_matrix_index, double* row_matrix_value);
1603
+ HighsInt& num_row, double* lower, double* upper,
1604
+ HighsInt& num_nz, HighsInt* start, HighsInt* index,
1605
+ double* value) const;
1457
1606
 
1458
1607
  void getCoefficientInterface(const HighsInt ext_row, const HighsInt ext_col,
1459
- double& value);
1608
+ double& value) const;
1460
1609
 
1461
1610
  HighsStatus changeObjectiveSenseInterface(const ObjSense ext_sense);
1462
1611
  HighsStatus changeObjectiveOffsetInterface(const double ext_offset);
@@ -1487,8 +1636,6 @@ class Highs {
1487
1636
  HighsInt* solution_num_nz,
1488
1637
  HighsInt* solution_indices, bool transpose);
1489
1638
 
1490
- HighsStatus setHotStartInterface(const HotStart& hot_start);
1491
-
1492
1639
  void zeroIterationCounts();
1493
1640
 
1494
1641
  HighsStatus getDualRayInterface(bool& has_dual_ray, double* dual_ray_value);
@@ -1497,13 +1644,36 @@ class Highs {
1497
1644
  double* primal_ray_value);
1498
1645
  HighsStatus getRangingInterface();
1499
1646
 
1647
+ HighsStatus getIisInterface();
1648
+
1649
+ HighsStatus elasticityFilterReturn(
1650
+ const HighsStatus return_status, const bool feasible_model,
1651
+ const HighsInt original_num_col, const HighsInt original_num_row,
1652
+ const std::vector<double>& original_col_cost,
1653
+ const std::vector<double>& original_col_lower,
1654
+ const std::vector<double> original_col_upper,
1655
+ const std::vector<HighsVarType> original_integrality);
1656
+ HighsStatus elasticityFilter(const double global_lower_penalty,
1657
+ const double global_upper_penalty,
1658
+ const double global_rhs_penalty,
1659
+ const double* local_lower_penalty,
1660
+ const double* local_upper_penalty,
1661
+ const double* local_rhs_penalty,
1662
+ const bool get_infeasible_row,
1663
+ std::vector<HighsInt>& infeasible_row_subset);
1664
+ HighsStatus extractIis(HighsInt& num_iis_col, HighsInt& num_iis_row,
1665
+ HighsInt* iis_col_index, HighsInt* iis_row_index,
1666
+ HighsInt* iis_col_bound, HighsInt* iis_row_bound);
1667
+
1668
+ HighsStatus returnFromLexicographicOptimization(
1669
+ const HighsStatus return_status, HighsInt original_lp_num_row);
1670
+ HighsStatus multiobjectiveSolve();
1671
+
1500
1672
  bool aFormatOk(const HighsInt num_nz, const HighsInt format);
1501
1673
  bool qFormatOk(const HighsInt num_nz, const HighsInt format);
1502
1674
  void clearZeroHessian();
1503
- HighsStatus checkOptimality(const std::string& solver_type,
1504
- HighsStatus return_status);
1505
- HighsStatus invertRequirementError(std::string method_name);
1506
- HighsStatus lpInvertRequirementError(std::string method_name);
1675
+ HighsStatus checkOptimality(const std::string& solver_type);
1676
+ HighsStatus invertRequirementError(std::string method_name) const;
1507
1677
 
1508
1678
  HighsStatus handleInfCost();
1509
1679
  void restoreInfCost(HighsStatus& return_status);
@@ -1520,6 +1690,10 @@ class Highs {
1520
1690
  const bool constraint,
1521
1691
  const double ill_conditioning_bound);
1522
1692
  bool infeasibleBoundsOk();
1693
+ bool validLinearObjective(const HighsLinearObjective& linear_objective,
1694
+ const HighsInt iObj) const;
1695
+ bool hasRepeatedLinearObjectivePriorities(
1696
+ const HighsLinearObjective* linear_objective = nullptr) const;
1523
1697
  };
1524
1698
 
1525
1699
  // Start of deprecated methods not in the Highs class
@@ -1,10 +1,10 @@
1
- #ifndef __READERLP_READER_HPP__
2
- #define __READERLP_READER_HPP__
3
-
4
- #include <string>
5
-
6
- #include "model.hpp"
7
-
8
- Model readinstance(std::string filename);
9
-
10
- #endif
1
+ #ifndef __READERLP_READER_HPP__
2
+ #define __READERLP_READER_HPP__
3
+
4
+ #include <string>
5
+
6
+ #include "model.hpp"
7
+
8
+ Model readinstance(std::string filename);
9
+
10
+ #endif