casadi 3.6.7__cp313-none-macosx_10_13_x86_64.macosx_10_13_intel.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 (1312) hide show
  1. casadi/__init__.py +92 -0
  2. casadi/_casadi.so +0 -0
  3. casadi/casadi-cli +0 -0
  4. casadi/casadi.py +50976 -0
  5. casadi/cbc +0 -0
  6. casadi/clp +0 -0
  7. casadi/cmake/casadi-config-version.cmake +11 -0
  8. casadi/cmake/casadi-config.cmake +8 -0
  9. casadi/cmake/casadi-targets-release.cmake +19 -0
  10. casadi/cmake/casadi-targets.cmake +106 -0
  11. casadi/cmake/highs/highs-config.cmake +17 -0
  12. casadi/cmake/highs/highs-targets-release.cmake +28 -0
  13. casadi/cmake/highs/highs-targets.cmake +117 -0
  14. casadi/cmake/osqp/osqp-config.cmake +1 -0
  15. casadi/cmake/osqp/osqp-targets-noconfig.cmake +29 -0
  16. casadi/cmake/osqp/osqp-targets.cmake +113 -0
  17. casadi/cmake/qdldl/qdldl-config.cmake +1 -0
  18. casadi/cmake/qdldl/qdldl-targets-noconfig.cmake +29 -0
  19. casadi/cmake/qdldl/qdldl-targets.cmake +113 -0
  20. casadi/cmake/sleqp/sleqp-config-version.cmake +65 -0
  21. casadi/cmake/sleqp/sleqp-config.cmake +1 -0
  22. casadi/cmake/sleqp/sleqp-targets-release.cmake +20 -0
  23. casadi/cmake/sleqp/sleqp-targets.cmake +106 -0
  24. casadi/cmake/trlib/trlib-config-release.cmake +19 -0
  25. casadi/cmake/trlib/trlib-config-version.cmake +83 -0
  26. casadi/cmake/trlib/trlib-config.cmake +107 -0
  27. casadi/highs +0 -0
  28. casadi/include/blasfeo.h +52 -0
  29. casadi/include/blasfeo_block_size.h +447 -0
  30. casadi/include/blasfeo_common.h +274 -0
  31. casadi/include/blasfeo_d_aux.h +255 -0
  32. casadi/include/blasfeo_d_aux_ext_dep.h +145 -0
  33. casadi/include/blasfeo_d_aux_ext_dep_ref.h +84 -0
  34. casadi/include/blasfeo_d_aux_old.h +75 -0
  35. casadi/include/blasfeo_d_aux_ref.h +208 -0
  36. casadi/include/blasfeo_d_aux_test.h +226 -0
  37. casadi/include/blasfeo_d_blas.h +46 -0
  38. casadi/include/blasfeo_d_blas_api.h +281 -0
  39. casadi/include/blasfeo_d_blasfeo_api.h +364 -0
  40. casadi/include/blasfeo_d_blasfeo_api_ref.h +147 -0
  41. casadi/include/blasfeo_d_blasfeo_hp_api.h +84 -0
  42. casadi/include/blasfeo_d_blasfeo_ref_api.h +283 -0
  43. casadi/include/blasfeo_d_kernel.h +1321 -0
  44. casadi/include/blasfeo_i_aux_ext_dep.h +69 -0
  45. casadi/include/blasfeo_m_aux.h +57 -0
  46. casadi/include/blasfeo_memory.h +62 -0
  47. casadi/include/blasfeo_naming.h +77 -0
  48. casadi/include/blasfeo_processor_features.h +88 -0
  49. casadi/include/blasfeo_s_aux.h +168 -0
  50. casadi/include/blasfeo_s_aux_ext_dep.h +141 -0
  51. casadi/include/blasfeo_s_aux_ext_dep_ref.h +82 -0
  52. casadi/include/blasfeo_s_aux_old.h +64 -0
  53. casadi/include/blasfeo_s_aux_ref.h +147 -0
  54. casadi/include/blasfeo_s_aux_test.h +177 -0
  55. casadi/include/blasfeo_s_blas.h +46 -0
  56. casadi/include/blasfeo_s_blas_api.h +182 -0
  57. casadi/include/blasfeo_s_blasfeo_api.h +284 -0
  58. casadi/include/blasfeo_s_blasfeo_api_ref.h +135 -0
  59. casadi/include/blasfeo_s_blasfeo_ref_api.h +252 -0
  60. casadi/include/blasfeo_s_kernel.h +692 -0
  61. casadi/include/blasfeo_stdlib.h +62 -0
  62. casadi/include/blasfeo_target.h +73 -0
  63. casadi/include/blasfeo_timing.h +114 -0
  64. casadi/include/blasfeo_v_aux_ext_dep.h +83 -0
  65. casadi/include/casadi/casadi.hpp +31 -0
  66. casadi/include/casadi/casadi.i +4691 -0
  67. casadi/include/casadi/casadi_c.h +138 -0
  68. casadi/include/casadi/casadi_numpy.hpp +97 -0
  69. casadi/include/casadi/config.h +46 -0
  70. casadi/include/casadi/core/calculus.hpp +1750 -0
  71. casadi/include/casadi/core/callback.hpp +226 -0
  72. casadi/include/casadi/core/casadi_common.hpp +318 -0
  73. casadi/include/casadi/core/casadi_enum.hpp +90 -0
  74. casadi/include/casadi/core/casadi_export.h +43 -0
  75. casadi/include/casadi/core/casadi_interrupt.hpp +83 -0
  76. casadi/include/casadi/core/casadi_limits.hpp +104 -0
  77. casadi/include/casadi/core/casadi_logger.hpp +134 -0
  78. casadi/include/casadi/core/casadi_meta.hpp +107 -0
  79. casadi/include/casadi/core/casadi_misc.hpp +1001 -0
  80. casadi/include/casadi/core/casadi_types.hpp +66 -0
  81. casadi/include/casadi/core/code_generator.hpp +975 -0
  82. casadi/include/casadi/core/conic.hpp +213 -0
  83. casadi/include/casadi/core/core.hpp +70 -0
  84. casadi/include/casadi/core/dae_builder.hpp +723 -0
  85. casadi/include/casadi/core/dm.hpp +87 -0
  86. casadi/include/casadi/core/dm_fwd.hpp +39 -0
  87. casadi/include/casadi/core/dple.hpp +138 -0
  88. casadi/include/casadi/core/exception.hpp +167 -0
  89. casadi/include/casadi/core/expm.hpp +84 -0
  90. casadi/include/casadi/core/external.hpp +70 -0
  91. casadi/include/casadi/core/fmu.hpp +224 -0
  92. casadi/include/casadi/core/function.hpp +1347 -0
  93. casadi/include/casadi/core/generic_expression.hpp +760 -0
  94. casadi/include/casadi/core/generic_matrix.hpp +1598 -0
  95. casadi/include/casadi/core/generic_type.hpp +311 -0
  96. casadi/include/casadi/core/global_options.hpp +97 -0
  97. casadi/include/casadi/core/im.hpp +52 -0
  98. casadi/include/casadi/core/im_fwd.hpp +35 -0
  99. casadi/include/casadi/core/importer.hpp +221 -0
  100. casadi/include/casadi/core/integration_tools.hpp +292 -0
  101. casadi/include/casadi/core/integrator.hpp +256 -0
  102. casadi/include/casadi/core/interpolant.hpp +163 -0
  103. casadi/include/casadi/core/linsol.hpp +171 -0
  104. casadi/include/casadi/core/matrix_decl.hpp +1352 -0
  105. casadi/include/casadi/core/matrix_fwd.hpp +37 -0
  106. casadi/include/casadi/core/mx.hpp +953 -0
  107. casadi/include/casadi/core/nlp_builder.hpp +162 -0
  108. casadi/include/casadi/core/nlp_tools.hpp +124 -0
  109. casadi/include/casadi/core/nlpsol.hpp +234 -0
  110. casadi/include/casadi/core/nonzeros.hpp +111 -0
  111. casadi/include/casadi/core/options.hpp +119 -0
  112. casadi/include/casadi/core/optistack.hpp +670 -0
  113. casadi/include/casadi/core/polynomial.hpp +126 -0
  114. casadi/include/casadi/core/printable.hpp +73 -0
  115. casadi/include/casadi/core/rootfinder.hpp +176 -0
  116. casadi/include/casadi/core/runtime/casadi_axpy.hpp +8 -0
  117. casadi/include/casadi/core/runtime/casadi_bfgs.hpp +49 -0
  118. casadi/include/casadi/core/runtime/casadi_bilin.hpp +42 -0
  119. casadi/include/casadi/core/runtime/casadi_bound_consistency.hpp +51 -0
  120. casadi/include/casadi/core/runtime/casadi_cache.hpp +59 -0
  121. casadi/include/casadi/core/runtime/casadi_clear.hpp +27 -0
  122. casadi/include/casadi/core/runtime/casadi_clip_max.hpp +33 -0
  123. casadi/include/casadi/core/runtime/casadi_clip_min.hpp +33 -0
  124. casadi/include/casadi/core/runtime/casadi_convexify.hpp +182 -0
  125. casadi/include/casadi/core/runtime/casadi_copy.hpp +31 -0
  126. casadi/include/casadi/core/runtime/casadi_cvx.hpp +463 -0
  127. casadi/include/casadi/core/runtime/casadi_de_boor.hpp +36 -0
  128. casadi/include/casadi/core/runtime/casadi_dense_lsqr.hpp +247 -0
  129. casadi/include/casadi/core/runtime/casadi_densify.hpp +48 -0
  130. casadi/include/casadi/core/runtime/casadi_dot.hpp +27 -0
  131. casadi/include/casadi/core/runtime/casadi_feasiblesqpmethod.hpp +208 -0
  132. casadi/include/casadi/core/runtime/casadi_file_slurp.hpp +32 -0
  133. casadi/include/casadi/core/runtime/casadi_fill.hpp +27 -0
  134. casadi/include/casadi/core/runtime/casadi_finite_diff.hpp +345 -0
  135. casadi/include/casadi/core/runtime/casadi_flip.hpp +33 -0
  136. casadi/include/casadi/core/runtime/casadi_getu.hpp +35 -0
  137. casadi/include/casadi/core/runtime/casadi_iamax.hpp +36 -0
  138. casadi/include/casadi/core/runtime/casadi_interpn.hpp +39 -0
  139. casadi/include/casadi/core/runtime/casadi_interpn_grad.hpp +72 -0
  140. casadi/include/casadi/core/runtime/casadi_interpn_interpolate.hpp +43 -0
  141. casadi/include/casadi/core/runtime/casadi_interpn_weights.hpp +39 -0
  142. casadi/include/casadi/core/runtime/casadi_ipqp.hpp +868 -0
  143. casadi/include/casadi/core/runtime/casadi_jac.hpp +186 -0
  144. casadi/include/casadi/core/runtime/casadi_kkt.hpp +67 -0
  145. casadi/include/casadi/core/runtime/casadi_kron.hpp +50 -0
  146. casadi/include/casadi/core/runtime/casadi_ldl.hpp +109 -0
  147. casadi/include/casadi/core/runtime/casadi_logsumexp.hpp +41 -0
  148. casadi/include/casadi/core/runtime/casadi_low.hpp +65 -0
  149. casadi/include/casadi/core/runtime/casadi_lsqr.hpp +247 -0
  150. casadi/include/casadi/core/runtime/casadi_masked_norm_inf.hpp +33 -0
  151. casadi/include/casadi/core/runtime/casadi_max_viol.hpp +37 -0
  152. casadi/include/casadi/core/runtime/casadi_mmax.hpp +28 -0
  153. casadi/include/casadi/core/runtime/casadi_mmin.hpp +29 -0
  154. casadi/include/casadi/core/runtime/casadi_mtimes.hpp +75 -0
  155. casadi/include/casadi/core/runtime/casadi_mv.hpp +46 -0
  156. casadi/include/casadi/core/runtime/casadi_mv_dense.hpp +39 -0
  157. casadi/include/casadi/core/runtime/casadi_nd_boor_dual_eval.hpp +127 -0
  158. casadi/include/casadi/core/runtime/casadi_nd_boor_eval.hpp +120 -0
  159. casadi/include/casadi/core/runtime/casadi_newton.hpp +66 -0
  160. casadi/include/casadi/core/runtime/casadi_nlp.hpp +289 -0
  161. casadi/include/casadi/core/runtime/casadi_norm_1.hpp +29 -0
  162. casadi/include/casadi/core/runtime/casadi_norm_2.hpp +24 -0
  163. casadi/include/casadi/core/runtime/casadi_norm_inf.hpp +28 -0
  164. casadi/include/casadi/core/runtime/casadi_norm_inf_mul.hpp +105 -0
  165. casadi/include/casadi/core/runtime/casadi_ocp_block.hpp +55 -0
  166. casadi/include/casadi/core/runtime/casadi_oracle.hpp +44 -0
  167. casadi/include/casadi/core/runtime/casadi_oracle_callback.hpp +39 -0
  168. casadi/include/casadi/core/runtime/casadi_polyval.hpp +29 -0
  169. casadi/include/casadi/core/runtime/casadi_project.hpp +39 -0
  170. casadi/include/casadi/core/runtime/casadi_qp.hpp +86 -0
  171. casadi/include/casadi/core/runtime/casadi_qr.hpp +272 -0
  172. casadi/include/casadi/core/runtime/casadi_qrqp.hpp +1239 -0
  173. casadi/include/casadi/core/runtime/casadi_rank1.hpp +40 -0
  174. casadi/include/casadi/core/runtime/casadi_regularize.hpp +73 -0
  175. casadi/include/casadi/core/runtime/casadi_runtime.hpp +318 -0
  176. casadi/include/casadi/core/runtime/casadi_scal.hpp +26 -0
  177. casadi/include/casadi/core/runtime/casadi_scaled_copy.hpp +31 -0
  178. casadi/include/casadi/core/runtime/casadi_sparsify.hpp +42 -0
  179. casadi/include/casadi/core/runtime/casadi_sparsity.hpp +24 -0
  180. casadi/include/casadi/core/runtime/casadi_sqpmethod.hpp +178 -0
  181. casadi/include/casadi/core/runtime/casadi_sum.hpp +31 -0
  182. casadi/include/casadi/core/runtime/casadi_sum_viol.hpp +37 -0
  183. casadi/include/casadi/core/runtime/casadi_swap.hpp +32 -0
  184. casadi/include/casadi/core/runtime/casadi_trans.hpp +35 -0
  185. casadi/include/casadi/core/runtime/casadi_tri_project.hpp +37 -0
  186. casadi/include/casadi/core/runtime/casadi_trilsolve.hpp +81 -0
  187. casadi/include/casadi/core/runtime/casadi_triusolve.hpp +81 -0
  188. casadi/include/casadi/core/runtime/casadi_vector_fmax.hpp +28 -0
  189. casadi/include/casadi/core/runtime/casadi_vector_fmin.hpp +28 -0
  190. casadi/include/casadi/core/runtime/casadi_vfmax.hpp +28 -0
  191. casadi/include/casadi/core/runtime/casadi_vfmin.hpp +28 -0
  192. casadi/include/casadi/core/runtime/shared.hpp +261 -0
  193. casadi/include/casadi/core/serializer.hpp +256 -0
  194. casadi/include/casadi/core/serializing_stream.hpp +329 -0
  195. casadi/include/casadi/core/shared_object.hpp +270 -0
  196. casadi/include/casadi/core/slice.hpp +149 -0
  197. casadi/include/casadi/core/sparsity.hpp +1495 -0
  198. casadi/include/casadi/core/sparsity_interface.hpp +745 -0
  199. casadi/include/casadi/core/submatrix.hpp +156 -0
  200. casadi/include/casadi/core/sx.hpp +203 -0
  201. casadi/include/casadi/core/sx_elem.hpp +351 -0
  202. casadi/include/casadi/core/sx_fwd.hpp +45 -0
  203. casadi/include/casadi/core/timing.hpp +98 -0
  204. casadi/include/casadi/core/tools.hpp +67 -0
  205. casadi/include/casadi/core/xml_file.hpp +93 -0
  206. casadi/include/casadi/core/xml_node.hpp +207 -0
  207. casadi/include/casadi/doc.i +58615 -0
  208. casadi/include/casadi/doc_merged.i +36123 -0
  209. casadi/include/casadi/mem.h +311 -0
  210. casadi/include/casadi/valgrind-casadi.supp +511 -0
  211. casadi/include/casadi/valgrind-python.supp +1416 -0
  212. casadi/include/coin/BonArraysHelpers.hpp +52 -0
  213. casadi/include/coin/BonAuxInfos.hpp +110 -0
  214. casadi/include/coin/BonBabInfos.hpp +57 -0
  215. casadi/include/coin/BonBabSetupBase.hpp +386 -0
  216. casadi/include/coin/BonBonminSetup.hpp +95 -0
  217. casadi/include/coin/BonBranchingTQP.hpp +197 -0
  218. casadi/include/coin/BonCbc.hpp +127 -0
  219. casadi/include/coin/BonCbcLpStrategy.hpp +45 -0
  220. casadi/include/coin/BonCbcNlpStrategy.hpp +98 -0
  221. casadi/include/coin/BonCbcNode.hpp +133 -0
  222. casadi/include/coin/BonChooseVariable.hpp +345 -0
  223. casadi/include/coin/BonCurvBranchingSolver.hpp +77 -0
  224. casadi/include/coin/BonCutStrengthener.hpp +244 -0
  225. casadi/include/coin/BonDiver.hpp +424 -0
  226. casadi/include/coin/BonDummyHeuristic.hpp +53 -0
  227. casadi/include/coin/BonDummyPump.hpp +43 -0
  228. casadi/include/coin/BonEcpCuts.hpp +97 -0
  229. casadi/include/coin/BonExitCodes.hpp +12 -0
  230. casadi/include/coin/BonFixAndSolveHeuristic.hpp +43 -0
  231. casadi/include/coin/BonGuessHeuristic.hpp +46 -0
  232. casadi/include/coin/BonHeuristicDive.hpp +88 -0
  233. casadi/include/coin/BonHeuristicDiveFractional.hpp +67 -0
  234. casadi/include/coin/BonHeuristicDiveMIP.hpp +83 -0
  235. casadi/include/coin/BonHeuristicDiveMIPFractional.hpp +67 -0
  236. casadi/include/coin/BonHeuristicDiveMIPVectorLength.hpp +74 -0
  237. casadi/include/coin/BonHeuristicDiveVectorLength.hpp +74 -0
  238. casadi/include/coin/BonHeuristicFPump.hpp +111 -0
  239. casadi/include/coin/BonHeuristicLocalBranching.hpp +59 -0
  240. casadi/include/coin/BonHeuristicRINS.hpp +55 -0
  241. casadi/include/coin/BonIpoptInteriorWarmStarter.hpp +103 -0
  242. casadi/include/coin/BonIpoptSolver.hpp +188 -0
  243. casadi/include/coin/BonIpoptWarmStart.hpp +148 -0
  244. casadi/include/coin/BonLinearCutsGenerator.hpp +75 -0
  245. casadi/include/coin/BonLocalSolverBasedHeuristic.hpp +102 -0
  246. casadi/include/coin/BonLpBranchingSolver.hpp +80 -0
  247. casadi/include/coin/BonMilpRounding.hpp +74 -0
  248. casadi/include/coin/BonOACutGenerator2.hpp +56 -0
  249. casadi/include/coin/BonOAMessages.hpp +44 -0
  250. casadi/include/coin/BonOaDecBase.hpp +297 -0
  251. casadi/include/coin/BonOaFeasChecker.hpp +73 -0
  252. casadi/include/coin/BonOaNlpOptim.hpp +116 -0
  253. casadi/include/coin/BonOsiTMINLPInterface.hpp +1342 -0
  254. casadi/include/coin/BonOuterApprox.hpp +123 -0
  255. casadi/include/coin/BonPseudoCosts.hpp +91 -0
  256. casadi/include/coin/BonPumpForMinlp.hpp +45 -0
  257. casadi/include/coin/BonQuadCut.hpp +217 -0
  258. casadi/include/coin/BonQuadRow.hpp +122 -0
  259. casadi/include/coin/BonRegisteredOptions.hpp +225 -0
  260. casadi/include/coin/BonStrongBranchingSolver.hpp +69 -0
  261. casadi/include/coin/BonSubMipSolver.hpp +143 -0
  262. casadi/include/coin/BonTMINLP.hpp +420 -0
  263. casadi/include/coin/BonTMINLP2OsiLP.hpp +164 -0
  264. casadi/include/coin/BonTMINLP2Quad.hpp +191 -0
  265. casadi/include/coin/BonTMINLP2TNLP.hpp +509 -0
  266. casadi/include/coin/BonTMINLPLinObj.hpp +216 -0
  267. casadi/include/coin/BonTMatrix.hpp +167 -0
  268. casadi/include/coin/BonTNLP2FPNLP.hpp +264 -0
  269. casadi/include/coin/BonTNLPSolver.hpp +241 -0
  270. casadi/include/coin/BonTypes.hpp +95 -0
  271. casadi/include/coin/BonminConfig.h +19 -0
  272. casadi/include/coin/CbcBranchActual.hpp +26 -0
  273. casadi/include/coin/CbcBranchAllDifferent.hpp +61 -0
  274. casadi/include/coin/CbcBranchBase.hpp +79 -0
  275. casadi/include/coin/CbcBranchCut.hpp +182 -0
  276. casadi/include/coin/CbcBranchDecision.hpp +135 -0
  277. casadi/include/coin/CbcBranchDefaultDecision.hpp +101 -0
  278. casadi/include/coin/CbcBranchDynamic.hpp +210 -0
  279. casadi/include/coin/CbcBranchLotsize.hpp +249 -0
  280. casadi/include/coin/CbcBranchToFixLots.hpp +94 -0
  281. casadi/include/coin/CbcBranchingObject.hpp +245 -0
  282. casadi/include/coin/CbcClique.hpp +309 -0
  283. casadi/include/coin/CbcCompare.hpp +46 -0
  284. casadi/include/coin/CbcCompareActual.hpp +16 -0
  285. casadi/include/coin/CbcCompareBase.hpp +155 -0
  286. casadi/include/coin/CbcCompareDefault.hpp +129 -0
  287. casadi/include/coin/CbcCompareDepth.hpp +48 -0
  288. casadi/include/coin/CbcCompareEstimate.hpp +48 -0
  289. casadi/include/coin/CbcCompareObjective.hpp +50 -0
  290. casadi/include/coin/CbcConfig.h +18 -0
  291. casadi/include/coin/CbcConsequence.hpp +50 -0
  292. casadi/include/coin/CbcCountRowCut.hpp +176 -0
  293. casadi/include/coin/CbcCutGenerator.hpp +550 -0
  294. casadi/include/coin/CbcCutModifier.hpp +59 -0
  295. casadi/include/coin/CbcCutSubsetModifier.hpp +69 -0
  296. casadi/include/coin/CbcDummyBranchingObject.hpp +83 -0
  297. casadi/include/coin/CbcEventHandler.hpp +250 -0
  298. casadi/include/coin/CbcFathom.hpp +136 -0
  299. casadi/include/coin/CbcFathomDynamicProgramming.hpp +177 -0
  300. casadi/include/coin/CbcFeasibilityBase.hpp +60 -0
  301. casadi/include/coin/CbcFixVariable.hpp +68 -0
  302. casadi/include/coin/CbcFollowOn.hpp +207 -0
  303. casadi/include/coin/CbcFullNodeInfo.hpp +171 -0
  304. casadi/include/coin/CbcGeneral.hpp +60 -0
  305. casadi/include/coin/CbcGeneralDepth.hpp +289 -0
  306. casadi/include/coin/CbcHeuristic.hpp +735 -0
  307. casadi/include/coin/CbcHeuristicDINS.hpp +98 -0
  308. casadi/include/coin/CbcHeuristicDW.hpp +374 -0
  309. casadi/include/coin/CbcHeuristicDive.hpp +198 -0
  310. casadi/include/coin/CbcHeuristicDiveCoefficient.hpp +52 -0
  311. casadi/include/coin/CbcHeuristicDiveFractional.hpp +52 -0
  312. casadi/include/coin/CbcHeuristicDiveGuided.hpp +55 -0
  313. casadi/include/coin/CbcHeuristicDiveLineSearch.hpp +52 -0
  314. casadi/include/coin/CbcHeuristicDivePseudoCost.hpp +60 -0
  315. casadi/include/coin/CbcHeuristicDiveVectorLength.hpp +52 -0
  316. casadi/include/coin/CbcHeuristicFPump.hpp +375 -0
  317. casadi/include/coin/CbcHeuristicGreedy.hpp +289 -0
  318. casadi/include/coin/CbcHeuristicLocal.hpp +276 -0
  319. casadi/include/coin/CbcHeuristicPivotAndFix.hpp +58 -0
  320. casadi/include/coin/CbcHeuristicRENS.hpp +79 -0
  321. casadi/include/coin/CbcHeuristicRINS.hpp +106 -0
  322. casadi/include/coin/CbcHeuristicRandRound.hpp +58 -0
  323. casadi/include/coin/CbcHeuristicVND.hpp +95 -0
  324. casadi/include/coin/CbcLinked.hpp +1443 -0
  325. casadi/include/coin/CbcMessage.hpp +94 -0
  326. casadi/include/coin/CbcMipStartIO.hpp +29 -0
  327. casadi/include/coin/CbcModel.hpp +3296 -0
  328. casadi/include/coin/CbcNWay.hpp +171 -0
  329. casadi/include/coin/CbcNode.hpp +380 -0
  330. casadi/include/coin/CbcNodeInfo.hpp +377 -0
  331. casadi/include/coin/CbcObject.hpp +288 -0
  332. casadi/include/coin/CbcObjectUpdateData.hpp +63 -0
  333. casadi/include/coin/CbcOrClpParam.cpp +4321 -0
  334. casadi/include/coin/CbcOrClpParam.hpp +585 -0
  335. casadi/include/coin/CbcParam.hpp +338 -0
  336. casadi/include/coin/CbcPartialNodeInfo.hpp +116 -0
  337. casadi/include/coin/CbcSOS.hpp +290 -0
  338. casadi/include/coin/CbcSimpleInteger.hpp +299 -0
  339. casadi/include/coin/CbcSimpleIntegerDynamicPseudoCost.hpp +619 -0
  340. casadi/include/coin/CbcSimpleIntegerPseudoCost.hpp +122 -0
  341. casadi/include/coin/CbcSolver.hpp +460 -0
  342. casadi/include/coin/CbcStrategy.hpp +269 -0
  343. casadi/include/coin/CbcSubProblem.hpp +84 -0
  344. casadi/include/coin/CbcTree.hpp +493 -0
  345. casadi/include/coin/CbcTreeLocal.hpp +393 -0
  346. casadi/include/coin/Cbc_C_Interface.h +904 -0
  347. casadi/include/coin/Cgl012cut.hpp +464 -0
  348. casadi/include/coin/CglAllDifferent.hpp +115 -0
  349. casadi/include/coin/CglClique.hpp +312 -0
  350. casadi/include/coin/CglConfig.h +19 -0
  351. casadi/include/coin/CglCutGenerator.hpp +133 -0
  352. casadi/include/coin/CglDuplicateRow.hpp +189 -0
  353. casadi/include/coin/CglFlowCover.hpp +371 -0
  354. casadi/include/coin/CglGMI.hpp +364 -0
  355. casadi/include/coin/CglGMIParam.hpp +313 -0
  356. casadi/include/coin/CglGomory.hpp +204 -0
  357. casadi/include/coin/CglKnapsackCover.hpp +310 -0
  358. casadi/include/coin/CglLandP.hpp +306 -0
  359. casadi/include/coin/CglLandPValidator.hpp +130 -0
  360. casadi/include/coin/CglLiftAndProject.hpp +104 -0
  361. casadi/include/coin/CglMessage.hpp +49 -0
  362. casadi/include/coin/CglMixedIntegerRounding.hpp +429 -0
  363. casadi/include/coin/CglMixedIntegerRounding2.hpp +427 -0
  364. casadi/include/coin/CglOddHole.hpp +160 -0
  365. casadi/include/coin/CglParam.hpp +93 -0
  366. casadi/include/coin/CglPreProcess.hpp +600 -0
  367. casadi/include/coin/CglProbing.hpp +543 -0
  368. casadi/include/coin/CglRedSplit.hpp +448 -0
  369. casadi/include/coin/CglRedSplit2.hpp +494 -0
  370. casadi/include/coin/CglRedSplit2Param.hpp +495 -0
  371. casadi/include/coin/CglRedSplitParam.hpp +272 -0
  372. casadi/include/coin/CglResidualCapacity.hpp +240 -0
  373. casadi/include/coin/CglSimpleRounding.hpp +174 -0
  374. casadi/include/coin/CglStored.hpp +140 -0
  375. casadi/include/coin/CglTreeInfo.hpp +216 -0
  376. casadi/include/coin/CglTwomir.hpp +562 -0
  377. casadi/include/coin/CglZeroHalf.hpp +133 -0
  378. casadi/include/coin/ClpAmplObjective.hpp +113 -0
  379. casadi/include/coin/ClpCholeskyBase.hpp +321 -0
  380. casadi/include/coin/ClpCholeskyDense.hpp +157 -0
  381. casadi/include/coin/ClpCholeskyMumps.hpp +65 -0
  382. casadi/include/coin/ClpCholeskyPardiso.hpp +67 -0
  383. casadi/include/coin/ClpConfig.h +17 -0
  384. casadi/include/coin/ClpConstraint.hpp +129 -0
  385. casadi/include/coin/ClpConstraintAmpl.hpp +109 -0
  386. casadi/include/coin/ClpConstraintLinear.hpp +113 -0
  387. casadi/include/coin/ClpConstraintQuadratic.hpp +123 -0
  388. casadi/include/coin/ClpDualRowDantzig.hpp +72 -0
  389. casadi/include/coin/ClpDualRowPivot.hpp +136 -0
  390. casadi/include/coin/ClpDualRowSteepest.hpp +160 -0
  391. casadi/include/coin/ClpDummyMatrix.hpp +186 -0
  392. casadi/include/coin/ClpDynamicExampleMatrix.hpp +199 -0
  393. casadi/include/coin/ClpDynamicMatrix.hpp +420 -0
  394. casadi/include/coin/ClpEventHandler.hpp +193 -0
  395. casadi/include/coin/ClpFactorization.hpp +556 -0
  396. casadi/include/coin/ClpGubDynamicMatrix.hpp +270 -0
  397. casadi/include/coin/ClpGubMatrix.hpp +373 -0
  398. casadi/include/coin/ClpInterior.hpp +622 -0
  399. casadi/include/coin/ClpLinearObjective.hpp +104 -0
  400. casadi/include/coin/ClpMatrixBase.hpp +561 -0
  401. casadi/include/coin/ClpMessage.hpp +131 -0
  402. casadi/include/coin/ClpModel.hpp +1442 -0
  403. casadi/include/coin/ClpNetworkMatrix.hpp +235 -0
  404. casadi/include/coin/ClpNode.hpp +364 -0
  405. casadi/include/coin/ClpNonLinearCost.hpp +432 -0
  406. casadi/include/coin/ClpObjective.hpp +142 -0
  407. casadi/include/coin/ClpPEDualRowDantzig.hpp +84 -0
  408. casadi/include/coin/ClpPEDualRowSteepest.hpp +100 -0
  409. casadi/include/coin/ClpPEPrimalColumnDantzig.hpp +71 -0
  410. casadi/include/coin/ClpPEPrimalColumnSteepest.hpp +107 -0
  411. casadi/include/coin/ClpPESimplex.hpp +231 -0
  412. casadi/include/coin/ClpPackedMatrix.hpp +778 -0
  413. casadi/include/coin/ClpParameters.hpp +132 -0
  414. casadi/include/coin/ClpPdcoBase.hpp +110 -0
  415. casadi/include/coin/ClpPlusMinusOneMatrix.hpp +565 -0
  416. casadi/include/coin/ClpPresolve.hpp +379 -0
  417. casadi/include/coin/ClpPrimalColumnDantzig.hpp +74 -0
  418. casadi/include/coin/ClpPrimalColumnPivot.hpp +163 -0
  419. casadi/include/coin/ClpPrimalColumnSteepest.hpp +281 -0
  420. casadi/include/coin/ClpQuadraticObjective.hpp +161 -0
  421. casadi/include/coin/ClpSimplex.hpp +2137 -0
  422. casadi/include/coin/ClpSimplexDual.hpp +304 -0
  423. casadi/include/coin/ClpSimplexNonlinear.hpp +117 -0
  424. casadi/include/coin/ClpSimplexOther.hpp +282 -0
  425. casadi/include/coin/ClpSimplexPrimal.hpp +244 -0
  426. casadi/include/coin/ClpSolve.hpp +505 -0
  427. casadi/include/coin/Clp_C_Interface.h +554 -0
  428. casadi/include/coin/CoinAlloc.hpp +179 -0
  429. casadi/include/coin/CoinBuild.hpp +159 -0
  430. casadi/include/coin/CoinDenseFactorization.hpp +452 -0
  431. casadi/include/coin/CoinDenseVector.hpp +401 -0
  432. casadi/include/coin/CoinDistance.hpp +51 -0
  433. casadi/include/coin/CoinError.hpp +274 -0
  434. casadi/include/coin/CoinFactorization.hpp +2178 -0
  435. casadi/include/coin/CoinFileIO.hpp +185 -0
  436. casadi/include/coin/CoinFinite.hpp +37 -0
  437. casadi/include/coin/CoinFloatEqual.hpp +204 -0
  438. casadi/include/coin/CoinHelperFunctions.hpp +1270 -0
  439. casadi/include/coin/CoinIndexedVector.hpp +1437 -0
  440. casadi/include/coin/CoinLpIO.hpp +836 -0
  441. casadi/include/coin/CoinMessage.hpp +95 -0
  442. casadi/include/coin/CoinMessageHandler.hpp +717 -0
  443. casadi/include/coin/CoinModel.hpp +1214 -0
  444. casadi/include/coin/CoinModelUseful.hpp +518 -0
  445. casadi/include/coin/CoinMpsIO.hpp +1142 -0
  446. casadi/include/coin/CoinOslFactorization.hpp +287 -0
  447. casadi/include/coin/CoinPackedMatrix.hpp +956 -0
  448. casadi/include/coin/CoinPackedVector.hpp +670 -0
  449. casadi/include/coin/CoinPackedVectorBase.hpp +274 -0
  450. casadi/include/coin/CoinParam.hpp +644 -0
  451. casadi/include/coin/CoinPragma.hpp +29 -0
  452. casadi/include/coin/CoinPresolveDoubleton.hpp +76 -0
  453. casadi/include/coin/CoinPresolveDual.hpp +84 -0
  454. casadi/include/coin/CoinPresolveDupcol.hpp +259 -0
  455. casadi/include/coin/CoinPresolveEmpty.hpp +120 -0
  456. casadi/include/coin/CoinPresolveFixed.hpp +185 -0
  457. casadi/include/coin/CoinPresolveForcing.hpp +69 -0
  458. casadi/include/coin/CoinPresolveImpliedFree.hpp +66 -0
  459. casadi/include/coin/CoinPresolveIsolated.hpp +59 -0
  460. casadi/include/coin/CoinPresolveMatrix.hpp +1996 -0
  461. casadi/include/coin/CoinPresolveMonitor.hpp +105 -0
  462. casadi/include/coin/CoinPresolvePsdebug.hpp +169 -0
  463. casadi/include/coin/CoinPresolveSingleton.hpp +115 -0
  464. casadi/include/coin/CoinPresolveSubst.hpp +103 -0
  465. casadi/include/coin/CoinPresolveTighten.hpp +58 -0
  466. casadi/include/coin/CoinPresolveTripleton.hpp +69 -0
  467. casadi/include/coin/CoinPresolveUseless.hpp +63 -0
  468. casadi/include/coin/CoinPresolveZeros.hpp +65 -0
  469. casadi/include/coin/CoinRational.hpp +43 -0
  470. casadi/include/coin/CoinSearchTree.hpp +523 -0
  471. casadi/include/coin/CoinShallowPackedVector.hpp +149 -0
  472. casadi/include/coin/CoinSignal.hpp +127 -0
  473. casadi/include/coin/CoinSimpFactorization.hpp +432 -0
  474. casadi/include/coin/CoinSmartPtr.hpp +548 -0
  475. casadi/include/coin/CoinSnapshot.hpp +572 -0
  476. casadi/include/coin/CoinSort.hpp +753 -0
  477. casadi/include/coin/CoinStructuredModel.hpp +270 -0
  478. casadi/include/coin/CoinTime.hpp +350 -0
  479. casadi/include/coin/CoinTypes.hpp +67 -0
  480. casadi/include/coin/CoinUtility.hpp +26 -0
  481. casadi/include/coin/CoinUtilsConfig.h +34 -0
  482. casadi/include/coin/CoinWarmStart.hpp +56 -0
  483. casadi/include/coin/CoinWarmStartBasis.hpp +468 -0
  484. casadi/include/coin/CoinWarmStartDual.hpp +180 -0
  485. casadi/include/coin/CoinWarmStartPrimalDual.hpp +233 -0
  486. casadi/include/coin/CoinWarmStartVector.hpp +523 -0
  487. casadi/include/coin/Coin_C_defines.h +149 -0
  488. casadi/include/coin/Idiot.hpp +327 -0
  489. casadi/include/coin/OsiAuxInfo.hpp +261 -0
  490. casadi/include/coin/OsiBranchingObject.hpp +1097 -0
  491. casadi/include/coin/OsiCbcSolverInterface.hpp +791 -0
  492. casadi/include/coin/OsiChooseVariable.hpp +645 -0
  493. casadi/include/coin/OsiClpSolverInterface.hpp +1604 -0
  494. casadi/include/coin/OsiColCut.hpp +322 -0
  495. casadi/include/coin/OsiCollections.hpp +34 -0
  496. casadi/include/coin/OsiConfig.h +19 -0
  497. casadi/include/coin/OsiCut.hpp +251 -0
  498. casadi/include/coin/OsiCuts.hpp +505 -0
  499. casadi/include/coin/OsiPresolve.hpp +272 -0
  500. casadi/include/coin/OsiRowCut.hpp +345 -0
  501. casadi/include/coin/OsiRowCutDebugger.hpp +190 -0
  502. casadi/include/coin/OsiSolverBranch.hpp +169 -0
  503. casadi/include/coin/OsiSolverInterface.hpp +2221 -0
  504. casadi/include/coin/OsiSolverParameters.hpp +144 -0
  505. casadi/include/coin/OsiUnitTests.hpp +390 -0
  506. casadi/include/coin-or/IpAlgBuilder.hpp +417 -0
  507. casadi/include/coin-or/IpAlgStrategy.hpp +201 -0
  508. casadi/include/coin-or/IpAlgTypes.hpp +64 -0
  509. casadi/include/coin-or/IpAugSystemSolver.hpp +212 -0
  510. casadi/include/coin-or/IpBlas.hpp +426 -0
  511. casadi/include/coin-or/IpCachedResults.hpp +897 -0
  512. casadi/include/coin-or/IpCompoundMatrix.hpp +423 -0
  513. casadi/include/coin-or/IpCompoundSymMatrix.hpp +348 -0
  514. casadi/include/coin-or/IpCompoundVector.hpp +395 -0
  515. casadi/include/coin-or/IpConvCheck.hpp +97 -0
  516. casadi/include/coin-or/IpDebug.hpp +167 -0
  517. casadi/include/coin-or/IpDenseVector.hpp +626 -0
  518. casadi/include/coin-or/IpDiagMatrix.hpp +158 -0
  519. casadi/include/coin-or/IpEqMultCalculator.hpp +76 -0
  520. casadi/include/coin-or/IpException.hpp +156 -0
  521. casadi/include/coin-or/IpExpansionMatrix.hpp +245 -0
  522. casadi/include/coin-or/IpGenTMatrix.hpp +290 -0
  523. casadi/include/coin-or/IpHessianUpdater.hpp +73 -0
  524. casadi/include/coin-or/IpIdentityMatrix.hpp +167 -0
  525. casadi/include/coin-or/IpIpoptAlg.hpp +257 -0
  526. casadi/include/coin-or/IpIpoptApplication.hpp +367 -0
  527. casadi/include/coin-or/IpIpoptCalculatedQuantities.hpp +1009 -0
  528. casadi/include/coin-or/IpIpoptData.hpp +966 -0
  529. casadi/include/coin-or/IpIpoptNLP.hpp +328 -0
  530. casadi/include/coin-or/IpIterateInitializer.hpp +68 -0
  531. casadi/include/coin-or/IpIteratesVector.hpp +840 -0
  532. casadi/include/coin-or/IpIterationOutput.hpp +78 -0
  533. casadi/include/coin-or/IpJournalist.hpp +573 -0
  534. casadi/include/coin-or/IpLapack.hpp +227 -0
  535. casadi/include/coin-or/IpLibraryLoader.hpp +76 -0
  536. casadi/include/coin-or/IpLineSearch.hpp +106 -0
  537. casadi/include/coin-or/IpLinearSolvers.h +46 -0
  538. casadi/include/coin-or/IpMatrix.hpp +434 -0
  539. casadi/include/coin-or/IpMuUpdate.hpp +77 -0
  540. casadi/include/coin-or/IpNLP.hpp +306 -0
  541. casadi/include/coin-or/IpNLPScaling.hpp +582 -0
  542. casadi/include/coin-or/IpObserver.hpp +422 -0
  543. casadi/include/coin-or/IpOptionsList.hpp +412 -0
  544. casadi/include/coin-or/IpOrigIpoptNLP.hpp +603 -0
  545. casadi/include/coin-or/IpPDSystemSolver.hpp +137 -0
  546. casadi/include/coin-or/IpReferenced.hpp +262 -0
  547. casadi/include/coin-or/IpRegOptions.hpp +1152 -0
  548. casadi/include/coin-or/IpReturnCodes.h +23 -0
  549. casadi/include/coin-or/IpReturnCodes.hpp +18 -0
  550. casadi/include/coin-or/IpReturnCodes.inc +71 -0
  551. casadi/include/coin-or/IpReturnCodes_inc.h +45 -0
  552. casadi/include/coin-or/IpScaledMatrix.hpp +291 -0
  553. casadi/include/coin-or/IpSearchDirCalculator.hpp +72 -0
  554. casadi/include/coin-or/IpSmartPtr.hpp +865 -0
  555. casadi/include/coin-or/IpSolveStatistics.hpp +210 -0
  556. casadi/include/coin-or/IpSparseSymLinearSolverInterface.hpp +260 -0
  557. casadi/include/coin-or/IpStdAugSystemSolver.cpp +555 -0
  558. casadi/include/coin-or/IpStdCInterface.h +428 -0
  559. casadi/include/coin-or/IpSumSymMatrix.hpp +186 -0
  560. casadi/include/coin-or/IpSymLinearSolver.hpp +141 -0
  561. casadi/include/coin-or/IpSymMatrix.hpp +167 -0
  562. casadi/include/coin-or/IpSymScaledMatrix.hpp +255 -0
  563. casadi/include/coin-or/IpSymTMatrix.hpp +275 -0
  564. casadi/include/coin-or/IpTNLP.hpp +820 -0
  565. casadi/include/coin-or/IpTNLPAdapter.hpp +648 -0
  566. casadi/include/coin-or/IpTNLPReducer.hpp +274 -0
  567. casadi/include/coin-or/IpTaggedObject.hpp +128 -0
  568. casadi/include/coin-or/IpTimedTask.hpp +218 -0
  569. casadi/include/coin-or/IpTimingStatistics.hpp +323 -0
  570. casadi/include/coin-or/IpTripletHelper.hpp +308 -0
  571. casadi/include/coin-or/IpTypes.h +81 -0
  572. casadi/include/coin-or/IpTypes.hpp +30 -0
  573. casadi/include/coin-or/IpUtils.hpp +166 -0
  574. casadi/include/coin-or/IpVector.hpp +892 -0
  575. casadi/include/coin-or/IpZeroSymMatrix.hpp +155 -0
  576. casadi/include/coin-or/IpoptConfig.h +45 -0
  577. casadi/include/coin-or/SensAlgorithm.hpp +114 -0
  578. casadi/include/coin-or/SensApplication.hpp +188 -0
  579. casadi/include/coin-or/SensBacksolver.hpp +36 -0
  580. casadi/include/coin-or/SensMeasurement.hpp +56 -0
  581. casadi/include/coin-or/SensPCalculator.hpp +137 -0
  582. casadi/include/coin-or/SensRegOp.hpp +21 -0
  583. casadi/include/coin-or/SensSchurData.hpp +182 -0
  584. casadi/include/coin-or/SensSchurDriver.hpp +118 -0
  585. casadi/include/coin-or/SensSimpleBacksolver.hpp +49 -0
  586. casadi/include/coin-or/SensStepCalc.hpp +85 -0
  587. casadi/include/coin-or/SensUtils.hpp +63 -0
  588. casadi/include/coin-or/metis/defs.h +161 -0
  589. casadi/include/coin-or/metis/macros.h +143 -0
  590. casadi/include/coin-or/metis/metis.h +37 -0
  591. casadi/include/coin-or/metis/proto.h +505 -0
  592. casadi/include/coin-or/metis/rename.h +418 -0
  593. casadi/include/coin-or/metis/struct.h +251 -0
  594. casadi/include/coin-or/mumps/dmumps_c.h +142 -0
  595. casadi/include/coin-or/mumps/mumps_c_types.h +72 -0
  596. casadi/include/coin-or/mumps/mumps_compat.h +27 -0
  597. casadi/include/coin-or/mumps/mumps_int_def.h +11 -0
  598. casadi/include/coin-or/mumps/mumps_mpi.h +67 -0
  599. casadi/include/d_blas.h +78 -0
  600. casadi/include/d_blas_64.h +73 -0
  601. casadi/include/fatrop/auxiliary/Common.hpp +34 -0
  602. casadi/include/fatrop/auxiliary/DynamicLib.hpp +34 -0
  603. casadi/include/fatrop/auxiliary/FatropOptions.hpp +68 -0
  604. casadi/include/fatrop/auxiliary/FatropVector.hpp +143 -0
  605. casadi/include/fatrop/auxiliary/LinearAlgebra.hpp +88 -0
  606. casadi/include/fatrop/auxiliary/VectorUtils.hpp +54 -0
  607. casadi/include/fatrop/blasfeo_wrapper/LinearAlgebraBlasfeo.hpp +493 -0
  608. casadi/include/fatrop/fatrop.hpp +39 -0
  609. casadi/include/fatrop/function_evaluation/CasadiCodegen.hpp +104 -0
  610. casadi/include/fatrop/function_evaluation/FunctionEvaluation.hpp +60 -0
  611. casadi/include/fatrop/json/json.h +946 -0
  612. casadi/include/fatrop/ocp/CasadiCApiUserdataWrap.hpp +87 -0
  613. casadi/include/fatrop/ocp/DuInfEvaluator.hpp +38 -0
  614. casadi/include/fatrop/ocp/FatropOCP.hpp +161 -0
  615. casadi/include/fatrop/ocp/FatropOCPBuilder.hpp +52 -0
  616. casadi/include/fatrop/ocp/FatropOCPResto.hpp +299 -0
  617. casadi/include/fatrop/ocp/OCP.hpp +82 -0
  618. casadi/include/fatrop/ocp/OCPAbstract.hpp +254 -0
  619. casadi/include/fatrop/ocp/OCPAdapter.hpp +197 -0
  620. casadi/include/fatrop/ocp/OCPCInterface.h +289 -0
  621. casadi/include/fatrop/ocp/OCPDims.hpp +60 -0
  622. casadi/include/fatrop/ocp/OCPInitializer.hpp +41 -0
  623. casadi/include/fatrop/ocp/OCPKKT.hpp +69 -0
  624. casadi/include/fatrop/ocp/OCPLSRiccati.hpp +198 -0
  625. casadi/include/fatrop/ocp/OCPLSScaler.hpp +66 -0
  626. casadi/include/fatrop/ocp/OCPLinearSolver.hpp +75 -0
  627. casadi/include/fatrop/ocp/OCPNoScaling.hpp +42 -0
  628. casadi/include/fatrop/ocp/OCPScalingMethod.hpp +42 -0
  629. casadi/include/fatrop/ocp/StageOCP.hpp +592 -0
  630. casadi/include/fatrop/ocp/StageOCPApplication.hpp +242 -0
  631. casadi/include/fatrop/ocp/StageOCPExpressions.hpp +182 -0
  632. casadi/include/fatrop/ocp/UStageEvalAbstract.hpp +168 -0
  633. casadi/include/fatrop/ocp/UStageOCPImpl.hpp +152 -0
  634. casadi/include/fatrop/quasi_newton/bfgs.hpp +159 -0
  635. casadi/include/fatrop/solver/AlgBuilder.hpp +76 -0
  636. casadi/include/fatrop/solver/AlgStrategy.hpp +33 -0
  637. casadi/include/fatrop/solver/FatropAlg.hpp +121 -0
  638. casadi/include/fatrop/solver/FatropData.hpp +188 -0
  639. casadi/include/fatrop/solver/FatropOptions.hpp +95 -0
  640. casadi/include/fatrop/solver/FatropPrinter.hpp +65 -0
  641. casadi/include/fatrop/solver/FatropStats.hpp +63 -0
  642. casadi/include/fatrop/solver/Filter.hpp +54 -0
  643. casadi/include/fatrop/solver/IterationData.hpp +56 -0
  644. casadi/include/fatrop/solver/LineSearch.hpp +86 -0
  645. casadi/include/fatrop/solver/NLPL1.hpp +263 -0
  646. casadi/include/fatrop/templates/NLPAlg.hpp +104 -0
  647. casadi/include/highs/HConfig.h +21 -0
  648. casadi/include/highs/Highs.h +1529 -0
  649. casadi/include/highs/filereaderlp/builder.hpp +25 -0
  650. casadi/include/highs/filereaderlp/def.hpp +19 -0
  651. casadi/include/highs/filereaderlp/model.hpp +68 -0
  652. casadi/include/highs/filereaderlp/reader.hpp +10 -0
  653. casadi/include/highs/interfaces/highs_c_api.h +2283 -0
  654. casadi/include/highs/io/Filereader.h +47 -0
  655. casadi/include/highs/io/FilereaderEms.h +33 -0
  656. casadi/include/highs/io/FilereaderLp.h +54 -0
  657. casadi/include/highs/io/FilereaderMps.h +30 -0
  658. casadi/include/highs/io/HMPSIO.h +81 -0
  659. casadi/include/highs/io/HMpsFF.h +235 -0
  660. casadi/include/highs/io/HighsIO.h +109 -0
  661. casadi/include/highs/io/LoadOptions.h +27 -0
  662. casadi/include/highs/ipm/IpxSolution.h +35 -0
  663. casadi/include/highs/ipm/IpxWrapper.h +73 -0
  664. casadi/include/highs/ipm/basiclu/basiclu.h +161 -0
  665. casadi/include/highs/ipm/basiclu/basiclu_factorize.h +247 -0
  666. casadi/include/highs/ipm/basiclu/basiclu_get_factors.h +108 -0
  667. casadi/include/highs/ipm/basiclu/basiclu_initialize.h +119 -0
  668. casadi/include/highs/ipm/basiclu/basiclu_obj_factorize.h +34 -0
  669. casadi/include/highs/ipm/basiclu/basiclu_obj_free.h +19 -0
  670. casadi/include/highs/ipm/basiclu/basiclu_obj_get_factors.h +34 -0
  671. casadi/include/highs/ipm/basiclu/basiclu_obj_initialize.h +46 -0
  672. casadi/include/highs/ipm/basiclu/basiclu_obj_solve_dense.h +29 -0
  673. casadi/include/highs/ipm/basiclu/basiclu_obj_solve_for_update.h +42 -0
  674. casadi/include/highs/ipm/basiclu/basiclu_obj_solve_sparse.h +32 -0
  675. casadi/include/highs/ipm/basiclu/basiclu_obj_update.h +31 -0
  676. casadi/include/highs/ipm/basiclu/basiclu_object.h +30 -0
  677. casadi/include/highs/ipm/basiclu/basiclu_solve_dense.h +75 -0
  678. casadi/include/highs/ipm/basiclu/basiclu_solve_for_update.h +169 -0
  679. casadi/include/highs/ipm/basiclu/basiclu_solve_sparse.h +112 -0
  680. casadi/include/highs/ipm/basiclu/basiclu_update.h +125 -0
  681. casadi/include/highs/ipm/basiclu/lu_def.h +39 -0
  682. casadi/include/highs/ipm/basiclu/lu_file.h +21 -0
  683. casadi/include/highs/ipm/basiclu/lu_internal.h +220 -0
  684. casadi/include/highs/ipm/basiclu/lu_list.h +168 -0
  685. casadi/include/highs/ipm/ipx/basiclu_kernel.h +20 -0
  686. casadi/include/highs/ipm/ipx/basiclu_wrapper.h +47 -0
  687. casadi/include/highs/ipm/ipx/basis.h +351 -0
  688. casadi/include/highs/ipm/ipx/conjugate_residuals.h +74 -0
  689. casadi/include/highs/ipm/ipx/control.h +163 -0
  690. casadi/include/highs/ipm/ipx/crossover.h +157 -0
  691. casadi/include/highs/ipm/ipx/diagonal_precond.h +45 -0
  692. casadi/include/highs/ipm/ipx/forrest_tomlin.h +102 -0
  693. casadi/include/highs/ipm/ipx/guess_basis.h +21 -0
  694. casadi/include/highs/ipm/ipx/indexed_vector.h +113 -0
  695. casadi/include/highs/ipm/ipx/info.h +27 -0
  696. casadi/include/highs/ipm/ipx/ipm.h +94 -0
  697. casadi/include/highs/ipm/ipx/ipx_c.h +47 -0
  698. casadi/include/highs/ipm/ipx/ipx_config.h +9 -0
  699. casadi/include/highs/ipm/ipx/ipx_info.h +111 -0
  700. casadi/include/highs/ipm/ipx/ipx_internal.h +88 -0
  701. casadi/include/highs/ipm/ipx/ipx_parameters.h +75 -0
  702. casadi/include/highs/ipm/ipx/ipx_status.h +57 -0
  703. casadi/include/highs/ipm/ipx/iterate.h +328 -0
  704. casadi/include/highs/ipm/ipx/kkt_solver.h +70 -0
  705. casadi/include/highs/ipm/ipx/kkt_solver_basis.h +66 -0
  706. casadi/include/highs/ipm/ipx/kkt_solver_diag.h +48 -0
  707. casadi/include/highs/ipm/ipx/linear_operator.h +26 -0
  708. casadi/include/highs/ipm/ipx/lp_solver.h +201 -0
  709. casadi/include/highs/ipm/ipx/lu_factorization.h +79 -0
  710. casadi/include/highs/ipm/ipx/lu_update.h +129 -0
  711. casadi/include/highs/ipm/ipx/maxvolume.h +54 -0
  712. casadi/include/highs/ipm/ipx/model.h +409 -0
  713. casadi/include/highs/ipm/ipx/multistream.h +52 -0
  714. casadi/include/highs/ipm/ipx/normal_matrix.h +44 -0
  715. casadi/include/highs/ipm/ipx/power_method.h +44 -0
  716. casadi/include/highs/ipm/ipx/sparse_matrix.h +195 -0
  717. casadi/include/highs/ipm/ipx/sparse_utils.h +58 -0
  718. casadi/include/highs/ipm/ipx/splitted_normal_matrix.h +63 -0
  719. casadi/include/highs/ipm/ipx/starting_basis.h +39 -0
  720. casadi/include/highs/ipm/ipx/symbolic_invert.h +29 -0
  721. casadi/include/highs/ipm/ipx/timer.h +24 -0
  722. casadi/include/highs/ipm/ipx/utils.h +39 -0
  723. casadi/include/highs/lp_data/HConst.h +305 -0
  724. casadi/include/highs/lp_data/HStruct.h +146 -0
  725. casadi/include/highs/lp_data/HighsAnalysis.h +26 -0
  726. casadi/include/highs/lp_data/HighsCallback.h +40 -0
  727. casadi/include/highs/lp_data/HighsCallbackStruct.h +62 -0
  728. casadi/include/highs/lp_data/HighsDebug.h +37 -0
  729. casadi/include/highs/lp_data/HighsInfo.h +322 -0
  730. casadi/include/highs/lp_data/HighsInfoDebug.h +30 -0
  731. casadi/include/highs/lp_data/HighsLp.h +101 -0
  732. casadi/include/highs/lp_data/HighsLpSolverObject.h +48 -0
  733. casadi/include/highs/lp_data/HighsLpUtils.h +266 -0
  734. casadi/include/highs/lp_data/HighsModelUtils.h +109 -0
  735. casadi/include/highs/lp_data/HighsOptions.h +1357 -0
  736. casadi/include/highs/lp_data/HighsRanging.h +46 -0
  737. casadi/include/highs/lp_data/HighsRuntimeOptions.h +276 -0
  738. casadi/include/highs/lp_data/HighsSolution.h +137 -0
  739. casadi/include/highs/lp_data/HighsSolutionDebug.h +90 -0
  740. casadi/include/highs/lp_data/HighsSolve.h +26 -0
  741. casadi/include/highs/lp_data/HighsStatus.h +32 -0
  742. casadi/include/highs/mip/HighsCliqueTable.h +318 -0
  743. casadi/include/highs/mip/HighsConflictPool.h +112 -0
  744. casadi/include/highs/mip/HighsCutGeneration.h +96 -0
  745. casadi/include/highs/mip/HighsCutPool.h +171 -0
  746. casadi/include/highs/mip/HighsDebugSol.h +135 -0
  747. casadi/include/highs/mip/HighsDomain.h +641 -0
  748. casadi/include/highs/mip/HighsDomainChange.h +51 -0
  749. casadi/include/highs/mip/HighsDynamicRowMatrix.h +107 -0
  750. casadi/include/highs/mip/HighsGFkSolve.h +441 -0
  751. casadi/include/highs/mip/HighsImplications.h +146 -0
  752. casadi/include/highs/mip/HighsLpAggregator.h +53 -0
  753. casadi/include/highs/mip/HighsLpRelaxation.h +360 -0
  754. casadi/include/highs/mip/HighsMipSolver.h +105 -0
  755. casadi/include/highs/mip/HighsMipSolverData.h +236 -0
  756. casadi/include/highs/mip/HighsModkSeparator.h +63 -0
  757. casadi/include/highs/mip/HighsNodeQueue.h +314 -0
  758. casadi/include/highs/mip/HighsObjectiveFunction.h +74 -0
  759. casadi/include/highs/mip/HighsPathSeparator.h +42 -0
  760. casadi/include/highs/mip/HighsPrimalHeuristics.h +68 -0
  761. casadi/include/highs/mip/HighsPseudocost.h +363 -0
  762. casadi/include/highs/mip/HighsRedcostFixing.h +45 -0
  763. casadi/include/highs/mip/HighsSearch.h +244 -0
  764. casadi/include/highs/mip/HighsSeparation.h +44 -0
  765. casadi/include/highs/mip/HighsSeparator.h +56 -0
  766. casadi/include/highs/mip/HighsTableauSeparator.h +37 -0
  767. casadi/include/highs/mip/HighsTransformedLp.h +66 -0
  768. casadi/include/highs/model/HighsHessian.h +54 -0
  769. casadi/include/highs/model/HighsHessianUtils.h +49 -0
  770. casadi/include/highs/model/HighsModel.h +52 -0
  771. casadi/include/highs/parallel/HighsBinarySemaphore.h +113 -0
  772. casadi/include/highs/parallel/HighsCacheAlign.h +87 -0
  773. casadi/include/highs/parallel/HighsCombinable.h +121 -0
  774. casadi/include/highs/parallel/HighsMutex.h +129 -0
  775. casadi/include/highs/parallel/HighsParallel.h +133 -0
  776. casadi/include/highs/parallel/HighsRaceTimer.h +43 -0
  777. casadi/include/highs/parallel/HighsSchedulerConstants.h +24 -0
  778. casadi/include/highs/parallel/HighsSpinMutex.h +53 -0
  779. casadi/include/highs/parallel/HighsSplitDeque.h +583 -0
  780. casadi/include/highs/parallel/HighsTask.h +175 -0
  781. casadi/include/highs/parallel/HighsTaskExecutor.h +209 -0
  782. casadi/include/highs/pdlp/CupdlpWrapper.h +93 -0
  783. casadi/include/highs/pdlp/cupdlp/cupdlp_cs.h +41 -0
  784. casadi/include/highs/pdlp/cupdlp/cupdlp_defs.h +423 -0
  785. casadi/include/highs/pdlp/cupdlp/cupdlp_linalg.h +183 -0
  786. casadi/include/highs/pdlp/cupdlp/cupdlp_proj.h +19 -0
  787. casadi/include/highs/pdlp/cupdlp/cupdlp_restart.h +31 -0
  788. casadi/include/highs/pdlp/cupdlp/cupdlp_scaling_cuda.h +28 -0
  789. casadi/include/highs/pdlp/cupdlp/cupdlp_solver.h +98 -0
  790. casadi/include/highs/pdlp/cupdlp/cupdlp_step.h +33 -0
  791. casadi/include/highs/pdlp/cupdlp/cupdlp_utils.c +1726 -0
  792. casadi/include/highs/pdqsort/pdqsort.h +532 -0
  793. casadi/include/highs/presolve/HPresolve.h +365 -0
  794. casadi/include/highs/presolve/HPresolveAnalysis.h +54 -0
  795. casadi/include/highs/presolve/HighsPostsolveStack.h +907 -0
  796. casadi/include/highs/presolve/HighsSymmetry.h +284 -0
  797. casadi/include/highs/presolve/ICrash.h +127 -0
  798. casadi/include/highs/presolve/ICrashUtil.h +65 -0
  799. casadi/include/highs/presolve/ICrashX.h +26 -0
  800. casadi/include/highs/presolve/PresolveComponent.h +93 -0
  801. casadi/include/highs/qpsolver/a_asm.hpp +67 -0
  802. casadi/include/highs/qpsolver/a_quass.hpp +19 -0
  803. casadi/include/highs/qpsolver/basis.hpp +150 -0
  804. casadi/include/highs/qpsolver/crashsolution.hpp +12 -0
  805. casadi/include/highs/qpsolver/dantzigpricing.hpp +72 -0
  806. casadi/include/highs/qpsolver/devexpricing.hpp +99 -0
  807. casadi/include/highs/qpsolver/eventhandler.hpp +23 -0
  808. casadi/include/highs/qpsolver/factor.hpp +400 -0
  809. casadi/include/highs/qpsolver/feasibility_bounded.hpp +105 -0
  810. casadi/include/highs/qpsolver/feasibility_highs.hpp +270 -0
  811. casadi/include/highs/qpsolver/gradient.hpp +39 -0
  812. casadi/include/highs/qpsolver/instance.hpp +63 -0
  813. casadi/include/highs/qpsolver/matrix.hpp +335 -0
  814. casadi/include/highs/qpsolver/perturbation.hpp +8 -0
  815. casadi/include/highs/qpsolver/pricing.hpp +15 -0
  816. casadi/include/highs/qpsolver/qpconst.hpp +27 -0
  817. casadi/include/highs/qpsolver/qpvector.hpp +235 -0
  818. casadi/include/highs/qpsolver/quass.hpp +20 -0
  819. casadi/include/highs/qpsolver/ratiotest.hpp +19 -0
  820. casadi/include/highs/qpsolver/runtime.hpp +38 -0
  821. casadi/include/highs/qpsolver/scaling.hpp +8 -0
  822. casadi/include/highs/qpsolver/settings.hpp +57 -0
  823. casadi/include/highs/qpsolver/snippets.hpp +29 -0
  824. casadi/include/highs/qpsolver/statistics.hpp +23 -0
  825. casadi/include/highs/qpsolver/steepestedgepricing.hpp +167 -0
  826. casadi/include/highs/simplex/HApp.h +422 -0
  827. casadi/include/highs/simplex/HEkk.h +403 -0
  828. casadi/include/highs/simplex/HEkkDual.h +515 -0
  829. casadi/include/highs/simplex/HEkkDualRHS.h +137 -0
  830. casadi/include/highs/simplex/HEkkDualRow.h +204 -0
  831. casadi/include/highs/simplex/HEkkPrimal.h +195 -0
  832. casadi/include/highs/simplex/HSimplex.h +45 -0
  833. casadi/include/highs/simplex/HSimplexDebug.h +51 -0
  834. casadi/include/highs/simplex/HSimplexNla.h +184 -0
  835. casadi/include/highs/simplex/HSimplexReport.h +24 -0
  836. casadi/include/highs/simplex/HighsSimplexAnalysis.h +503 -0
  837. casadi/include/highs/simplex/SimplexConst.h +274 -0
  838. casadi/include/highs/simplex/SimplexStruct.h +264 -0
  839. casadi/include/highs/simplex/SimplexTimer.h +427 -0
  840. casadi/include/highs/test/DevKkt.h +146 -0
  841. casadi/include/highs/test/KktCh2.h +82 -0
  842. casadi/include/highs/util/FactorTimer.h +224 -0
  843. casadi/include/highs/util/HFactor.h +587 -0
  844. casadi/include/highs/util/HFactorConst.h +84 -0
  845. casadi/include/highs/util/HFactorDebug.h +58 -0
  846. casadi/include/highs/util/HSet.h +92 -0
  847. casadi/include/highs/util/HVector.h +25 -0
  848. casadi/include/highs/util/HVectorBase.h +105 -0
  849. casadi/include/highs/util/HighsCDouble.h +310 -0
  850. casadi/include/highs/util/HighsComponent.h +56 -0
  851. casadi/include/highs/util/HighsDataStack.h +86 -0
  852. casadi/include/highs/util/HighsDisjointSets.h +110 -0
  853. casadi/include/highs/util/HighsHash.h +1277 -0
  854. casadi/include/highs/util/HighsHashTree.h +1443 -0
  855. casadi/include/highs/util/HighsInt.h +39 -0
  856. casadi/include/highs/util/HighsIntegers.h +215 -0
  857. casadi/include/highs/util/HighsLinearSumBounds.h +160 -0
  858. casadi/include/highs/util/HighsMatrixPic.h +40 -0
  859. casadi/include/highs/util/HighsMatrixSlice.h +564 -0
  860. casadi/include/highs/util/HighsMatrixUtils.h +57 -0
  861. casadi/include/highs/util/HighsMemoryAllocation.h +55 -0
  862. casadi/include/highs/util/HighsRandom.h +245 -0
  863. casadi/include/highs/util/HighsRbTree.h +455 -0
  864. casadi/include/highs/util/HighsSort.h +134 -0
  865. casadi/include/highs/util/HighsSparseMatrix.h +147 -0
  866. casadi/include/highs/util/HighsSparseVectorSum.h +98 -0
  867. casadi/include/highs/util/HighsSplay.h +138 -0
  868. casadi/include/highs/util/HighsTimer.h +343 -0
  869. casadi/include/highs/util/HighsUtils.h +210 -0
  870. casadi/include/highs/util/stringutil.h +44 -0
  871. casadi/include/highs/zstr/strict_fstream.hpp +237 -0
  872. casadi/include/highs/zstr/zstr.hpp +472 -0
  873. casadi/include/highs_export.h +43 -0
  874. casadi/include/hpipm_aux_mem.h +52 -0
  875. casadi/include/hpipm_aux_string.h +50 -0
  876. casadi/include/hpipm_common.h +76 -0
  877. casadi/include/hpipm_d_cast_qcqp.h +71 -0
  878. casadi/include/hpipm_d_cond.h +135 -0
  879. casadi/include/hpipm_d_cond_aux.h +92 -0
  880. casadi/include/hpipm_d_cond_qcqp.h +129 -0
  881. casadi/include/hpipm_d_core_qp_ipm.h +101 -0
  882. casadi/include/hpipm_d_core_qp_ipm_aux.h +68 -0
  883. casadi/include/hpipm_d_dense_qcqp.h +199 -0
  884. casadi/include/hpipm_d_dense_qcqp_dim.h +98 -0
  885. casadi/include/hpipm_d_dense_qcqp_ipm.h +193 -0
  886. casadi/include/hpipm_d_dense_qcqp_res.h +108 -0
  887. casadi/include/hpipm_d_dense_qcqp_sol.h +85 -0
  888. casadi/include/hpipm_d_dense_qcqp_utils.h +82 -0
  889. casadi/include/hpipm_d_dense_qp.h +207 -0
  890. casadi/include/hpipm_d_dense_qp_dim.h +92 -0
  891. casadi/include/hpipm_d_dense_qp_ipm.h +260 -0
  892. casadi/include/hpipm_d_dense_qp_kkt.h +72 -0
  893. casadi/include/hpipm_d_dense_qp_res.h +106 -0
  894. casadi/include/hpipm_d_dense_qp_sol.h +94 -0
  895. casadi/include/hpipm_d_dense_qp_utils.h +83 -0
  896. casadi/include/hpipm_d_ocp_qcqp.h +322 -0
  897. casadi/include/hpipm_d_ocp_qcqp_dim.h +130 -0
  898. casadi/include/hpipm_d_ocp_qcqp_ipm.h +192 -0
  899. casadi/include/hpipm_d_ocp_qcqp_red.h +118 -0
  900. casadi/include/hpipm_d_ocp_qcqp_res.h +115 -0
  901. casadi/include/hpipm_d_ocp_qcqp_sol.h +114 -0
  902. casadi/include/hpipm_d_ocp_qcqp_utils.h +81 -0
  903. casadi/include/hpipm_d_ocp_qp.h +306 -0
  904. casadi/include/hpipm_d_ocp_qp_dim.h +142 -0
  905. casadi/include/hpipm_d_ocp_qp_ipm.h +252 -0
  906. casadi/include/hpipm_d_ocp_qp_kkt.h +66 -0
  907. casadi/include/hpipm_d_ocp_qp_red.h +117 -0
  908. casadi/include/hpipm_d_ocp_qp_res.h +113 -0
  909. casadi/include/hpipm_d_ocp_qp_sol.h +128 -0
  910. casadi/include/hpipm_d_ocp_qp_utils.h +82 -0
  911. casadi/include/hpipm_d_part_cond.h +115 -0
  912. casadi/include/hpipm_d_part_cond_qcqp.h +106 -0
  913. casadi/include/hpipm_d_sim_erk.h +122 -0
  914. casadi/include/hpipm_d_sim_rk.h +71 -0
  915. casadi/include/hpipm_d_tree_ocp_qcqp.h +213 -0
  916. casadi/include/hpipm_d_tree_ocp_qcqp_dim.h +117 -0
  917. casadi/include/hpipm_d_tree_ocp_qcqp_ipm.h +191 -0
  918. casadi/include/hpipm_d_tree_ocp_qcqp_res.h +109 -0
  919. casadi/include/hpipm_d_tree_ocp_qcqp_sol.h +99 -0
  920. casadi/include/hpipm_d_tree_ocp_qcqp_utils.h +84 -0
  921. casadi/include/hpipm_d_tree_ocp_qp.h +195 -0
  922. casadi/include/hpipm_d_tree_ocp_qp_dim.h +111 -0
  923. casadi/include/hpipm_d_tree_ocp_qp_ipm.h +209 -0
  924. casadi/include/hpipm_d_tree_ocp_qp_kkt.h +52 -0
  925. casadi/include/hpipm_d_tree_ocp_qp_res.h +107 -0
  926. casadi/include/hpipm_d_tree_ocp_qp_sol.h +100 -0
  927. casadi/include/hpipm_d_tree_ocp_qp_utils.h +83 -0
  928. casadi/include/hpipm_m_dense_qp.h +68 -0
  929. casadi/include/hpipm_m_dense_qp_dim.h +68 -0
  930. casadi/include/hpipm_m_ocp_qp.h +49 -0
  931. casadi/include/hpipm_m_ocp_qp_ipm_hard.h +115 -0
  932. casadi/include/hpipm_m_ocp_qp_kkt.h +45 -0
  933. casadi/include/hpipm_s_cast_qcqp.h +72 -0
  934. casadi/include/hpipm_s_cond.h +137 -0
  935. casadi/include/hpipm_s_cond_aux.h +92 -0
  936. casadi/include/hpipm_s_cond_qcqp.h +130 -0
  937. casadi/include/hpipm_s_core_qp_ipm.h +101 -0
  938. casadi/include/hpipm_s_core_qp_ipm_aux.h +68 -0
  939. casadi/include/hpipm_s_dense_qcqp.h +200 -0
  940. casadi/include/hpipm_s_dense_qcqp_dim.h +99 -0
  941. casadi/include/hpipm_s_dense_qcqp_ipm.h +204 -0
  942. casadi/include/hpipm_s_dense_qcqp_res.h +109 -0
  943. casadi/include/hpipm_s_dense_qcqp_sol.h +86 -0
  944. casadi/include/hpipm_s_dense_qcqp_utils.h +83 -0
  945. casadi/include/hpipm_s_dense_qp.h +207 -0
  946. casadi/include/hpipm_s_dense_qp_dim.h +94 -0
  947. casadi/include/hpipm_s_dense_qp_ipm.h +260 -0
  948. casadi/include/hpipm_s_dense_qp_kkt.h +72 -0
  949. casadi/include/hpipm_s_dense_qp_res.h +107 -0
  950. casadi/include/hpipm_s_dense_qp_sol.h +94 -0
  951. casadi/include/hpipm_s_dense_qp_utils.h +84 -0
  952. casadi/include/hpipm_s_ocp_qcqp.h +322 -0
  953. casadi/include/hpipm_s_ocp_qcqp_dim.h +131 -0
  954. casadi/include/hpipm_s_ocp_qcqp_ipm.h +193 -0
  955. casadi/include/hpipm_s_ocp_qcqp_red.h +119 -0
  956. casadi/include/hpipm_s_ocp_qcqp_res.h +116 -0
  957. casadi/include/hpipm_s_ocp_qcqp_sol.h +115 -0
  958. casadi/include/hpipm_s_ocp_qcqp_utils.h +82 -0
  959. casadi/include/hpipm_s_ocp_qp.h +306 -0
  960. casadi/include/hpipm_s_ocp_qp_dim.h +141 -0
  961. casadi/include/hpipm_s_ocp_qp_ipm.h +252 -0
  962. casadi/include/hpipm_s_ocp_qp_kkt.h +66 -0
  963. casadi/include/hpipm_s_ocp_qp_red.h +118 -0
  964. casadi/include/hpipm_s_ocp_qp_res.h +115 -0
  965. casadi/include/hpipm_s_ocp_qp_sol.h +128 -0
  966. casadi/include/hpipm_s_ocp_qp_utils.h +83 -0
  967. casadi/include/hpipm_s_part_cond.h +115 -0
  968. casadi/include/hpipm_s_part_cond_qcqp.h +107 -0
  969. casadi/include/hpipm_s_sim_erk.h +121 -0
  970. casadi/include/hpipm_s_sim_rk.h +72 -0
  971. casadi/include/hpipm_s_tree_ocp_qcqp.h +213 -0
  972. casadi/include/hpipm_s_tree_ocp_qcqp_dim.h +118 -0
  973. casadi/include/hpipm_s_tree_ocp_qcqp_ipm.h +192 -0
  974. casadi/include/hpipm_s_tree_ocp_qcqp_res.h +110 -0
  975. casadi/include/hpipm_s_tree_ocp_qcqp_sol.h +97 -0
  976. casadi/include/hpipm_s_tree_ocp_qcqp_utils.h +85 -0
  977. casadi/include/hpipm_s_tree_ocp_qp.h +196 -0
  978. casadi/include/hpipm_s_tree_ocp_qp_dim.h +111 -0
  979. casadi/include/hpipm_s_tree_ocp_qp_ipm.h +208 -0
  980. casadi/include/hpipm_s_tree_ocp_qp_kkt.h +54 -0
  981. casadi/include/hpipm_s_tree_ocp_qp_res.h +108 -0
  982. casadi/include/hpipm_s_tree_ocp_qp_sol.h +98 -0
  983. casadi/include/hpipm_s_tree_ocp_qp_utils.h +84 -0
  984. casadi/include/hpipm_scenario_tree.h +70 -0
  985. casadi/include/hpipm_timing.h +67 -0
  986. casadi/include/hpipm_tree.h +76 -0
  987. casadi/include/licenses/CSparse/Doc/License.txt +19 -0
  988. casadi/include/licenses/FMI-Standard-2.0.2/LICENSE.txt +473 -0
  989. casadi/include/licenses/FMI-Standard-3.0/LICENSE.txt +464 -0
  990. casadi/include/licenses/blasfeo-external/LICENSE.txt +26 -0
  991. casadi/include/licenses/bonmin-external/Bonmin/LICENSE +87 -0
  992. casadi/include/licenses/bonmin-external/LICENSE +3 -0
  993. casadi/include/licenses/casadi/LICENSE/LICENSE.txt +165 -0
  994. casadi/include/licenses/casadi-sundials/LICENSE +64 -0
  995. casadi/include/licenses/casadi-sundials/cvodes/LICENSE +60 -0
  996. casadi/include/licenses/casadi-sundials/idas/LICENSE +59 -0
  997. casadi/include/licenses/casadi-sundials/kinsol/LICENSE +59 -0
  998. casadi/include/licenses/casadi-sundials/sundials/LICENSE +67 -0
  999. casadi/include/licenses/cbc-external/Cbc/LICENSE +239 -0
  1000. casadi/include/licenses/cbc-external/LICENSE +245 -0
  1001. casadi/include/licenses/cgl-external/Cgl/LICENSE +239 -0
  1002. casadi/include/licenses/cgl-external/LICENSE +245 -0
  1003. casadi/include/licenses/clp-external/Clp/LICENSE +239 -0
  1004. casadi/include/licenses/clp-external/LICENSE +245 -0
  1005. casadi/include/licenses/coinutils-external/CoinUtils/LICENSE +239 -0
  1006. casadi/include/licenses/coinutils-external/LICENSE +245 -0
  1007. casadi/include/licenses/fatrop-external/LICENSE.txt +165 -0
  1008. casadi/include/licenses/fatrop-external/external/blasfeo/LICENSE.txt +26 -0
  1009. casadi/include/licenses/fatrop-external/external/pybind11/LICENSE +29 -0
  1010. casadi/include/licenses/fatrop-external/misc/license_header.txt +17 -0
  1011. casadi/include/licenses/highs-external/LICENSE.txt +21 -0
  1012. casadi/include/licenses/highs-external/extern/filereaderlp/LICENSE +19 -0
  1013. casadi/include/licenses/highs-external/extern/pdqsort/license.txt +16 -0
  1014. casadi/include/licenses/hpipm-external/LICENSE.txt +26 -0
  1015. casadi/include/licenses/hpipm-external/experimental/andrea/prototype/code/plotregion/license.txt +24 -0
  1016. casadi/include/licenses/ipopt-external/LICENSE +260 -0
  1017. casadi/include/licenses/metis-external/LICENSE +87 -0
  1018. casadi/include/licenses/metis-external/metis-4.0/LICENSE +18 -0
  1019. casadi/include/licenses/mockups-external/LICENSE +21 -0
  1020. casadi/include/licenses/mumps-external/LICENSE +87 -0
  1021. casadi/include/licenses/mumps-external/MUMPS/LICENSE +50 -0
  1022. casadi/include/licenses/osi-external/LICENSE +245 -0
  1023. casadi/include/licenses/osi-external/Osi/LICENSE +239 -0
  1024. casadi/include/licenses/osqp-external/LICENSE +201 -0
  1025. casadi/include/licenses/osqp-external/lin_sys/direct/qdldl/amd/LICENSE +36 -0
  1026. casadi/include/licenses/osqp-external/lin_sys/direct/qdldl/qdldl_sources/LICENSE +201 -0
  1027. casadi/include/licenses/qpOASES/LICENSE.txt +503 -0
  1028. casadi/include/licenses/sleqp-external/LICENSE +165 -0
  1029. casadi/include/licenses/superscs-external/LICENSE.txt +24 -0
  1030. casadi/include/licenses/tinyxml2-9.0.0/LICENSE.txt +18 -0
  1031. casadi/include/licenses/trlib-external/LICENSE +21 -0
  1032. casadi/include/osqp/auxil.h +181 -0
  1033. casadi/include/osqp/constants.h +128 -0
  1034. casadi/include/osqp/cs.h +180 -0
  1035. casadi/include/osqp/ctrlc.h +56 -0
  1036. casadi/include/osqp/error.h +38 -0
  1037. casadi/include/osqp/glob_opts.h +167 -0
  1038. casadi/include/osqp/lin_alg.h +216 -0
  1039. casadi/include/osqp/lin_sys.h +54 -0
  1040. casadi/include/osqp/osqp.h +430 -0
  1041. casadi/include/osqp/osqp_configure.h +49 -0
  1042. casadi/include/osqp/polish.h +25 -0
  1043. casadi/include/osqp/proj.h +37 -0
  1044. casadi/include/osqp/scaling.h +44 -0
  1045. casadi/include/osqp/types.h +326 -0
  1046. casadi/include/osqp/util.h +222 -0
  1047. casadi/include/osqp/version.h +9 -0
  1048. casadi/include/qdldl/qdldl.h +169 -0
  1049. casadi/include/qdldl/qdldl_types.h +23 -0
  1050. casadi/include/s_blas.h +78 -0
  1051. casadi/include/s_blas_64.h +73 -0
  1052. casadi/include/sleqp/defs.h +58 -0
  1053. casadi/include/sleqp/export.h +43 -0
  1054. casadi/include/sleqp/pub_cmp.h +18 -0
  1055. casadi/include/sleqp/pub_dyn.h +140 -0
  1056. casadi/include/sleqp/pub_error.h +50 -0
  1057. casadi/include/sleqp/pub_func.h +257 -0
  1058. casadi/include/sleqp/pub_hess_struct.h +105 -0
  1059. casadi/include/sleqp/pub_iterate.h +88 -0
  1060. casadi/include/sleqp/pub_log.h +88 -0
  1061. casadi/include/sleqp/pub_lsq.h +158 -0
  1062. casadi/include/sleqp/pub_mem.h +52 -0
  1063. casadi/include/sleqp/pub_problem.h +213 -0
  1064. casadi/include/sleqp/pub_scale.h +150 -0
  1065. casadi/include/sleqp/pub_settings.h +162 -0
  1066. casadi/include/sleqp/pub_solver.h +155 -0
  1067. casadi/include/sleqp/pub_types.h +230 -0
  1068. casadi/include/sleqp/pub_working_set.h +135 -0
  1069. casadi/include/sleqp/sparse/pub_mat.h +153 -0
  1070. casadi/include/sleqp/sparse/pub_vec.h +336 -0
  1071. casadi/include/sleqp.h +38 -0
  1072. casadi/include/superscs/cones.h +185 -0
  1073. casadi/include/superscs/constants.h +144 -0
  1074. casadi/include/superscs/cs.h +109 -0
  1075. casadi/include/superscs/ctrlc.h +77 -0
  1076. casadi/include/superscs/directions.h +125 -0
  1077. casadi/include/superscs/glbopts.h +240 -0
  1078. casadi/include/superscs/linAlg.h +437 -0
  1079. casadi/include/superscs/linSys.h +205 -0
  1080. casadi/include/superscs/linsys/amatrix.h +77 -0
  1081. casadi/include/superscs/linsys/common.h +49 -0
  1082. casadi/include/superscs/normalize.h +138 -0
  1083. casadi/include/superscs/scs.h +656 -0
  1084. casadi/include/superscs/scs_blas.h +79 -0
  1085. casadi/include/superscs/scs_parser.h +187 -0
  1086. casadi/include/superscs/unit_test_util.h +210 -0
  1087. casadi/include/superscs/util.h +354 -0
  1088. casadi/include/tinyxml2.h +2380 -0
  1089. casadi/include/trlib/trlib_eigen_inverse.h +118 -0
  1090. casadi/include/trlib/trlib_krylov.h +493 -0
  1091. casadi/include/trlib/trlib_leftmost.h +181 -0
  1092. casadi/include/trlib/trlib_private.h +109 -0
  1093. casadi/include/trlib/trlib_quadratic_zero.h +57 -0
  1094. casadi/include/trlib/trlib_tri_factor.h +409 -0
  1095. casadi/include/trlib/trlib_types.h +36 -0
  1096. casadi/include/trlib.h +44 -0
  1097. casadi/lib/cmake/tinyxml2/tinyxml2-config-version.cmake +65 -0
  1098. casadi/lib/cmake/tinyxml2/tinyxml2-config.cmake +57 -0
  1099. casadi/lib/cmake/tinyxml2/tinyxml2-static-targets-release.cmake +19 -0
  1100. casadi/lib/cmake/tinyxml2/tinyxml2-static-targets.cmake +107 -0
  1101. casadi/lib/libtinyxml2.a +0 -0
  1102. casadi/lib/pkgconfig/tinyxml2.pc +10 -0
  1103. casadi/libCbc.3.10.11.dylib +0 -0
  1104. casadi/libCbc.3.dylib +0 -0
  1105. casadi/libCbc.dylib +0 -0
  1106. casadi/libCbc.la +35 -0
  1107. casadi/libCbcSolver.3.10.11.dylib +0 -0
  1108. casadi/libCbcSolver.3.dylib +0 -0
  1109. casadi/libCbcSolver.dylib +0 -0
  1110. casadi/libCbcSolver.la +35 -0
  1111. casadi/libCgl.1.10.8.dylib +0 -0
  1112. casadi/libCgl.1.dylib +0 -0
  1113. casadi/libCgl.dylib +0 -0
  1114. casadi/libCgl.la +35 -0
  1115. casadi/libClp.1.14.9.dylib +0 -0
  1116. casadi/libClp.1.dylib +0 -0
  1117. casadi/libClp.dylib +0 -0
  1118. casadi/libClp.la +35 -0
  1119. casadi/libClpSolver.1.14.9.dylib +0 -0
  1120. casadi/libClpSolver.1.dylib +0 -0
  1121. casadi/libClpSolver.dylib +0 -0
  1122. casadi/libClpSolver.la +35 -0
  1123. casadi/libCoinUtils.3.11.10.dylib +0 -0
  1124. casadi/libCoinUtils.3.dylib +0 -0
  1125. casadi/libCoinUtils.dylib +0 -0
  1126. casadi/libCoinUtils.la +35 -0
  1127. casadi/libOsi.1.13.9.dylib +0 -0
  1128. casadi/libOsi.1.dylib +0 -0
  1129. casadi/libOsi.dylib +0 -0
  1130. casadi/libOsi.la +35 -0
  1131. casadi/libOsiCbc.3.10.11.dylib +0 -0
  1132. casadi/libOsiCbc.3.dylib +0 -0
  1133. casadi/libOsiCbc.dylib +0 -0
  1134. casadi/libOsiCbc.la +35 -0
  1135. casadi/libOsiClp.1.14.9.dylib +0 -0
  1136. casadi/libOsiClp.1.dylib +0 -0
  1137. casadi/libOsiClp.dylib +0 -0
  1138. casadi/libOsiClp.la +35 -0
  1139. casadi/libOsiCommonTests.1.13.9.dylib +0 -0
  1140. casadi/libOsiCommonTests.1.dylib +0 -0
  1141. casadi/libOsiCommonTests.dylib +0 -0
  1142. casadi/libOsiCommonTests.la +35 -0
  1143. casadi/libblasfeo.dylib +0 -0
  1144. casadi/libbonmin.4.8.9.dylib +0 -0
  1145. casadi/libbonmin.4.dylib +0 -0
  1146. casadi/libbonmin.dylib +0 -0
  1147. casadi/libbonmin.la +35 -0
  1148. casadi/libc++.1.0.dylib +0 -0
  1149. casadi/libcasadi.3.7.dylib +0 -0
  1150. casadi/libcasadi.dylib +0 -0
  1151. casadi/libcasadi_conic_cbc.3.7.dylib +0 -0
  1152. casadi/libcasadi_conic_cbc.dylib +0 -0
  1153. casadi/libcasadi_conic_clp.3.7.dylib +0 -0
  1154. casadi/libcasadi_conic_clp.dylib +0 -0
  1155. casadi/libcasadi_conic_cplex.3.7.dylib +0 -0
  1156. casadi/libcasadi_conic_cplex.dylib +0 -0
  1157. casadi/libcasadi_conic_fatrop.3.7.dylib +0 -0
  1158. casadi/libcasadi_conic_fatrop.dylib +0 -0
  1159. casadi/libcasadi_conic_gurobi.3.7.dylib +0 -0
  1160. casadi/libcasadi_conic_gurobi.dylib +0 -0
  1161. casadi/libcasadi_conic_highs.3.7.dylib +0 -0
  1162. casadi/libcasadi_conic_highs.dylib +0 -0
  1163. casadi/libcasadi_conic_hpipm.3.7.dylib +0 -0
  1164. casadi/libcasadi_conic_hpipm.dylib +0 -0
  1165. casadi/libcasadi_conic_ipqp.3.7.dylib +0 -0
  1166. casadi/libcasadi_conic_ipqp.dylib +0 -0
  1167. casadi/libcasadi_conic_nlpsol.3.7.dylib +0 -0
  1168. casadi/libcasadi_conic_nlpsol.dylib +0 -0
  1169. casadi/libcasadi_conic_osqp.3.7.dylib +0 -0
  1170. casadi/libcasadi_conic_osqp.dylib +0 -0
  1171. casadi/libcasadi_conic_qpoases.3.7.dylib +0 -0
  1172. casadi/libcasadi_conic_qpoases.dylib +0 -0
  1173. casadi/libcasadi_conic_qrqp.3.7.dylib +0 -0
  1174. casadi/libcasadi_conic_qrqp.dylib +0 -0
  1175. casadi/libcasadi_conic_superscs.3.7.dylib +0 -0
  1176. casadi/libcasadi_conic_superscs.dylib +0 -0
  1177. casadi/libcasadi_importer_shell.3.7.dylib +0 -0
  1178. casadi/libcasadi_importer_shell.dylib +0 -0
  1179. casadi/libcasadi_integrator_collocation.3.7.dylib +0 -0
  1180. casadi/libcasadi_integrator_collocation.dylib +0 -0
  1181. casadi/libcasadi_integrator_cvodes.3.7.dylib +0 -0
  1182. casadi/libcasadi_integrator_cvodes.dylib +0 -0
  1183. casadi/libcasadi_integrator_idas.3.7.dylib +0 -0
  1184. casadi/libcasadi_integrator_idas.dylib +0 -0
  1185. casadi/libcasadi_integrator_rk.3.7.dylib +0 -0
  1186. casadi/libcasadi_integrator_rk.dylib +0 -0
  1187. casadi/libcasadi_interpolant_bspline.3.7.dylib +0 -0
  1188. casadi/libcasadi_interpolant_bspline.dylib +0 -0
  1189. casadi/libcasadi_interpolant_linear.3.7.dylib +0 -0
  1190. casadi/libcasadi_interpolant_linear.dylib +0 -0
  1191. casadi/libcasadi_linsol_csparse.3.7.dylib +0 -0
  1192. casadi/libcasadi_linsol_csparse.dylib +0 -0
  1193. casadi/libcasadi_linsol_csparsecholesky.3.7.dylib +0 -0
  1194. casadi/libcasadi_linsol_csparsecholesky.dylib +0 -0
  1195. casadi/libcasadi_linsol_lapacklu.3.7.dylib +0 -0
  1196. casadi/libcasadi_linsol_lapacklu.dylib +0 -0
  1197. casadi/libcasadi_linsol_lapackqr.3.7.dylib +0 -0
  1198. casadi/libcasadi_linsol_lapackqr.dylib +0 -0
  1199. casadi/libcasadi_linsol_ldl.3.7.dylib +0 -0
  1200. casadi/libcasadi_linsol_ldl.dylib +0 -0
  1201. casadi/libcasadi_linsol_lsqr.3.7.dylib +0 -0
  1202. casadi/libcasadi_linsol_lsqr.dylib +0 -0
  1203. casadi/libcasadi_linsol_ma27.3.7.dylib +0 -0
  1204. casadi/libcasadi_linsol_ma27.dylib +0 -0
  1205. casadi/libcasadi_linsol_mumps.3.7.dylib +0 -0
  1206. casadi/libcasadi_linsol_mumps.dylib +0 -0
  1207. casadi/libcasadi_linsol_qr.3.7.dylib +0 -0
  1208. casadi/libcasadi_linsol_qr.dylib +0 -0
  1209. casadi/libcasadi_linsol_symbolicqr.3.7.dylib +0 -0
  1210. casadi/libcasadi_linsol_symbolicqr.dylib +0 -0
  1211. casadi/libcasadi_linsol_tridiag.3.7.dylib +0 -0
  1212. casadi/libcasadi_linsol_tridiag.dylib +0 -0
  1213. casadi/libcasadi_nlpsol_ampl.3.7.dylib +0 -0
  1214. casadi/libcasadi_nlpsol_ampl.dylib +0 -0
  1215. casadi/libcasadi_nlpsol_blocksqp.3.7.dylib +0 -0
  1216. casadi/libcasadi_nlpsol_blocksqp.dylib +0 -0
  1217. casadi/libcasadi_nlpsol_bonmin.3.7.dylib +0 -0
  1218. casadi/libcasadi_nlpsol_bonmin.dylib +0 -0
  1219. casadi/libcasadi_nlpsol_fatrop.3.7.dylib +0 -0
  1220. casadi/libcasadi_nlpsol_fatrop.dylib +0 -0
  1221. casadi/libcasadi_nlpsol_feasiblesqpmethod.3.7.dylib +0 -0
  1222. casadi/libcasadi_nlpsol_feasiblesqpmethod.dylib +0 -0
  1223. casadi/libcasadi_nlpsol_ipopt.3.7.dylib +0 -0
  1224. casadi/libcasadi_nlpsol_ipopt.dylib +0 -0
  1225. casadi/libcasadi_nlpsol_knitro.3.7.dylib +0 -0
  1226. casadi/libcasadi_nlpsol_knitro.dylib +0 -0
  1227. casadi/libcasadi_nlpsol_madnlp.3.7.dylib +0 -0
  1228. casadi/libcasadi_nlpsol_madnlp.dylib +0 -0
  1229. casadi/libcasadi_nlpsol_qrsqp.3.7.dylib +0 -0
  1230. casadi/libcasadi_nlpsol_qrsqp.dylib +0 -0
  1231. casadi/libcasadi_nlpsol_scpgen.3.7.dylib +0 -0
  1232. casadi/libcasadi_nlpsol_scpgen.dylib +0 -0
  1233. casadi/libcasadi_nlpsol_sleqp.3.7.dylib +0 -0
  1234. casadi/libcasadi_nlpsol_sleqp.dylib +0 -0
  1235. casadi/libcasadi_nlpsol_snopt.3.7.dylib +0 -0
  1236. casadi/libcasadi_nlpsol_snopt.dylib +0 -0
  1237. casadi/libcasadi_nlpsol_sqpmethod.3.7.dylib +0 -0
  1238. casadi/libcasadi_nlpsol_sqpmethod.dylib +0 -0
  1239. casadi/libcasadi_rootfinder_fast_newton.3.7.dylib +0 -0
  1240. casadi/libcasadi_rootfinder_fast_newton.dylib +0 -0
  1241. casadi/libcasadi_rootfinder_kinsol.3.7.dylib +0 -0
  1242. casadi/libcasadi_rootfinder_kinsol.dylib +0 -0
  1243. casadi/libcasadi_rootfinder_newton.3.7.dylib +0 -0
  1244. casadi/libcasadi_rootfinder_newton.dylib +0 -0
  1245. casadi/libcasadi_rootfinder_nlpsol.3.7.dylib +0 -0
  1246. casadi/libcasadi_rootfinder_nlpsol.dylib +0 -0
  1247. casadi/libcasadi_sundials_common.3.7.dylib +0 -0
  1248. casadi/libcasadi_sundials_common.dylib +0 -0
  1249. casadi/libcasadi_xmlfile_tinyxml.3.7.dylib +0 -0
  1250. casadi/libcasadi_xmlfile_tinyxml.dylib +0 -0
  1251. casadi/libcoinmetis.2.dylib +0 -0
  1252. casadi/libcoinmetis.dylib +0 -0
  1253. casadi/libcoinmetis.la +41 -0
  1254. casadi/libcoinmumps.3.dylib +0 -0
  1255. casadi/libcoinmumps.dylib +0 -0
  1256. casadi/libcoinmumps.la +41 -0
  1257. casadi/libcplex_adaptor.dylib +0 -0
  1258. casadi/libfatrop.dylib +0 -0
  1259. casadi/libgcc_s.1.1.dylib +0 -0
  1260. casadi/libgcc_s.1.dylib +0 -0
  1261. casadi/libgfortran.5.dylib +0 -0
  1262. casadi/libgurobi_adaptor.dylib +0 -0
  1263. casadi/libhighs.1.7.dylib +0 -0
  1264. casadi/libhighs.1.dylib +0 -0
  1265. casadi/libhighs.dylib +0 -0
  1266. casadi/libhpipm.dylib +0 -0
  1267. casadi/libindirect.a +0 -0
  1268. casadi/libipopt.3.dylib +0 -0
  1269. casadi/libipopt.dylib +0 -0
  1270. casadi/libipopt.la +41 -0
  1271. casadi/liblinsys.a +0 -0
  1272. casadi/libmatlab_ipc.dylib +0 -0
  1273. casadi/libosqp.a +0 -0
  1274. casadi/libosqp.dylib +0 -0
  1275. casadi/libqdldl.a +0 -0
  1276. casadi/libqdldl.dylib +0 -0
  1277. casadi/libquadmath.0.dylib +0 -0
  1278. casadi/libsipopt.3.dylib +0 -0
  1279. casadi/libsipopt.dylib +0 -0
  1280. casadi/libsipopt.la +41 -0
  1281. casadi/libsleqp.1.0.1.dylib +0 -0
  1282. casadi/libsleqp.dylib +0 -0
  1283. casadi/libsuperscs.a +0 -0
  1284. casadi/libtrlib.0.4.dylib +0 -0
  1285. casadi/libtrlib.dylib +0 -0
  1286. casadi/libz.1.2.13.dylib +0 -0
  1287. casadi/pkgconfig/bonmin.pc +12 -0
  1288. casadi/pkgconfig/casadi.pc +12 -0
  1289. casadi/pkgconfig/cbc.pc +12 -0
  1290. casadi/pkgconfig/cgl.pc +12 -0
  1291. casadi/pkgconfig/clp.pc +12 -0
  1292. casadi/pkgconfig/coinmetis.pc +13 -0
  1293. casadi/pkgconfig/coinmumps.pc +15 -0
  1294. casadi/pkgconfig/coinutils.pc +12 -0
  1295. casadi/pkgconfig/highs.pc +12 -0
  1296. casadi/pkgconfig/ipopt.pc +15 -0
  1297. casadi/pkgconfig/osi-cbc.pc +12 -0
  1298. casadi/pkgconfig/osi-clp.pc +12 -0
  1299. casadi/pkgconfig/osi-unittests.pc +12 -0
  1300. casadi/pkgconfig/osi.pc +12 -0
  1301. casadi/pkgconfig/sleqp.pc +10 -0
  1302. casadi/tools/__init__.py +52 -0
  1303. casadi/tools/bounds.py +107 -0
  1304. casadi/tools/graph/__init__.py +35 -0
  1305. casadi/tools/graph/graph.py +747 -0
  1306. casadi/tools/in_out.py +89 -0
  1307. casadi/tools/structure.py +1446 -0
  1308. casadi/tools/structure3.py +1441 -0
  1309. casadi-3.6.7.dist-info/METADATA +45 -0
  1310. casadi-3.6.7.dist-info/RECORD +1312 -0
  1311. casadi-3.6.7.dist-info/WHEEL +5 -0
  1312. dummy.txt +1 -0
