casadi 3.6.5__cp38-none-macosx_11_0_arm64.whl → 3.6.7__cp38-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 (649) hide show
  1. casadi/_casadi.so +0 -0
  2. casadi/casadi-cli +0 -0
  3. casadi/casadi.py +739 -308
  4. casadi/cbc +0 -0
  5. casadi/clp +0 -0
  6. casadi/cmake/casadi-config-version.cmake +1 -1
  7. casadi/cmake/casadi-targets.cmake +10 -6
  8. casadi/cmake/highs/highs-config.cmake +6 -13
  9. casadi/cmake/highs/highs-targets-release.cmake +13 -13
  10. casadi/cmake/highs/highs-targets.cmake +25 -22
  11. casadi/cmake/osqp/osqp-targets.cmake +10 -6
  12. casadi/cmake/proxsuite/proxsuiteConfigVersion.cmake +0 -5
  13. casadi/cmake/proxsuite/proxsuiteTargets.cmake +12 -12
  14. casadi/cmake/qdldl/qdldl-targets.cmake +10 -6
  15. casadi/cmake/sleqp/sleqp-config-version.cmake +0 -5
  16. casadi/cmake/sleqp/sleqp-targets.cmake +10 -6
  17. casadi/cmake/trlib/trlib-config-release.cmake +1 -1
  18. casadi/cmake/trlib/trlib-config-version.cmake +0 -5
  19. casadi/cmake/trlib/trlib-config.cmake +12 -12
  20. casadi/highs +0 -0
  21. casadi/include/casadi/casadi.i +3 -0
  22. casadi/include/casadi/casadi_c.h +2 -0
  23. casadi/include/casadi/config.h +9 -9
  24. casadi/include/casadi/core/casadi_common.hpp +1 -0
  25. casadi/include/casadi/core/casadi_export.h +1 -0
  26. casadi/include/casadi/core/casadi_misc.hpp +52 -0
  27. casadi/include/casadi/core/casadi_types.hpp +3 -2
  28. casadi/include/casadi/core/code_generator.hpp +30 -1
  29. casadi/include/casadi/core/global_options.hpp +2 -0
  30. casadi/include/casadi/core/mx.hpp +18 -3
  31. casadi/include/casadi/core/optistack.hpp +23 -0
  32. casadi/include/casadi/core/runtime/casadi_nlp.hpp +19 -4
  33. casadi/include/casadi/core/runtime/casadi_ocp_block.hpp +55 -0
  34. casadi/include/casadi/core/runtime/casadi_oracle.hpp +44 -0
  35. casadi/include/casadi/core/runtime/casadi_oracle_callback.hpp +39 -0
  36. casadi/include/casadi/core/runtime/casadi_runtime.hpp +4 -1
  37. casadi/include/casadi/core/runtime/casadi_scaled_copy.hpp +31 -0
  38. casadi/include/casadi/core/serializing_stream.hpp +2 -2
  39. casadi/include/casadi/core/sparsity.hpp +7 -0
  40. casadi/include/casadi/doc.i +1513 -1016
  41. casadi/include/casadi/doc_merged.i +965 -719
  42. casadi/include/casadi/mem.h +1 -0
  43. casadi/include/daqp/api.h +46 -0
  44. casadi/include/daqp/auxiliary.h +29 -0
  45. casadi/include/daqp/bnb.h +32 -0
  46. casadi/include/daqp/codegen.h +18 -0
  47. casadi/include/daqp/constants.h +92 -0
  48. casadi/include/daqp/daqp.h +22 -0
  49. casadi/include/daqp/daqp_prox.h +18 -0
  50. casadi/include/daqp/factorization.h +18 -0
  51. casadi/include/daqp/types.h +161 -0
  52. casadi/include/daqp/utils.h +44 -0
  53. casadi/include/fatrop/auxiliary/Common.hpp +34 -0
  54. casadi/include/fatrop/auxiliary/DynamicLib.hpp +34 -0
  55. casadi/include/fatrop/auxiliary/FatropOptions.hpp +68 -0
  56. casadi/include/fatrop/auxiliary/FatropVector.hpp +143 -0
  57. casadi/include/fatrop/auxiliary/LinearAlgebra.hpp +88 -0
  58. casadi/include/fatrop/auxiliary/VectorUtils.hpp +54 -0
  59. casadi/include/fatrop/blasfeo_wrapper/LinearAlgebraBlasfeo.hpp +493 -0
  60. casadi/include/fatrop/fatrop.hpp +39 -0
  61. casadi/include/fatrop/function_evaluation/CasadiCodegen.hpp +104 -0
  62. casadi/include/fatrop/function_evaluation/FunctionEvaluation.hpp +60 -0
  63. casadi/include/fatrop/json/json.h +946 -0
  64. casadi/include/fatrop/ocp/CasadiCApiUserdataWrap.hpp +87 -0
  65. casadi/include/fatrop/ocp/DuInfEvaluator.hpp +38 -0
  66. casadi/include/fatrop/ocp/FatropOCP.hpp +161 -0
  67. casadi/include/fatrop/ocp/FatropOCPBuilder.hpp +52 -0
  68. casadi/include/fatrop/ocp/FatropOCPResto.hpp +299 -0
  69. casadi/include/fatrop/ocp/OCP.hpp +82 -0
  70. casadi/include/fatrop/ocp/OCPAbstract.hpp +254 -0
  71. casadi/include/fatrop/ocp/OCPAdapter.hpp +197 -0
  72. casadi/include/fatrop/ocp/OCPCInterface.h +289 -0
  73. casadi/include/fatrop/ocp/OCPDims.hpp +60 -0
  74. casadi/include/fatrop/ocp/OCPInitializer.hpp +41 -0
  75. casadi/include/fatrop/ocp/OCPKKT.hpp +69 -0
  76. casadi/include/fatrop/ocp/OCPLSRiccati.hpp +198 -0
  77. casadi/include/fatrop/ocp/OCPLSScaler.hpp +66 -0
  78. casadi/include/fatrop/ocp/OCPLinearSolver.hpp +75 -0
  79. casadi/include/fatrop/ocp/OCPNoScaling.hpp +42 -0
  80. casadi/include/fatrop/ocp/OCPScalingMethod.hpp +42 -0
  81. casadi/include/fatrop/ocp/StageOCP.hpp +592 -0
  82. casadi/include/fatrop/ocp/StageOCPApplication.hpp +242 -0
  83. casadi/include/fatrop/ocp/StageOCPExpressions.hpp +182 -0
  84. casadi/include/fatrop/ocp/UStageEvalAbstract.hpp +168 -0
  85. casadi/include/fatrop/ocp/UStageOCPImpl.hpp +152 -0
  86. casadi/include/fatrop/quasi_newton/bfgs.hpp +159 -0
  87. casadi/include/fatrop/solver/AlgBuilder.hpp +76 -0
  88. casadi/include/fatrop/solver/AlgStrategy.hpp +33 -0
  89. casadi/include/fatrop/solver/FatropAlg.hpp +121 -0
  90. casadi/include/fatrop/solver/FatropData.hpp +188 -0
  91. casadi/include/fatrop/solver/FatropOptions.hpp +95 -0
  92. casadi/include/fatrop/solver/FatropPrinter.hpp +65 -0
  93. casadi/include/fatrop/solver/FatropStats.hpp +63 -0
  94. casadi/include/fatrop/solver/Filter.hpp +54 -0
  95. casadi/include/fatrop/solver/IterationData.hpp +56 -0
  96. casadi/include/fatrop/solver/LineSearch.hpp +86 -0
  97. casadi/include/fatrop/solver/NLPL1.hpp +263 -0
  98. casadi/include/fatrop/templates/NLPAlg.hpp +104 -0
  99. casadi/include/highs/HConfig.h +8 -7
  100. casadi/include/highs/Highs.h +93 -23
  101. casadi/include/highs/filereaderlp/def.hpp +19 -0
  102. casadi/include/highs/interfaces/highs_c_api.h +200 -24
  103. casadi/include/highs/io/Filereader.h +1 -1
  104. casadi/include/highs/io/FilereaderEms.h +1 -1
  105. casadi/include/highs/io/FilereaderLp.h +1 -1
  106. casadi/include/highs/io/FilereaderMps.h +1 -1
  107. casadi/include/highs/io/HMPSIO.h +1 -1
  108. casadi/include/highs/io/HMpsFF.h +5 -3
  109. casadi/include/highs/io/HighsIO.h +18 -8
  110. casadi/include/highs/io/LoadOptions.h +1 -1
  111. casadi/include/highs/ipm/IpxSolution.h +35 -0
  112. casadi/include/highs/ipm/IpxWrapper.h +1 -1
  113. casadi/include/highs/ipm/basiclu/basiclu.h +161 -0
  114. casadi/include/highs/ipm/basiclu/basiclu_factorize.h +247 -0
  115. casadi/include/highs/ipm/basiclu/basiclu_get_factors.h +108 -0
  116. casadi/include/highs/ipm/basiclu/basiclu_initialize.h +119 -0
  117. casadi/include/highs/ipm/basiclu/basiclu_obj_factorize.h +34 -0
  118. casadi/include/highs/ipm/basiclu/basiclu_obj_free.h +19 -0
  119. casadi/include/highs/ipm/basiclu/basiclu_obj_get_factors.h +34 -0
  120. casadi/include/highs/ipm/basiclu/basiclu_obj_initialize.h +46 -0
  121. casadi/include/highs/ipm/basiclu/basiclu_obj_solve_dense.h +29 -0
  122. casadi/include/highs/ipm/basiclu/basiclu_obj_solve_for_update.h +42 -0
  123. casadi/include/highs/ipm/basiclu/basiclu_obj_solve_sparse.h +32 -0
  124. casadi/include/highs/ipm/basiclu/basiclu_obj_update.h +31 -0
  125. casadi/include/highs/ipm/basiclu/basiclu_object.h +30 -0
  126. casadi/include/highs/ipm/basiclu/basiclu_solve_dense.h +75 -0
  127. casadi/include/highs/ipm/basiclu/basiclu_solve_for_update.h +169 -0
  128. casadi/include/highs/ipm/basiclu/basiclu_solve_sparse.h +112 -0
  129. casadi/include/highs/ipm/basiclu/basiclu_update.h +125 -0
  130. casadi/include/highs/ipm/basiclu/lu_def.h +39 -0
  131. casadi/include/highs/ipm/basiclu/lu_file.h +21 -0
  132. casadi/include/highs/ipm/basiclu/lu_internal.h +220 -0
  133. casadi/include/highs/ipm/basiclu/lu_list.h +168 -0
  134. casadi/include/highs/ipm/ipx/basiclu_kernel.h +20 -0
  135. casadi/include/highs/ipm/ipx/basiclu_wrapper.h +47 -0
  136. casadi/include/highs/ipm/ipx/basis.h +351 -0
  137. casadi/include/highs/ipm/ipx/conjugate_residuals.h +74 -0
  138. casadi/include/highs/ipm/ipx/control.h +163 -0
  139. casadi/include/highs/ipm/ipx/crossover.h +157 -0
  140. casadi/include/highs/ipm/ipx/diagonal_precond.h +45 -0
  141. casadi/include/highs/ipm/ipx/forrest_tomlin.h +102 -0
  142. casadi/include/highs/ipm/ipx/guess_basis.h +21 -0
  143. casadi/include/highs/ipm/ipx/indexed_vector.h +113 -0
  144. casadi/include/highs/ipm/ipx/info.h +27 -0
  145. casadi/include/highs/ipm/ipx/ipm.h +94 -0
  146. casadi/include/highs/ipm/ipx/ipx_c.h +47 -0
  147. casadi/include/highs/ipm/ipx/ipx_config.h +9 -0
  148. casadi/include/highs/ipm/ipx/ipx_info.h +111 -0
  149. casadi/include/highs/ipm/ipx/ipx_internal.h +88 -0
  150. casadi/include/highs/ipm/ipx/ipx_parameters.h +75 -0
  151. casadi/include/highs/ipm/ipx/ipx_status.h +57 -0
  152. casadi/include/highs/ipm/ipx/iterate.h +328 -0
  153. casadi/include/highs/ipm/ipx/kkt_solver.h +70 -0
  154. casadi/include/highs/ipm/ipx/kkt_solver_basis.h +66 -0
  155. casadi/include/highs/ipm/ipx/kkt_solver_diag.h +48 -0
  156. casadi/include/highs/ipm/ipx/linear_operator.h +26 -0
  157. casadi/include/highs/ipm/ipx/lp_solver.h +201 -0
  158. casadi/include/highs/ipm/ipx/lu_factorization.h +79 -0
  159. casadi/include/highs/ipm/ipx/lu_update.h +129 -0
  160. casadi/include/highs/ipm/ipx/maxvolume.h +54 -0
  161. casadi/include/highs/ipm/ipx/model.h +409 -0
  162. casadi/include/highs/ipm/ipx/multistream.h +52 -0
  163. casadi/include/highs/ipm/ipx/normal_matrix.h +44 -0
  164. casadi/include/highs/ipm/ipx/power_method.h +44 -0
  165. casadi/include/highs/ipm/ipx/sparse_matrix.h +195 -0
  166. casadi/include/highs/ipm/ipx/sparse_utils.h +58 -0
  167. casadi/include/highs/ipm/ipx/splitted_normal_matrix.h +63 -0
  168. casadi/include/highs/ipm/ipx/starting_basis.h +39 -0
  169. casadi/include/highs/ipm/ipx/symbolic_invert.h +29 -0
  170. casadi/include/highs/ipm/ipx/timer.h +24 -0
  171. casadi/include/highs/ipm/ipx/utils.h +39 -0
  172. casadi/include/highs/lp_data/HConst.h +20 -10
  173. casadi/include/highs/lp_data/HStruct.h +23 -1
  174. casadi/include/highs/lp_data/HighsAnalysis.h +1 -1
  175. casadi/include/highs/lp_data/HighsCallback.h +10 -3
  176. casadi/include/highs/lp_data/HighsCallbackStruct.h +31 -5
  177. casadi/include/highs/lp_data/HighsDebug.h +1 -1
  178. casadi/include/highs/lp_data/HighsInfo.h +20 -2
  179. casadi/include/highs/lp_data/HighsInfoDebug.h +1 -1
  180. casadi/include/highs/lp_data/HighsLp.h +17 -1
  181. casadi/include/highs/lp_data/HighsLpSolverObject.h +1 -1
  182. casadi/include/highs/lp_data/HighsLpUtils.h +19 -19
  183. casadi/include/highs/lp_data/HighsModelUtils.h +1 -1
  184. casadi/include/highs/lp_data/HighsOptions.h +237 -10
  185. casadi/include/highs/lp_data/HighsRanging.h +1 -1
  186. casadi/include/highs/lp_data/HighsRuntimeOptions.h +2 -2
  187. casadi/include/highs/lp_data/HighsSolution.h +2 -2
  188. casadi/include/highs/lp_data/HighsSolutionDebug.h +1 -1
  189. casadi/include/highs/lp_data/HighsSolve.h +3 -1
  190. casadi/include/highs/lp_data/HighsStatus.h +1 -1
  191. casadi/include/highs/mip/HighsCliqueTable.h +4 -4
  192. casadi/include/highs/mip/HighsConflictPool.h +1 -1
  193. casadi/include/highs/mip/HighsCutGeneration.h +1 -1
  194. casadi/include/highs/mip/HighsCutPool.h +2 -2
  195. casadi/include/highs/mip/HighsDebugSol.h +22 -29
  196. casadi/include/highs/mip/HighsDomain.h +10 -2
  197. casadi/include/highs/mip/HighsDomainChange.h +1 -1
  198. casadi/include/highs/mip/HighsDynamicRowMatrix.h +5 -3
  199. casadi/include/highs/mip/HighsGFkSolve.h +3 -3
  200. casadi/include/highs/mip/HighsImplications.h +3 -3
  201. casadi/include/highs/mip/HighsLpAggregator.h +1 -1
  202. casadi/include/highs/mip/HighsLpRelaxation.h +6 -1
  203. casadi/include/highs/mip/HighsMipSolver.h +4 -2
  204. casadi/include/highs/mip/HighsMipSolverData.h +47 -4
  205. casadi/include/highs/mip/HighsModkSeparator.h +2 -2
  206. casadi/include/highs/mip/HighsNodeQueue.h +5 -3
  207. casadi/include/highs/mip/HighsObjectiveFunction.h +1 -1
  208. casadi/include/highs/mip/HighsPathSeparator.h +2 -2
  209. casadi/include/highs/mip/HighsPrimalHeuristics.h +1 -1
  210. casadi/include/highs/mip/HighsPseudocost.h +35 -23
  211. casadi/include/highs/mip/HighsRedcostFixing.h +1 -1
  212. casadi/include/highs/mip/HighsSearch.h +2 -1
  213. casadi/include/highs/mip/HighsSeparation.h +1 -1
  214. casadi/include/highs/mip/HighsSeparator.h +1 -1
  215. casadi/include/highs/mip/HighsTableauSeparator.h +1 -1
  216. casadi/include/highs/mip/HighsTransformedLp.h +1 -1
  217. casadi/include/highs/model/HighsHessian.h +5 -0
  218. casadi/include/highs/model/HighsHessianUtils.h +2 -0
  219. casadi/include/highs/model/HighsModel.h +10 -1
  220. casadi/include/highs/parallel/HighsMutex.h +2 -1
  221. casadi/include/highs/parallel/HighsParallel.h +7 -2
  222. casadi/include/highs/parallel/HighsTask.h +1 -2
  223. casadi/include/highs/pdlp/CupdlpWrapper.h +93 -0
  224. casadi/include/highs/pdlp/cupdlp/cupdlp_cs.h +41 -0
  225. casadi/include/highs/pdlp/cupdlp/cupdlp_defs.h +423 -0
  226. casadi/include/highs/pdlp/cupdlp/cupdlp_linalg.h +183 -0
  227. casadi/include/highs/pdlp/cupdlp/cupdlp_proj.h +19 -0
  228. casadi/include/highs/pdlp/cupdlp/cupdlp_restart.h +31 -0
  229. casadi/include/highs/pdlp/cupdlp/cupdlp_scaling_cuda.h +28 -0
  230. casadi/include/highs/pdlp/cupdlp/cupdlp_solver.h +98 -0
  231. casadi/include/highs/pdlp/cupdlp/cupdlp_step.h +33 -0
  232. casadi/include/highs/pdlp/cupdlp/cupdlp_utils.c +1726 -0
  233. casadi/include/highs/pdqsort/pdqsort.h +532 -0
  234. casadi/include/highs/presolve/HPresolve.h +27 -14
  235. casadi/include/highs/presolve/HPresolveAnalysis.h +1 -1
  236. casadi/include/highs/presolve/HighsPostsolveStack.h +92 -68
  237. casadi/include/highs/presolve/HighsSymmetry.h +6 -5
  238. casadi/include/highs/presolve/ICrash.h +8 -2
  239. casadi/include/highs/presolve/ICrashUtil.h +1 -1
  240. casadi/include/highs/presolve/ICrashX.h +1 -1
  241. casadi/include/highs/presolve/PresolveComponent.h +1 -1
  242. casadi/include/highs/qpsolver/a_asm.hpp +23 -12
  243. casadi/include/highs/qpsolver/a_quass.hpp +8 -1
  244. casadi/include/highs/qpsolver/basis.hpp +150 -0
  245. casadi/include/highs/qpsolver/crashsolution.hpp +12 -0
  246. casadi/include/highs/qpsolver/dantzigpricing.hpp +72 -0
  247. casadi/include/highs/qpsolver/devexpricing.hpp +99 -0
  248. casadi/include/highs/qpsolver/eventhandler.hpp +23 -0
  249. casadi/include/highs/qpsolver/factor.hpp +400 -0
  250. casadi/include/highs/qpsolver/feasibility_bounded.hpp +105 -0
  251. casadi/include/highs/qpsolver/feasibility_highs.hpp +270 -0
  252. casadi/include/highs/qpsolver/gradient.hpp +39 -0
  253. casadi/include/highs/qpsolver/instance.hpp +63 -0
  254. casadi/include/highs/qpsolver/matrix.hpp +335 -0
  255. casadi/include/highs/qpsolver/pricing.hpp +15 -0
  256. casadi/include/highs/qpsolver/qpconst.hpp +27 -0
  257. casadi/include/highs/qpsolver/{vector.hpp → qpvector.hpp} +25 -25
  258. casadi/include/highs/qpsolver/quass.hpp +1 -1
  259. casadi/include/highs/qpsolver/ratiotest.hpp +19 -0
  260. casadi/include/highs/qpsolver/runtime.hpp +38 -0
  261. casadi/include/highs/qpsolver/settings.hpp +57 -0
  262. casadi/include/highs/qpsolver/snippets.hpp +29 -0
  263. casadi/include/highs/qpsolver/statistics.hpp +23 -0
  264. casadi/include/highs/qpsolver/steepestedgepricing.hpp +167 -0
  265. casadi/include/highs/simplex/HApp.h +1 -1
  266. casadi/include/highs/simplex/HEkk.h +52 -18
  267. casadi/include/highs/simplex/HEkkDual.h +1 -1
  268. casadi/include/highs/simplex/HEkkDualRHS.h +6 -7
  269. casadi/include/highs/simplex/HEkkDualRow.h +2 -2
  270. casadi/include/highs/simplex/HEkkPrimal.h +6 -1
  271. casadi/include/highs/simplex/HSimplex.h +1 -3
  272. casadi/include/highs/simplex/HSimplexDebug.h +1 -1
  273. casadi/include/highs/simplex/HSimplexNla.h +1 -1
  274. casadi/include/highs/simplex/HSimplexReport.h +1 -1
  275. casadi/include/highs/simplex/HighsSimplexAnalysis.h +228 -100
  276. casadi/include/highs/simplex/SimplexConst.h +1 -1
  277. casadi/include/highs/simplex/SimplexStruct.h +2 -2
  278. casadi/include/highs/simplex/SimplexTimer.h +1 -1
  279. casadi/include/highs/test/DevKkt.h +1 -1
  280. casadi/include/highs/test/KktCh2.h +1 -1
  281. casadi/include/highs/util/FactorTimer.h +1 -1
  282. casadi/include/highs/util/HFactor.h +35 -6
  283. casadi/include/highs/util/HFactorConst.h +1 -1
  284. casadi/include/highs/util/HFactorDebug.h +1 -1
  285. casadi/include/highs/util/HSet.h +1 -1
  286. casadi/include/highs/util/HVector.h +1 -1
  287. casadi/include/highs/util/HVectorBase.h +1 -1
  288. casadi/include/highs/util/HighsCDouble.h +3 -3
  289. casadi/include/highs/util/HighsComponent.h +1 -1
  290. casadi/include/highs/util/HighsDataStack.h +4 -4
  291. casadi/include/highs/util/HighsDisjointSets.h +1 -1
  292. casadi/include/highs/util/HighsHash.h +28 -21
  293. casadi/include/highs/util/HighsHashTree.h +63 -63
  294. casadi/include/highs/util/HighsInt.h +1 -1
  295. casadi/include/highs/util/HighsIntegers.h +8 -9
  296. casadi/include/highs/util/HighsLinearSumBounds.h +1 -1
  297. casadi/include/highs/util/HighsMatrixPic.h +1 -1
  298. casadi/include/highs/util/HighsMatrixSlice.h +9 -6
  299. casadi/include/highs/util/HighsMatrixUtils.h +1 -1
  300. casadi/include/highs/util/HighsMemoryAllocation.h +55 -0
  301. casadi/include/highs/util/HighsRandom.h +27 -15
  302. casadi/include/highs/util/HighsRbTree.h +2 -2
  303. casadi/include/highs/util/HighsSort.h +7 -7
  304. casadi/include/highs/util/HighsSparseMatrix.h +5 -2
  305. casadi/include/highs/util/HighsSparseVectorSum.h +2 -2
  306. casadi/include/highs/util/HighsSplay.h +1 -1
  307. casadi/include/highs/util/HighsTimer.h +18 -9
  308. casadi/include/highs/util/HighsUtils.h +15 -8
  309. casadi/include/highs/util/stringutil.h +9 -4
  310. casadi/include/highs/zstr/strict_fstream.hpp +237 -0
  311. casadi/include/highs/zstr/zstr.hpp +472 -0
  312. casadi/include/highs_export.h +43 -0
  313. casadi/include/licenses/daqp-external/LICENSE +21 -0
  314. casadi/include/licenses/{alpaqa-external/LICENSE → fatrop-external/LICENSE.txt} +2 -2
  315. casadi/include/licenses/fatrop-external/external/blasfeo/LICENSE.txt +26 -0
  316. casadi/include/licenses/fatrop-external/external/pybind11/LICENSE +29 -0
  317. casadi/include/licenses/fatrop-external/misc/license_header.txt +17 -0
  318. casadi/include/licenses/highs-external/{LICENSE → LICENSE.txt} +1 -1
  319. casadi/include/osqp/constants.h +2 -3
  320. casadi/include/osqp/version.h +9 -0
  321. casadi/include/sleqp/defs.h +4 -4
  322. casadi/include/sleqp/export.h +1 -0
  323. casadi/lib/cmake/tinyxml2/tinyxml2-config-version.cmake +0 -5
  324. casadi/lib/cmake/tinyxml2/tinyxml2-static-targets.cmake +10 -6
  325. casadi/lib/libtinyxml2.a +0 -0
  326. casadi/lib/pkgconfig/tinyxml2.pc +1 -1
  327. casadi/libCbc.3.10.11.dylib +0 -0
  328. casadi/libCbc.3.dylib +0 -0
  329. casadi/libCbc.dylib +0 -0
  330. casadi/libCbc.la +2 -2
  331. casadi/libCbcSolver.3.10.11.dylib +0 -0
  332. casadi/libCbcSolver.3.dylib +0 -0
  333. casadi/libCbcSolver.dylib +0 -0
  334. casadi/libCbcSolver.la +2 -2
  335. casadi/libCgl.1.10.8.dylib +0 -0
  336. casadi/libCgl.1.dylib +0 -0
  337. casadi/libCgl.dylib +0 -0
  338. casadi/libCgl.la +2 -2
  339. casadi/libClp.1.14.9.dylib +0 -0
  340. casadi/libClp.1.dylib +0 -0
  341. casadi/libClp.dylib +0 -0
  342. casadi/libClp.la +2 -2
  343. casadi/libClpSolver.1.14.9.dylib +0 -0
  344. casadi/libClpSolver.1.dylib +0 -0
  345. casadi/libClpSolver.dylib +0 -0
  346. casadi/libClpSolver.la +2 -2
  347. casadi/libCoinUtils.3.11.10.dylib +0 -0
  348. casadi/libCoinUtils.3.dylib +0 -0
  349. casadi/libCoinUtils.dylib +0 -0
  350. casadi/libCoinUtils.la +1 -1
  351. casadi/libOsi.1.13.9.dylib +0 -0
  352. casadi/libOsi.1.dylib +0 -0
  353. casadi/libOsi.dylib +0 -0
  354. casadi/libOsi.la +2 -2
  355. casadi/libOsiCbc.3.10.11.dylib +0 -0
  356. casadi/libOsiCbc.3.dylib +0 -0
  357. casadi/libOsiCbc.dylib +0 -0
  358. casadi/libOsiCbc.la +2 -2
  359. casadi/libOsiClp.1.14.9.dylib +0 -0
  360. casadi/libOsiClp.1.dylib +0 -0
  361. casadi/libOsiClp.dylib +0 -0
  362. casadi/libOsiClp.la +2 -2
  363. casadi/libOsiCommonTests.1.13.9.dylib +0 -0
  364. casadi/libOsiCommonTests.1.dylib +0 -0
  365. casadi/libOsiCommonTests.dylib +0 -0
  366. casadi/libOsiCommonTests.la +2 -2
  367. casadi/libblasfeo.dylib +0 -0
  368. casadi/libbonmin.4.8.9.dylib +0 -0
  369. casadi/libbonmin.4.dylib +0 -0
  370. casadi/libbonmin.dylib +0 -0
  371. casadi/libbonmin.la +2 -2
  372. casadi/libc++.1.0.dylib +0 -0
  373. casadi/libcasadi.3.7.dylib +0 -0
  374. casadi/libcasadi.dylib +0 -0
  375. casadi/libcasadi_conic_cbc.3.7.dylib +0 -0
  376. casadi/libcasadi_conic_cbc.dylib +0 -0
  377. casadi/libcasadi_conic_clp.3.7.dylib +0 -0
  378. casadi/libcasadi_conic_clp.dylib +0 -0
  379. casadi/libcasadi_conic_cplex.3.7.dylib +0 -0
  380. casadi/libcasadi_conic_cplex.dylib +0 -0
  381. casadi/libcasadi_conic_daqp.3.7.dylib +0 -0
  382. casadi/libcasadi_conic_daqp.dylib +0 -0
  383. casadi/libcasadi_conic_fatrop.3.7.dylib +0 -0
  384. casadi/libcasadi_conic_fatrop.dylib +0 -0
  385. casadi/libcasadi_conic_gurobi.3.7.dylib +0 -0
  386. casadi/libcasadi_conic_gurobi.dylib +0 -0
  387. casadi/libcasadi_conic_highs.3.7.dylib +0 -0
  388. casadi/libcasadi_conic_highs.dylib +0 -0
  389. casadi/libcasadi_conic_ipqp.3.7.dylib +0 -0
  390. casadi/libcasadi_conic_ipqp.dylib +0 -0
  391. casadi/libcasadi_conic_nlpsol.3.7.dylib +0 -0
  392. casadi/libcasadi_conic_nlpsol.dylib +0 -0
  393. casadi/libcasadi_conic_osqp.3.7.dylib +0 -0
  394. casadi/libcasadi_conic_osqp.dylib +0 -0
  395. casadi/libcasadi_conic_proxqp.3.7.dylib +0 -0
  396. casadi/libcasadi_conic_proxqp.dylib +0 -0
  397. casadi/libcasadi_conic_qpoases.3.7.dylib +0 -0
  398. casadi/libcasadi_conic_qpoases.dylib +0 -0
  399. casadi/libcasadi_conic_qrqp.3.7.dylib +0 -0
  400. casadi/libcasadi_conic_qrqp.dylib +0 -0
  401. casadi/libcasadi_conic_superscs.3.7.dylib +0 -0
  402. casadi/libcasadi_conic_superscs.dylib +0 -0
  403. casadi/libcasadi_importer_shell.3.7.dylib +0 -0
  404. casadi/libcasadi_importer_shell.dylib +0 -0
  405. casadi/libcasadi_integrator_collocation.3.7.dylib +0 -0
  406. casadi/libcasadi_integrator_collocation.dylib +0 -0
  407. casadi/libcasadi_integrator_cvodes.3.7.dylib +0 -0
  408. casadi/libcasadi_integrator_cvodes.dylib +0 -0
  409. casadi/libcasadi_integrator_idas.3.7.dylib +0 -0
  410. casadi/libcasadi_integrator_idas.dylib +0 -0
  411. casadi/libcasadi_integrator_rk.3.7.dylib +0 -0
  412. casadi/libcasadi_integrator_rk.dylib +0 -0
  413. casadi/libcasadi_interpolant_bspline.3.7.dylib +0 -0
  414. casadi/libcasadi_interpolant_bspline.dylib +0 -0
  415. casadi/libcasadi_interpolant_linear.3.7.dylib +0 -0
  416. casadi/libcasadi_interpolant_linear.dylib +0 -0
  417. casadi/libcasadi_linsol_csparse.3.7.dylib +0 -0
  418. casadi/libcasadi_linsol_csparse.dylib +0 -0
  419. casadi/libcasadi_linsol_csparsecholesky.3.7.dylib +0 -0
  420. casadi/libcasadi_linsol_csparsecholesky.dylib +0 -0
  421. casadi/libcasadi_linsol_lapacklu.3.7.dylib +0 -0
  422. casadi/libcasadi_linsol_lapacklu.dylib +0 -0
  423. casadi/libcasadi_linsol_lapackqr.3.7.dylib +0 -0
  424. casadi/libcasadi_linsol_lapackqr.dylib +0 -0
  425. casadi/libcasadi_linsol_ldl.3.7.dylib +0 -0
  426. casadi/libcasadi_linsol_ldl.dylib +0 -0
  427. casadi/libcasadi_linsol_lsqr.3.7.dylib +0 -0
  428. casadi/libcasadi_linsol_lsqr.dylib +0 -0
  429. casadi/libcasadi_linsol_ma27.3.7.dylib +0 -0
  430. casadi/libcasadi_linsol_ma27.dylib +0 -0
  431. casadi/libcasadi_linsol_mumps.3.7.dylib +0 -0
  432. casadi/libcasadi_linsol_mumps.dylib +0 -0
  433. casadi/libcasadi_linsol_qr.3.7.dylib +0 -0
  434. casadi/libcasadi_linsol_qr.dylib +0 -0
  435. casadi/libcasadi_linsol_symbolicqr.3.7.dylib +0 -0
  436. casadi/libcasadi_linsol_symbolicqr.dylib +0 -0
  437. casadi/libcasadi_linsol_tridiag.3.7.dylib +0 -0
  438. casadi/libcasadi_linsol_tridiag.dylib +0 -0
  439. casadi/libcasadi_nlpsol_ampl.3.7.dylib +0 -0
  440. casadi/libcasadi_nlpsol_ampl.dylib +0 -0
  441. casadi/libcasadi_nlpsol_blocksqp.3.7.dylib +0 -0
  442. casadi/libcasadi_nlpsol_blocksqp.dylib +0 -0
  443. casadi/libcasadi_nlpsol_bonmin.3.7.dylib +0 -0
  444. casadi/libcasadi_nlpsol_bonmin.dylib +0 -0
  445. casadi/libcasadi_nlpsol_fatrop.3.7.dylib +0 -0
  446. casadi/libcasadi_nlpsol_fatrop.dylib +0 -0
  447. casadi/libcasadi_nlpsol_feasiblesqpmethod.3.7.dylib +0 -0
  448. casadi/libcasadi_nlpsol_feasiblesqpmethod.dylib +0 -0
  449. casadi/libcasadi_nlpsol_ipopt.3.7.dylib +0 -0
  450. casadi/libcasadi_nlpsol_ipopt.dylib +0 -0
  451. casadi/libcasadi_nlpsol_knitro.3.7.dylib +0 -0
  452. casadi/libcasadi_nlpsol_knitro.dylib +0 -0
  453. casadi/libcasadi_nlpsol_madnlp.3.7.dylib +0 -0
  454. casadi/libcasadi_nlpsol_madnlp.dylib +0 -0
  455. casadi/libcasadi_nlpsol_qrsqp.3.7.dylib +0 -0
  456. casadi/libcasadi_nlpsol_qrsqp.dylib +0 -0
  457. casadi/libcasadi_nlpsol_scpgen.3.7.dylib +0 -0
  458. casadi/libcasadi_nlpsol_scpgen.dylib +0 -0
  459. casadi/libcasadi_nlpsol_sleqp.3.7.dylib +0 -0
  460. casadi/libcasadi_nlpsol_sleqp.dylib +0 -0
  461. casadi/libcasadi_nlpsol_snopt.3.7.dylib +0 -0
  462. casadi/libcasadi_nlpsol_snopt.dylib +0 -0
  463. casadi/libcasadi_nlpsol_sqpmethod.3.7.dylib +0 -0
  464. casadi/libcasadi_nlpsol_sqpmethod.dylib +0 -0
  465. casadi/libcasadi_rootfinder_fast_newton.3.7.dylib +0 -0
  466. casadi/libcasadi_rootfinder_fast_newton.dylib +0 -0
  467. casadi/libcasadi_rootfinder_kinsol.3.7.dylib +0 -0
  468. casadi/libcasadi_rootfinder_kinsol.dylib +0 -0
  469. casadi/libcasadi_rootfinder_newton.3.7.dylib +0 -0
  470. casadi/libcasadi_rootfinder_newton.dylib +0 -0
  471. casadi/libcasadi_rootfinder_nlpsol.3.7.dylib +0 -0
  472. casadi/libcasadi_rootfinder_nlpsol.dylib +0 -0
  473. casadi/libcasadi_sundials_common.3.7.dylib +0 -0
  474. casadi/libcasadi_sundials_common.dylib +0 -0
  475. casadi/libcasadi_xmlfile_tinyxml.3.7.dylib +0 -0
  476. casadi/libcasadi_xmlfile_tinyxml.dylib +0 -0
  477. casadi/libcoinmetis.2.dylib +0 -0
  478. casadi/libcoinmetis.dylib +0 -0
  479. casadi/libcoinmetis.la +1 -1
  480. casadi/libcoinmumps.3.dylib +0 -0
  481. casadi/libcoinmumps.dylib +0 -0
  482. casadi/libcoinmumps.la +2 -2
  483. casadi/libcplex_adaptor.dylib +0 -0
  484. casadi/{libamd.3.0.3.dylib → libdaqp.dylib} +0 -0
  485. casadi/libdaqpstat.a +0 -0
  486. casadi/libfatrop.dylib +0 -0
  487. casadi/libgcc_s.1.1.dylib +0 -0
  488. casadi/libgfortran.5.dylib +0 -0
  489. casadi/libgurobi_adaptor.dylib +0 -0
  490. casadi/libhighs.1.7.dylib +0 -0
  491. casadi/libhighs.1.dylib +0 -0
  492. casadi/libhighs.dylib +0 -0
  493. casadi/libindirect.a +0 -0
  494. casadi/libipopt.3.dylib +0 -0
  495. casadi/libipopt.dylib +0 -0
  496. casadi/libipopt.la +2 -2
  497. casadi/liblinsys.a +0 -0
  498. casadi/{libsuitesparseconfig.7.0.1.dylib → libmatlab_ipc.dylib} +0 -0
  499. casadi/libosqp.a +0 -0
  500. casadi/libosqp.dylib +0 -0
  501. casadi/libqdldl.a +0 -0
  502. casadi/libqdldl.dylib +0 -0
  503. casadi/libquadmath.0.dylib +0 -0
  504. casadi/libsipopt.3.dylib +0 -0
  505. casadi/libsipopt.dylib +0 -0
  506. casadi/libsipopt.la +2 -2
  507. casadi/libsleqp.1.0.1.dylib +0 -0
  508. casadi/libsleqp.dylib +0 -0
  509. casadi/libsuperscs.a +0 -0
  510. casadi/libtrlib.0.4.dylib +0 -0
  511. casadi/libtrlib.dylib +0 -0
  512. casadi/libz.1.2.13.dylib +0 -0
  513. casadi/pkgconfig/bonmin.pc +1 -1
  514. casadi/pkgconfig/casadi.pc +5 -5
  515. casadi/pkgconfig/cbc.pc +1 -1
  516. casadi/pkgconfig/cgl.pc +1 -1
  517. casadi/pkgconfig/clp.pc +1 -1
  518. casadi/pkgconfig/coinmetis.pc +1 -1
  519. casadi/pkgconfig/coinmumps.pc +2 -2
  520. casadi/pkgconfig/coinutils.pc +2 -2
  521. casadi/pkgconfig/highs.pc +4 -4
  522. casadi/pkgconfig/ipopt.pc +2 -2
  523. casadi/pkgconfig/osi-cbc.pc +1 -1
  524. casadi/pkgconfig/osi-clp.pc +1 -1
  525. casadi/pkgconfig/osi-unittests.pc +1 -1
  526. casadi/pkgconfig/osi.pc +1 -1
  527. casadi/pkgconfig/sleqp.pc +1 -1
  528. casadi/tools/__init__.py +4 -0
  529. casadi/tools/bounds.py +3 -3
  530. {casadi-3.6.5.dist-info → casadi-3.6.7.dist-info}/METADATA +2 -2
  531. {casadi-3.6.5.dist-info → casadi-3.6.7.dist-info}/RECORD +532 -477
  532. casadi/cmake/alpaqa/alpaqaConfig.cmake +0 -24
  533. casadi/cmake/alpaqa/alpaqaConfigVersion.cmake +0 -70
  534. casadi/cmake/alpaqa/alpaqaTargets-release.cmake +0 -19
  535. casadi/cmake/alpaqa/alpaqaTargets.cmake +0 -116
  536. casadi/include/alpaqa/accelerators/anderson.hpp +0 -133
  537. casadi/include/alpaqa/accelerators/internal/anderson-helpers.hpp +0 -92
  538. casadi/include/alpaqa/accelerators/internal/limited-memory-qr.hpp +0 -295
  539. casadi/include/alpaqa/accelerators/lbfgs.hpp +0 -244
  540. casadi/include/alpaqa/accelerators/steihaugcg.hpp +0 -143
  541. casadi/include/alpaqa/alpaqa.hpp +0 -3
  542. casadi/include/alpaqa/casadi/CasADiControlProblem.hpp +0 -185
  543. casadi/include/alpaqa/casadi/CasADiFunctionWrapper.hpp +0 -104
  544. casadi/include/alpaqa/casadi/CasADiProblem.hpp +0 -102
  545. casadi/include/alpaqa/casadi-loader-export.hpp +0 -15
  546. casadi/include/alpaqa/casadi-ocp-loader-export.hpp +0 -15
  547. casadi/include/alpaqa/config/config.hpp +0 -165
  548. casadi/include/alpaqa/dl/dl-problem.h +0 -476
  549. casadi/include/alpaqa/dl/dl-problem.hpp +0 -301
  550. casadi/include/alpaqa/export.h +0 -42
  551. casadi/include/alpaqa/export.hpp +0 -30
  552. casadi/include/alpaqa/implementation/accelerators/lbfgs.tpp +0 -240
  553. casadi/include/alpaqa/implementation/casadi/CasADiControlProblem.tpp +0 -594
  554. casadi/include/alpaqa/implementation/casadi/CasADiLoader-util.hpp +0 -50
  555. casadi/include/alpaqa/implementation/casadi/CasADiProblem.tpp +0 -425
  556. casadi/include/alpaqa/implementation/inner/directions/panoc/structured-lbfgs.tpp +0 -164
  557. casadi/include/alpaqa/implementation/inner/panoc-helpers.tpp +0 -389
  558. casadi/include/alpaqa/implementation/inner/panoc-ocp.tpp +0 -798
  559. casadi/include/alpaqa/implementation/inner/panoc.tpp +0 -448
  560. casadi/include/alpaqa/implementation/inner/pantr.tpp +0 -474
  561. casadi/include/alpaqa/implementation/inner/zerofpr.tpp +0 -482
  562. casadi/include/alpaqa/implementation/outer/alm.tpp +0 -228
  563. casadi/include/alpaqa/implementation/outer/internal/alm-helpers.tpp +0 -80
  564. casadi/include/alpaqa/implementation/params/params.tpp +0 -158
  565. casadi/include/alpaqa/implementation/problem/ocproblem.tpp +0 -56
  566. casadi/include/alpaqa/implementation/problem/type-erased-problem.tpp +0 -211
  567. casadi/include/alpaqa/implementation/util/io/csv.tpp +0 -120
  568. casadi/include/alpaqa/implementation/util/print.tpp +0 -151
  569. casadi/include/alpaqa/inner/directions/panoc/anderson.hpp +0 -98
  570. casadi/include/alpaqa/inner/directions/panoc/lbfgs.hpp +0 -94
  571. casadi/include/alpaqa/inner/directions/panoc/structured-lbfgs.hpp +0 -146
  572. casadi/include/alpaqa/inner/directions/panoc/structured-newton.hpp +0 -264
  573. casadi/include/alpaqa/inner/directions/panoc-direction-update.hpp +0 -96
  574. casadi/include/alpaqa/inner/directions/panoc-ocp/lqr.hpp +0 -181
  575. casadi/include/alpaqa/inner/directions/panoc-ocp/ocp-vars.hpp +0 -492
  576. casadi/include/alpaqa/inner/directions/pantr/newton-tr.hpp +0 -192
  577. casadi/include/alpaqa/inner/directions/pantr/pantr-direction.hpp +0 -99
  578. casadi/include/alpaqa/inner/inner-solve-options.hpp +0 -30
  579. casadi/include/alpaqa/inner/internal/lipschitz.hpp +0 -27
  580. casadi/include/alpaqa/inner/internal/panoc-helpers.hpp +0 -10
  581. casadi/include/alpaqa/inner/internal/panoc-stop-crit.hpp +0 -124
  582. casadi/include/alpaqa/inner/internal/solverstatus.hpp +0 -42
  583. casadi/include/alpaqa/inner/panoc-ocp.hpp +0 -302
  584. casadi/include/alpaqa/inner/panoc.hpp +0 -274
  585. casadi/include/alpaqa/inner/pantr.hpp +0 -284
  586. casadi/include/alpaqa/inner/zerofpr.hpp +0 -274
  587. casadi/include/alpaqa/ipopt/ipopt-adapter.hpp +0 -81
  588. casadi/include/alpaqa/ipopt/ipopt-enums.hpp +0 -35
  589. casadi/include/alpaqa/lbfgsb/lbfgsb-adapter.hpp +0 -111
  590. casadi/include/alpaqa/newton-tr-pantr-alm.hpp +0 -27
  591. casadi/include/alpaqa/outer/alm.hpp +0 -190
  592. casadi/include/alpaqa/outer/internal/alm-helpers.hpp +0 -10
  593. casadi/include/alpaqa/panoc-alm.hpp +0 -27
  594. casadi/include/alpaqa/panoc-anderson-alm.hpp +0 -27
  595. casadi/include/alpaqa/params/params.hpp +0 -60
  596. casadi/include/alpaqa/problem/box-constr-problem.hpp +0 -220
  597. casadi/include/alpaqa/problem/box.hpp +0 -82
  598. casadi/include/alpaqa/problem/functional-problem.hpp +0 -73
  599. casadi/include/alpaqa/problem/kkt-error.hpp +0 -43
  600. casadi/include/alpaqa/problem/ocproblem-counters.hpp +0 -116
  601. casadi/include/alpaqa/problem/ocproblem.hpp +0 -662
  602. casadi/include/alpaqa/problem/problem-counters.hpp +0 -116
  603. casadi/include/alpaqa/problem/problem-with-counters.hpp +0 -141
  604. casadi/include/alpaqa/problem/type-erased-problem.hpp +0 -874
  605. casadi/include/alpaqa/problem/unconstr-problem.hpp +0 -37
  606. casadi/include/alpaqa/structured-panoc-alm.hpp +0 -27
  607. casadi/include/alpaqa/structured-zerofpr-alm.hpp +0 -27
  608. casadi/include/alpaqa/util/alloc-check.hpp +0 -23
  609. casadi/include/alpaqa/util/atomic-stop-signal.hpp +0 -24
  610. casadi/include/alpaqa/util/check-dim.hpp +0 -64
  611. casadi/include/alpaqa/util/copyable_unique_ptr.hpp +0 -32
  612. casadi/include/alpaqa/util/demangled-typename.hpp +0 -9
  613. casadi/include/alpaqa/util/enumerate.hpp +0 -70
  614. casadi/include/alpaqa/util/float.hpp +0 -25
  615. casadi/include/alpaqa/util/index-set.hpp +0 -97
  616. casadi/include/alpaqa/util/io/csv.hpp +0 -43
  617. casadi/include/alpaqa/util/iter-adapter.hpp +0 -68
  618. casadi/include/alpaqa/util/max-history.hpp +0 -47
  619. casadi/include/alpaqa/util/noop-delete.hpp +0 -15
  620. casadi/include/alpaqa/util/not-implemented.hpp +0 -12
  621. casadi/include/alpaqa/util/print.hpp +0 -78
  622. casadi/include/alpaqa/util/quadmath/quadmath-print.hpp +0 -20
  623. casadi/include/alpaqa/util/quadmath/quadmath.hpp +0 -137
  624. casadi/include/alpaqa/util/required-method.hpp +0 -29
  625. casadi/include/alpaqa/util/ringbuffer.hpp +0 -212
  626. casadi/include/alpaqa/util/set-intersection.hpp +0 -129
  627. casadi/include/alpaqa/util/sparse-ops.hpp +0 -164
  628. casadi/include/alpaqa/util/timed.hpp +0 -22
  629. casadi/include/alpaqa/util/type-erasure.hpp +0 -568
  630. casadi/include/alpaqa/util/type-traits.hpp +0 -58
  631. casadi/include/alpaqa/zerofpr-alm.hpp +0 -27
  632. casadi/include/alpaqa/zerofpr-anderson-alm.hpp +0 -27
  633. casadi/include/alpaqa-version.h +0 -8
  634. casadi/include/highs/fortran/highs_fortran_api.mod +0 -0
  635. casadi/include/licenses/alpaqa-external/src/thirdparty/lbfgsb/Lbfgsb.3.0/License.txt +0 -71
  636. casadi/libFortranHighs.dylib +0 -0
  637. casadi/libalpaqa.1.0.0.dylib +0 -0
  638. casadi/libalpaqa.dylib +0 -0
  639. casadi/libcamd.3.0.3.dylib +0 -0
  640. casadi/libcasadi_nlpsol_alpaqa.3.7.dylib +0 -0
  641. casadi/libcasadi_nlpsol_alpaqa.dylib +0 -0
  642. casadi/libccolamd.3.0.3.dylib +0 -0
  643. casadi/libcholmod.4.0.3.dylib +0 -0
  644. casadi/libcholmod_cuda.4.0.3.dylib +0 -0
  645. casadi/libcolamd.3.0.3.dylib +0 -0
  646. casadi/libhighs.1.6.0.dylib +0 -0
  647. casadi/libhighs.1.6.dylib +0 -0
  648. casadi/libumfpack.6.1.0.dylib +0 -0
  649. {casadi-3.6.5.dist-info → casadi-3.6.7.dist-info}/WHEEL +0 -0
