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,1239 @@
1
+ //
2
+ // MIT No Attribution
3
+ //
4
+ // Copyright (C) 2010-2023 Joel Andersson, Joris Gillis, Moritz Diehl, KU Leuven.
5
+ //
6
+ // Permission is hereby granted, free of charge, to any person obtaining a copy of this
7
+ // software and associated documentation files (the "Software"), to deal in the Software
8
+ // without restriction, including without limitation the rights to use, copy, modify,
9
+ // merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
10
+ // permit persons to whom the Software is furnished to do so.
11
+ //
12
+ // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
13
+ // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
14
+ // PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
15
+ // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
16
+ // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
17
+ // SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
18
+ //
19
+
20
+
21
+ // C-REPLACE "fmin" "casadi_fmin"
22
+ // C-REPLACE "fmax" "casadi_fmax"
23
+ // C-REPLACE "std::numeric_limits<T1>::min()" "casadi_real_min"
24
+ // C-REPLACE "std::numeric_limits<T1>::infinity()" "casadi_inf"
25
+ // C-REPLACE "static_cast<int>" "(int) "
26
+
27
+ // C-REPLACE "casadi_qp_prob<T1>" "struct casadi_qp_prob"
28
+ // C-REPLACE "casadi_qp_data<T1>" "struct casadi_qp_data"
29
+
30
+ // SYMBOL "qrqp_prob"
31
+ template<typename T1>
32
+ struct casadi_qrqp_prob {
33
+ const casadi_qp_prob<T1>* qp;
34
+ // Sparsity patterns
35
+ const casadi_int *sp_at, *sp_kkt;
36
+ // Symbolic QR factorization
37
+ const casadi_int *prinv, *pc, *sp_v, *sp_r;
38
+ // Smallest nonzero number
39
+ T1 dmin;
40
+ // Infinity
41
+ T1 inf;
42
+ // Smallest multiplier treated as inactive for the initial active set
43
+ T1 min_lam;
44
+ // Maximum number of iterations
45
+ casadi_int max_iter;
46
+ // Primal and dual error tolerance
47
+ T1 constr_viol_tol, dual_inf_tol;
48
+ };
49
+ // C-REPLACE "casadi_qrqp_prob<T1>" "struct casadi_qrqp_prob"
50
+
51
+ // SYMBOL "qrqp_setup"
52
+ template<typename T1>
53
+ void casadi_qrqp_setup(casadi_qrqp_prob<T1>* p) {
54
+ p->dmin = std::numeric_limits<T1>::min();
55
+ p->inf = std::numeric_limits<T1>::infinity();
56
+ p->min_lam = 0;
57
+ p->max_iter = 1000;
58
+ p->constr_viol_tol = 1e-8;
59
+ p->dual_inf_tol = 1e-8;
60
+ }
61
+
62
+ // SYMBOL "qrqp_flag_t"
63
+ typedef enum {
64
+ QP_SUCCESS,
65
+ QP_MAX_ITER,
66
+ QP_NO_SEARCH_DIR,
67
+ QP_PRINTING_ERROR
68
+ } casadi_qrqp_flag_t;
69
+
70
+ // SYMBOL "qrqp_data"
71
+ template<typename T1>
72
+ struct casadi_qrqp_data {
73
+ // Problem structure
74
+ const casadi_qrqp_prob<T1>* prob;
75
+ // Problem structure
76
+ casadi_qp_data<T1>* qp;
77
+ // Cost
78
+ T1 f;
79
+ // Solver status
80
+ casadi_qrqp_flag_t status;
81
+ // Vectors
82
+ T1 *lbz, *ubz, *z, *infeas, *tinfeas, *sens, *lam, *w, *dz, *dlam;
83
+ casadi_int *iw, *neverzero, *neverlower, *neverupper, *lincomb;
84
+ // Numeric QR factorization
85
+ T1 *nz_at, *nz_kkt, *beta, *nz_v, *nz_r;
86
+ // Message buffer
87
+ const char *msg;
88
+ // Message index
89
+ casadi_int msg_ind;
90
+ // Stepsize
91
+ T1 tau;
92
+ // Singularity
93
+ casadi_int sing;
94
+ // Do we already have a search direction?
95
+ int has_search_dir;
96
+ // Smallest diagonal value for the QR factorization
97
+ T1 mina;
98
+ casadi_int imina;
99
+ // Primal and dual error, corresponding index
100
+ T1 pr, du, epr, edu;
101
+ casadi_int ipr, idu;
102
+ // Pending active-set change
103
+ casadi_int index, sign;
104
+ // Feasibility restoration active-set change
105
+ casadi_int r_index, r_sign;
106
+ // Iteration
107
+ casadi_int iter;
108
+ };
109
+ // C-REPLACE "casadi_qrqp_data<T1>" "struct casadi_qrqp_data"
110
+
111
+
112
+ // SYMBOL "qrqp_work"
113
+ template<typename T1>
114
+ void casadi_qrqp_work(const casadi_qrqp_prob<T1>* p, casadi_int* sz_arg, casadi_int* sz_res,
115
+ casadi_int* sz_iw, casadi_int* sz_w) {
116
+ // Local variables
117
+ casadi_int nnz_a, nnz_kkt, nnz_v, nnz_r;
118
+ casadi_qp_work(p->qp, sz_arg, sz_res, sz_iw, sz_w);
119
+ // Get matrix number of nonzeros
120
+ nnz_a = p->qp->sp_a[2+p->qp->sp_a[1]];
121
+ nnz_kkt = p->sp_kkt[2+p->sp_kkt[1]];
122
+ nnz_v = p->sp_v[2+p->sp_v[1]];
123
+ nnz_r = p->sp_r[2+p->sp_r[1]];
124
+ // Temporary work vectors
125
+ *sz_w = casadi_max(*sz_w, p->qp->nz); // casadi_project, tau memory
126
+ *sz_iw = casadi_max(*sz_iw, p->qp->nz); // casadi_trans, tau type, allzero
127
+ *sz_w = casadi_max(*sz_w, 2*p->qp->nz); // casadi_qr
128
+ // Persistent work vectors
129
+ *sz_w += nnz_kkt; // kkt
130
+ *sz_w += p->qp->nz; // z=[xk,gk]
131
+ *sz_w += p->qp->nz; // lbz
132
+ *sz_w += p->qp->nz; // ubz
133
+ *sz_w += p->qp->nz; // lam
134
+ *sz_w += p->qp->nz; // dz
135
+ *sz_w += p->qp->nz; // dlam
136
+ *sz_w += casadi_max(nnz_v+nnz_r, nnz_kkt); // [v,r] or trans(kkt)
137
+ *sz_w += p->qp->nz; // beta
138
+ *sz_w += nnz_a; // trans(a)
139
+ *sz_w += p->qp->nx; // infeas
140
+ *sz_w += p->qp->nx; // tinfeas
141
+ *sz_w += p->qp->nz; // sens
142
+ *sz_iw += p->qp->nz; // neverzero
143
+ *sz_iw += p->qp->nz; // neverupper
144
+ *sz_iw += p->qp->nz; // neverlower
145
+ *sz_iw += p->qp->nz; // lincomb
146
+ }
147
+
148
+ // SYMBOL "qrqp_init"
149
+ template<typename T1>
150
+ void casadi_qrqp_init(casadi_qrqp_data<T1>* d, casadi_int** iw, T1** w) {
151
+ // Local variables
152
+ casadi_int nnz_a, nnz_kkt, nnz_v, nnz_r;
153
+ const casadi_qrqp_prob<T1>* p = d->prob;
154
+ // Get matrix number of nonzeros
155
+ nnz_a = p->qp->sp_a[2+p->qp->sp_a[1]];
156
+ nnz_kkt = p->sp_kkt[2+p->sp_kkt[1]];
157
+ nnz_v = p->sp_v[2+p->sp_v[1]];
158
+ nnz_r = p->sp_r[2+p->sp_r[1]];
159
+ d->nz_kkt = *w; *w += nnz_kkt;
160
+ d->z = *w; *w += p->qp->nz;
161
+ d->lbz = *w; *w += p->qp->nz;
162
+ d->ubz = *w; *w += p->qp->nz;
163
+ d->lam = *w; *w += p->qp->nz;
164
+ d->dz = *w; *w += p->qp->nz;
165
+ d->dlam = *w; *w += p->qp->nz;
166
+ d->nz_v = *w; *w += casadi_max(nnz_v+nnz_r, nnz_kkt);
167
+ d->beta = *w; *w += p->qp->nz;
168
+ d->nz_at = *w; *w += nnz_a;
169
+ d->infeas = *w; *w += p->qp->nx;
170
+ d->tinfeas = *w; *w += p->qp->nx;
171
+ d->sens = *w; *w += p->qp->nz;
172
+ d->neverzero = *iw; *iw += p->qp->nz;
173
+ d->neverupper = *iw; *iw += p->qp->nz;
174
+ d->neverlower = *iw; *iw += p->qp->nz;
175
+ d->lincomb = *iw; *iw += p->qp->nz;
176
+ d->w = *w;
177
+ d->iw = *iw;
178
+
179
+ d->nz_r = d->nz_v + nnz_v;
180
+ }
181
+
182
+ // SYMBOL "qrqp_reset"
183
+ template<typename T1>
184
+ int casadi_qrqp_reset(casadi_qrqp_data<T1>* d) {
185
+ // Local variables
186
+ casadi_int i;
187
+ const casadi_qrqp_prob<T1>* p = d->prob;
188
+ // Reset variables corresponding to previous iteration
189
+ d->msg = 0;
190
+ d->tau = 0.;
191
+ d->sing = 0;
192
+ // Correct lam if needed, determine permitted signs
193
+ for (i=0; i<p->qp->nz; ++i) {
194
+ // Permitted signs for lam
195
+ d->neverzero[i] = d->lbz[i] == d->ubz[i];
196
+ d->neverupper[i] = d->ubz[i] == p->inf;
197
+ d->neverlower[i] = d->lbz[i] == -p->inf;
198
+ if (d->neverzero[i] && d->neverupper[i] && d->neverlower[i]) return 1;
199
+ // Small enough lambdas are treated as inactive
200
+ if (!d->neverzero[i] && fabs(d->lam[i]) < p->min_lam) d->lam[i] = 0.;
201
+ // Prevent illegal active sets
202
+ if (d->neverzero[i] && d->lam[i] == 0.) {
203
+ d->lam[i] = d->neverupper[i]
204
+ || d->z[i]-d->lbz[i] <= d->ubz[i]-d->z[i] ? -p->dmin : p->dmin;
205
+ } else if (d->neverupper[i] && d->lam[i]>0.) {
206
+ d->lam[i] = d->neverzero[i] ? -p->dmin : 0.;
207
+ } else if (d->neverlower[i] && d->lam[i]<0.) {
208
+ d->lam[i] = d->neverzero[i] ? p->dmin : 0.;
209
+ }
210
+ }
211
+ // Transpose A
212
+ casadi_trans(d->qp->a, p->qp->sp_a, d->nz_at, p->sp_at, d->iw);
213
+ // No pending active-set change
214
+ d->index = -2;
215
+ d->sign = 0;
216
+ // No restoration index
217
+ d->r_index = -2;
218
+ d->r_sign = 0;
219
+ // Reset iteration counter
220
+ d->iter = 0;
221
+ return 0;
222
+ }
223
+
224
+ // SYMBOL "qrqp_pr"
225
+ template<typename T1>
226
+ void casadi_qrqp_pr(casadi_qrqp_data<T1>* d) {
227
+ // Calculate largest constraint violation
228
+ casadi_int i;
229
+ const casadi_qrqp_prob<T1>* p = d->prob;
230
+ d->pr = 0;
231
+ d->ipr = -1;
232
+ for (i=0; i<p->qp->nz; ++i) {
233
+ if (d->z[i] > d->ubz[i]+d->pr) {
234
+ d->pr = d->z[i]-d->ubz[i];
235
+ d->ipr = i;
236
+ } else if (d->z[i] < d->lbz[i]-d->pr) {
237
+ d->pr = d->lbz[i]-d->z[i];
238
+ d->ipr = i;
239
+ }
240
+ }
241
+ }
242
+
243
+ // SYMBOL "qrqp_du"
244
+ template<typename T1>
245
+ void casadi_qrqp_du(casadi_qrqp_data<T1>* d) {
246
+ // Calculate largest constraint violation
247
+ casadi_int i;
248
+ const casadi_qrqp_prob<T1>* p = d->prob;
249
+ d->du = 0;
250
+ d->idu = -1;
251
+ for (i=0; i<p->qp->nx; ++i) {
252
+ if (d->infeas[i] > d->du) {
253
+ d->du = d->infeas[i];
254
+ d->idu = i;
255
+ } else if (d->infeas[i] < -d->du) {
256
+ d->du = -d->infeas[i];
257
+ d->idu = i;
258
+ }
259
+ }
260
+ }
261
+
262
+ // SYMBOL "qrqp_du_check"
263
+ template<typename T1>
264
+ int casadi_qrqp_du_check(casadi_qrqp_data<T1>* d, casadi_int i) {
265
+ // Local variables
266
+ casadi_int k;
267
+ T1 new_du;
268
+ const casadi_int *at_colind, *at_row;
269
+ const casadi_qrqp_prob<T1>* p = d->prob;
270
+ // AT sparsity
271
+ at_colind = p->sp_at + 2;
272
+ at_row = at_colind + p->qp->na + 1;
273
+ // Maximum infeasibility from setting from setting lam[i]=0
274
+ if (i<p->qp->nx) {
275
+ new_du = fabs(d->infeas[i]-d->lam[i]);
276
+ } else {
277
+ new_du = 0.;
278
+ for (k=at_colind[i-p->qp->nx]; k<at_colind[i-p->qp->nx+1]; ++k) {
279
+ new_du = fmax(new_du, fabs(d->infeas[at_row[k]]-d->nz_at[k]*d->lam[i]));
280
+ }
281
+ }
282
+ return new_du <= d->du;
283
+ }
284
+
285
+ // SYMBOL "qrqp_du_index"
286
+ template<typename T1>
287
+ void casadi_qrqp_du_index(casadi_qrqp_data<T1>* d) {
288
+ // Try to improve dual feasibility by removing a constraint
289
+ // Local variables
290
+ casadi_int i, s;
291
+ T1 best_sens;
292
+ const casadi_qrqp_prob<T1>* p = d->prob;
293
+ // Find the best lam[i] to make zero
294
+ d->index = -1;
295
+ best_sens = -1;
296
+ for (i = 0; i < p->qp->nz; ++i) {
297
+ // Skip if no dual infeasibility sensitivity
298
+ if (d->sens[i] == 0.) continue;
299
+ // Is the constraint enforced?
300
+ if (d->lam[i] == 0) {
301
+ // We're enforcing constraints
302
+ s = d->sens[i] > 0 ? 1 : -1;
303
+ // Make sure that enforcing the constraint is possible
304
+ if (s > 0 ? d->neverupper[i] : d->neverlower[i]) continue;
305
+ } else {
306
+ // We're removing constraints
307
+ s = 0;
308
+ // Make sure that it's a constraint that can be removed
309
+ if (d->neverzero[i]) continue;
310
+ // If variable influences du, make sure sign is right
311
+ if (d->lam[i] > 0. ? d->sens[i] > 0. : d->sens[i] < 0.) continue;
312
+ // Skip if maximum infeasibility increases
313
+ if (!casadi_qrqp_du_check(d, i)) continue;
314
+ }
315
+ // Check if best so far
316
+ if (fabs(d->sens[i]) > best_sens) {
317
+ best_sens = fabs(d->sens[i]);
318
+ d->index = i;
319
+ d->sign = s;
320
+ }
321
+ }
322
+ // Accept, if any
323
+ if (d->index >= 0) {
324
+ if (d->sign > 0) {
325
+ d->msg = "Enforced ubz to reduce |du|";
326
+ } else if (d->sign < 0) {
327
+ d->msg = "Enforced lbz to reduce |du|";
328
+ } else if (d->lam[d->index] > 0) {
329
+ d->msg = "Dropped ubz to reduce |du|";
330
+ } else {
331
+ d->msg = "Dropped lbz to reduce |du|";
332
+ }
333
+ d->msg_ind = d->index;
334
+ }
335
+ }
336
+
337
+ // SYMBOL "qrqp_pr_index"
338
+ template<typename T1>
339
+ void casadi_qrqp_pr_index(casadi_qrqp_data<T1>* d) {
340
+ // Try to improve primal feasibility by adding a constraint
341
+ if (d->lam[d->ipr] == 0.) {
342
+ // Add the most violating constraint
343
+ if (d->z[d->ipr] < d->lbz[d->ipr]) {
344
+ d->sign = -1;
345
+ d->msg = "Added lbz to reduce |pr|";
346
+ } else {
347
+ d->sign = 1;
348
+ d->msg = "Added ubz to reduce |pr|";
349
+ }
350
+ d->msg_ind = d->ipr;
351
+ d->index = d->ipr;
352
+ } else {
353
+ // No improvement possible
354
+ d->index = -1;
355
+ }
356
+ }
357
+
358
+ // SYMBOL "qrqp_kkt"
359
+ template<typename T1>
360
+ void casadi_qrqp_kkt(casadi_qrqp_data<T1>* d) {
361
+ // Local variables
362
+ casadi_int i, k;
363
+ const casadi_int *h_colind, *h_row, *a_colind, *a_row, *at_colind, *at_row,
364
+ *kkt_colind, *kkt_row;
365
+ const casadi_qrqp_prob<T1>* p = d->prob;
366
+ // Extract sparsities
367
+ a_row = (a_colind = p->qp->sp_a+2) + p->qp->nx + 1;
368
+ at_row = (at_colind = p->sp_at+2) + p->qp->na + 1;
369
+ h_row = (h_colind = p->qp->sp_h+2) + p->qp->nx + 1;
370
+ kkt_row = (kkt_colind = p->sp_kkt+2) + p->qp->nz + 1;
371
+ // Reset w to zero
372
+ casadi_clear(d->w, p->qp->nz);
373
+ // Loop over rows of the (transposed) KKT
374
+ for (i=0; i<p->qp->nz; ++i) {
375
+ // Copy row of KKT to w
376
+ if (i<p->qp->nx) {
377
+ if (d->lam[i]==0) {
378
+ for (k=h_colind[i]; k<h_colind[i+1]; ++k) d->w[h_row[k]] = d->qp->h[k];
379
+ for (k=a_colind[i]; k<a_colind[i+1]; ++k) d->w[p->qp->nx+a_row[k]] = d->qp->a[k];
380
+ } else {
381
+ d->w[i] = 1.;
382
+ }
383
+ } else {
384
+ if (d->lam[i]==0) {
385
+ d->w[i] = -1.;
386
+ } else {
387
+ for (k=at_colind[i-p->qp->nx]; k<at_colind[i-p->qp->nx+1]; ++k) {
388
+ d->w[at_row[k]] = d->nz_at[k];
389
+ }
390
+ }
391
+ }
392
+ // Copy row to KKT, zero out w
393
+ for (k=kkt_colind[i]; k<kkt_colind[i+1]; ++k) {
394
+ d->nz_kkt[k] = d->w[kkt_row[k]];
395
+ d->w[kkt_row[k]] = 0;
396
+ }
397
+ }
398
+ }
399
+
400
+ // SYMBOL "qrqp_kkt_vector"
401
+ template<typename T1>
402
+ void casadi_qrqp_kkt_vector(casadi_qrqp_data<T1>* d, T1* kkt_i, casadi_int i) {
403
+ // Local variables
404
+ casadi_int k;
405
+ const casadi_int *h_colind, *h_row, *a_colind, *a_row, *at_colind, *at_row;
406
+ const casadi_qrqp_prob<T1>* p = d->prob;
407
+ // Extract sparsities
408
+ a_row = (a_colind = p->qp->sp_a+2) + p->qp->nx + 1;
409
+ at_row = (at_colind = p->sp_at+2) + p->qp->na + 1;
410
+ h_row = (h_colind = p->qp->sp_h+2) + p->qp->nx + 1;
411
+ // Reset kkt_i to zero
412
+ casadi_clear(kkt_i, p->qp->nz);
413
+ // Copy sparse entries
414
+ if (i<p->qp->nx) {
415
+ for (k=h_colind[i]; k<h_colind[i+1]; ++k) kkt_i[h_row[k]] = d->qp->h[k];
416
+ for (k=a_colind[i]; k<a_colind[i+1]; ++k) kkt_i[p->qp->nx+a_row[k]] = d->qp->a[k];
417
+ } else {
418
+ for (k=at_colind[i-p->qp->nx]; k<at_colind[i-p->qp->nx+1]; ++k) {
419
+ kkt_i[at_row[k]] = -d->nz_at[k];
420
+ }
421
+ }
422
+ // Add diagonal entry
423
+ kkt_i[i] -= 1.;
424
+ }
425
+
426
+ // SYMBOL "qrqp_kkt_dot"
427
+ template<typename T1>
428
+ T1 casadi_qrqp_kkt_dot(casadi_qrqp_data<T1>* d, const T1* v, casadi_int i) {
429
+ // Local variables
430
+ casadi_int k;
431
+ const casadi_int *h_colind, *h_row, *a_colind, *a_row, *at_colind, *at_row;
432
+ T1 r;
433
+ const casadi_qrqp_prob<T1>* p = d->prob;
434
+ // Extract sparsities
435
+ a_row = (a_colind = p->qp->sp_a + 2) + p->qp->nx + 1;
436
+ at_row = (at_colind = p->sp_at + 2) + p->qp->na + 1;
437
+ h_row = (h_colind = p->qp->sp_h + 2) + p->qp->nx + 1;
438
+ // Scalar product with the diagonal
439
+ r = v[i];
440
+ // Scalar product with the sparse entries
441
+ if (i < p->qp->nx) {
442
+ for (k=h_colind[i]; k<h_colind[i+1]; ++k) r -= v[h_row[k]] * d->qp->h[k];
443
+ for (k=a_colind[i]; k<a_colind[i+1]; ++k) r -= v[p->qp->nx+a_row[k]] * d->qp->a[k];
444
+ } else {
445
+ for (k=at_colind[i-p->qp->nx]; k<at_colind[i-p->qp->nx+1]; ++k) {
446
+ r += v[at_row[k]] * d->nz_at[k];
447
+ }
448
+ }
449
+ return r;
450
+ }
451
+
452
+ // SYMBOL "qrqp_kkt_residual"
453
+ template<typename T1>
454
+ void casadi_qrqp_kkt_residual(casadi_qrqp_data<T1>* d, T1* r) {
455
+ casadi_int i;
456
+ const casadi_qrqp_prob<T1>* p = d->prob;
457
+ for (i=0; i<p->qp->nz; ++i) {
458
+ if (d->lam[i]>0.) {
459
+ r[i] = d->ubz[i]-d->z[i];
460
+ } else if (d->lam[i]<0.) {
461
+ r[i] = d->lbz[i]-d->z[i];
462
+ } else if (i<p->qp->nx) {
463
+ r[i] = d->lam[i]-d->infeas[i];
464
+ } else {
465
+ r[i] = d->lam[i];
466
+ }
467
+ }
468
+ }
469
+
470
+ // SYMBOL "qrqp_zero_blocking"
471
+ template<typename T1>
472
+ int casadi_qrqp_zero_blocking(casadi_qrqp_data<T1>* d) {
473
+ // Local variables
474
+ casadi_int i;
475
+ T1 dz_max = 0;
476
+ const casadi_qrqp_prob<T1>* p = d->prob;
477
+ // Look for violated constraints that are not improving
478
+ for (i = 0; i < p->qp->nz; ++i) {
479
+ if (d->dz[i] < -dz_max && d->lbz[i] - d->z[i] >= d->epr) {
480
+ dz_max = -d->dz[i];
481
+ d->index = i;
482
+ d->sign = -1;
483
+ d->msg = "lbz violated with zero step";
484
+ d->msg_ind = d->index;
485
+ } else if (d->dz[i] > dz_max && d->z[i] - d->ubz[i] >= d->epr) {
486
+ dz_max = d->dz[i];
487
+ d->index = i;
488
+ d->sign = 1;
489
+ d->msg = "ubz violated with zero step";
490
+ d->msg_ind = d->index;
491
+ }
492
+ }
493
+ return dz_max > 0;
494
+ }
495
+
496
+ // SYMBOL "qrqp_primal_blocking"
497
+ template<typename T1>
498
+ void casadi_qrqp_primal_blocking(casadi_qrqp_data<T1>* d) {
499
+ // Local variables
500
+ casadi_int i;
501
+ T1 trial_z;
502
+ const casadi_qrqp_prob<T1>* p = d->prob;
503
+ // Check if violation with tau=0 and not improving
504
+ if (casadi_qrqp_zero_blocking(d)) {
505
+ d->tau = 0.;
506
+ return;
507
+ }
508
+ // Loop over all primal variables
509
+ for (i = 0; i < p->qp->nz; ++i) {
510
+ if (d->dz[i] == 0.) continue; // Skip zero steps
511
+ // Trial primal step
512
+ trial_z = d->z[i] + d->tau * d->dz[i];
513
+ if (d->dz[i] < 0 && trial_z < d->lbz[i] - d->epr) {
514
+ // Trial would increase maximum infeasibility
515
+ d->tau = (d->lbz[i] - d->epr - d->z[i]) / d->dz[i];
516
+ d->index = d->lam[i] < 0. ? -1 : i;
517
+ d->sign = -1;
518
+ d->msg = "Enforcing lbz";
519
+ d->msg_ind = i;
520
+ } else if (d->dz[i] > 0 && trial_z > d->ubz[i] + d->epr) {
521
+ // Trial would increase maximum infeasibility
522
+ d->tau = (d->ubz[i] + d->epr - d->z[i]) / d->dz[i];
523
+ d->index = d->lam[i] > 0. ? -1 : i;
524
+ d->sign = 1;
525
+ d->msg = "Enforcing ubz";
526
+ d->msg_ind = i;
527
+ }
528
+ if (d->tau <= 0) return;
529
+ }
530
+ }
531
+
532
+ // SYMBOL "qrqp_dual_breakpoints"
533
+ template<typename T1>
534
+ casadi_int casadi_qrqp_dual_breakpoints(casadi_qrqp_data<T1>* d, T1* tau_list,
535
+ casadi_int* ind_list, T1 tau) {
536
+ // Local variables
537
+ casadi_int i, n_tau, loc, next_ind, tmp_ind, j;
538
+ T1 trial_lam, new_tau, next_tau, tmp_tau;
539
+ const casadi_qrqp_prob<T1>* p = d->prob;
540
+ // Dual feasibility is piecewise linear. Start with one interval [0,tau]:
541
+ tau_list[0] = tau;
542
+ ind_list[0] = -1; // no associated index
543
+ n_tau = 1;
544
+ // Find the taus corresponding to lam crossing zero and insert into list
545
+ for (i=0; i<p->qp->nz; ++i) {
546
+ if (d->dlam[i]==0.) continue; // Skip zero steps
547
+ if (d->lam[i]==0.) continue; // Skip inactive constraints
548
+ // Trial dual step
549
+ trial_lam = d->lam[i] + tau*d->dlam[i];
550
+ // Skip if no sign change
551
+ if (d->lam[i]>0 ? trial_lam>=0 : trial_lam<=0) continue;
552
+ // Location of the sign change
553
+ new_tau = -d->lam[i]/d->dlam[i];
554
+ // Where to insert the w[i]
555
+ for (loc=0; loc<n_tau-1; ++loc) {
556
+ if (new_tau<tau_list[loc]) break;
557
+ }
558
+ // Insert element
559
+ n_tau++;
560
+ next_tau=new_tau;
561
+ next_ind=i;
562
+ for (j=loc; j<n_tau; ++j) {
563
+ tmp_tau = tau_list[j];
564
+ tau_list[j] = next_tau;
565
+ next_tau = tmp_tau;
566
+ tmp_ind = ind_list[j];
567
+ ind_list[j] = next_ind;
568
+ next_ind = tmp_ind;
569
+ }
570
+ }
571
+ return n_tau;
572
+ }
573
+
574
+ // SYMBOL "qrqp_dual_blocking"
575
+ template<typename T1>
576
+ casadi_int casadi_qrqp_dual_blocking(casadi_qrqp_data<T1>* d) {
577
+ // Local variables
578
+ casadi_int i, n_tau, j, k, du_index;
579
+ T1 tau_k, dtau, new_infeas, tau1, infeas, tinfeas;
580
+ const casadi_int *at_colind, *at_row;
581
+ const casadi_qrqp_prob<T1>* p = d->prob;
582
+ // Extract sparsities
583
+ at_row = (at_colind = p->sp_at+2) + p->qp->na + 1;
584
+ // Dual feasibility is piecewise linear in tau. Get the intervals:
585
+ n_tau = casadi_qrqp_dual_breakpoints(d, d->w, d->iw, d->tau);
586
+ // No dual blocking yet
587
+ du_index = -1;
588
+ // How long step can we take without exceeding e?
589
+ tau_k = 0.;
590
+ for (j=0; j<n_tau; ++j) {
591
+ // Distance to the next tau (may be zero)
592
+ dtau = d->w[j] - tau_k;
593
+ // Check if maximum dual infeasibility gets exceeded
594
+ for (k=0; k<p->qp->nx; ++k) {
595
+ // Get infeasibility and infeasibility tangent
596
+ infeas = d->infeas[k];
597
+ tinfeas = d->tinfeas[k];
598
+ // Make sure tinfeas>0
599
+ if (fabs(tinfeas)<1e-14) {
600
+ // Skip
601
+ continue;
602
+ } else if (tinfeas<0) {
603
+ // Switch signs
604
+ infeas *= -1;
605
+ tinfeas *= -1;
606
+ }
607
+ // Tentative new infeasibility
608
+ new_infeas = infeas + dtau*tinfeas;
609
+ // Does infeasibility get exceeded
610
+ if (new_infeas > d->edu) {
611
+ // Sign change and exceeded
612
+ tau1 = fmax(tau_k, tau_k + (d->edu - infeas)/tinfeas);
613
+ if (tau1 < d->tau) {
614
+ // Enforce dual blocking constraint
615
+ d->tau = tau1;
616
+ du_index = k;
617
+ }
618
+ }
619
+ }
620
+ // Update infeasibility
621
+ casadi_axpy(p->qp->nx, fmin(d->tau - tau_k, dtau), d->tinfeas, d->infeas);
622
+ // Stop here if dual blocking constraint
623
+ if (du_index>=0) return du_index;
624
+ // Continue to the next tau
625
+ tau_k = d->w[j];
626
+ // Get component, break if last
627
+ i = d->iw[j];
628
+ if (i<0) break;
629
+ // Update sign or tinfeas
630
+ if (!d->neverzero[i]) {
631
+ // lam becomes zero, update the infeasibility tangent
632
+ if (i<p->qp->nx) {
633
+ // Set a lam_x to zero
634
+ d->tinfeas[i] -= d->dlam[i];
635
+ } else {
636
+ // Set a lam_a to zero
637
+ for (k=at_colind[i-p->qp->nx]; k<at_colind[i-p->qp->nx+1]; ++k) {
638
+ d->tinfeas[at_row[k]] -= d->nz_at[k]*d->dlam[i];
639
+ }
640
+ }
641
+ }
642
+ }
643
+ return du_index;
644
+ }
645
+
646
+ // SYMBOL "qrqp_take_step"
647
+ template<typename T1>
648
+ void casadi_qrqp_take_step(casadi_qrqp_data<T1>* d) {
649
+ // Local variables
650
+ casadi_int i;
651
+ const casadi_qrqp_prob<T1>* p = d->prob;
652
+ // Get current sign
653
+ for (i=0; i<p->qp->nz; ++i) d->iw[i] = d->lam[i]>0. ? 1 : d->lam[i]<0 ? -1 : 0;
654
+ // Take primal-dual step
655
+ casadi_axpy(p->qp->nz, d->tau, d->dz, d->z);
656
+ casadi_axpy(p->qp->nz, d->tau, d->dlam, d->lam);
657
+ // Update sign
658
+ for (i=0; i<p->qp->nz; ++i) {
659
+ // Allow sign changes for certain components
660
+ if (d->neverzero[i] && (d->iw[i]<0 ? d->lam[i]>0 : d->lam[i]<0)) {
661
+ d->iw[i]=-d->iw[i];
662
+ }
663
+ // Ensure correct sign
664
+ switch (d->iw[i]) {
665
+ case -1: d->lam[i] = fmin(d->lam[i], -p->dmin); break;
666
+ case 1: d->lam[i] = fmax(d->lam[i], p->dmin); break;
667
+ case 0: d->lam[i] = 0.; break;
668
+ }
669
+ }
670
+ }
671
+
672
+ // SYMBOL "qrqp_flip_check"
673
+ template<typename T1>
674
+ int casadi_qrqp_flip_check(casadi_qrqp_data<T1>* d) {
675
+ const casadi_qrqp_prob<T1>* p = d->prob;
676
+ // Calculate the difference between unenforced and enforced column index
677
+ casadi_qrqp_kkt_vector(d, d->dlam, d->index);
678
+ // Calculate the difference between old and new column index
679
+ if (d->sign == 0) casadi_scal(p->qp->nz, -1., d->dlam);
680
+ // Try to find a linear combination of the new columns
681
+ casadi_qr_solve(d->dlam, 1, 0, p->sp_v, d->nz_v, p->sp_r, d->nz_r, d->beta,
682
+ p->prinv, p->pc, d->w);
683
+ // If dlam[index]!=1, new columns must be linearly independent
684
+ if (fabs(d->dlam[d->index]-1.) >= 1e-12) return 0;
685
+ // Next, find a linear combination of the new rows
686
+ casadi_clear(d->dz, p->qp->nz);
687
+ d->dz[d->index] = 1;
688
+ casadi_qr_solve(d->dz, 1, 1, p->sp_v, d->nz_v, p->sp_r, d->nz_r, d->beta,
689
+ p->prinv, p->pc, d->w);
690
+ // Normalize dlam, dz
691
+ casadi_scal(p->qp->nz, 1./sqrt(casadi_dot(p->qp->nz, d->dlam, d->dlam)), d->dlam);
692
+ casadi_scal(p->qp->nz, 1./sqrt(casadi_dot(p->qp->nz, d->dz, d->dz)), d->dz);
693
+ // KKT system will be singular
694
+ return 1;
695
+ }
696
+
697
+ // SYMBOL "qrqp_factorize"
698
+ template<typename T1>
699
+ void casadi_qrqp_factorize(casadi_qrqp_data<T1>* d) {
700
+ const casadi_qrqp_prob<T1>* p = d->prob;
701
+ // Do we already have a search direction due to lost singularity?
702
+ if (d->has_search_dir) {
703
+ d->sing = 1;
704
+ return;
705
+ }
706
+ // Construct the KKT matrix
707
+ casadi_qrqp_kkt(d);
708
+ // QR factorization
709
+ casadi_qr(p->sp_kkt, d->nz_kkt, d->w, p->sp_v, d->nz_v, p->sp_r,
710
+ d->nz_r, d->beta, p->prinv, p->pc);
711
+ // Check singularity
712
+ d->sing = casadi_qr_singular(&d->mina, &d->imina, d->nz_r, p->sp_r, p->pc, 1e-12);
713
+ }
714
+
715
+ // SYMBOL "qrqp_expand_step"
716
+ template<typename T1>
717
+ void casadi_qrqp_expand_step(casadi_qrqp_data<T1>* d) {
718
+ // Local variables
719
+ casadi_int i;
720
+ const casadi_qrqp_prob<T1>* p = d->prob;
721
+ // Calculate change in Lagrangian gradient
722
+ casadi_clear(d->dlam, p->qp->nx);
723
+ casadi_mv(d->qp->h, p->qp->sp_h, d->dz, d->dlam, 0); // gradient of the objective
724
+ casadi_mv(d->qp->a, p->qp->sp_a, d->dz + p->qp->nx, d->dlam, 1); // gradient of the Lagrangian
725
+ // Step in lam[:nx]
726
+ casadi_scal(p->qp->nx, -1., d->dlam);
727
+ // For inactive constraints, lam(x) step is zero
728
+ for (i = 0; i < p->qp->nx; ++i) if (d->lam[i] == 0.) d->dlam[i] = 0.;
729
+ // Step in lam[nx:]
730
+ casadi_copy(d->dz+p->qp->nx, p->qp->na, d->dlam + p->qp->nx);
731
+ // Step in z[nx:]
732
+ casadi_clear(d->dz + p->qp->nx, p->qp->na);
733
+ casadi_mv(d->qp->a, p->qp->sp_a, d->dz, d->dz + p->qp->nx, 0);
734
+ // Avoid steps that are nonzero due to numerics
735
+ for (i = 0; i < p->qp->nz; ++i) if (fabs(d->dz[i]) < 1e-14) d->dz[i] = 0.;
736
+ // Tangent of the dual infeasibility at tau=0
737
+ casadi_clear(d->tinfeas, p->qp->nx);
738
+ casadi_mv(d->qp->h, p->qp->sp_h, d->dz, d->tinfeas, 0);
739
+ casadi_mv(d->qp->a, p->qp->sp_a, d->dlam + p->qp->nx, d->tinfeas, 1);
740
+ casadi_axpy(p->qp->nx, 1., d->dlam, d->tinfeas);
741
+ }
742
+
743
+ // SYMBOL "casadi_qrqp_pr_direction"
744
+ template<typename T1>
745
+ int casadi_qrqp_pr_direction(casadi_qrqp_data<T1>* d) {
746
+ casadi_int i;
747
+ const casadi_qrqp_prob<T1>* p = d->prob;
748
+ for (i=0; i<p->qp->nz; ++i) {
749
+ if (d->lbz[i] - d->z[i] >= d->epr) {
750
+ // Prevent further violation of lower bound
751
+ if (d->dz[i] < 0 || d->dlam[i] > 0) return 1;
752
+ } else if (d->z[i] - d->ubz[i] >= d->epr) {
753
+ // Prevent further violation of upper bound
754
+ if (d->dz[i] > 0 || d->dlam[i] < 0) return 1;
755
+ }
756
+ }
757
+ return 0;
758
+ }
759
+
760
+ // SYMBOL "casadi_qrqp_du_direction"
761
+ template<typename T1>
762
+ int casadi_qrqp_du_direction(casadi_qrqp_data<T1>* d) {
763
+ casadi_int i;
764
+ const casadi_qrqp_prob<T1>* p = d->prob;
765
+ for (i=0; i<p->qp->nx; ++i) {
766
+ // Prevent further increase in dual infeasibility
767
+ if (d->infeas[i] <= -d->edu && d->tinfeas[i] < -1e-12) {
768
+ return 1;
769
+ } else if (d->infeas[i] >= d->edu && d->tinfeas[i] > 1e-12) {
770
+ return 1;
771
+ }
772
+ }
773
+ return 0;
774
+ }
775
+
776
+ // SYMBOL "qrqp_enforceable"
777
+ template<typename T1>
778
+ int casadi_qrqp_enforceable(casadi_qrqp_data<T1>* d, casadi_int i, casadi_int s) {
779
+ // Local variables
780
+ casadi_int k;
781
+ const casadi_int *at_colind, *at_row;
782
+ const casadi_qrqp_prob<T1>* p = d->prob;
783
+ // Can always enforce if not at bound
784
+ if (fabs(d->infeas[i]) < d->edu) return 1;
785
+ // AT sparsity
786
+ at_colind = p->sp_at + 2;
787
+ at_row = at_colind + p->qp->na + 1;
788
+ // Can we set lam[i] := s*DMIN without exceeding edu?
789
+ if (i<p->qp->nx) {
790
+ return (s < 0) == (d->infeas[i] > 0);
791
+ } else {
792
+ for (k=at_colind[i-p->qp->nx]; k<at_colind[i-p->qp->nx+1]; ++k) {
793
+ if (d->nz_at[k] > 0) {
794
+ if ((s > 0) == (d->infeas[at_row[k]] > 0)) return 0;
795
+ } else if (d->nz_at[k] < 0) {
796
+ if ((s < 0) == (d->infeas[at_row[k]] > 0)) return 0;
797
+ }
798
+ }
799
+ return 1;
800
+ }
801
+ }
802
+
803
+ // SYMBOL "qrqp_singular_step"
804
+ // C-REPLACE "static_cast<T1*>(0)" "0"
805
+ template<typename T1>
806
+ int casadi_qrqp_singular_step(casadi_qrqp_data<T1>* d) {
807
+ // Local variables
808
+ T1 tau_test, tau;
809
+ casadi_int nnz_kkt, nk, k, i, best_k, best_neg, neg;
810
+ const casadi_qrqp_prob<T1>* p = d->prob;
811
+ // Find the columns that take part in any linear combination
812
+ for (i = 0; i < p->qp->nz; ++i) d->lincomb[i] = 0;
813
+ for (k = 0; k < d->sing; ++k) {
814
+ if (!d->has_search_dir) {
815
+ casadi_qr_colcomb(d->dlam, d->nz_r, p->sp_r, p->pc, 1e-12, k);
816
+ }
817
+ for (i = 0; i < p->qp->nz; ++i) if (fabs(d->dlam[i]) >= 1e-12) d->lincomb[i]++;
818
+ }
819
+
820
+ if (d->has_search_dir) {
821
+ // One, given search direction
822
+ nk = 1;
823
+ } else {
824
+ // QR factorization of the transpose
825
+ casadi_trans(d->nz_kkt, p->sp_kkt, d->nz_v, p->sp_kkt, d->iw);
826
+ nnz_kkt = p->sp_kkt[2+p->qp->nz]; // kkt_colind[nz]
827
+ casadi_copy(d->nz_v, nnz_kkt, d->nz_kkt);
828
+ casadi_qr(p->sp_kkt, d->nz_kkt, d->w, p->sp_v, d->nz_v, p->sp_r, d->nz_r,
829
+ d->beta, p->prinv, p->pc);
830
+ // For all nullspace vectors
831
+ nk = casadi_qr_singular(static_cast<T1*>(0), 0, d->nz_r, p->sp_r, p->pc, 1e-12);
832
+ }
833
+ // Best flip
834
+ best_k = best_neg = -1;
835
+ tau = p->inf;
836
+ for (k=0; k<nk; ++k) {
837
+ if (!d->has_search_dir) {
838
+ // Get a linear combination of the rows in kkt
839
+ casadi_qr_colcomb(d->dz, d->nz_r, p->sp_r, p->pc, 1e-12, k);
840
+ }
841
+ // Which constraints can be flipped in order to increase rank?
842
+ for (i=0; i<p->qp->nz; ++i) {
843
+ d->iw[i] = d->lincomb[i] && fabs(casadi_qrqp_kkt_dot(d, d->dz, i)) > 1e-12;
844
+ }
845
+ // Calculate step, dz and dlam
846
+ casadi_qrqp_expand_step(d);
847
+ // Try both positive and negative direction
848
+ for (neg = 0; neg < 2; ++neg) {
849
+ // Negate direction
850
+ if (neg) {
851
+ casadi_scal(p->qp->nz, -1., d->dz);
852
+ casadi_scal(p->qp->nz, -1., d->dlam);
853
+ casadi_scal(p->qp->nx, -1., d->tinfeas);
854
+ }
855
+ // Make sure primal infeasibility doesn't exceed limits
856
+ if (casadi_qrqp_pr_direction(d)) continue;
857
+ // Make sure dual infeasibility doesn't exceed limits
858
+ if (casadi_qrqp_du_direction(d)) continue;
859
+ // Loop over potential active set changes
860
+ for (i=0; i<p->qp->nz; ++i) {
861
+ // Skip if no rank increase
862
+ if (!d->iw[i]) continue;
863
+ // Enforced or not?
864
+ if (d->lam[i]==0.) {
865
+ if (d->z[i] <= d->ubz[i] && (d->z[i] >= d->lbz[i] ?
866
+ d->dz[i] < -1e-12 : d->dz[i] > 1e-12)) {
867
+ // Enforce lower bound?
868
+ if (!d->neverlower[i]
869
+ && (tau_test = (d->lbz[i] - d->z[i]) / d->dz[i]) < tau
870
+ && casadi_qrqp_enforceable(d, i, -1)) {
871
+ tau = tau_test;
872
+ d->r_index = i;
873
+ d->r_sign = -1;
874
+ best_k = k;
875
+ best_neg = neg;
876
+ }
877
+ } else if (d->z[i] >= d->lbz[i] && (d->z[i] <= d->ubz[i] ?
878
+ d->dz[i] > 1e-12 : d->dz[i] < -1e-12)) {
879
+ // Enforce upper bound?
880
+ if (!d->neverupper[i]
881
+ && (tau_test = (d->ubz[i] - d->z[i]) / d->dz[i]) < tau
882
+ && casadi_qrqp_enforceable(d, i, 1)) {
883
+ tau = tau_test;
884
+ d->r_index = i;
885
+ d->r_sign = 1;
886
+ best_k = k;
887
+ best_neg = neg;
888
+ }
889
+ }
890
+ } else if (!d->neverzero[i]) {
891
+ // Drop a constraint?
892
+ if (d->lam[i] > 0 ? d->dlam[i] < -1e-12 : d->dlam[i] > 1e-12) {
893
+ if ((tau_test = -d->lam[i] / d->dlam[i]) < tau) {
894
+ tau = tau_test;
895
+ d->r_index = i;
896
+ d->r_sign = 0;
897
+ best_k = k;
898
+ best_neg = neg;
899
+ }
900
+ }
901
+ }
902
+ }
903
+ }
904
+ }
905
+ // Can we restore feasibility?
906
+ if (d->r_index < 0) return 1;
907
+ // Recalculate direction, if needed
908
+ if (--k != best_k) {
909
+ // Need to recalculate direction
910
+ casadi_qr_colcomb(d->dz, d->nz_r, p->sp_r, p->pc, 1e-12, best_k);
911
+ casadi_qrqp_expand_step(d);
912
+ if (best_neg) tau *= -1;
913
+ } else if (--neg != best_neg) {
914
+ // No need to recalculate, but opposite direction
915
+ tau *= -1;
916
+ }
917
+ // Scale step so that that tau=1 corresponds to a full step
918
+ casadi_scal(p->qp->nz, tau, d->dz);
919
+ casadi_scal(p->qp->nz, tau, d->dlam);
920
+ casadi_scal(p->qp->nx, tau, d->tinfeas);
921
+ return 0;
922
+ }
923
+
924
+ // SYMBOL "qrqp_calc_step"
925
+ template<typename T1>
926
+ int casadi_qrqp_calc_step(casadi_qrqp_data<T1>* d) {
927
+ // Local variables
928
+ const casadi_qrqp_prob<T1>* p = d->prob;
929
+ // Reset returns
930
+ d->r_index = -1;
931
+ d->r_sign = 0;
932
+ // Handle singularity
933
+ if (d->sing) return casadi_qrqp_singular_step(d);
934
+ // Negative KKT residual
935
+ casadi_qrqp_kkt_residual(d, d->dz);
936
+ // Solve to get step in z[:nx] and lam[nx:]
937
+ casadi_qr_solve(d->dz, 1, 1, p->sp_v, d->nz_v, p->sp_r, d->nz_r, d->beta,
938
+ p->prinv, p->pc, d->w);
939
+ // Have step in dz[:nx] and dlam[nx:]. Calculate complete dz and dlam
940
+ casadi_qrqp_expand_step(d);
941
+ // Successful return
942
+ return 0;
943
+ }
944
+
945
+ // SYMBOL "qrqp_calc_sens"
946
+ template<typename T1>
947
+ void casadi_qrqp_calc_sens(casadi_qrqp_data<T1>* d, casadi_int i) {
948
+ // Local variables
949
+ const casadi_qrqp_prob<T1>* p = d->prob;
950
+ // Calculate sensitivities in decreasing dual infeasibility index i
951
+ casadi_clear(d->sens, p->qp->nz);
952
+ if (i >= 0) {
953
+ d->sens[i] = d->infeas[i] > 0 ? -1. : 1.;
954
+ casadi_mv(d->qp->a, p->qp->sp_a, d->sens, d->sens + p->qp->nx, 0);
955
+ }
956
+ }
957
+
958
+ // SYMBOL "qrqp_calc_dependent"
959
+ template<typename T1>
960
+ void casadi_qrqp_calc_dependent(casadi_qrqp_data<T1>* d) {
961
+ // Local variables
962
+ casadi_int i;
963
+ T1 r;
964
+ const casadi_qrqp_prob<T1>* p = d->prob;
965
+ // Calculate f
966
+ d->f = casadi_bilin(d->qp->h, p->qp->sp_h, d->z, d->z)/2.
967
+ + casadi_dot(p->qp->nx, d->z, d->qp->g);
968
+ // Calculate z[nx:]
969
+ casadi_clear(d->z+p->qp->nx, p->qp->na);
970
+ casadi_mv(d->qp->a, p->qp->sp_a, d->z, d->z+p->qp->nx, 0);
971
+ // Calculate gradient of the Lagrangian
972
+ casadi_copy(d->qp->g, p->qp->nx, d->infeas);
973
+ casadi_mv(d->qp->h, p->qp->sp_h, d->z, d->infeas, 0);
974
+ casadi_mv(d->qp->a, p->qp->sp_a, d->lam+p->qp->nx, d->infeas, 1);
975
+ // Calculate lam[:nx] without changing the sign accidentally, dual infeasibility
976
+ for (i=0; i<p->qp->nx; ++i) {
977
+ // No change if zero
978
+ if (d->lam[i]==0) continue;
979
+ // lam[i] with no sign restrictions
980
+ r = -d->infeas[i];
981
+ if (d->lam[i]>0) {
982
+ if (d->neverzero[i] && !d->neverlower[i]) {
983
+ d->lam[i] = r==0 ? p->dmin : r; // keep sign if r==0
984
+ } else {
985
+ d->lam[i] = fmax(r, p->dmin); // no sign change
986
+ }
987
+ } else {
988
+ if (d->neverzero[i] && !d->neverupper[i]) {
989
+ d->lam[i] = r==0 ? -p->dmin : r; // keep sign if r==0
990
+ } else {
991
+ d->lam[i] = fmin(r, -p->dmin); // no sign change
992
+ }
993
+ }
994
+ // Update dual infeasibility
995
+ d->infeas[i] += d->lam[i];
996
+ }
997
+ // Calculate primal and dual error
998
+ casadi_qrqp_pr(d);
999
+ casadi_qrqp_du(d);
1000
+ // Acceptable primal and dual error
1001
+ d->epr = fmax(d->pr, (0.5 * p->constr_viol_tol / p->dual_inf_tol) * d->du);
1002
+ d->edu = fmax(d->du, (0.5 * p->dual_inf_tol / p->constr_viol_tol) * d->pr);
1003
+ // Sensitivity in decreasing |du|
1004
+ casadi_qrqp_calc_sens(d, d->idu);
1005
+ }
1006
+
1007
+ // SYMBOL "qrqp_linesearch"
1008
+ template<typename T1>
1009
+ void casadi_qrqp_linesearch(casadi_qrqp_data<T1>* d) {
1010
+ // Local variables
1011
+ casadi_int du_index;
1012
+ // Start with a full step and no active set change
1013
+ d->sign = 0;
1014
+ d->index = -1;
1015
+ d->tau = 1.;
1016
+ // Find largest possible step without exceeding acceptable |pr|
1017
+ casadi_qrqp_primal_blocking(d);
1018
+ // Find largest possible step without exceeding acceptable |du|
1019
+ du_index = casadi_qrqp_dual_blocking(d);
1020
+ // Take primal-dual step, avoiding accidental sign changes for lam
1021
+ casadi_qrqp_take_step(d);
1022
+ // Handle dual blocking constraints
1023
+ if (du_index >= 0) {
1024
+ // Sensititivity in decreasing du_index
1025
+ casadi_qrqp_calc_sens(d, du_index);
1026
+ // Find corresponding index
1027
+ casadi_qrqp_du_index(d);
1028
+ }
1029
+ }
1030
+
1031
+ // SYMBOL "qrqp_flip"
1032
+ template<typename T1>
1033
+ void casadi_qrqp_flip(casadi_qrqp_data<T1>* d) {
1034
+ // Local variables
1035
+ const casadi_qrqp_prob<T1>* p = d->prob;
1036
+ // Try to restore regularity if possible
1037
+ if (d->index == -1 && d->r_index >= 0) {
1038
+ if (d->r_sign != 0 || casadi_qrqp_du_check(d, d->r_index)) {
1039
+ d->index = d->r_index;
1040
+ d->sign = d->r_sign;
1041
+ if (d->sign > 0) {
1042
+ d->msg = "Enforced ubz for regularity";
1043
+ } else if (d->sign < 0) {
1044
+ d->msg = "Enforced lbz for regularity";
1045
+ } else if (d->lam[d->index] > 0) {
1046
+ d->msg = "Dropped ubz for regularity";
1047
+ } else {
1048
+ d->msg = "Dropped lbz for regularity";
1049
+ }
1050
+ d->msg_ind = d->index;
1051
+ }
1052
+ }
1053
+ // If nonsingular and nonzero error, try to flip a constraint
1054
+ if (!d->sing && d->index == -1) {
1055
+ if (d->pr * p->dual_inf_tol >= p->constr_viol_tol * d->du) {
1056
+ // Improve primal feasibility if dominating
1057
+ if (d->pr >= p->constr_viol_tol) casadi_qrqp_pr_index(d);
1058
+ } else {
1059
+ // Improve dual feasibility if dominating
1060
+ if (d->du >= p->dual_inf_tol) casadi_qrqp_du_index(d);
1061
+ }
1062
+ }
1063
+ // No search direction given by default
1064
+ d->has_search_dir = 0;
1065
+ // If a constraint was added
1066
+ if (d->index >= 0) {
1067
+ // Detect singularity before it happens and get nullspace vectors
1068
+ if (!d->sing) d->has_search_dir = casadi_qrqp_flip_check(d);
1069
+ // Perform the active-set change
1070
+ d->lam[d->index] = d->sign==0 ? 0 : d->sign > 0 ? p->dmin : -p->dmin;
1071
+ // Recalculate primal and dual infeasibility
1072
+ casadi_qrqp_calc_dependent(d);
1073
+ }
1074
+ }
1075
+
1076
+ // SYMBOL "qrqp_prepare"
1077
+ template<typename T1>
1078
+ int casadi_qrqp_prepare(casadi_qrqp_data<T1>* d) {
1079
+ // Local variables
1080
+ const casadi_qrqp_prob<T1>* p = d->prob;
1081
+ // Calculate dependent quantities
1082
+ casadi_qrqp_calc_dependent(d);
1083
+ // Make an active set change
1084
+ casadi_qrqp_flip(d);
1085
+ // Form and factorize the KKT system
1086
+ casadi_qrqp_factorize(d);
1087
+ // Termination message
1088
+ if (!d->sing && d->index == -1) {
1089
+ d->status = QP_SUCCESS;
1090
+ d->msg = "Converged";
1091
+ d->msg_ind = -2;
1092
+ return 1;
1093
+ } else if (d->iter >= p->max_iter) {
1094
+ d->status = QP_MAX_ITER;
1095
+ d->msg = "Max iter";
1096
+ d->msg_ind = -2;
1097
+ return 1;
1098
+ } else if (!d->sing && d->ipr < 0 && d->idu < 0) {
1099
+ d->status = QP_SUCCESS;
1100
+ d->msg = "No primal or dual error";
1101
+ d->msg_ind = -2;
1102
+ return 1;
1103
+ } else {
1104
+ // Keep iterating
1105
+ return 0;
1106
+ }
1107
+ }
1108
+
1109
+ // SYMBOL "qrqp_iterate"
1110
+ template<typename T1>
1111
+ int casadi_qrqp_iterate(casadi_qrqp_data<T1>* d) {
1112
+ // Reset message flag
1113
+ d->msg = 0;
1114
+ // Start a new iteration
1115
+ d->iter++;
1116
+ // Calculate search direction
1117
+ if (casadi_qrqp_calc_step(d)) {
1118
+ d->status = QP_NO_SEARCH_DIR;
1119
+ return 1;
1120
+ }
1121
+ // Line search in the calculated direction
1122
+ casadi_qrqp_linesearch(d);
1123
+ // Keep iterating
1124
+ return 0;
1125
+ }
1126
+
1127
+ // SYMBOL "qrqp_print_header"
1128
+ template<typename T1>
1129
+ int casadi_qrqp_print_header(casadi_qrqp_data<T1>* d, char* buf, size_t buf_sz) {
1130
+ #ifdef CASADI_SNPRINTF
1131
+ int flag;
1132
+ // Print to string
1133
+ flag = CASADI_SNPRINTF(buf, buf_sz, "%5s %5s %9s %9s %5s %9s %5s %9s %5s %9s %4s",
1134
+ "Iter", "Sing", "fk", "|pr|", "con", "|du|", "var",
1135
+ "min_R", "con", "last_tau", "Note");
1136
+ // Check if error
1137
+ if (flag < 0) {
1138
+ d->status = QP_PRINTING_ERROR;
1139
+ return 1;
1140
+ }
1141
+ #else
1142
+ if (buf_sz) buf[0] = '\0';
1143
+ #endif
1144
+ // Successful return
1145
+ return 0;
1146
+ }
1147
+
1148
+ // SYMBOL "qrqp_print_colcomb"
1149
+ template<typename T1>
1150
+ int casadi_qrqp_print_colcomb(casadi_qrqp_data<T1>* d, char* buf, size_t buf_sz, casadi_int j) {
1151
+ #ifdef CASADI_SNPRINTF
1152
+ casadi_int num_size, n_print, i, k, buf_offset, val;
1153
+ size_t b;
1154
+ const casadi_qrqp_prob<T1>* p = d->prob;
1155
+ casadi_qr_colcomb(d->dlam, d->nz_r, p->sp_r, p->pc, 1e-12, j);
1156
+
1157
+ // Determine max printing size
1158
+ num_size = 1;
1159
+ val = p->qp->nz-1;
1160
+ while (val) {
1161
+ val/=10;
1162
+ num_size++;
1163
+ }
1164
+
1165
+ if (buf_sz<=4) return 1;
1166
+
1167
+ // How many numbers can be printed?
1168
+ // Need some extra space for '...'
1169
+ // and null
1170
+ n_print = (buf_sz-4)/num_size;
1171
+
1172
+ // Clear buffer
1173
+ for (b=0;b<buf_sz;++b) buf[b]=' ';
1174
+
1175
+ buf_offset = 0;
1176
+ for (i=0;i<p->qp->nz;++i) {
1177
+ if (fabs(d->dlam[i]) >= 1e-12) {
1178
+ if (n_print==0) {
1179
+ buf[buf_sz-4] = '.';
1180
+ buf[buf_sz-3] = '.';
1181
+ buf[buf_sz-2] = '.';
1182
+ buf[buf_sz-1] = '\0';
1183
+ return 1;
1184
+ }
1185
+ n_print--;
1186
+ CASADI_SNPRINTF(buf+buf_offset, num_size, "%d", static_cast<int>(i));
1187
+ // Clear null chars
1188
+ for (k=0;k<num_size;++k) {
1189
+ if (buf[buf_offset+k]=='\0') buf[buf_offset+k] = ' ';
1190
+ }
1191
+ buf_offset += num_size;
1192
+ }
1193
+ }
1194
+ buf[buf_sz-1] = '\0';
1195
+ #else
1196
+ if (buf_sz) buf[0] = '\0';
1197
+ #endif
1198
+ // Successful return
1199
+ return 0;
1200
+ }
1201
+
1202
+ // SYMBOL "qrqp_print_iteration"
1203
+ template<typename T1>
1204
+ int casadi_qrqp_print_iteration(casadi_qrqp_data<T1>* d, char* buf, int buf_sz) {
1205
+ #ifdef CASADI_SNPRINTF
1206
+ int flag;
1207
+ // Print iteration data without note to string
1208
+ flag = CASADI_SNPRINTF(buf, buf_sz,
1209
+ "%5d %5d %9.2g %9.2g %5d %9.2g %5d %9.2g %5d %9.2g ",
1210
+ static_cast<int>(d->iter), static_cast<int>(d->sing), d->f, d->pr,
1211
+ static_cast<int>(d->ipr), d->du, static_cast<int>(d->idu),
1212
+ d->mina, static_cast<int>(d->imina), d->tau);
1213
+ // Check if error
1214
+ if (flag < 0) {
1215
+ d->status = QP_PRINTING_ERROR;
1216
+ return 1;
1217
+ }
1218
+ // Rest of buffer reserved for iteration note
1219
+ buf += flag;
1220
+ buf_sz -= flag;
1221
+ // Print iteration note, if any
1222
+ if (d->msg) {
1223
+ if (d->msg_ind > -2) {
1224
+ flag = CASADI_SNPRINTF(buf, buf_sz, "%s, i=%d", d->msg, static_cast<int>(d->msg_ind));
1225
+ } else {
1226
+ flag = CASADI_SNPRINTF(buf, buf_sz, "%s", d->msg);
1227
+ }
1228
+ // Check if error
1229
+ if (flag < 0) {
1230
+ d->status = QP_PRINTING_ERROR;
1231
+ return 1;
1232
+ }
1233
+ }
1234
+ #else
1235
+ if (buf_sz) buf[0] = '\0';
1236
+ #endif
1237
+ // Successful return
1238
+ return 0;
1239
+ }