casadi 3.6.4__cp38-none-manylinux2014_i686.whl → 3.6.6__cp38-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 (494) hide show
  1. casadi/_casadi.so +0 -0
  2. casadi/casadi.py +984 -500
  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 +33 -15
  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 +13 -0
  15. casadi/include/casadi/core/casadi_types.hpp +3 -2
  16. casadi/include/casadi/core/code_generator.hpp +59 -2
  17. casadi/include/casadi/core/core.hpp +1 -0
  18. casadi/include/casadi/core/generic_expression.hpp +1 -1
  19. casadi/include/casadi/core/generic_type.hpp +25 -1
  20. casadi/include/casadi/core/global_options.hpp +2 -0
  21. casadi/include/casadi/core/matrix_decl.hpp +15 -0
  22. casadi/include/casadi/core/mx.hpp +13 -3
  23. casadi/include/casadi/core/optistack.hpp +23 -0
  24. casadi/include/casadi/core/runtime/casadi_nlp.hpp +133 -6
  25. casadi/include/casadi/core/runtime/casadi_ocp_block.hpp +55 -0
  26. casadi/include/casadi/core/runtime/casadi_oracle.hpp +44 -0
  27. casadi/include/casadi/core/runtime/casadi_oracle_callback.hpp +39 -0
  28. casadi/include/casadi/core/runtime/casadi_runtime.hpp +4 -1
  29. casadi/include/casadi/core/runtime/casadi_scaled_copy.hpp +31 -0
  30. casadi/include/casadi/core/runtime/casadi_sqpmethod.hpp +11 -1
  31. casadi/include/casadi/core/serializing_stream.hpp +2 -2
  32. casadi/include/casadi/core/sparsity.hpp +12 -3
  33. casadi/include/casadi/core/tools.hpp +67 -0
  34. casadi/include/casadi/doc.i +2283 -1491
  35. casadi/include/casadi/doc_merged.i +1522 -1065
  36. casadi/include/casadi/mem.h +1 -0
  37. casadi/include/coin-or/IpAlgBuilder.hpp +417 -0
  38. casadi/include/coin-or/IpAlgStrategy.hpp +201 -0
  39. casadi/include/coin-or/IpAlgTypes.hpp +64 -0
  40. casadi/include/coin-or/IpAugSystemSolver.hpp +212 -0
  41. casadi/include/coin-or/IpBlas.hpp +426 -0
  42. casadi/include/coin-or/IpCachedResults.hpp +897 -0
  43. casadi/include/coin-or/IpCompoundMatrix.hpp +423 -0
  44. casadi/include/coin-or/IpCompoundSymMatrix.hpp +348 -0
  45. casadi/include/coin-or/IpCompoundVector.hpp +395 -0
  46. casadi/include/coin-or/IpConvCheck.hpp +97 -0
  47. casadi/include/coin-or/IpDebug.hpp +167 -0
  48. casadi/include/coin-or/IpDenseVector.hpp +626 -0
  49. casadi/include/coin-or/IpDiagMatrix.hpp +158 -0
  50. casadi/include/coin-or/IpEqMultCalculator.hpp +76 -0
  51. casadi/include/coin-or/IpException.hpp +156 -0
  52. casadi/include/coin-or/IpExpansionMatrix.hpp +245 -0
  53. casadi/include/coin-or/IpGenTMatrix.hpp +290 -0
  54. casadi/include/coin-or/IpHessianUpdater.hpp +73 -0
  55. casadi/include/coin-or/IpIdentityMatrix.hpp +167 -0
  56. casadi/include/coin-or/IpIpoptAlg.hpp +257 -0
  57. casadi/include/coin-or/IpIpoptApplication.hpp +367 -0
  58. casadi/include/coin-or/IpIpoptCalculatedQuantities.hpp +1009 -0
  59. casadi/include/coin-or/IpIpoptData.hpp +966 -0
  60. casadi/include/coin-or/IpIpoptNLP.hpp +328 -0
  61. casadi/include/coin-or/IpIterateInitializer.hpp +68 -0
  62. casadi/include/coin-or/IpIteratesVector.hpp +840 -0
  63. casadi/include/coin-or/IpIterationOutput.hpp +78 -0
  64. casadi/include/coin-or/IpJournalist.hpp +573 -0
  65. casadi/include/coin-or/IpLapack.hpp +227 -0
  66. casadi/include/coin-or/IpLibraryLoader.hpp +76 -0
  67. casadi/include/coin-or/IpLineSearch.hpp +106 -0
  68. casadi/include/coin-or/IpLinearSolvers.h +46 -0
  69. casadi/include/coin-or/IpMatrix.hpp +434 -0
  70. casadi/include/coin-or/IpMuUpdate.hpp +77 -0
  71. casadi/include/coin-or/IpNLP.hpp +306 -0
  72. casadi/include/coin-or/IpNLPScaling.hpp +582 -0
  73. casadi/include/coin-or/IpObserver.hpp +422 -0
  74. casadi/include/coin-or/IpOptionsList.hpp +412 -0
  75. casadi/include/coin-or/IpOrigIpoptNLP.hpp +603 -0
  76. casadi/include/coin-or/IpPDSystemSolver.hpp +137 -0
  77. casadi/include/coin-or/IpReferenced.hpp +262 -0
  78. casadi/include/coin-or/IpRegOptions.hpp +1152 -0
  79. casadi/include/coin-or/IpReturnCodes.h +23 -0
  80. casadi/include/coin-or/IpReturnCodes.hpp +18 -0
  81. casadi/include/coin-or/IpReturnCodes.inc +71 -0
  82. casadi/include/coin-or/IpReturnCodes_inc.h +45 -0
  83. casadi/include/coin-or/IpScaledMatrix.hpp +291 -0
  84. casadi/include/coin-or/IpSearchDirCalculator.hpp +72 -0
  85. casadi/include/coin-or/IpSmartPtr.hpp +865 -0
  86. casadi/include/coin-or/IpSolveStatistics.hpp +210 -0
  87. casadi/include/coin-or/IpSparseSymLinearSolverInterface.hpp +260 -0
  88. casadi/include/coin-or/IpStdAugSystemSolver.cpp +555 -0
  89. casadi/include/coin-or/IpStdCInterface.h +428 -0
  90. casadi/include/coin-or/IpSumSymMatrix.hpp +186 -0
  91. casadi/include/coin-or/IpSymLinearSolver.hpp +141 -0
  92. casadi/include/coin-or/IpSymMatrix.hpp +167 -0
  93. casadi/include/coin-or/IpSymScaledMatrix.hpp +255 -0
  94. casadi/include/coin-or/IpSymTMatrix.hpp +275 -0
  95. casadi/include/coin-or/IpTNLP.hpp +820 -0
  96. casadi/include/coin-or/IpTNLPAdapter.hpp +648 -0
  97. casadi/include/coin-or/IpTNLPReducer.hpp +274 -0
  98. casadi/include/coin-or/IpTaggedObject.hpp +128 -0
  99. casadi/include/coin-or/IpTimedTask.hpp +218 -0
  100. casadi/include/coin-or/IpTimingStatistics.hpp +323 -0
  101. casadi/include/coin-or/IpTripletHelper.hpp +308 -0
  102. casadi/include/coin-or/IpTypes.h +81 -0
  103. casadi/include/coin-or/IpTypes.hpp +30 -0
  104. casadi/include/coin-or/IpUtils.hpp +166 -0
  105. casadi/include/coin-or/IpVector.hpp +892 -0
  106. casadi/include/coin-or/IpZeroSymMatrix.hpp +155 -0
  107. casadi/include/coin-or/IpoptConfig.h +45 -0
  108. casadi/include/coin-or/SensAlgorithm.hpp +114 -0
  109. casadi/include/coin-or/SensApplication.hpp +188 -0
  110. casadi/include/coin-or/SensBacksolver.hpp +36 -0
  111. casadi/include/coin-or/SensMeasurement.hpp +56 -0
  112. casadi/include/coin-or/SensPCalculator.hpp +137 -0
  113. casadi/include/coin-or/SensRegOp.hpp +21 -0
  114. casadi/include/coin-or/SensSchurData.hpp +182 -0
  115. casadi/include/coin-or/SensSchurDriver.hpp +118 -0
  116. casadi/include/coin-or/SensSimpleBacksolver.hpp +49 -0
  117. casadi/include/coin-or/SensStepCalc.hpp +85 -0
  118. casadi/include/coin-or/SensUtils.hpp +63 -0
  119. casadi/include/coin-or/metis/defs.h +161 -0
  120. casadi/include/coin-or/metis/macros.h +143 -0
  121. casadi/include/coin-or/metis/metis.h +37 -0
  122. casadi/include/coin-or/metis/proto.h +505 -0
  123. casadi/include/coin-or/metis/rename.h +418 -0
  124. casadi/include/coin-or/metis/struct.h +251 -0
  125. casadi/include/coin-or/mumps/dmumps_c.h +142 -0
  126. casadi/include/coin-or/mumps/mumps_c_types.h +72 -0
  127. casadi/include/coin-or/mumps/mumps_compat.h +27 -0
  128. casadi/include/coin-or/mumps/mumps_int_def.h +11 -0
  129. casadi/include/coin-or/mumps/mumps_mpi.h +67 -0
  130. casadi/include/daqp/api.h +46 -0
  131. casadi/include/daqp/auxiliary.h +29 -0
  132. casadi/include/daqp/bnb.h +32 -0
  133. casadi/include/daqp/codegen.h +18 -0
  134. casadi/include/daqp/constants.h +92 -0
  135. casadi/include/daqp/daqp.h +22 -0
  136. casadi/include/daqp/daqp_prox.h +18 -0
  137. casadi/include/daqp/factorization.h +18 -0
  138. casadi/include/daqp/types.h +161 -0
  139. casadi/include/daqp/utils.h +44 -0
  140. casadi/include/highs/HConfig.h +6 -5
  141. casadi/include/highs/Highs.h +93 -23
  142. casadi/include/highs/filereaderlp/def.hpp +19 -0
  143. casadi/include/highs/interfaces/highs_c_api.h +200 -24
  144. casadi/include/highs/io/Filereader.h +1 -1
  145. casadi/include/highs/io/FilereaderEms.h +1 -1
  146. casadi/include/highs/io/FilereaderLp.h +1 -1
  147. casadi/include/highs/io/FilereaderMps.h +1 -1
  148. casadi/include/highs/io/HMPSIO.h +1 -1
  149. casadi/include/highs/io/HMpsFF.h +5 -3
  150. casadi/include/highs/io/HighsIO.h +18 -8
  151. casadi/include/highs/io/LoadOptions.h +1 -1
  152. casadi/include/highs/ipm/IpxSolution.h +35 -0
  153. casadi/include/highs/ipm/IpxWrapper.h +1 -1
  154. casadi/include/highs/ipm/basiclu/basiclu.h +161 -0
  155. casadi/include/highs/ipm/basiclu/basiclu_factorize.h +247 -0
  156. casadi/include/highs/ipm/basiclu/basiclu_get_factors.h +108 -0
  157. casadi/include/highs/ipm/basiclu/basiclu_initialize.h +119 -0
  158. casadi/include/highs/ipm/basiclu/basiclu_obj_factorize.h +34 -0
  159. casadi/include/highs/ipm/basiclu/basiclu_obj_free.h +19 -0
  160. casadi/include/highs/ipm/basiclu/basiclu_obj_get_factors.h +34 -0
  161. casadi/include/highs/ipm/basiclu/basiclu_obj_initialize.h +46 -0
  162. casadi/include/highs/ipm/basiclu/basiclu_obj_solve_dense.h +29 -0
  163. casadi/include/highs/ipm/basiclu/basiclu_obj_solve_for_update.h +42 -0
  164. casadi/include/highs/ipm/basiclu/basiclu_obj_solve_sparse.h +32 -0
  165. casadi/include/highs/ipm/basiclu/basiclu_obj_update.h +31 -0
  166. casadi/include/highs/ipm/basiclu/basiclu_object.h +30 -0
  167. casadi/include/highs/ipm/basiclu/basiclu_solve_dense.h +75 -0
  168. casadi/include/highs/ipm/basiclu/basiclu_solve_for_update.h +169 -0
  169. casadi/include/highs/ipm/basiclu/basiclu_solve_sparse.h +112 -0
  170. casadi/include/highs/ipm/basiclu/basiclu_update.h +125 -0
  171. casadi/include/highs/ipm/basiclu/lu_def.h +39 -0
  172. casadi/include/highs/ipm/basiclu/lu_file.h +21 -0
  173. casadi/include/highs/ipm/basiclu/lu_internal.h +220 -0
  174. casadi/include/highs/ipm/basiclu/lu_list.h +168 -0
  175. casadi/include/highs/ipm/ipx/basiclu_kernel.h +20 -0
  176. casadi/include/highs/ipm/ipx/basiclu_wrapper.h +47 -0
  177. casadi/include/highs/ipm/ipx/basis.h +351 -0
  178. casadi/include/highs/ipm/ipx/conjugate_residuals.h +74 -0
  179. casadi/include/highs/ipm/ipx/control.h +163 -0
  180. casadi/include/highs/ipm/ipx/crossover.h +157 -0
  181. casadi/include/highs/ipm/ipx/diagonal_precond.h +45 -0
  182. casadi/include/highs/ipm/ipx/forrest_tomlin.h +102 -0
  183. casadi/include/highs/ipm/ipx/guess_basis.h +21 -0
  184. casadi/include/highs/ipm/ipx/indexed_vector.h +113 -0
  185. casadi/include/highs/ipm/ipx/info.h +27 -0
  186. casadi/include/highs/ipm/ipx/ipm.h +94 -0
  187. casadi/include/highs/ipm/ipx/ipx_c.h +47 -0
  188. casadi/include/highs/ipm/ipx/ipx_config.h +9 -0
  189. casadi/include/highs/ipm/ipx/ipx_info.h +111 -0
  190. casadi/include/highs/ipm/ipx/ipx_internal.h +88 -0
  191. casadi/include/highs/ipm/ipx/ipx_parameters.h +75 -0
  192. casadi/include/highs/ipm/ipx/ipx_status.h +57 -0
  193. casadi/include/highs/ipm/ipx/iterate.h +328 -0
  194. casadi/include/highs/ipm/ipx/kkt_solver.h +70 -0
  195. casadi/include/highs/ipm/ipx/kkt_solver_basis.h +66 -0
  196. casadi/include/highs/ipm/ipx/kkt_solver_diag.h +48 -0
  197. casadi/include/highs/ipm/ipx/linear_operator.h +26 -0
  198. casadi/include/highs/ipm/ipx/lp_solver.h +201 -0
  199. casadi/include/highs/ipm/ipx/lu_factorization.h +79 -0
  200. casadi/include/highs/ipm/ipx/lu_update.h +129 -0
  201. casadi/include/highs/ipm/ipx/maxvolume.h +54 -0
  202. casadi/include/highs/ipm/ipx/model.h +409 -0
  203. casadi/include/highs/ipm/ipx/multistream.h +52 -0
  204. casadi/include/highs/ipm/ipx/normal_matrix.h +44 -0
  205. casadi/include/highs/ipm/ipx/power_method.h +44 -0
  206. casadi/include/highs/ipm/ipx/sparse_matrix.h +195 -0
  207. casadi/include/highs/ipm/ipx/sparse_utils.h +58 -0
  208. casadi/include/highs/ipm/ipx/splitted_normal_matrix.h +63 -0
  209. casadi/include/highs/ipm/ipx/starting_basis.h +39 -0
  210. casadi/include/highs/ipm/ipx/symbolic_invert.h +29 -0
  211. casadi/include/highs/ipm/ipx/timer.h +24 -0
  212. casadi/include/highs/ipm/ipx/utils.h +39 -0
  213. casadi/include/highs/lp_data/HConst.h +20 -10
  214. casadi/include/highs/lp_data/HStruct.h +23 -1
  215. casadi/include/highs/lp_data/HighsAnalysis.h +1 -1
  216. casadi/include/highs/lp_data/HighsCallback.h +10 -3
  217. casadi/include/highs/lp_data/HighsCallbackStruct.h +31 -5
  218. casadi/include/highs/lp_data/HighsDebug.h +1 -1
  219. casadi/include/highs/lp_data/HighsInfo.h +20 -2
  220. casadi/include/highs/lp_data/HighsInfoDebug.h +1 -1
  221. casadi/include/highs/lp_data/HighsLp.h +17 -1
  222. casadi/include/highs/lp_data/HighsLpSolverObject.h +1 -1
  223. casadi/include/highs/lp_data/HighsLpUtils.h +19 -19
  224. casadi/include/highs/lp_data/HighsModelUtils.h +1 -1
  225. casadi/include/highs/lp_data/HighsOptions.h +237 -10
  226. casadi/include/highs/lp_data/HighsRanging.h +1 -1
  227. casadi/include/highs/lp_data/HighsRuntimeOptions.h +2 -2
  228. casadi/include/highs/lp_data/HighsSolution.h +2 -2
  229. casadi/include/highs/lp_data/HighsSolutionDebug.h +1 -1
  230. casadi/include/highs/lp_data/HighsSolve.h +3 -1
  231. casadi/include/highs/lp_data/HighsStatus.h +1 -1
  232. casadi/include/highs/mip/HighsCliqueTable.h +4 -4
  233. casadi/include/highs/mip/HighsConflictPool.h +1 -1
  234. casadi/include/highs/mip/HighsCutGeneration.h +1 -1
  235. casadi/include/highs/mip/HighsCutPool.h +2 -2
  236. casadi/include/highs/mip/HighsDebugSol.h +22 -29
  237. casadi/include/highs/mip/HighsDomain.h +10 -2
  238. casadi/include/highs/mip/HighsDomainChange.h +1 -1
  239. casadi/include/highs/mip/HighsDynamicRowMatrix.h +5 -3
  240. casadi/include/highs/mip/HighsGFkSolve.h +3 -3
  241. casadi/include/highs/mip/HighsImplications.h +3 -3
  242. casadi/include/highs/mip/HighsLpAggregator.h +1 -1
  243. casadi/include/highs/mip/HighsLpRelaxation.h +6 -1
  244. casadi/include/highs/mip/HighsMipSolver.h +4 -2
  245. casadi/include/highs/mip/HighsMipSolverData.h +47 -4
  246. casadi/include/highs/mip/HighsModkSeparator.h +2 -2
  247. casadi/include/highs/mip/HighsNodeQueue.h +5 -3
  248. casadi/include/highs/mip/HighsObjectiveFunction.h +1 -1
  249. casadi/include/highs/mip/HighsPathSeparator.h +2 -2
  250. casadi/include/highs/mip/HighsPrimalHeuristics.h +1 -1
  251. casadi/include/highs/mip/HighsPseudocost.h +35 -23
  252. casadi/include/highs/mip/HighsRedcostFixing.h +1 -1
  253. casadi/include/highs/mip/HighsSearch.h +2 -1
  254. casadi/include/highs/mip/HighsSeparation.h +1 -1
  255. casadi/include/highs/mip/HighsSeparator.h +1 -1
  256. casadi/include/highs/mip/HighsTableauSeparator.h +1 -1
  257. casadi/include/highs/mip/HighsTransformedLp.h +1 -1
  258. casadi/include/highs/model/HighsHessian.h +5 -0
  259. casadi/include/highs/model/HighsHessianUtils.h +2 -0
  260. casadi/include/highs/model/HighsModel.h +10 -1
  261. casadi/include/highs/parallel/HighsMutex.h +2 -1
  262. casadi/include/highs/parallel/HighsParallel.h +7 -2
  263. casadi/include/highs/parallel/HighsTask.h +1 -2
  264. casadi/include/highs/pdlp/CupdlpWrapper.h +93 -0
  265. casadi/include/highs/pdlp/cupdlp/cupdlp_cs.h +41 -0
  266. casadi/include/highs/pdlp/cupdlp/cupdlp_defs.h +423 -0
  267. casadi/include/highs/pdlp/cupdlp/cupdlp_linalg.h +183 -0
  268. casadi/include/highs/pdlp/cupdlp/cupdlp_proj.h +19 -0
  269. casadi/include/highs/pdlp/cupdlp/cupdlp_restart.h +31 -0
  270. casadi/include/highs/pdlp/cupdlp/cupdlp_scaling_cuda.h +28 -0
  271. casadi/include/highs/pdlp/cupdlp/cupdlp_solver.h +98 -0
  272. casadi/include/highs/pdlp/cupdlp/cupdlp_step.h +33 -0
  273. casadi/include/highs/pdlp/cupdlp/cupdlp_utils.c +1726 -0
  274. casadi/include/highs/pdqsort/pdqsort.h +532 -0
  275. casadi/include/highs/presolve/HPresolve.h +27 -14
  276. casadi/include/highs/presolve/HPresolveAnalysis.h +1 -1
  277. casadi/include/highs/presolve/HighsPostsolveStack.h +92 -68
  278. casadi/include/highs/presolve/HighsSymmetry.h +6 -5
  279. casadi/include/highs/presolve/ICrash.h +8 -2
  280. casadi/include/highs/presolve/ICrashUtil.h +1 -1
  281. casadi/include/highs/presolve/ICrashX.h +1 -1
  282. casadi/include/highs/presolve/PresolveComponent.h +1 -1
  283. casadi/include/highs/qpsolver/a_asm.hpp +23 -12
  284. casadi/include/highs/qpsolver/a_quass.hpp +8 -1
  285. casadi/include/highs/qpsolver/basis.hpp +150 -0
  286. casadi/include/highs/qpsolver/crashsolution.hpp +12 -0
  287. casadi/include/highs/qpsolver/dantzigpricing.hpp +72 -0
  288. casadi/include/highs/qpsolver/devexpricing.hpp +99 -0
  289. casadi/include/highs/qpsolver/eventhandler.hpp +23 -0
  290. casadi/include/highs/qpsolver/factor.hpp +400 -0
  291. casadi/include/highs/qpsolver/feasibility_bounded.hpp +105 -0
  292. casadi/include/highs/qpsolver/feasibility_highs.hpp +270 -0
  293. casadi/include/highs/qpsolver/gradient.hpp +39 -0
  294. casadi/include/highs/qpsolver/instance.hpp +63 -0
  295. casadi/include/highs/qpsolver/matrix.hpp +335 -0
  296. casadi/include/highs/qpsolver/pricing.hpp +15 -0
  297. casadi/include/highs/qpsolver/qpconst.hpp +27 -0
  298. casadi/include/highs/qpsolver/{vector.hpp → qpvector.hpp} +25 -25
  299. casadi/include/highs/qpsolver/quass.hpp +1 -1
  300. casadi/include/highs/qpsolver/ratiotest.hpp +19 -0
  301. casadi/include/highs/qpsolver/runtime.hpp +38 -0
  302. casadi/include/highs/qpsolver/settings.hpp +57 -0
  303. casadi/include/highs/qpsolver/snippets.hpp +29 -0
  304. casadi/include/highs/qpsolver/statistics.hpp +23 -0
  305. casadi/include/highs/qpsolver/steepestedgepricing.hpp +167 -0
  306. casadi/include/highs/simplex/HApp.h +1 -1
  307. casadi/include/highs/simplex/HEkk.h +52 -18
  308. casadi/include/highs/simplex/HEkkDual.h +1 -1
  309. casadi/include/highs/simplex/HEkkDualRHS.h +6 -7
  310. casadi/include/highs/simplex/HEkkDualRow.h +2 -2
  311. casadi/include/highs/simplex/HEkkPrimal.h +6 -1
  312. casadi/include/highs/simplex/HSimplex.h +1 -3
  313. casadi/include/highs/simplex/HSimplexDebug.h +1 -1
  314. casadi/include/highs/simplex/HSimplexNla.h +1 -1
  315. casadi/include/highs/simplex/HSimplexReport.h +1 -1
  316. casadi/include/highs/simplex/HighsSimplexAnalysis.h +228 -100
  317. casadi/include/highs/simplex/SimplexConst.h +1 -1
  318. casadi/include/highs/simplex/SimplexStruct.h +2 -2
  319. casadi/include/highs/simplex/SimplexTimer.h +1 -1
  320. casadi/include/highs/test/DevKkt.h +1 -1
  321. casadi/include/highs/test/KktCh2.h +1 -1
  322. casadi/include/highs/util/FactorTimer.h +1 -1
  323. casadi/include/highs/util/HFactor.h +35 -6
  324. casadi/include/highs/util/HFactorConst.h +1 -1
  325. casadi/include/highs/util/HFactorDebug.h +1 -1
  326. casadi/include/highs/util/HSet.h +1 -1
  327. casadi/include/highs/util/HVector.h +1 -1
  328. casadi/include/highs/util/HVectorBase.h +1 -1
  329. casadi/include/highs/util/HighsCDouble.h +3 -3
  330. casadi/include/highs/util/HighsComponent.h +1 -1
  331. casadi/include/highs/util/HighsDataStack.h +4 -4
  332. casadi/include/highs/util/HighsDisjointSets.h +1 -1
  333. casadi/include/highs/util/HighsHash.h +28 -21
  334. casadi/include/highs/util/HighsHashTree.h +63 -63
  335. casadi/include/highs/util/HighsInt.h +1 -1
  336. casadi/include/highs/util/HighsIntegers.h +8 -9
  337. casadi/include/highs/util/HighsLinearSumBounds.h +1 -1
  338. casadi/include/highs/util/HighsMatrixPic.h +1 -1
  339. casadi/include/highs/util/HighsMatrixSlice.h +9 -6
  340. casadi/include/highs/util/HighsMatrixUtils.h +1 -1
  341. casadi/include/highs/util/HighsMemoryAllocation.h +55 -0
  342. casadi/include/highs/util/HighsRandom.h +27 -15
  343. casadi/include/highs/util/HighsRbTree.h +2 -2
  344. casadi/include/highs/util/HighsSort.h +7 -7
  345. casadi/include/highs/util/HighsSparseMatrix.h +5 -2
  346. casadi/include/highs/util/HighsSparseVectorSum.h +2 -2
  347. casadi/include/highs/util/HighsSplay.h +1 -1
  348. casadi/include/highs/util/HighsTimer.h +18 -9
  349. casadi/include/highs/util/HighsUtils.h +15 -8
  350. casadi/include/highs/util/stringutil.h +9 -4
  351. casadi/include/highs/zstr/strict_fstream.hpp +237 -0
  352. casadi/include/highs/zstr/zstr.hpp +472 -0
  353. casadi/include/licenses/daqp-external/LICENSE +21 -0
  354. casadi/include/licenses/highs-external/{LICENSE → LICENSE.txt} +1 -1
  355. casadi/include/osqp/constants.h +2 -3
  356. casadi/include/osqp/version.h +9 -0
  357. casadi/lib/libtinyxml2.a +0 -0
  358. casadi/libCbc.so +0 -0
  359. casadi/libCbc.so.3 +0 -0
  360. casadi/libCbc.so.3.10.11 +0 -0
  361. casadi/libCbcSolver.so +0 -0
  362. casadi/libCbcSolver.so.3 +0 -0
  363. casadi/libCbcSolver.so.3.10.11 +0 -0
  364. casadi/libCgl.so +0 -0
  365. casadi/libCgl.so.1 +0 -0
  366. casadi/libCgl.so.1.10.8 +0 -0
  367. casadi/libClp.so +0 -0
  368. casadi/libClp.so.1 +0 -0
  369. casadi/libClp.so.1.14.9 +0 -0
  370. casadi/libClpSolver.so +0 -0
  371. casadi/libClpSolver.so.1 +0 -0
  372. casadi/libClpSolver.so.1.14.9 +0 -0
  373. casadi/libCoinUtils.so +0 -0
  374. casadi/libCoinUtils.so.3 +0 -0
  375. casadi/libCoinUtils.so.3.11.10 +0 -0
  376. casadi/libOsi.so +0 -0
  377. casadi/libOsi.so.1 +0 -0
  378. casadi/libOsi.so.1.13.9 +0 -0
  379. casadi/libOsiCbc.so +0 -0
  380. casadi/libOsiCbc.so.3 +0 -0
  381. casadi/libOsiCbc.so.3.10.11 +0 -0
  382. casadi/libOsiClp.so +0 -0
  383. casadi/libOsiClp.so.1 +0 -0
  384. casadi/libOsiClp.so.1.14.9 +0 -0
  385. casadi/libOsiCommonTests.so +0 -0
  386. casadi/libOsiCommonTests.so.1 +0 -0
  387. casadi/libOsiCommonTests.so.1.13.9 +0 -0
  388. casadi/libbonmin.so +0 -0
  389. casadi/libbonmin.so.4 +0 -0
  390. casadi/libbonmin.so.4.8.9 +0 -0
  391. casadi/libcasadi.so +0 -0
  392. casadi/libcasadi.so.3.7 +0 -0
  393. casadi/libcasadi_conic_cbc.so +0 -0
  394. casadi/libcasadi_conic_cbc.so.3.7 +0 -0
  395. casadi/libcasadi_conic_clp.so +0 -0
  396. casadi/libcasadi_conic_clp.so.3.7 +0 -0
  397. casadi/libcasadi_conic_daqp.so +0 -0
  398. casadi/libcasadi_conic_daqp.so.3.7 +0 -0
  399. casadi/libcasadi_conic_gurobi.so +0 -0
  400. casadi/libcasadi_conic_gurobi.so.3.7 +0 -0
  401. casadi/libcasadi_conic_highs.so +0 -0
  402. casadi/libcasadi_conic_highs.so.3.7 +0 -0
  403. casadi/libcasadi_conic_ipqp.so +0 -0
  404. casadi/libcasadi_conic_ipqp.so.3.7 +0 -0
  405. casadi/libcasadi_conic_nlpsol.so +0 -0
  406. casadi/libcasadi_conic_nlpsol.so.3.7 +0 -0
  407. casadi/libcasadi_conic_osqp.so +0 -0
  408. casadi/libcasadi_conic_osqp.so.3.7 +0 -0
  409. casadi/libcasadi_conic_proxqp.so +0 -0
  410. casadi/libcasadi_conic_proxqp.so.3.7 +0 -0
  411. casadi/libcasadi_conic_qpoases.so +0 -0
  412. casadi/libcasadi_conic_qpoases.so.3.7 +0 -0
  413. casadi/libcasadi_conic_qrqp.so +0 -0
  414. casadi/libcasadi_conic_qrqp.so.3.7 +0 -0
  415. casadi/libcasadi_conic_superscs.so +0 -0
  416. casadi/libcasadi_conic_superscs.so.3.7 +0 -0
  417. casadi/libcasadi_integrator_collocation.so +0 -0
  418. casadi/libcasadi_integrator_collocation.so.3.7 +0 -0
  419. casadi/libcasadi_integrator_cvodes.so +0 -0
  420. casadi/libcasadi_integrator_cvodes.so.3.7 +0 -0
  421. casadi/libcasadi_integrator_idas.so +0 -0
  422. casadi/libcasadi_integrator_idas.so.3.7 +0 -0
  423. casadi/libcasadi_integrator_rk.so +0 -0
  424. casadi/libcasadi_integrator_rk.so.3.7 +0 -0
  425. casadi/libcasadi_nlpsol_alpaqa.so +0 -0
  426. casadi/libcasadi_nlpsol_alpaqa.so.3.7 +0 -0
  427. casadi/libcasadi_nlpsol_ampl.so +0 -0
  428. casadi/libcasadi_nlpsol_ampl.so.3.7 +0 -0
  429. casadi/libcasadi_nlpsol_blocksqp.so +0 -0
  430. casadi/libcasadi_nlpsol_blocksqp.so.3.7 +0 -0
  431. casadi/libcasadi_nlpsol_bonmin.so +0 -0
  432. casadi/libcasadi_nlpsol_bonmin.so.3.7 +0 -0
  433. casadi/libcasadi_nlpsol_feasiblesqpmethod.so +0 -0
  434. casadi/libcasadi_nlpsol_feasiblesqpmethod.so.3.7 +0 -0
  435. casadi/libcasadi_nlpsol_ipopt.so +0 -0
  436. casadi/libcasadi_nlpsol_ipopt.so.3.7 +0 -0
  437. casadi/libcasadi_nlpsol_knitro.so +0 -0
  438. casadi/libcasadi_nlpsol_knitro.so.3.7 +0 -0
  439. casadi/libcasadi_nlpsol_madnlp.so +0 -0
  440. casadi/libcasadi_nlpsol_madnlp.so.3.7 +0 -0
  441. casadi/libcasadi_nlpsol_qrsqp.so +0 -0
  442. casadi/libcasadi_nlpsol_qrsqp.so.3.7 +0 -0
  443. casadi/libcasadi_nlpsol_scpgen.so +0 -0
  444. casadi/libcasadi_nlpsol_scpgen.so.3.7 +0 -0
  445. casadi/libcasadi_nlpsol_sleqp.so +0 -0
  446. casadi/libcasadi_nlpsol_sleqp.so.3.7 +0 -0
  447. casadi/libcasadi_nlpsol_snopt.so +0 -0
  448. casadi/libcasadi_nlpsol_snopt.so.3.7 +0 -0
  449. casadi/libcasadi_nlpsol_sqpmethod.so +0 -0
  450. casadi/libcasadi_nlpsol_sqpmethod.so.3.7 +0 -0
  451. casadi/libcasadi_nlpsol_worhp.so +0 -0
  452. casadi/libcasadi_nlpsol_worhp.so.3.7 +0 -0
  453. casadi/libcasadi_rootfinder_fast_newton.so +0 -0
  454. casadi/libcasadi_rootfinder_fast_newton.so.3.7 +0 -0
  455. casadi/libcasadi_rootfinder_kinsol.so +0 -0
  456. casadi/libcasadi_rootfinder_kinsol.so.3.7 +0 -0
  457. casadi/libcasadi_rootfinder_newton.so +0 -0
  458. casadi/libcasadi_rootfinder_newton.so.3.7 +0 -0
  459. casadi/libcasadi_rootfinder_nlpsol.so +0 -0
  460. casadi/libcasadi_rootfinder_nlpsol.so.3.7 +0 -0
  461. casadi/libcasadi_sundials_common.so +0 -0
  462. casadi/libcasadi_sundials_common.so.3.7 +0 -0
  463. casadi/libdaqp.so +0 -0
  464. casadi/libdaqpstat.a +0 -0
  465. casadi/libhighs.so +0 -0
  466. casadi/libhighs.so.1 +0 -0
  467. casadi/libhighs.so.1.7.2 +0 -0
  468. casadi/libindirect.a +0 -0
  469. casadi/libipopt.so +0 -0
  470. casadi/libipopt.so.3 +0 -0
  471. casadi/libipopt.so.3.14.11 +0 -0
  472. casadi/liblinsys.a +0 -0
  473. casadi/libmatlab_ipc.so +0 -0
  474. casadi/libosqp.a +0 -0
  475. casadi/libosqp.so +0 -0
  476. casadi/libqdldl.a +0 -0
  477. casadi/libsipopt.so +0 -0
  478. casadi/libsipopt.so.3 +0 -0
  479. casadi/libsipopt.so.3.14.11 +0 -0
  480. casadi/libsleqp.so +0 -0
  481. casadi/libsleqp.so.1.0.1 +0 -0
  482. casadi/libspral.a +0 -0
  483. casadi/libsuperscs.a +0 -0
  484. casadi/pkgconfig/casadi.pc +1 -1
  485. casadi/pkgconfig/highs.pc +1 -1
  486. casadi/tools/__init__.py +4 -0
  487. casadi/tools/bounds.py +3 -3
  488. {casadi-3.6.4.dist-info → casadi-3.6.6.dist-info}/METADATA +12 -4
  489. {casadi-3.6.4.dist-info → casadi-3.6.6.dist-info}/RECORD +490 -281
  490. casadi/include/highs/fortran/highs_fortran_api.mod +0 -0
  491. casadi/libFortranHighs.so +0 -0
  492. casadi/libhighs.so.1.6 +0 -0
  493. casadi/libhighs.so.1.6.0 +0 -0
  494. {casadi-3.6.4.dist-info → casadi-3.6.6.dist-info}/WHEEL +0 -0