@@ -0,0 +1,907 @@
1
+ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2
+ /* */
3
+ /* This file is part of the HiGHS linear optimization suite */
4
+ /* */
5
+ /* Written and engineered 2008-2024 by Julian Hall, Ivet Galabova, */
6
+ /* Leona Gottwald and Michael Feldmeier */
7
+ /* */
8
+ /* Available as open-source under the MIT License */
9
+ /* */
10
+ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
11
+ /**@file HighsPostsolveStack.h
12
+ * @brief Class to hold all information for postsolve and can transform back
13
+ * primal and dual solutions.
14
+ */
15
+
16
+ #ifndef PRESOLVE_HIGHS_POSTSOLVE_STACK_H_
17
+ #define PRESOLVE_HIGHS_POSTSOLVE_STACK_H_
18
+
19
+ #include <algorithm>
20
+ #include <cassert>
21
+ #include <cmath>
22
+ #include <numeric>
23
+ #include <tuple>
24
+ #include <vector>
25
+
26
+ #include "lp_data/HConst.h"
27
+ #include "lp_data/HStruct.h"
28
+ #include "lp_data/HighsOptions.h"
29
+ #include "util/HighsCDouble.h"
30
+ #include "util/HighsDataStack.h"
31
+ #include "util/HighsMatrixSlice.h"
32
+
33
+ // class HighsOptions;
34
+ namespace presolve {
35
+ class HighsPostsolveStack {
36
+ // now a section of individual classes for each type of each transformation
37
+ // step that requires postsolve starts each class gets as first argument the
38
+ // current stack of ReductionValues and custom arguments that contain the
39
+ // necessary information that is required to undo the transformation. The
40
+ // constructor is responsible for storing all necessary information in class
41
+ // members and the reduction value stack. The class members should be as slim
42
+ // as possible and putting values on the reduction value stack should be
43
+ // preferred, because the classes are stored in a discriminated union and the
44
+ // largest size counts. The classes should implement an undo() function which
45
+ // gets the ReductionValues as argument and can be expected to be called such
46
+ // that the stack is in the state as after the constructor has been called.
47
+ // The undo() call must pop all values from the stack that were added during
48
+ // the constructor call, and should restore primal/dual solution values, as
49
+ // well as the basis status as appropriate.
50
+ public:
51
+ enum class RowType {
52
+ kGeq,
53
+ kLeq,
54
+ kEq,
55
+ };
56
+ struct Nonzero {
57
+ HighsInt index;
58
+ double value;
59
+
60
+ Nonzero(HighsInt index_, double value_) : index(index_), value(value_) {}
61
+ Nonzero() = default;
62
+ };
63
+
64
+ size_t debug_prev_numreductions = 0;
65
+ double debug_prev_col_lower = 0;
66
+ double debug_prev_col_upper = 0;
67
+ double debug_prev_row_lower = 0;
68
+ double debug_prev_row_upper = 0;
69
+
70
+ private:
71
+ /// transform a column x by a linear mapping with a new column x'.
72
+ /// I.e. substitute x = a * x' + b
73
+ struct LinearTransform {
74
+ double scale;
75
+ double constant;
76
+ HighsInt col;
77
+
78
+ void undo(const HighsOptions& options, HighsSolution& solution) const;
79
+
80
+ void transformToPresolvedSpace(std::vector<double>& primalSol) const;
81
+ };
82
+
83
+ struct FreeColSubstitution {
84
+ double rhs;
85
+ double colCost;
86
+ HighsInt row;
87
+ HighsInt col;
88
+ RowType rowType;
89
+
90
+ void undo(const HighsOptions& options,
91
+ const std::vector<Nonzero>& rowValues,
92
+ const std::vector<Nonzero>& colValues, HighsSolution& solution,
93
+ HighsBasis& basis);
94
+ };
95
+
96
+ struct DoubletonEquation {
97
+ double coef;
98
+ double coefSubst;
99
+ double rhs;
100
+ double substLower;
101
+ double substUpper;
102
+ double substCost;
103
+ HighsInt row;
104
+ HighsInt colSubst;
105
+ HighsInt col;
106
+ bool lowerTightened;
107
+ bool upperTightened;
108
+ RowType rowType;
109
+
110
+ void undo(const HighsOptions& options,
111
+ const std::vector<Nonzero>& colValues, HighsSolution& solution,
112
+ HighsBasis& basis) const;
113
+ };
114
+
115
+ struct EqualityRowAddition {
116
+ HighsInt row;
117
+ HighsInt addedEqRow;
118
+ double eqRowScale;
119
+
120
+ void undo(const HighsOptions& options,
121
+ const std::vector<Nonzero>& eqRowValues, HighsSolution& solution,
122
+ HighsBasis& basis) const;
123
+ };
124
+
125
+ struct EqualityRowAdditions {
126
+ HighsInt addedEqRow;
127
+
128
+ void undo(const HighsOptions& options,
129
+ const std::vector<Nonzero>& eqRowValues,
130
+ const std::vector<Nonzero>& targetRows, HighsSolution& solution,
131
+ HighsBasis& basis) const;
132
+ };
133
+ struct SingletonRow {
134
+ double coef;
135
+ HighsInt row;
136
+ HighsInt col;
137
+ bool colLowerTightened;
138
+ bool colUpperTightened;
139
+
140
+ void undo(const HighsOptions& options, HighsSolution& solution,
141
+ HighsBasis& basis) const;
142
+ };
143
+
144
+ // column fixed to lower or upper bound
145
+ struct FixedCol {
146
+ double fixValue;
147
+ double colCost;
148
+ HighsInt col;
149
+ HighsBasisStatus fixType;
150
+
151
+ void undo(const HighsOptions& options,
152
+ const std::vector<Nonzero>& colValues, HighsSolution& solution,
153
+ HighsBasis& basis) const;
154
+ };
155
+
156
+ struct RedundantRow {
157
+ HighsInt row;
158
+
159
+ void undo(const HighsOptions& options, HighsSolution& solution,
160
+ HighsBasis& basis) const;
161
+ };
162
+
163
+ struct ForcingRow {
164
+ double side;
165
+ HighsInt row;
166
+ RowType rowType;
167
+
168
+ void undo(const HighsOptions& options,
169
+ const std::vector<Nonzero>& rowValues, HighsSolution& solution,
170
+ HighsBasis& basis) const;
171
+ };
172
+
173
+ struct ForcingColumn {
174
+ double colCost;
175
+ double colBound;
176
+ HighsInt col;
177
+ bool atInfiniteUpper;
178
+ bool colIntegral;
179
+
180
+ void undo(const HighsOptions& options,
181
+ const std::vector<Nonzero>& colValues, HighsSolution& solution,
182
+ HighsBasis& basis) const;
183
+ };
184
+
185
+ struct ForcingColumnRemovedRow {
186
+ double rhs;
187
+ HighsInt row;
188
+ void undo(const HighsOptions& options,
189
+ const std::vector<Nonzero>& rowValues, HighsSolution& solution,
190
+ HighsBasis& basis) const;
191
+ };
192
+
193
+ struct DuplicateRow {
194
+ double duplicateRowScale;
195
+ HighsInt duplicateRow;
196
+ HighsInt row;
197
+ bool rowLowerTightened;
198
+ bool rowUpperTightened;
199
+
200
+ void undo(const HighsOptions& options, HighsSolution& solution,
201
+ HighsBasis& basis) const;
202
+ };
203
+
204
+ struct DuplicateColumn {
205
+ double colScale;
206
+ double colLower;
207
+ double colUpper;
208
+ double duplicateColLower;
209
+ double duplicateColUpper;
210
+ HighsInt col;
211
+ HighsInt duplicateCol;
212
+ bool colIntegral;
213
+ bool duplicateColIntegral;
214
+
215
+ void undo(const HighsOptions& options, HighsSolution& solution,
216
+ HighsBasis& basis) const;
217
+ bool okMerge(const double tolerance) const;
218
+ void undoFix(const HighsOptions& options, HighsSolution& solution) const;
219
+ void transformToPresolvedSpace(std::vector<double>& primalSol) const;
220
+ };
221
+
222
+ /// tags for reduction
223
+ enum class ReductionType : uint8_t {
224
+ kLinearTransform,
225
+ kFreeColSubstitution,
226
+ kDoubletonEquation,
227
+ kEqualityRowAddition,
228
+ kEqualityRowAdditions,
229
+ kSingletonRow,
230
+ kFixedCol,
231
+ kRedundantRow,
232
+ kForcingRow,
233
+ kForcingColumn,
234
+ kForcingColumnRemovedRow,
235
+ kDuplicateRow,
236
+ kDuplicateColumn,
237
+ };
238
+
239
+ HighsDataStack reductionValues;
240
+ std::vector<std::pair<ReductionType, size_t>> reductions;
241
+ std::vector<HighsInt> origColIndex;
242
+ std::vector<HighsInt> origRowIndex;
243
+ std::vector<uint8_t> linearlyTransformable;
244
+
245
+ std::vector<Nonzero> rowValues;
246
+ std::vector<Nonzero> colValues;
247
+ HighsInt origNumCol = -1;
248
+ HighsInt origNumRow = -1;
249
+
250
+ void reductionAdded(ReductionType type) {
251
+ size_t position = reductionValues.getCurrentDataSize();
252
+ reductions.emplace_back(type, position);
253
+ }
254
+
255
+ public:
256
+ const HighsInt* getOrigRowsIndex() const { return origRowIndex.data(); }
257
+
258
+ const HighsInt* getOrigColsIndex() const { return origColIndex.data(); }
259
+
260
+ HighsInt getOrigRowIndex(HighsInt row) const {
261
+ assert(row < (HighsInt)origRowIndex.size());
262
+ return origRowIndex[row];
263
+ }
264
+
265
+ HighsInt getOrigColIndex(HighsInt col) const {
266
+ assert(col < (HighsInt)origColIndex.size());
267
+ return origColIndex[col];
268
+ }
269
+
270
+ void appendCutsToModel(HighsInt numCuts) {
271
+ size_t currNumRow = origRowIndex.size();
272
+ size_t newNumRow = currNumRow + numCuts;
273
+ origRowIndex.resize(newNumRow);
274
+ for (size_t i = currNumRow; i != newNumRow; ++i)
275
+ origRowIndex[i] = origNumRow++;
276
+ }
277
+
278
+ void removeCutsFromModel(HighsInt numCuts) {
279
+ origNumRow -= numCuts;
280
+
281
+ size_t origRowIndexSize = origRowIndex.size();
282
+ for (size_t i = origRowIndex.size(); i > 0; --i) {
283
+ if (origRowIndex[i - 1] < origNumRow) break;
284
+ --origRowIndexSize;
285
+ }
286
+
287
+ origRowIndex.resize(origRowIndexSize);
288
+ }
289
+
290
+ HighsInt getOrigNumRow() const { return origNumRow; }
291
+
292
+ HighsInt getOrigNumCol() const { return origNumCol; }
293
+
294
+ void initializeIndexMaps(HighsInt numRow, HighsInt numCol);
295
+
296
+ void compressIndexMaps(const std::vector<HighsInt>& newRowIndex,
297
+ const std::vector<HighsInt>& newColIndex);
298
+
299
+ /// transform a column x by a linear mapping with a new column x'.
300
+ /// I.e. substitute x = scale * x' + constant
301
+ void linearTransform(HighsInt col, double scale, double constant) {
302
+ reductionValues.push(LinearTransform{scale, constant, origColIndex[col]});
303
+ reductionAdded(ReductionType::kLinearTransform);
304
+ }
305
+
306
+ template <typename RowStorageFormat, typename ColStorageFormat>
307
+ void freeColSubstitution(HighsInt row, HighsInt col, double rhs,
308
+ double colCost, RowType rowType,
309
+ const HighsMatrixSlice<RowStorageFormat>& rowVec,
310
+ const HighsMatrixSlice<ColStorageFormat>& colVec) {
311
+ rowValues.clear();
312
+ for (const HighsSliceNonzero& rowVal : rowVec)
313
+ rowValues.emplace_back(origColIndex[rowVal.index()], rowVal.value());
314
+
315
+ colValues.clear();
316
+ for (const HighsSliceNonzero& colVal : colVec)
317
+ colValues.emplace_back(origRowIndex[colVal.index()], colVal.value());
318
+
319
+ reductionValues.push(FreeColSubstitution{rhs, colCost, origRowIndex[row],
320
+ origColIndex[col], rowType});
321
+ reductionValues.push(rowValues);
322
+ reductionValues.push(colValues);
323
+ reductionAdded(ReductionType::kFreeColSubstitution);
324
+ }
325
+
326
+ template <typename ColStorageFormat>
327
+ void doubletonEquation(HighsInt row, HighsInt colSubst, HighsInt col,
328
+ double coefSubst, double coef, double rhs,
329
+ double substLower, double substUpper, double substCost,
330
+ bool lowerTightened, bool upperTightened,
331
+ RowType rowType,
332
+ const HighsMatrixSlice<ColStorageFormat>& colVec) {
333
+ colValues.clear();
334
+ for (const HighsSliceNonzero& colVal : colVec)
335
+ colValues.emplace_back(origRowIndex[colVal.index()], colVal.value());
336
+
337
+ reductionValues.push(DoubletonEquation{
338
+ coef, coefSubst, rhs, substLower, substUpper, substCost,
339
+ row == -1 ? -1 : origRowIndex[row], origColIndex[colSubst],
340
+ origColIndex[col], lowerTightened, upperTightened, rowType});
341
+ reductionValues.push(colValues);
342
+ reductionAdded(ReductionType::kDoubletonEquation);
343
+ }
344
+
345
+ template <typename RowStorageFormat>
346
+ void equalityRowAddition(HighsInt row, HighsInt addedEqRow, double eqRowScale,
347
+ const HighsMatrixSlice<RowStorageFormat>& eqRowVec) {
348
+ rowValues.clear();
349
+ for (const HighsSliceNonzero& rowVal : eqRowVec)
350
+ rowValues.emplace_back(origColIndex[rowVal.index()], rowVal.value());
351
+
352
+ reductionValues.push(EqualityRowAddition{
353
+ origRowIndex[row], origRowIndex[addedEqRow], eqRowScale});
354
+ reductionValues.push(rowValues);
355
+ reductionAdded(ReductionType::kEqualityRowAddition);
356
+ }
357
+
358
+ template <typename RowStorageFormat>
359
+ void equalityRowAdditions(HighsInt addedEqRow,
360
+ const HighsMatrixSlice<RowStorageFormat>& eqRowVec,
361
+ const std::vector<Nonzero>& targetRows) {
362
+ rowValues.clear();
363
+ for (const HighsSliceNonzero& rowVal : eqRowVec)
364
+ rowValues.emplace_back(origColIndex[rowVal.index()], rowVal.value());
365
+
366
+ reductionValues.push(EqualityRowAdditions{origRowIndex[addedEqRow]});
367
+ reductionValues.push(rowValues);
368
+ reductionValues.push(targetRows);
369
+ reductionAdded(ReductionType::kEqualityRowAdditions);
370
+ }
371
+
372
+ void singletonRow(HighsInt row, HighsInt col, double coef,
373
+ bool tightenedColLower, bool tightenedColUpper) {
374
+ reductionValues.push(SingletonRow{coef, origRowIndex[row],
375
+ origColIndex[col], tightenedColLower,
376
+ tightenedColUpper});
377
+ reductionAdded(ReductionType::kSingletonRow);
378
+ }
379
+
380
+ template <typename ColStorageFormat>
381
+ void fixedColAtLower(HighsInt col, double fixValue, double colCost,
382
+ const HighsMatrixSlice<ColStorageFormat>& colVec) {
383
+ assert(std::isfinite(fixValue));
384
+ colValues.clear();
385
+ for (const HighsSliceNonzero& colVal : colVec)
386
+ colValues.emplace_back(origRowIndex[colVal.index()], colVal.value());
387
+
388
+ reductionValues.push(FixedCol{fixValue, colCost, origColIndex[col],
389
+ HighsBasisStatus::kLower});
390
+ reductionValues.push(colValues);
391
+ reductionAdded(ReductionType::kFixedCol);
392
+ }
393
+
394
+ template <typename ColStorageFormat>
395
+ void fixedColAtUpper(HighsInt col, double fixValue, double colCost,
396
+ const HighsMatrixSlice<ColStorageFormat>& colVec) {
397
+ assert(std::isfinite(fixValue));
398
+ colValues.clear();
399
+ for (const HighsSliceNonzero& colVal : colVec)
400
+ colValues.emplace_back(origRowIndex[colVal.index()], colVal.value());
401
+
402
+ reductionValues.push(FixedCol{fixValue, colCost, origColIndex[col],
403
+ HighsBasisStatus::kUpper});
404
+ reductionValues.push(colValues);
405
+ reductionAdded(ReductionType::kFixedCol);
406
+ }
407
+
408
+ template <typename ColStorageFormat>
409
+ void fixedColAtZero(HighsInt col, double colCost,
410
+ const HighsMatrixSlice<ColStorageFormat>& colVec) {
411
+ colValues.clear();
412
+ for (const HighsSliceNonzero& colVal : colVec)
413
+ colValues.emplace_back(origRowIndex[colVal.index()], colVal.value());
414
+
415
+ reductionValues.push(
416
+ FixedCol{0.0, colCost, origColIndex[col], HighsBasisStatus::kZero});
417
+ reductionValues.push(colValues);
418
+ reductionAdded(ReductionType::kFixedCol);
419
+ }
420
+
421
+ template <typename ColStorageFormat>
422
+ void removedFixedCol(HighsInt col, double fixValue, double colCost,
423
+ const HighsMatrixSlice<ColStorageFormat>& colVec) {
424
+ assert(std::isfinite(fixValue));
425
+ colValues.clear();
426
+ for (const HighsSliceNonzero& colVal : colVec)
427
+ colValues.emplace_back(origRowIndex[colVal.index()], colVal.value());
428
+
429
+ reductionValues.push(FixedCol{fixValue, colCost, origColIndex[col],
430
+ HighsBasisStatus::kNonbasic});
431
+ reductionValues.push(colValues);
432
+ reductionAdded(ReductionType::kFixedCol);
433
+ }
434
+
435
+ void redundantRow(HighsInt row) {
436
+ reductionValues.push(RedundantRow{origRowIndex[row]});
437
+ reductionAdded(ReductionType::kRedundantRow);
438
+ }
439
+
440
+ template <typename RowStorageFormat>
441
+ void forcingRow(HighsInt row,
442
+ const HighsMatrixSlice<RowStorageFormat>& rowVec, double side,
443
+ RowType rowType) {
444
+ rowValues.clear();
445
+ for (const HighsSliceNonzero& rowVal : rowVec)
446
+ rowValues.emplace_back(origColIndex[rowVal.index()], rowVal.value());
447
+
448
+ reductionValues.push(ForcingRow{side, origRowIndex[row], rowType});
449
+ reductionValues.push(rowValues);
450
+ reductionAdded(ReductionType::kForcingRow);
451
+ }
452
+
453
+ template <typename ColStorageFormat>
454
+ void forcingColumn(HighsInt col,
455
+ const HighsMatrixSlice<ColStorageFormat>& colVec,
456
+ double cost, double boundVal, bool atInfiniteUpper,
457
+ bool colIntegral) {
458
+ colValues.clear();
459
+ for (const HighsSliceNonzero& colVal : colVec)
460
+ colValues.emplace_back(origRowIndex[colVal.index()], colVal.value());
461
+
462
+ reductionValues.push(ForcingColumn{cost, boundVal, origColIndex[col],
463
+ atInfiniteUpper, colIntegral});
464
+ reductionValues.push(colValues);
465
+ reductionAdded(ReductionType::kForcingColumn);
466
+ }
467
+
468
+ template <typename RowStorageFormat>
469
+ void forcingColumnRemovedRow(
470
+ HighsInt forcingCol, HighsInt row, double rhs,
471
+ const HighsMatrixSlice<RowStorageFormat>& rowVec) {
472
+ rowValues.clear();
473
+ for (const HighsSliceNonzero& rowVal : rowVec)
474
+ if (rowVal.index() != forcingCol)
475
+ rowValues.emplace_back(origColIndex[rowVal.index()], rowVal.value());
476
+
477
+ reductionValues.push(ForcingColumnRemovedRow{rhs, origRowIndex[row]});
478
+ reductionValues.push(rowValues);
479
+ reductionAdded(ReductionType::kForcingColumnRemovedRow);
480
+ }
481
+
482
+ void duplicateRow(HighsInt row, bool rowUpperTightened,
483
+ bool rowLowerTightened, HighsInt duplicateRow,
484
+ double duplicateRowScale) {
485
+ reductionValues.push(
486
+ DuplicateRow{duplicateRowScale, origRowIndex[duplicateRow],
487
+ origRowIndex[row], rowLowerTightened, rowUpperTightened});
488
+ reductionAdded(ReductionType::kDuplicateRow);
489
+ }
490
+
491
+ bool duplicateColumn(double colScale, double colLower, double colUpper,
492
+ double duplicateColLower, double duplicateColUpper,
493
+ HighsInt col, HighsInt duplicateCol, bool colIntegral,
494
+ bool duplicateColIntegral,
495
+ const double ok_merge_tolerance) {
496
+ const HighsInt origCol = origColIndex[col];
497
+ const HighsInt origDuplicateCol = origColIndex[duplicateCol];
498
+ DuplicateColumn debug_values = {
499
+ colScale, colLower, colUpper,
500
+ duplicateColLower, duplicateColUpper, origCol,
501
+ origDuplicateCol, colIntegral, duplicateColIntegral};
502
+ const bool ok_merge = debug_values.okMerge(ok_merge_tolerance);
503
+ const bool prevent_illegal_merge = true;
504
+ if (!ok_merge && prevent_illegal_merge) return false;
505
+ reductionValues.push(debug_values);
506
+ // reductionValues.push(DuplicateColumn{
507
+ // colScale, colLower, colUpper, duplicateColLower,
508
+ // duplicateColUpper, origCol, origDuplicateCol, colIntegral,
509
+ // duplicateColIntegral});
510
+
511
+ reductionAdded(ReductionType::kDuplicateColumn);
512
+
513
+ // mark columns as not linearly transformable
514
+ linearlyTransformable[origCol] = false;
515
+ linearlyTransformable[origDuplicateCol] = false;
516
+ return true;
517
+ }
518
+
519
+ std::vector<double> getReducedPrimalSolution(
520
+ const std::vector<double>& origPrimalSolution) {
521
+ std::vector<double> reducedSolution = origPrimalSolution;
522
+
523
+ for (const std::pair<ReductionType, size_t>& primalColTransformation :
524
+ reductions) {
525
+ switch (primalColTransformation.first) {
526
+ case ReductionType::kDuplicateColumn: {
527
+ DuplicateColumn duplicateColReduction;
528
+ reductionValues.setPosition(primalColTransformation.second);
529
+ reductionValues.pop(duplicateColReduction);
530
+ duplicateColReduction.transformToPresolvedSpace(reducedSolution);
531
+ break;
532
+ }
533
+ case ReductionType::kLinearTransform: {
534
+ reductionValues.setPosition(primalColTransformation.second);
535
+ LinearTransform linearTransform;
536
+ reductionValues.pop(linearTransform);
537
+ linearTransform.transformToPresolvedSpace(reducedSolution);
538
+ break;
539
+ }
540
+ default:
541
+ continue;
542
+ }
543
+ }
544
+
545
+ size_t reducedNumCol = origColIndex.size();
546
+ for (size_t i = 0; i < reducedNumCol; ++i)
547
+ reducedSolution[i] = reducedSolution[origColIndex[i]];
548
+
549
+ reducedSolution.resize(reducedNumCol);
550
+ return reducedSolution;
551
+ }
552
+
553
+ bool isColLinearlyTransformable(HighsInt col) const {
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();
584
+ }
585
+
586
+ /// undo presolve steps for primal dual solution and basis
587
+ void undo(const HighsOptions& options, HighsSolution& solution,
588
+ HighsBasis& basis, const HighsInt report_col = -1) {
589
+ reductionValues.resetPosition();
590
+
591
+ // Verify that undo can be performed
592
+ assert(solution.value_valid);
593
+ bool perform_dual_postsolve = solution.dual_valid;
594
+ bool perform_basis_postsolve = basis.valid;
595
+
596
+ // expand solution to original index space
597
+ assert(origNumCol > 0);
598
+ undoIterateBackwards(solution.col_value, origColIndex, origNumCol);
599
+
600
+ assert(origNumRow >= 0);
601
+ undoIterateBackwards(solution.row_value, origRowIndex, origNumRow);
602
+
603
+ if (perform_dual_postsolve) {
604
+ // if dual solution is given, expand dual solution and basis to original
605
+ // index space
606
+ undoIterateBackwards(solution.col_dual, origColIndex, origNumCol);
607
+
608
+ undoIterateBackwards(solution.row_dual, origRowIndex, origNumRow);
609
+ }
610
+
611
+ if (perform_basis_postsolve) {
612
+ // if basis is given, expand basis status values to original index space
613
+ undoIterateBackwards(basis.col_status, origColIndex, origNumCol);
614
+
615
+ undoIterateBackwards(basis.row_status, origRowIndex, origNumRow);
616
+ }
617
+
618
+ // now undo the changes
619
+ for (size_t i = reductions.size(); i > 0; --i) {
620
+ if (report_col >= 0)
621
+ printf("Before reduction %2d (type %2d): col_value[%2d] = %g\n",
622
+ int(i - 1), int(reductions[i - 1].first), int(report_col),
623
+ solution.col_value[report_col]);
624
+ switch (reductions[i - 1].first) {
625
+ case ReductionType::kLinearTransform: {
626
+ LinearTransform reduction;
627
+ reductionValues.pop(reduction);
628
+ reduction.undo(options, solution);
629
+ break;
630
+ }
631
+ case ReductionType::kFreeColSubstitution: {
632
+ FreeColSubstitution reduction;
633
+ reductionValues.pop(colValues);
634
+ reductionValues.pop(rowValues);
635
+ reductionValues.pop(reduction);
636
+ reduction.undo(options, rowValues, colValues, solution, basis);
637
+ break;
638
+ }
639
+ case ReductionType::kDoubletonEquation: {
640
+ DoubletonEquation reduction;
641
+ reductionValues.pop(colValues);
642
+ reductionValues.pop(reduction);
643
+ reduction.undo(options, colValues, solution, basis);
644
+ break;
645
+ }
646
+ case ReductionType::kEqualityRowAddition: {
647
+ EqualityRowAddition reduction;
648
+ reductionValues.pop(rowValues);
649
+ reductionValues.pop(reduction);
650
+ reduction.undo(options, rowValues, solution, basis);
651
+ break;
652
+ }
653
+ case ReductionType::kEqualityRowAdditions: {
654
+ EqualityRowAdditions reduction;
655
+ reductionValues.pop(colValues);
656
+ reductionValues.pop(rowValues);
657
+ reductionValues.pop(reduction);
658
+ reduction.undo(options, rowValues, colValues, solution, basis);
659
+ break;
660
+ }
661
+ case ReductionType::kSingletonRow: {
662
+ SingletonRow reduction;
663
+ reductionValues.pop(reduction);
664
+ reduction.undo(options, solution, basis);
665
+ break;
666
+ }
667
+ case ReductionType::kFixedCol: {
668
+ FixedCol reduction;
669
+ reductionValues.pop(colValues);
670
+ reductionValues.pop(reduction);
671
+ reduction.undo(options, colValues, solution, basis);
672
+ break;
673
+ }
674
+ case ReductionType::kRedundantRow: {
675
+ RedundantRow reduction;
676
+ reductionValues.pop(reduction);
677
+ reduction.undo(options, solution, basis);
678
+ break;
679
+ }
680
+ case ReductionType::kForcingRow: {
681
+ ForcingRow reduction;
682
+ reductionValues.pop(rowValues);
683
+ reductionValues.pop(reduction);
684
+ reduction.undo(options, rowValues, solution, basis);
685
+ break;
686
+ }
687
+ case ReductionType::kForcingColumn: {
688
+ ForcingColumn reduction;
689
+ reductionValues.pop(colValues);
690
+ reductionValues.pop(reduction);
691
+ reduction.undo(options, colValues, solution, basis);
692
+ break;
693
+ }
694
+ case ReductionType::kForcingColumnRemovedRow: {
695
+ ForcingColumnRemovedRow reduction;
696
+ reductionValues.pop(rowValues);
697
+ reductionValues.pop(reduction);
698
+ reduction.undo(options, rowValues, solution, basis);
699
+ break;
700
+ }
701
+ case ReductionType::kDuplicateRow: {
702
+ DuplicateRow reduction;
703
+ reductionValues.pop(reduction);
704
+ reduction.undo(options, solution, basis);
705
+ break;
706
+ }
707
+ case ReductionType::kDuplicateColumn: {
708
+ DuplicateColumn reduction;
709
+ reductionValues.pop(reduction);
710
+ reduction.undo(options, solution, basis);
711
+ break;
712
+ }
713
+ default:
714
+ printf("Reduction case %d not handled\n",
715
+ int(reductions[i - 1].first));
716
+ if (kAllowDeveloperAssert) assert(1 == 0);
717
+ }
718
+ }
719
+ if (report_col >= 0)
720
+ printf("After last reduction: col_value[%2d] = %g\n", int(report_col),
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
731
+ }
732
+
733
+ /// undo presolve steps for primal solution
734
+ void undoPrimal(const HighsOptions& options, HighsSolution& solution,
735
+ const HighsInt report_col = -1) {
736
+ // Call to reductionValues.resetPosition(); seems unnecessary as
737
+ // it's the first thing done in undo
738
+ reductionValues.resetPosition();
739
+ HighsBasis basis;
740
+ basis.valid = false;
741
+ solution.dual_valid = false;
742
+ undo(options, solution, basis, report_col);
743
+ }
744
+
745
+ /*
746
+ // Not used
747
+ /// undo presolve steps for primal and dual solution
748
+ void undoPrimalDual(const HighsOptions& options, HighsSolution& solution) {
749
+ reductionValues.resetPosition();
750
+ HighsBasis basis;
751
+ basis.valid = false;
752
+ assert(solution.value_valid);
753
+ assert(solution.dual_valid);
754
+ undo(options, solution, basis);
755
+ }
756
+ */
757
+
758
+ // Only used for debugging
759
+ void undoUntil(const HighsOptions& options,
760
+ const std::vector<HighsInt>& flagRow,
761
+ const std::vector<HighsInt>& flagCol, HighsSolution& solution,
762
+ HighsBasis& basis, size_t numReductions) {
763
+ reductionValues.resetPosition();
764
+
765
+ // Do these returns ever happen? How is it known that undo has not
766
+ // been performed?
767
+ assert(solution.col_value.size() == origColIndex.size());
768
+ assert(solution.row_value.size() == origRowIndex.size());
769
+ // This should be a better measure of whether undo can be
770
+ // performed
771
+ assert(solution.value_valid);
772
+ if (solution.col_value.size() != origColIndex.size()) return;
773
+ if (solution.row_value.size() != origRowIndex.size()) return;
774
+
775
+ bool perform_dual_postsolve = solution.dual_valid;
776
+ assert((solution.col_dual.size() == solution.col_value.size()) ==
777
+ perform_dual_postsolve);
778
+ bool perform_basis_postsolve = basis.valid;
779
+
780
+ // expand solution to original index space
781
+ undoIterateBackwards(solution.col_value, origColIndex, origNumCol);
782
+
783
+ undoIterateBackwards(solution.row_value, origRowIndex, origNumRow);
784
+
785
+ if (perform_dual_postsolve) {
786
+ // if dual solution is given, expand dual solution and basis to original
787
+ // index space
788
+ undoIterateBackwards(solution.col_dual, origColIndex, origNumCol);
789
+
790
+ undoIterateBackwards(solution.row_dual, origRowIndex, origNumRow);
791
+ }
792
+
793
+ if (perform_basis_postsolve) {
794
+ // if basis is given, expand basis status values to original index space
795
+ undoIterateBackwards(basis.col_status, origColIndex, origNumCol);
796
+
797
+ undoIterateBackwards(basis.row_status, origRowIndex, origNumRow);
798
+ }
799
+
800
+ // now undo the changes
801
+ for (size_t i = reductions.size(); i > numReductions; --i) {
802
+ switch (reductions[i - 1].first) {
803
+ case ReductionType::kLinearTransform: {
804
+ LinearTransform reduction;
805
+ reductionValues.pop(reduction);
806
+ reduction.undo(options, solution);
807
+ break;
808
+ }
809
+ case ReductionType::kFreeColSubstitution: {
810
+ FreeColSubstitution reduction;
811
+ reductionValues.pop(colValues);
812
+ reductionValues.pop(rowValues);
813
+ reductionValues.pop(reduction);
814
+ reduction.undo(options, rowValues, colValues, solution, basis);
815
+ break;
816
+ }
817
+ case ReductionType::kDoubletonEquation: {
818
+ DoubletonEquation reduction;
819
+ reductionValues.pop(colValues);
820
+ reductionValues.pop(reduction);
821
+ reduction.undo(options, colValues, solution, basis);
822
+ break;
823
+ }
824
+ case ReductionType::kEqualityRowAddition: {
825
+ EqualityRowAddition reduction;
826
+ reductionValues.pop(rowValues);
827
+ reductionValues.pop(reduction);
828
+ reduction.undo(options, rowValues, solution, basis);
829
+ break;
830
+ }
831
+ case ReductionType::kEqualityRowAdditions: {
832
+ EqualityRowAdditions reduction;
833
+ reductionValues.pop(colValues);
834
+ reductionValues.pop(rowValues);
835
+ reductionValues.pop(reduction);
836
+ reduction.undo(options, rowValues, colValues, solution, basis);
837
+ break;
838
+ }
839
+ case ReductionType::kSingletonRow: {
840
+ SingletonRow reduction;
841
+ reductionValues.pop(reduction);
842
+ reduction.undo(options, solution, basis);
843
+ break;
844
+ }
845
+ case ReductionType::kFixedCol: {
846
+ FixedCol reduction;
847
+ reductionValues.pop(colValues);
848
+ reductionValues.pop(reduction);
849
+ reduction.undo(options, colValues, solution, basis);
850
+ break;
851
+ }
852
+ case ReductionType::kRedundantRow: {
853
+ RedundantRow reduction;
854
+ reductionValues.pop(reduction);
855
+ reduction.undo(options, solution, basis);
856
+ break;
857
+ }
858
+ case ReductionType::kForcingRow: {
859
+ ForcingRow reduction;
860
+ reductionValues.pop(rowValues);
861
+ reductionValues.pop(reduction);
862
+ reduction.undo(options, rowValues, solution, basis);
863
+ break;
864
+ }
865
+ case ReductionType::kForcingColumn: {
866
+ ForcingColumn reduction;
867
+ reductionValues.pop(colValues);
868
+ reductionValues.pop(reduction);
869
+ reduction.undo(options, colValues, solution, basis);
870
+ break;
871
+ }
872
+ case ReductionType::kForcingColumnRemovedRow: {
873
+ ForcingColumnRemovedRow reduction;
874
+ reductionValues.pop(rowValues);
875
+ reductionValues.pop(reduction);
876
+ reduction.undo(options, rowValues, solution, basis);
877
+ break;
878
+ }
879
+ case ReductionType::kDuplicateRow: {
880
+ DuplicateRow reduction;
881
+ reductionValues.pop(reduction);
882
+ reduction.undo(options, solution, basis);
883
+ break;
884
+ }
885
+ case ReductionType::kDuplicateColumn: {
886
+ DuplicateColumn reduction;
887
+ reductionValues.pop(reduction);
888
+ reduction.undo(options, solution, basis);
889
+ }
890
+ }
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
900
+ }
901
+
902
+ size_t numReductions() const { return reductions.size(); }
903
+ };
904
+
905
+ } // namespace presolve
906
+
907
+ #endif