@@ -2,7 +2,7 @@
2
2
  /* */
3
3
  /* This file is part of the HiGHS linear optimization suite */
4
4
  /* */
5
- /* Written and engineered 2008-2023 by Julian Hall, Ivet Galabova, */
5
+ /* Written and engineered 2008-2024 by Julian Hall, Ivet Galabova, */
6
6
  /* Leona Gottwald and Michael Feldmeier */
7
7
  /* */
8
8
  /* Available as open-source under the MIT License */
@@ -16,6 +16,7 @@
16
16
  #ifndef PRESOLVE_HIGHS_POSTSOLVE_STACK_H_
17
17
  #define PRESOLVE_HIGHS_POSTSOLVE_STACK_H_
18
18
 
19
+ #include <algorithm>
19
20
  #include <cassert>
20
21
  #include <cmath>
21
22
  #include <numeric>
@@ -104,6 +105,7 @@ class HighsPostsolveStack {
104
105
  HighsInt col;
105
106
  bool lowerTightened;
106
107
  bool upperTightened;
108
+ RowType rowType;
107
109
 
108
110
  void undo(const HighsOptions& options,
109
111
  const std::vector<Nonzero>& colValues, HighsSolution& solution,
@@ -173,6 +175,7 @@ class HighsPostsolveStack {
173
175
  double colBound;
174
176
  HighsInt col;
175
177
  bool atInfiniteUpper;
178
+ bool colIntegral;
176
179
 
177
180
  void undo(const HighsOptions& options,
178
181
  const std::vector<Nonzero>& colValues, HighsSolution& solution,
@@ -234,7 +237,7 @@ class HighsPostsolveStack {
234
237
  };
235
238
 
236
239
  HighsDataStack reductionValues;
237
- std::vector<std::pair<ReductionType, HighsInt>> reductions;
240
+ std::vector<std::pair<ReductionType, size_t>> reductions;
238
241
  std::vector<HighsInt> origColIndex;
239
242
  std::vector<HighsInt> origRowIndex;
240
243
  std::vector<uint8_t> linearlyTransformable;
@@ -245,11 +248,15 @@ class HighsPostsolveStack {
245
248
  HighsInt origNumRow = -1;
246
249
 
247
250
  void reductionAdded(ReductionType type) {
248
- HighsInt position = reductionValues.getCurrentDataSize();
251
+ size_t position = reductionValues.getCurrentDataSize();
249
252
  reductions.emplace_back(type, position);
250
253
  }
251
254
 
252
255
  public:
256
+ const HighsInt* getOrigRowsIndex() const { return origRowIndex.data(); }
257
+
258
+ const HighsInt* getOrigColsIndex() const { return origColIndex.data(); }
259
+
253
260
  HighsInt getOrigRowIndex(HighsInt row) const {
254
261
  assert(row < (HighsInt)origRowIndex.size());
255
262
  return origRowIndex[row];
@@ -261,19 +268,19 @@ class HighsPostsolveStack {
261
268
  }
262
269
 
263
270
  void appendCutsToModel(HighsInt numCuts) {
264
- HighsInt currNumRow = origRowIndex.size();
265
- HighsInt newNumRow = currNumRow + numCuts;
271
+ size_t currNumRow = origRowIndex.size();
272
+ size_t newNumRow = currNumRow + numCuts;
266
273
  origRowIndex.resize(newNumRow);
267
- for (HighsInt i = currNumRow; i != newNumRow; ++i)
274
+ for (size_t i = currNumRow; i != newNumRow; ++i)
268
275
  origRowIndex[i] = origNumRow++;
269
276
  }
270
277
 
271
278
  void removeCutsFromModel(HighsInt numCuts) {
272
279
  origNumRow -= numCuts;
273
280
 
274
- HighsInt origRowIndexSize = origRowIndex.size();
275
- for (HighsInt i = origRowIndex.size() - 1; i >= 0; --i) {
276
- if (origRowIndex[i] < origNumRow) break;
281
+ size_t origRowIndexSize = origRowIndex.size();
282
+ for (size_t i = origRowIndex.size(); i > 0; --i) {
283
+ if (origRowIndex[i - 1] < origNumRow) break;
277
284
  --origRowIndexSize;
278
285
  }
279
286
 
@@ -321,6 +328,7 @@ class HighsPostsolveStack {
321
328
  double coefSubst, double coef, double rhs,
322
329
  double substLower, double substUpper, double substCost,
323
330
  bool lowerTightened, bool upperTightened,
331
+ RowType rowType,
324
332
  const HighsMatrixSlice<ColStorageFormat>& colVec) {
325
333
  colValues.clear();
326
334
  for (const HighsSliceNonzero& colVal : colVec)
@@ -329,7 +337,7 @@ class HighsPostsolveStack {
329
337
  reductionValues.push(DoubletonEquation{
330
338
  coef, coefSubst, rhs, substLower, substUpper, substCost,
331
339
  row == -1 ? -1 : origRowIndex[row], origColIndex[colSubst],
332
- origColIndex[col], lowerTightened, upperTightened});
340
+ origColIndex[col], lowerTightened, upperTightened, rowType});
333
341
  reductionValues.push(colValues);
334
342
  reductionAdded(ReductionType::kDoubletonEquation);
335
343
  }
@@ -445,13 +453,14 @@ class HighsPostsolveStack {
445
453
  template <typename ColStorageFormat>
446
454
  void forcingColumn(HighsInt col,
447
455
  const HighsMatrixSlice<ColStorageFormat>& colVec,
448
- double cost, double boundVal, bool atInfiniteUpper) {
456
+ double cost, double boundVal, bool atInfiniteUpper,
457
+ bool colIntegral) {
449
458
  colValues.clear();
450
459
  for (const HighsSliceNonzero& colVal : colVec)
451
460
  colValues.emplace_back(origRowIndex[colVal.index()], colVal.value());
452
461
 
453
- reductionValues.push(
454
- ForcingColumn{cost, boundVal, origColIndex[col], atInfiniteUpper});
462
+ reductionValues.push(ForcingColumn{cost, boundVal, origColIndex[col],
463
+ atInfiniteUpper, colIntegral});
455
464
  reductionValues.push(colValues);
456
465
  reductionAdded(ReductionType::kForcingColumn);
457
466
  }
@@ -511,7 +520,7 @@ class HighsPostsolveStack {
511
520
  const std::vector<double>& origPrimalSolution) {
512
521
  std::vector<double> reducedSolution = origPrimalSolution;
513
522
 
514
- for (const std::pair<ReductionType, HighsInt>& primalColTransformation :
523
+ for (const std::pair<ReductionType, size_t>& primalColTransformation :
515
524
  reductions) {
516
525
  switch (primalColTransformation.first) {
517
526
  case ReductionType::kDuplicateColumn: {
@@ -533,8 +542,8 @@ class HighsPostsolveStack {
533
542
  }
534
543
  }
535
544
 
536
- HighsInt reducedNumCol = origColIndex.size();
537
- for (HighsInt i = 0; i < reducedNumCol; ++i)
545
+ size_t reducedNumCol = origColIndex.size();
546
+ for (size_t i = 0; i < reducedNumCol; ++i)
538
547
  reducedSolution[i] = reducedSolution[origColIndex[i]];
539
548
 
540
549
  reducedSolution.resize(reducedNumCol);
@@ -542,7 +551,36 @@ class HighsPostsolveStack {
542
551
  }
543
552
 
544
553
  bool isColLinearlyTransformable(HighsInt col) const {
545
- return linearlyTransformable[col];
554
+ return (linearlyTransformable[col] != 0);
555
+ }
556
+
557
+ template <typename T>
558
+ void undoIterateBackwards(std::vector<T>& values,
559
+ const std::vector<HighsInt>& index,
560
+ HighsInt origSize) {
561
+ values.resize(origSize);
562
+ #ifdef DEBUG_EXTRA
563
+ // Fill vector with NaN for debugging purposes
564
+ std::vector<T> valuesNew;
565
+ valuesNew.resize(origSize, std::numeric_limits<T>::signaling_NaN());
566
+ for (size_t i = index.size(); i > 0; --i) {
567
+ assert(static_cast<size_t>(index[i - 1]) >= i - 1);
568
+ valuesNew[index[i - 1]] = values[i - 1];
569
+ }
570
+ std::copy(valuesNew.cbegin(), valuesNew.cend(), values.begin());
571
+ #else
572
+ for (size_t i = index.size(); i > 0; --i) {
573
+ assert(static_cast<size_t>(index[i - 1]) >= i - 1);
574
+ values[index[i - 1]] = values[i - 1];
575
+ }
576
+ #endif
577
+ }
578
+
579
+ /// check if vector contains NaN or Inf
580
+ bool containsNanOrInf(const std::vector<double>& v) const {
581
+ return std::find_if(v.cbegin(), v.cend(), [](const double& d) {
582
+ return (std::isnan(d) || std::isinf(d));
583
+ }) != v.cend();
546
584
  }
547
585
 
548
586
  /// undo presolve steps for primal dual solution and basis
@@ -557,49 +595,33 @@ class HighsPostsolveStack {
557
595
 
558
596
  // expand solution to original index space
559
597
  assert(origNumCol > 0);
560
- solution.col_value.resize(origNumCol);
561
- for (HighsInt i = origColIndex.size() - 1; i >= 0; --i) {
562
- assert(origColIndex[i] >= i);
563
- solution.col_value[origColIndex[i]] = solution.col_value[i];
564
- }
598
+ undoIterateBackwards(solution.col_value, origColIndex, origNumCol);
565
599
 
566
600
  assert(origNumRow >= 0);
567
- solution.row_value.resize(origNumRow);
568
- for (HighsInt i = origRowIndex.size() - 1; i >= 0; --i) {
569
- assert(origRowIndex[i] >= i);
570
- solution.row_value[origRowIndex[i]] = solution.row_value[i];
571
- }
601
+ undoIterateBackwards(solution.row_value, origRowIndex, origNumRow);
572
602
 
573
603
  if (perform_dual_postsolve) {
574
604
  // if dual solution is given, expand dual solution and basis to original
575
605
  // index space
576
- solution.col_dual.resize(origNumCol);
577
- for (HighsInt i = origColIndex.size() - 1; i >= 0; --i)
578
- solution.col_dual[origColIndex[i]] = solution.col_dual[i];
606
+ undoIterateBackwards(solution.col_dual, origColIndex, origNumCol);
579
607
 
580
- solution.row_dual.resize(origNumRow);
581
- for (HighsInt i = origRowIndex.size() - 1; i >= 0; --i)
582
- solution.row_dual[origRowIndex[i]] = solution.row_dual[i];
608
+ undoIterateBackwards(solution.row_dual, origRowIndex, origNumRow);
583
609
  }
584
610
 
585
611
  if (perform_basis_postsolve) {
586
612
  // if basis is given, expand basis status values to original index space
587
- basis.col_status.resize(origNumCol);
588
- for (HighsInt i = origColIndex.size() - 1; i >= 0; --i)
589
- basis.col_status[origColIndex[i]] = basis.col_status[i];
613
+ undoIterateBackwards(basis.col_status, origColIndex, origNumCol);
590
614
 
591
- basis.row_status.resize(origNumRow);
592
- for (HighsInt i = origRowIndex.size() - 1; i >= 0; --i)
593
- basis.row_status[origRowIndex[i]] = basis.row_status[i];
615
+ undoIterateBackwards(basis.row_status, origRowIndex, origNumRow);
594
616
  }
595
617
 
596
618
  // now undo the changes
597
- for (HighsInt i = reductions.size() - 1; i >= 0; --i) {
619
+ for (size_t i = reductions.size(); i > 0; --i) {
598
620
  if (report_col >= 0)
599
621
  printf("Before reduction %2d (type %2d): col_value[%2d] = %g\n",
600
- int(i), int(reductions[i].first), int(report_col),
622
+ int(i - 1), int(reductions[i - 1].first), int(report_col),
601
623
  solution.col_value[report_col]);
602
- switch (reductions[i].first) {
624
+ switch (reductions[i - 1].first) {
603
625
  case ReductionType::kLinearTransform: {
604
626
  LinearTransform reduction;
605
627
  reductionValues.pop(reduction);
@@ -689,13 +711,23 @@ class HighsPostsolveStack {
689
711
  break;
690
712
  }
691
713
  default:
692
- printf("Reduction case %d not handled\n", int(reductions[i].first));
714
+ printf("Reduction case %d not handled\n",
715
+ int(reductions[i - 1].first));
693
716
  if (kAllowDeveloperAssert) assert(1 == 0);
694
717
  }
695
718
  }
696
719
  if (report_col >= 0)
697
720
  printf("After last reduction: col_value[%2d] = %g\n", int(report_col),
698
721
  solution.col_value[report_col]);
722
+
723
+ #ifdef DEBUG_EXTRA
724
+ // solution should not contain NaN or Inf
725
+ assert(!containsNanOrInf(solution.col_value));
726
+ // row values are not determined by postsolve
727
+ // assert(!containsNanOrInf(solution.row_value));
728
+ assert(!containsNanOrInf(solution.col_dual));
729
+ assert(!containsNanOrInf(solution.row_dual));
730
+ #endif
699
731
  }
700
732
 
701
733
  /// undo presolve steps for primal solution
@@ -727,7 +759,7 @@ class HighsPostsolveStack {
727
759
  void undoUntil(const HighsOptions& options,
728
760
  const std::vector<HighsInt>& flagRow,
729
761
  const std::vector<HighsInt>& flagCol, HighsSolution& solution,
730
- HighsBasis& basis, HighsInt numReductions) {
762
+ HighsBasis& basis, size_t numReductions) {
731
763
  reductionValues.resetPosition();
732
764
 
733
765
  // Do these returns ever happen? How is it known that undo has not
@@ -746,44 +778,28 @@ class HighsPostsolveStack {
746
778
  bool perform_basis_postsolve = basis.valid;
747
779
 
748
780
  // expand solution to original index space
749
- solution.col_value.resize(origNumCol);
750
- for (HighsInt i = origColIndex.size() - 1; i >= 0; --i) {
751
- assert(origColIndex[i] >= i);
752
- solution.col_value[origColIndex[i]] = solution.col_value[i];
753
- }
781
+ undoIterateBackwards(solution.col_value, origColIndex, origNumCol);
754
782
 
755
- solution.row_value.resize(origNumRow);
756
- for (HighsInt i = origRowIndex.size() - 1; i >= 0; --i) {
757
- assert(origRowIndex[i] >= i);
758
- solution.row_value[origRowIndex[i]] = solution.row_value[i];
759
- }
783
+ undoIterateBackwards(solution.row_value, origRowIndex, origNumRow);
760
784
 
761
785
  if (perform_dual_postsolve) {
762
786
  // if dual solution is given, expand dual solution and basis to original
763
787
  // index space
764
- solution.col_dual.resize(origNumCol);
765
- for (HighsInt i = origColIndex.size() - 1; i >= 0; --i)
766
- solution.col_dual[origColIndex[i]] = solution.col_dual[i];
788
+ undoIterateBackwards(solution.col_dual, origColIndex, origNumCol);
767
789
 
768
- solution.row_dual.resize(origNumRow);
769
- for (HighsInt i = origRowIndex.size() - 1; i >= 0; --i)
770
- solution.row_dual[origRowIndex[i]] = solution.row_dual[i];
790
+ undoIterateBackwards(solution.row_dual, origRowIndex, origNumRow);
771
791
  }
772
792
 
773
793
  if (perform_basis_postsolve) {
774
794
  // if basis is given, expand basis status values to original index space
775
- basis.col_status.resize(origNumCol);
776
- for (HighsInt i = origColIndex.size() - 1; i >= 0; --i)
777
- basis.col_status[origColIndex[i]] = basis.col_status[i];
795
+ undoIterateBackwards(basis.col_status, origColIndex, origNumCol);
778
796
 
779
- basis.row_status.resize(origNumRow);
780
- for (HighsInt i = origRowIndex.size() - 1; i >= 0; --i)
781
- basis.row_status[origRowIndex[i]] = basis.row_status[i];
797
+ undoIterateBackwards(basis.row_status, origRowIndex, origNumRow);
782
798
  }
783
799
 
784
800
  // now undo the changes
785
- for (HighsInt i = reductions.size() - 1; i >= numReductions; --i) {
786
- switch (reductions[i].first) {
801
+ for (size_t i = reductions.size(); i > numReductions; --i) {
802
+ switch (reductions[i - 1].first) {
787
803
  case ReductionType::kLinearTransform: {
788
804
  LinearTransform reduction;
789
805
  reductionValues.pop(reduction);
@@ -873,6 +889,14 @@ class HighsPostsolveStack {
873
889
  }
874
890
  }
875
891
  }
892
+ #ifdef DEBUG_EXTRA
893
+ // solution should not contain NaN or Inf
894
+ assert(!containsNanOrInf(solution.col_value));
895
+ // row values are not determined by postsolve
896
+ // assert(!containsNanOrInf(solution.row_value));
897
+ assert(!containsNanOrInf(solution.col_dual));
898
+ assert(!containsNanOrInf(solution.row_dual));
899
+ #endif
876
900
  }
877
901
 
878
902
  size_t numReductions() const { return reductions.size(); }
@@ -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 */
@@ -25,7 +25,7 @@
25
25
  #include "util/HighsHash.h"
26
26
  #include "util/HighsInt.h"
27
27
 
28
- /// class that is responsible for assiging distinct colors for each distinct
28
+ /// class that is responsible for assigning distinct colors for each distinct
29
29
  /// double value
30
30
  class HighsMatrixColoring {
31
31
  using u32 = std::uint32_t;
@@ -44,7 +44,6 @@ class HighsMatrixColoring {
44
44
  // iterator points to smallest element in map which fulfills key >= value -
45
45
  // tolerance
46
46
  auto it = colorMap.lower_bound(value - tolerance);
47
- u32 color;
48
47
  // check if there is no such element, or if this element has a key value +
49
48
  // tolerance in which case we create a new color and store it with the key
50
49
  // value
@@ -80,10 +79,12 @@ struct HighsOrbitopeMatrix {
80
79
  std::vector<int8_t> rowIsSetPacking;
81
80
  std::vector<HighsInt> matrix;
82
81
 
83
- HighsInt& entry(HighsInt i, HighsInt j) { return matrix[i + j * numRows]; }
82
+ HighsInt& entry(HighsInt i, HighsInt j) {
83
+ return matrix[i + static_cast<size_t>(j) * numRows];
84
+ }
84
85
 
85
86
  const HighsInt& entry(HighsInt i, HighsInt j) const {
86
- return matrix[i + j * numRows];
87
+ return matrix[i + static_cast<size_t>(j) * numRows];
87
88
  }
88
89
 
89
90
  HighsInt& operator()(HighsInt i, HighsInt j) { return entry(i, j); }
@@ -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 */
@@ -85,7 +85,13 @@ struct Quadratic {
85
85
  double mu;
86
86
  std::vector<double> lambda;
87
87
 
88
- Quadratic(HighsLp lp_, ICrashOptions options_) : lp(lp_), options(options_) {}
88
+ Quadratic(HighsLp lp_, ICrashOptions options_)
89
+ : lp(lp_),
90
+ options(options_),
91
+ lp_objective(0.0),
92
+ quadratic_objective(0.0),
93
+ residual_norm_2(0.0),
94
+ mu(0.0) {}
89
95
  };
90
96
 
91
97
  // Functions: Call.
@@ -2,7 +2,7 @@
2
2
  /* */
3
3
  /* This file is part of the HiGHS linear optimization suite */
4
4
  /* */
5
- /* Written and engineered 2008-2023 by Julian Hall, Ivet Galabova, */
5
+ /* Written and engineered 2008-2024 by Julian Hall, Ivet Galabova, */
6
6
  /* Leona Gottwald and Michael Feldmeier */
7
7
  /* */
8
8
  /* Available as open-source under the MIT License */
@@ -2,7 +2,7 @@
2
2
  /* */
3
3
  /* This file is part of the HiGHS linear optimization suite */
4
4
  /* */
5
- /* Written and engineered 2008-2023 by Julian Hall, Ivet Galabova, */
5
+ /* Written and engineered 2008-2024 by Julian Hall, Ivet Galabova, */
6
6
  /* Leona Gottwald and Michael Feldmeier */
7
7
  /* */
8
8
  /* Available as open-source under the MIT License */
@@ -2,7 +2,7 @@
2
2
  /* */
3
3
  /* This file is part of the HiGHS linear optimization suite */
4
4
  /* */
5
- /* Written and engineered 2008-2023 by Julian Hall, Ivet Galabova, */
5
+ /* Written and engineered 2008-2024 by Julian Hall, Ivet Galabova, */
6
6
  /* Leona Gottwald and Michael Feldmeier */
7
7
  /* */
8
8
  /* Available as open-source under the MIT License */
@@ -8,22 +8,24 @@
8
8
  #include "util/HighsTimer.h"
9
9
 
10
10
  enum class QpAsmStatus {
11
- OK,
12
- NEGATIVEEIGENVALUEINREDUCEDHESSIAN,
13
- BASISRANKDEFICIENT
11
+ kOk,
12
+ kWarning,
13
+ kError
14
+ // NEGATIVEEIGENVALUEINREDUCEDHESSIAN,
15
+ // BASISRANKDEFICIENT
14
16
  };
15
17
 
16
18
  struct QpSolution {
17
- Vector primal;
18
- Vector rowactivity;
19
- Vector dualvar;
20
- Vector dualcon;
19
+ QpVector primal;
20
+ QpVector rowactivity;
21
+ QpVector dualvar;
22
+ QpVector dualcon;
21
23
 
22
24
  std::vector<BasisStatus> status_var;
23
25
  std::vector<BasisStatus> status_con;
24
26
 
25
- QpSolution(Instance& instance) : primal(Vector(instance.num_var)),
26
- rowactivity(Vector(instance.num_con)),
27
+ QpSolution(Instance& instance) : primal(QpVector(instance.num_var)),
28
+ rowactivity(QpVector(instance.num_con)),
27
29
  dualvar(instance.num_var),
28
30
  dualcon(instance.num_con),
29
31
  status_var(instance.num_var),
@@ -35,11 +37,11 @@ struct QpHotstartInformation {
35
37
  std::vector<HighsInt> active;
36
38
  std::vector<HighsInt> inactive;
37
39
  std::vector<BasisStatus> status;
38
- Vector primal;
39
- Vector rowact;
40
+ QpVector primal;
41
+ QpVector rowact;
40
42
 
41
43
  QpHotstartInformation(HighsInt num_var, HighsInt num_row)
42
- : primal(Vector(num_var)), rowact(Vector(num_row)) {}
44
+ : primal(QpVector(num_var)), rowact(QpVector(num_row)) {}
43
45
  };
44
46
 
45
47
  // the purpose of this is the pure algorithmic solution of a QP instance with given hotstart information.
@@ -50,7 +52,16 @@ struct QpHotstartInformation {
50
52
  // 4) start from a qp solution that was attained from a perturbed instance and cleanup
51
53
  // 5) start from a qp solution and cleanup after recomputing basis and reduced hessian factorization
52
54
 
55
+ std::string qpBasisStatusToString(const BasisStatus qp_basis_status);
56
+ std::string qpModelStatusToString(const QpModelStatus qp_model_status);
57
+ void assessQpPrimalFeasibility(const Instance& instance, const double primal_feasibility_tolerance,
58
+ const std::vector<double>& var_value, const std::vector<double>& con_value,
59
+ HighsInt& num_var_infeasibilities, double& max_var_infeasibility, double& sum_var_infeasibilities,
60
+ HighsInt& num_con_infeasibilities, double& max_con_infeasibility, double& sum_con_infeasibilities,
61
+ double& max_con_residual, double& sum_con_residuals);
53
62
 
54
63
  QpAsmStatus solveqp_actual(Instance& instance, Settings& settings, QpHotstartInformation& startinfo, Statistics& stats, QpModelStatus& status, QpSolution& solution, HighsTimer& qp_timer);
55
64
 
65
+
66
+
56
67
  #endif
@@ -1,12 +1,19 @@
1
1
  #ifndef __SRC_LIB_QPSOLVER_QUASS_HPP__
2
2
  #define __SRC_LIB_QPSOLVER_QUASS_HPP__
3
3
 
4
+ #include "Highs.h"
4
5
  #include "qpsolver/instance.hpp"
5
6
  #include "qpsolver/qpconst.hpp"
6
7
  #include "qpsolver/a_asm.hpp"
7
8
  #include "qpsolver/settings.hpp"
8
9
 
9
10
 
10
- QpAsmStatus solveqp(Instance& instance, Settings& settings, Statistics& stats, QpModelStatus& modelstatus, QpSolution& solution, HighsTimer& qp_timer);
11
+ QpAsmStatus solveqp(Instance& instance,
12
+ Settings& settings,
13
+ Statistics& stats,
14
+ HighsModelStatus& highs_model_status,
15
+ HighsBasis& highs_basis,
16
+ HighsSolution& highs_solution,
17
+ HighsTimer& timer);
11
18
 
12
19
  #endif
@@ -0,0 +1,150 @@
1
+ #pragma once
2
+ #ifndef __SRC_LIB_BASIS_HPP__
3
+ #define __SRC_LIB_BASIS_HPP__
4
+
5
+ #include <map>
6
+ #include <vector>
7
+
8
+ #include "qpsolver/instance.hpp"
9
+ #include "qpsolver/pricing.hpp"
10
+ #include "qpsolver/qpconst.hpp"
11
+ #include "qpsolver/runtime.hpp"
12
+ #include "qpsolver/snippets.hpp"
13
+ #include "util/HFactor.h"
14
+ #include "util/HVector.h"
15
+ #include "util/HVectorBase.h"
16
+
17
+ class Basis {
18
+ HVector buffer_vec2hvec;
19
+ QpVector Ztprod_res;
20
+ QpVector buffer_Zprod;
21
+
22
+ HVector& vec2hvec(const QpVector& vec) {
23
+ buffer_vec2hvec.clear();
24
+ for (HighsInt i = 0; i < vec.num_nz; i++) {
25
+ buffer_vec2hvec.index[i] = vec.index[i];
26
+ buffer_vec2hvec.array[vec.index[i]] = vec.value[vec.index[i]];
27
+ }
28
+ buffer_vec2hvec.count = vec.num_nz;
29
+ buffer_vec2hvec.packFlag = true;
30
+ return buffer_vec2hvec;
31
+ }
32
+
33
+ QpVector& hvec2vec(const HVector& hvec, QpVector& target) {
34
+ target.reset();
35
+ for (HighsInt i = 0; i < hvec.count; i++) {
36
+ target.index[i] = hvec.index[i];
37
+ target.value[target.index[i]] = hvec.array[hvec.index[i]];
38
+ }
39
+ // for (HighsInt i = 0; i < hvec.size; i++) {
40
+ // target.index[i] = hvec.index[i];
41
+ // target.value[i] = hvec.array[i];
42
+ // }
43
+ target.num_nz = hvec.count;
44
+ return target;
45
+ }
46
+
47
+ QpVector hvec2vec(const HVector& hvec) {
48
+ QpVector vec(hvec.size);
49
+
50
+ return hvec2vec(hvec, vec);
51
+ }
52
+
53
+ Runtime& runtime;
54
+ HFactor basisfactor;
55
+ HighsInt updatessinceinvert = 0;
56
+
57
+ MatrixBase Atran;
58
+
59
+ // indices of active constraints in basis
60
+ std::vector<HighsInt> active_constraint_index;
61
+
62
+ // ids of constraints that are in the basis but not active
63
+ // I need to extract those columns to get Z
64
+ std::vector<HighsInt> non_active_constraint_index;
65
+
66
+ // ids of constraints that are in the basis
67
+ std::vector<HighsInt> baseindex;
68
+
69
+ std::map<int, BasisStatus> basisstatus;
70
+
71
+ // index i: -1 if constraint not in basis, [0, num_var] if
72
+ // constraint in basis (active or not)
73
+ std::vector<HighsInt> constraintindexinbasisfactor;
74
+
75
+ void build();
76
+
77
+ // buffer to avoid recreating vectors
78
+ QpVector buffer_column_aq;
79
+ QpVector buffer_row_ep;
80
+
81
+ // buffers to prevent multiple btran/ftran
82
+ HighsInt buffered_q = -1;
83
+ HighsInt buffered_p = -1;
84
+ HVector row_ep;
85
+ HVector col_aq;
86
+
87
+ bool reinversion_hint = false;
88
+ public:
89
+
90
+
91
+ Basis(Runtime& rt, std::vector<HighsInt> active,
92
+ std::vector<BasisStatus> atlower, std::vector<HighsInt> inactive);
93
+
94
+ bool getreinversionhint() { return reinversion_hint; }
95
+
96
+ void rebuild();
97
+
98
+ HighsInt getnupdatessinceinvert() { return updatessinceinvert; }
99
+
100
+ HighsInt getnumactive() const { return active_constraint_index.size(); };
101
+
102
+ HighsInt getnuminactive() const { return non_active_constraint_index.size(); };
103
+
104
+ const std::vector<HighsInt>& getactive() const {
105
+ return active_constraint_index;
106
+ };
107
+
108
+ const std::vector<HighsInt>& getinactive() const {
109
+ return non_active_constraint_index;
110
+ };
111
+
112
+ const std::vector<HighsInt>& getindexinfactor() const {
113
+ return constraintindexinbasisfactor;
114
+ };
115
+
116
+ BasisStatus getstatus(HighsInt conid) { return basisstatus[conid]; };
117
+
118
+ void report();
119
+
120
+ // move that constraint into V section basis (will correspond to
121
+ // Nullspace from now on)
122
+ void deactivate(HighsInt conid);
123
+
124
+ QpSolverStatus activate(const Settings& settings, HighsInt conid, BasisStatus atlower,
125
+ HighsInt nonactivetoremove, Pricing* pricing);
126
+
127
+ void updatebasis(const Settings& settings, HighsInt newactivecon, HighsInt droppedcon,
128
+ Pricing* pricing);
129
+
130
+ QpVector btran(const QpVector& rhs, bool buffer = false, HighsInt p = -1);
131
+
132
+ QpVector ftran(const QpVector& rhs, bool buffer = false, HighsInt q = -1);
133
+
134
+ QpVector& btran(const QpVector& rhs, QpVector& target, bool buffer = false,
135
+ HighsInt p = -1);
136
+
137
+ QpVector& ftran(const QpVector& rhs, QpVector& target, bool buffer = false,
138
+ HighsInt q = -1);
139
+
140
+ QpVector recomputex(const Instance& inst);
141
+
142
+ void write(std::string filename);
143
+
144
+ QpVector& Ztprod(const QpVector& rhs, QpVector& target, bool buffer = false,
145
+ HighsInt q = -1);
146
+
147
+ QpVector& Zprod(const QpVector& rhs, QpVector& target);
148
+ };
149
+
150
+ #endif
@@ -0,0 +1,12 @@
1
+ #ifndef __SRC_LIB_CRASHSOLUTION_HPP__
2
+ #define __SRC_LIB_CRASHSOLUTION_HPP__
3
+
4
+ #include <cstdlib>
5
+ #include "runtime.hpp"
6
+
7
+ inline
8
+ bool isfreevar(Instance& instance, HighsInt idx) {
9
+ return instance.var_lo[idx] == -std::numeric_limits<double>::infinity() && instance.var_up[idx] == std::numeric_limits<double>::infinity();
10
+ }
11
+
12
+ #endif