@@ -0,0 +1,161 @@
1
+ #ifndef DAQP_TYPES_H
2
+ # define DAQP_TYPES_H
3
+
4
+ # ifdef __cplusplus
5
+ extern "C" {
6
+ # endif // ifdef __cplusplus
7
+
8
+ #ifdef DAQP_SINGLE_PRECISION
9
+ typedef float c_float;
10
+ #else
11
+ typedef double c_float;
12
+ #endif
13
+
14
+ typedef struct{
15
+
16
+ // Data for the QP problem
17
+ //
18
+ // min 0.5 x'*H*x + f'x
19
+ // s.t lbA <= A*x <= ubA
20
+ // lb <= x <= ub
21
+ //
22
+ // n - dimension of x
23
+ // m - total number of constraints
24
+ // ms - number of simple bounds
25
+ // blower = [lb; lbA];
26
+ // bupper = [ub; ubA];
27
+ // (The number of rows in A is hence m-ms)
28
+
29
+ // sense define the state of the constraints
30
+ // (active, immutable, upper/lower, soft, binary).
31
+
32
+ int n;
33
+ int m;
34
+ int ms;
35
+
36
+ c_float* H;
37
+ c_float* f;
38
+
39
+ c_float* A;
40
+ c_float* bupper;
41
+ c_float* blower;
42
+
43
+ int* sense;
44
+
45
+ }DAQPProblem;
46
+
47
+ typedef struct{
48
+ c_float primal_tol;
49
+ c_float dual_tol;
50
+ c_float zero_tol;
51
+ c_float pivot_tol;
52
+ c_float progress_tol;
53
+
54
+ int cycle_tol;
55
+ int iter_limit;
56
+ c_float fval_bound;
57
+
58
+ c_float eps_prox;
59
+ c_float eta_prox;
60
+
61
+ c_float rho_soft;
62
+
63
+ c_float rel_subopt;
64
+ c_float abs_subopt;
65
+ }DAQPSettings;
66
+
67
+
68
+ typedef struct{
69
+ int bin_id;
70
+ int depth;
71
+ int WS_start;
72
+ int WS_end;
73
+ }DAQPNode;
74
+
75
+ typedef struct{
76
+ int* bin_ids;
77
+ int nb;
78
+ int neq;
79
+
80
+ DAQPNode* tree;
81
+ int n_nodes;
82
+
83
+ int* tree_WS;
84
+ int nWS;
85
+ int n_clean;
86
+ int* fixed_ids;
87
+
88
+ int nodecount;
89
+ int itercount;
90
+ }DAQPBnB;
91
+
92
+ typedef struct{
93
+ DAQPProblem* qp;
94
+ // LDP data
95
+ int n; // Number of primal variables
96
+ int m; // Number of constraints
97
+ int ms; // Number of simple bounds
98
+ c_float *M; // M' M is the Hessian of the dual objective function (dimensions: n x m)
99
+ c_float *dupper; // Linear part of dual objective function (dimensions: m x 1)
100
+ c_float *dlower; // Linear part of dual objective function (dimensions: m x 1)
101
+ c_float *Rinv; // Inverse of upper cholesky factor of primal Hessian
102
+ c_float *v; // v = R'\f (used to transform QP to LDP
103
+ int *sense; // State of constraints
104
+ c_float *scaling; // normalizations
105
+ c_float *RinvD; // in case Rinv is diagonal
106
+
107
+
108
+ // Iterates
109
+ c_float *x; // The final primal solution
110
+ c_float *xold; // The latest primal solution (used for proximal-point iteratios)
111
+
112
+ c_float* lam; // Dual iterate
113
+ c_float* lam_star; // Current constrained stationary point
114
+ c_float* u; // Stores Mk' lam_star
115
+ c_float fval;
116
+
117
+ // LDL factors (Mk Mk' = L D L')
118
+ c_float *L;
119
+ c_float *D;
120
+ // Intermittent variables (LDL')
121
+ c_float* xldl; // Solution to L xdldl = -dk
122
+ c_float* zldl; // zldl_i = xldl_i/D_i
123
+ int reuse_ind; // How much work that can be saved when solving Mk Mk' lam* = -dk
124
+
125
+ int *WS; // Working set, size: maximum number of constraints (n+ns+1)
126
+ int n_active; // Number of active contraints
127
+
128
+ int iterations;
129
+ int sing_ind; // Flag for denoting whether Mk Mk' is singular or not
130
+
131
+
132
+ // Soft constraint
133
+ c_float soft_slack;
134
+ #ifdef SOFT_WEIGHTS
135
+ // The softened objective is given by
136
+ // min 0.5 x'*H*x + f'x + 0.5 su'su+0.5*sl'sl,
137
+ // and the softened constraints are given by (similar for simple bounds)
138
+ // lbA-rho_ls*sl <= A*x <= ubA+rho_us*su,
139
+ // with the bounds sl >= d_ls, su >= d_us
140
+ // note that lbA/ubA is assumed to be shifted with rho_ls*d_ls and rho_us*d_us
141
+ // since the slacks are assumed to be active at their bounds by default.
142
+
143
+ // size of the following is m; values are only used if index set to SOFT.
144
+ c_float *d_ls;
145
+ c_float *d_us;
146
+ c_float *rho_ls;
147
+ c_float *rho_us;
148
+ #endif
149
+
150
+ // Settings
151
+ DAQPSettings* settings;
152
+
153
+ // BnB
154
+ DAQPBnB* bnb;
155
+ }DAQPWorkspace;
156
+
157
+ # ifdef __cplusplus
158
+ }
159
+ # endif // ifdef __cplusplus
160
+
161
+ #endif //ifndef DAQP_TYPES_H
@@ -0,0 +1,44 @@
1
+ #ifndef DAQP_UTILS_H
2
+ # define DAQP_UTILS_H
3
+
4
+ # ifdef __cplusplus
5
+ extern "C" {
6
+ # endif // ifdef __cplusplus
7
+
8
+ #include "daqp.h"
9
+ // Utils for transforming QP to LDP
10
+ int update_ldp(const int mask, DAQPWorkspace *work);
11
+ int update_Rinv(DAQPWorkspace *work);
12
+ void update_M(DAQPWorkspace *work, const int mask);
13
+ void update_v(c_float *f, DAQPWorkspace *work, const int mask);
14
+ void update_d(DAQPWorkspace *work);
15
+ void normalize_Rinv(DAQPWorkspace *work);
16
+ void normalize_M(DAQPWorkspace *work);
17
+ //
18
+ // Utils for profiling
19
+ #ifdef PROFILING
20
+ #ifdef _WIN32
21
+ #include <windows.h>
22
+ typedef struct{
23
+ LARGE_INTEGER start;
24
+ LARGE_INTEGER stop;
25
+ }DAQPtimer;
26
+ #else // not _WIN32
27
+ #include <time.h>
28
+ typedef struct{
29
+ struct timespec start;
30
+ struct timespec stop;
31
+ }DAQPtimer;
32
+ #endif // _WIN32
33
+
34
+
35
+ void tic(DAQPtimer *timer);
36
+ void toc(DAQPtimer *timer);
37
+ double get_time(DAQPtimer *timer);
38
+ #endif // PROFILING
39
+
40
+ # ifdef __cplusplus
41
+ }
42
+ # endif // ifdef __cplusplus
43
+
44
+ #endif //ifndef DAQP_UTILS_H
@@ -1,20 +1,21 @@
1
1
  #ifndef HCONFIG_H_
2
2
  #define HCONFIG_H_
3
3
 
4
- /* #undef FAST_BUILD */
4
+ #define FAST_BUILD
5
5
  #define ZLIB_FOUND
6
+ /* #undef CUPDLP_CPU */
6
7
  #define CMAKE_BUILD_TYPE "Release"
7
8
  #define CMAKE_INSTALL_PREFIX "/work/build/external_projects"
8
9
  /* #undef HIGHSINT64 */
10
+ /* #undef HIGHS_NO_DEFAULT_THREADS */
9
11
  #define HIGHS_HAVE_MM_PAUSE
10
12
  #define HIGHS_HAVE_BUILTIN_CLZ
11
13
  /* #undef HIGHS_HAVE_BITSCAN_REVERSE */
12
14
 
13
- #define HIGHS_GITHASH "21da9b90e"
14
- #define HIGHS_COMPILATION_DATE "2023-11-07"
15
+ #define HIGHS_GITHASH "5ce7a2753"
15
16
  #define HIGHS_VERSION_MAJOR 1
16
- #define HIGHS_VERSION_MINOR 6
17
- #define HIGHS_VERSION_PATCH 0
17
+ #define HIGHS_VERSION_MINOR 7
18
+ #define HIGHS_VERSION_PATCH 2
18
19
  #define HIGHS_DIR "/work/build/external_projects/src/highs-external"
19
20
 
20
21
  #endif /* HCONFIG_H_ */
@@ -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