casadi 3.6.7__cp313-none-manylinux2014_aarch64.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 (1683) 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/cmake/alpaqa/alpaqaConfig.cmake +24 -0
  6. casadi/cmake/alpaqa/alpaqaConfigVersion.cmake +65 -0
  7. casadi/cmake/alpaqa/alpaqaTargets-release.cmake +29 -0
  8. casadi/cmake/alpaqa/alpaqaTargets.cmake +131 -0
  9. casadi/cmake/casadi-config-version.cmake +11 -0
  10. casadi/cmake/casadi-config.cmake +8 -0
  11. casadi/cmake/casadi-targets-release.cmake +19 -0
  12. casadi/cmake/casadi-targets.cmake +107 -0
  13. casadi/cmake/osqp/osqp-config.cmake +1 -0
  14. casadi/cmake/osqp/osqp-targets-noconfig.cmake +29 -0
  15. casadi/cmake/osqp/osqp-targets.cmake +109 -0
  16. casadi/cmake/proxsuite/find-external/Simde/FindSimde.cmake +39 -0
  17. casadi/cmake/proxsuite/proxsuiteConfig.cmake +177 -0
  18. casadi/cmake/proxsuite/proxsuiteConfigVersion.cmake +65 -0
  19. casadi/cmake/proxsuite/proxsuiteTargets.cmake +115 -0
  20. casadi/cmake/qdldl/qdldl-config.cmake +1 -0
  21. casadi/cmake/qdldl/qdldl-targets-noconfig.cmake +29 -0
  22. casadi/cmake/qdldl/qdldl-targets.cmake +109 -0
  23. casadi/include/alpaqa/accelerators/anderson.hpp +133 -0
  24. casadi/include/alpaqa/accelerators/internal/anderson-helpers.hpp +92 -0
  25. casadi/include/alpaqa/accelerators/internal/limited-memory-qr.hpp +295 -0
  26. casadi/include/alpaqa/accelerators/lbfgs.hpp +244 -0
  27. casadi/include/alpaqa/accelerators/steihaugcg.hpp +143 -0
  28. casadi/include/alpaqa/alpaqa.hpp +3 -0
  29. casadi/include/alpaqa/casadi/CasADiControlProblem.hpp +185 -0
  30. casadi/include/alpaqa/casadi/CasADiFunctionWrapper.hpp +104 -0
  31. casadi/include/alpaqa/casadi/CasADiProblem.hpp +102 -0
  32. casadi/include/alpaqa/casadi-loader-export.hpp +15 -0
  33. casadi/include/alpaqa/casadi-ocp-loader-export.hpp +15 -0
  34. casadi/include/alpaqa/config/config.hpp +165 -0
  35. casadi/include/alpaqa/dl/dl-problem.h +476 -0
  36. casadi/include/alpaqa/dl/dl-problem.hpp +301 -0
  37. casadi/include/alpaqa/export.h +42 -0
  38. casadi/include/alpaqa/export.hpp +30 -0
  39. casadi/include/alpaqa/implementation/accelerators/lbfgs.tpp +240 -0
  40. casadi/include/alpaqa/implementation/casadi/CasADiControlProblem.tpp +594 -0
  41. casadi/include/alpaqa/implementation/casadi/CasADiLoader-util.hpp +50 -0
  42. casadi/include/alpaqa/implementation/casadi/CasADiProblem.tpp +425 -0
  43. casadi/include/alpaqa/implementation/inner/directions/panoc/structured-lbfgs.tpp +164 -0
  44. casadi/include/alpaqa/implementation/inner/panoc-helpers.tpp +389 -0
  45. casadi/include/alpaqa/implementation/inner/panoc-ocp.tpp +798 -0
  46. casadi/include/alpaqa/implementation/inner/panoc.tpp +448 -0
  47. casadi/include/alpaqa/implementation/inner/pantr.tpp +474 -0
  48. casadi/include/alpaqa/implementation/inner/zerofpr.tpp +482 -0
  49. casadi/include/alpaqa/implementation/outer/alm.tpp +228 -0
  50. casadi/include/alpaqa/implementation/outer/internal/alm-helpers.tpp +80 -0
  51. casadi/include/alpaqa/implementation/params/params.tpp +158 -0
  52. casadi/include/alpaqa/implementation/problem/ocproblem.tpp +56 -0
  53. casadi/include/alpaqa/implementation/problem/type-erased-problem.tpp +211 -0
  54. casadi/include/alpaqa/implementation/util/io/csv.tpp +120 -0
  55. casadi/include/alpaqa/implementation/util/print.tpp +151 -0
  56. casadi/include/alpaqa/inner/directions/panoc/anderson.hpp +98 -0
  57. casadi/include/alpaqa/inner/directions/panoc/lbfgs.hpp +94 -0
  58. casadi/include/alpaqa/inner/directions/panoc/structured-lbfgs.hpp +146 -0
  59. casadi/include/alpaqa/inner/directions/panoc/structured-newton.hpp +264 -0
  60. casadi/include/alpaqa/inner/directions/panoc-direction-update.hpp +96 -0
  61. casadi/include/alpaqa/inner/directions/panoc-ocp/lqr.hpp +181 -0
  62. casadi/include/alpaqa/inner/directions/panoc-ocp/ocp-vars.hpp +492 -0
  63. casadi/include/alpaqa/inner/directions/pantr/newton-tr.hpp +192 -0
  64. casadi/include/alpaqa/inner/directions/pantr/pantr-direction.hpp +99 -0
  65. casadi/include/alpaqa/inner/inner-solve-options.hpp +30 -0
  66. casadi/include/alpaqa/inner/internal/lipschitz.hpp +27 -0
  67. casadi/include/alpaqa/inner/internal/panoc-helpers.hpp +10 -0
  68. casadi/include/alpaqa/inner/internal/panoc-stop-crit.hpp +124 -0
  69. casadi/include/alpaqa/inner/internal/solverstatus.hpp +42 -0
  70. casadi/include/alpaqa/inner/panoc-ocp.hpp +302 -0
  71. casadi/include/alpaqa/inner/panoc.hpp +274 -0
  72. casadi/include/alpaqa/inner/pantr.hpp +284 -0
  73. casadi/include/alpaqa/inner/zerofpr.hpp +274 -0
  74. casadi/include/alpaqa/ipopt/ipopt-adapter.hpp +81 -0
  75. casadi/include/alpaqa/ipopt/ipopt-enums.hpp +35 -0
  76. casadi/include/alpaqa/lbfgsb/lbfgsb-adapter.hpp +111 -0
  77. casadi/include/alpaqa/newton-tr-pantr-alm.hpp +27 -0
  78. casadi/include/alpaqa/outer/alm.hpp +190 -0
  79. casadi/include/alpaqa/outer/internal/alm-helpers.hpp +10 -0
  80. casadi/include/alpaqa/panoc-alm.hpp +27 -0
  81. casadi/include/alpaqa/panoc-anderson-alm.hpp +27 -0
  82. casadi/include/alpaqa/params/params.hpp +60 -0
  83. casadi/include/alpaqa/problem/box-constr-problem.hpp +220 -0
  84. casadi/include/alpaqa/problem/box.hpp +82 -0
  85. casadi/include/alpaqa/problem/functional-problem.hpp +73 -0
  86. casadi/include/alpaqa/problem/kkt-error.hpp +43 -0
  87. casadi/include/alpaqa/problem/ocproblem-counters.hpp +116 -0
  88. casadi/include/alpaqa/problem/ocproblem.hpp +662 -0
  89. casadi/include/alpaqa/problem/problem-counters.hpp +116 -0
  90. casadi/include/alpaqa/problem/problem-with-counters.hpp +141 -0
  91. casadi/include/alpaqa/problem/type-erased-problem.hpp +874 -0
  92. casadi/include/alpaqa/problem/unconstr-problem.hpp +37 -0
  93. casadi/include/alpaqa/structured-panoc-alm.hpp +27 -0
  94. casadi/include/alpaqa/structured-zerofpr-alm.hpp +27 -0
  95. casadi/include/alpaqa/util/alloc-check.hpp +23 -0
  96. casadi/include/alpaqa/util/atomic-stop-signal.hpp +24 -0
  97. casadi/include/alpaqa/util/check-dim.hpp +64 -0
  98. casadi/include/alpaqa/util/copyable_unique_ptr.hpp +32 -0
  99. casadi/include/alpaqa/util/demangled-typename.hpp +9 -0
  100. casadi/include/alpaqa/util/enumerate.hpp +70 -0
  101. casadi/include/alpaqa/util/float.hpp +25 -0
  102. casadi/include/alpaqa/util/index-set.hpp +97 -0
  103. casadi/include/alpaqa/util/io/csv.hpp +43 -0
  104. casadi/include/alpaqa/util/iter-adapter.hpp +68 -0
  105. casadi/include/alpaqa/util/max-history.hpp +47 -0
  106. casadi/include/alpaqa/util/noop-delete.hpp +15 -0
  107. casadi/include/alpaqa/util/not-implemented.hpp +12 -0
  108. casadi/include/alpaqa/util/print.hpp +78 -0
  109. casadi/include/alpaqa/util/quadmath/quadmath-print.hpp +20 -0
  110. casadi/include/alpaqa/util/quadmath/quadmath.hpp +137 -0
  111. casadi/include/alpaqa/util/required-method.hpp +29 -0
  112. casadi/include/alpaqa/util/ringbuffer.hpp +212 -0
  113. casadi/include/alpaqa/util/set-intersection.hpp +129 -0
  114. casadi/include/alpaqa/util/sparse-ops.hpp +164 -0
  115. casadi/include/alpaqa/util/timed.hpp +22 -0
  116. casadi/include/alpaqa/util/type-erasure.hpp +568 -0
  117. casadi/include/alpaqa/util/type-traits.hpp +58 -0
  118. casadi/include/alpaqa/zerofpr-alm.hpp +27 -0
  119. casadi/include/alpaqa/zerofpr-anderson-alm.hpp +27 -0
  120. casadi/include/alpaqa-version.h +8 -0
  121. casadi/include/blasfeo.h +52 -0
  122. casadi/include/blasfeo_block_size.h +447 -0
  123. casadi/include/blasfeo_common.h +274 -0
  124. casadi/include/blasfeo_d_aux.h +255 -0
  125. casadi/include/blasfeo_d_aux_ext_dep.h +145 -0
  126. casadi/include/blasfeo_d_aux_ext_dep_ref.h +84 -0
  127. casadi/include/blasfeo_d_aux_old.h +75 -0
  128. casadi/include/blasfeo_d_aux_ref.h +208 -0
  129. casadi/include/blasfeo_d_aux_test.h +226 -0
  130. casadi/include/blasfeo_d_blas.h +46 -0
  131. casadi/include/blasfeo_d_blas_api.h +281 -0
  132. casadi/include/blasfeo_d_blasfeo_api.h +364 -0
  133. casadi/include/blasfeo_d_blasfeo_api_ref.h +147 -0
  134. casadi/include/blasfeo_d_blasfeo_hp_api.h +84 -0
  135. casadi/include/blasfeo_d_blasfeo_ref_api.h +283 -0
  136. casadi/include/blasfeo_d_kernel.h +1321 -0
  137. casadi/include/blasfeo_i_aux_ext_dep.h +69 -0
  138. casadi/include/blasfeo_m_aux.h +57 -0
  139. casadi/include/blasfeo_memory.h +62 -0
  140. casadi/include/blasfeo_naming.h +77 -0
  141. casadi/include/blasfeo_processor_features.h +88 -0
  142. casadi/include/blasfeo_s_aux.h +168 -0
  143. casadi/include/blasfeo_s_aux_ext_dep.h +141 -0
  144. casadi/include/blasfeo_s_aux_ext_dep_ref.h +82 -0
  145. casadi/include/blasfeo_s_aux_old.h +64 -0
  146. casadi/include/blasfeo_s_aux_ref.h +147 -0
  147. casadi/include/blasfeo_s_aux_test.h +177 -0
  148. casadi/include/blasfeo_s_blas.h +46 -0
  149. casadi/include/blasfeo_s_blas_api.h +182 -0
  150. casadi/include/blasfeo_s_blasfeo_api.h +284 -0
  151. casadi/include/blasfeo_s_blasfeo_api_ref.h +135 -0
  152. casadi/include/blasfeo_s_blasfeo_ref_api.h +252 -0
  153. casadi/include/blasfeo_s_kernel.h +692 -0
  154. casadi/include/blasfeo_stdlib.h +62 -0
  155. casadi/include/blasfeo_target.h +73 -0
  156. casadi/include/blasfeo_timing.h +114 -0
  157. casadi/include/blasfeo_v_aux_ext_dep.h +83 -0
  158. casadi/include/casadi/casadi.hpp +31 -0
  159. casadi/include/casadi/casadi.i +4691 -0
  160. casadi/include/casadi/casadi_c.h +138 -0
  161. casadi/include/casadi/casadi_numpy.hpp +97 -0
  162. casadi/include/casadi/config.h +46 -0
  163. casadi/include/casadi/core/calculus.hpp +1750 -0
  164. casadi/include/casadi/core/callback.hpp +226 -0
  165. casadi/include/casadi/core/casadi_common.hpp +318 -0
  166. casadi/include/casadi/core/casadi_enum.hpp +90 -0
  167. casadi/include/casadi/core/casadi_export.h +42 -0
  168. casadi/include/casadi/core/casadi_interrupt.hpp +83 -0
  169. casadi/include/casadi/core/casadi_limits.hpp +104 -0
  170. casadi/include/casadi/core/casadi_logger.hpp +134 -0
  171. casadi/include/casadi/core/casadi_meta.hpp +107 -0
  172. casadi/include/casadi/core/casadi_misc.hpp +1001 -0
  173. casadi/include/casadi/core/casadi_types.hpp +66 -0
  174. casadi/include/casadi/core/code_generator.hpp +975 -0
  175. casadi/include/casadi/core/conic.hpp +213 -0
  176. casadi/include/casadi/core/core.hpp +70 -0
  177. casadi/include/casadi/core/dae_builder.hpp +723 -0
  178. casadi/include/casadi/core/dm.hpp +87 -0
  179. casadi/include/casadi/core/dm_fwd.hpp +39 -0
  180. casadi/include/casadi/core/dple.hpp +138 -0
  181. casadi/include/casadi/core/exception.hpp +167 -0
  182. casadi/include/casadi/core/expm.hpp +84 -0
  183. casadi/include/casadi/core/external.hpp +70 -0
  184. casadi/include/casadi/core/fmu.hpp +224 -0
  185. casadi/include/casadi/core/function.hpp +1347 -0
  186. casadi/include/casadi/core/generic_expression.hpp +760 -0
  187. casadi/include/casadi/core/generic_matrix.hpp +1598 -0
  188. casadi/include/casadi/core/generic_type.hpp +311 -0
  189. casadi/include/casadi/core/global_options.hpp +97 -0
  190. casadi/include/casadi/core/im.hpp +52 -0
  191. casadi/include/casadi/core/im_fwd.hpp +35 -0
  192. casadi/include/casadi/core/importer.hpp +221 -0
  193. casadi/include/casadi/core/integration_tools.hpp +292 -0
  194. casadi/include/casadi/core/integrator.hpp +256 -0
  195. casadi/include/casadi/core/interpolant.hpp +163 -0
  196. casadi/include/casadi/core/linsol.hpp +171 -0
  197. casadi/include/casadi/core/matrix_decl.hpp +1352 -0
  198. casadi/include/casadi/core/matrix_fwd.hpp +37 -0
  199. casadi/include/casadi/core/mx.hpp +953 -0
  200. casadi/include/casadi/core/nlp_builder.hpp +162 -0
  201. casadi/include/casadi/core/nlp_tools.hpp +124 -0
  202. casadi/include/casadi/core/nlpsol.hpp +234 -0
  203. casadi/include/casadi/core/nonzeros.hpp +111 -0
  204. casadi/include/casadi/core/options.hpp +119 -0
  205. casadi/include/casadi/core/optistack.hpp +670 -0
  206. casadi/include/casadi/core/polynomial.hpp +126 -0
  207. casadi/include/casadi/core/printable.hpp +73 -0
  208. casadi/include/casadi/core/rootfinder.hpp +176 -0
  209. casadi/include/casadi/core/runtime/casadi_axpy.hpp +8 -0
  210. casadi/include/casadi/core/runtime/casadi_bfgs.hpp +49 -0
  211. casadi/include/casadi/core/runtime/casadi_bilin.hpp +42 -0
  212. casadi/include/casadi/core/runtime/casadi_bound_consistency.hpp +51 -0
  213. casadi/include/casadi/core/runtime/casadi_cache.hpp +59 -0
  214. casadi/include/casadi/core/runtime/casadi_clear.hpp +27 -0
  215. casadi/include/casadi/core/runtime/casadi_clip_max.hpp +33 -0
  216. casadi/include/casadi/core/runtime/casadi_clip_min.hpp +33 -0
  217. casadi/include/casadi/core/runtime/casadi_convexify.hpp +182 -0
  218. casadi/include/casadi/core/runtime/casadi_copy.hpp +31 -0
  219. casadi/include/casadi/core/runtime/casadi_cvx.hpp +463 -0
  220. casadi/include/casadi/core/runtime/casadi_de_boor.hpp +36 -0
  221. casadi/include/casadi/core/runtime/casadi_dense_lsqr.hpp +247 -0
  222. casadi/include/casadi/core/runtime/casadi_densify.hpp +48 -0
  223. casadi/include/casadi/core/runtime/casadi_dot.hpp +27 -0
  224. casadi/include/casadi/core/runtime/casadi_feasiblesqpmethod.hpp +208 -0
  225. casadi/include/casadi/core/runtime/casadi_file_slurp.hpp +32 -0
  226. casadi/include/casadi/core/runtime/casadi_fill.hpp +27 -0
  227. casadi/include/casadi/core/runtime/casadi_finite_diff.hpp +345 -0
  228. casadi/include/casadi/core/runtime/casadi_flip.hpp +33 -0
  229. casadi/include/casadi/core/runtime/casadi_getu.hpp +35 -0
  230. casadi/include/casadi/core/runtime/casadi_iamax.hpp +36 -0
  231. casadi/include/casadi/core/runtime/casadi_interpn.hpp +39 -0
  232. casadi/include/casadi/core/runtime/casadi_interpn_grad.hpp +72 -0
  233. casadi/include/casadi/core/runtime/casadi_interpn_interpolate.hpp +43 -0
  234. casadi/include/casadi/core/runtime/casadi_interpn_weights.hpp +39 -0
  235. casadi/include/casadi/core/runtime/casadi_ipqp.hpp +868 -0
  236. casadi/include/casadi/core/runtime/casadi_jac.hpp +186 -0
  237. casadi/include/casadi/core/runtime/casadi_kkt.hpp +67 -0
  238. casadi/include/casadi/core/runtime/casadi_kron.hpp +50 -0
  239. casadi/include/casadi/core/runtime/casadi_ldl.hpp +109 -0
  240. casadi/include/casadi/core/runtime/casadi_logsumexp.hpp +41 -0
  241. casadi/include/casadi/core/runtime/casadi_low.hpp +65 -0
  242. casadi/include/casadi/core/runtime/casadi_lsqr.hpp +247 -0
  243. casadi/include/casadi/core/runtime/casadi_masked_norm_inf.hpp +33 -0
  244. casadi/include/casadi/core/runtime/casadi_max_viol.hpp +37 -0
  245. casadi/include/casadi/core/runtime/casadi_mmax.hpp +28 -0
  246. casadi/include/casadi/core/runtime/casadi_mmin.hpp +29 -0
  247. casadi/include/casadi/core/runtime/casadi_mtimes.hpp +75 -0
  248. casadi/include/casadi/core/runtime/casadi_mv.hpp +46 -0
  249. casadi/include/casadi/core/runtime/casadi_mv_dense.hpp +39 -0
  250. casadi/include/casadi/core/runtime/casadi_nd_boor_dual_eval.hpp +127 -0
  251. casadi/include/casadi/core/runtime/casadi_nd_boor_eval.hpp +120 -0
  252. casadi/include/casadi/core/runtime/casadi_newton.hpp +66 -0
  253. casadi/include/casadi/core/runtime/casadi_nlp.hpp +289 -0
  254. casadi/include/casadi/core/runtime/casadi_norm_1.hpp +29 -0
  255. casadi/include/casadi/core/runtime/casadi_norm_2.hpp +24 -0
  256. casadi/include/casadi/core/runtime/casadi_norm_inf.hpp +28 -0
  257. casadi/include/casadi/core/runtime/casadi_norm_inf_mul.hpp +105 -0
  258. casadi/include/casadi/core/runtime/casadi_ocp_block.hpp +55 -0
  259. casadi/include/casadi/core/runtime/casadi_oracle.hpp +44 -0
  260. casadi/include/casadi/core/runtime/casadi_oracle_callback.hpp +39 -0
  261. casadi/include/casadi/core/runtime/casadi_polyval.hpp +29 -0
  262. casadi/include/casadi/core/runtime/casadi_project.hpp +39 -0
  263. casadi/include/casadi/core/runtime/casadi_qp.hpp +86 -0
  264. casadi/include/casadi/core/runtime/casadi_qr.hpp +272 -0
  265. casadi/include/casadi/core/runtime/casadi_qrqp.hpp +1239 -0
  266. casadi/include/casadi/core/runtime/casadi_rank1.hpp +40 -0
  267. casadi/include/casadi/core/runtime/casadi_regularize.hpp +73 -0
  268. casadi/include/casadi/core/runtime/casadi_runtime.hpp +318 -0
  269. casadi/include/casadi/core/runtime/casadi_scal.hpp +26 -0
  270. casadi/include/casadi/core/runtime/casadi_scaled_copy.hpp +31 -0
  271. casadi/include/casadi/core/runtime/casadi_sparsify.hpp +42 -0
  272. casadi/include/casadi/core/runtime/casadi_sparsity.hpp +24 -0
  273. casadi/include/casadi/core/runtime/casadi_sqpmethod.hpp +178 -0
  274. casadi/include/casadi/core/runtime/casadi_sum.hpp +31 -0
  275. casadi/include/casadi/core/runtime/casadi_sum_viol.hpp +37 -0
  276. casadi/include/casadi/core/runtime/casadi_swap.hpp +32 -0
  277. casadi/include/casadi/core/runtime/casadi_trans.hpp +35 -0
  278. casadi/include/casadi/core/runtime/casadi_tri_project.hpp +37 -0
  279. casadi/include/casadi/core/runtime/casadi_trilsolve.hpp +81 -0
  280. casadi/include/casadi/core/runtime/casadi_triusolve.hpp +81 -0
  281. casadi/include/casadi/core/runtime/casadi_vector_fmax.hpp +28 -0
  282. casadi/include/casadi/core/runtime/casadi_vector_fmin.hpp +28 -0
  283. casadi/include/casadi/core/runtime/casadi_vfmax.hpp +28 -0
  284. casadi/include/casadi/core/runtime/casadi_vfmin.hpp +28 -0
  285. casadi/include/casadi/core/runtime/shared.hpp +261 -0
  286. casadi/include/casadi/core/serializer.hpp +256 -0
  287. casadi/include/casadi/core/serializing_stream.hpp +329 -0
  288. casadi/include/casadi/core/shared_object.hpp +270 -0
  289. casadi/include/casadi/core/slice.hpp +149 -0
  290. casadi/include/casadi/core/sparsity.hpp +1495 -0
  291. casadi/include/casadi/core/sparsity_interface.hpp +745 -0
  292. casadi/include/casadi/core/submatrix.hpp +156 -0
  293. casadi/include/casadi/core/sx.hpp +203 -0
  294. casadi/include/casadi/core/sx_elem.hpp +351 -0
  295. casadi/include/casadi/core/sx_fwd.hpp +45 -0
  296. casadi/include/casadi/core/timing.hpp +98 -0
  297. casadi/include/casadi/core/tools.hpp +67 -0
  298. casadi/include/casadi/core/xml_file.hpp +93 -0
  299. casadi/include/casadi/core/xml_node.hpp +207 -0
  300. casadi/include/casadi/doc.i +58615 -0
  301. casadi/include/casadi/doc_merged.i +36123 -0
  302. casadi/include/casadi/mem.h +311 -0
  303. casadi/include/casadi/valgrind-casadi.supp +511 -0
  304. casadi/include/casadi/valgrind-python.supp +1416 -0
  305. casadi/include/coin-or/IpAlgBuilder.hpp +417 -0
  306. casadi/include/coin-or/IpAlgStrategy.hpp +201 -0
  307. casadi/include/coin-or/IpAlgTypes.hpp +64 -0
  308. casadi/include/coin-or/IpAugSystemSolver.hpp +212 -0
  309. casadi/include/coin-or/IpBlas.hpp +426 -0
  310. casadi/include/coin-or/IpCachedResults.hpp +897 -0
  311. casadi/include/coin-or/IpCompoundMatrix.hpp +423 -0
  312. casadi/include/coin-or/IpCompoundSymMatrix.hpp +348 -0
  313. casadi/include/coin-or/IpCompoundVector.hpp +395 -0
  314. casadi/include/coin-or/IpConvCheck.hpp +97 -0
  315. casadi/include/coin-or/IpDebug.hpp +167 -0
  316. casadi/include/coin-or/IpDenseVector.hpp +626 -0
  317. casadi/include/coin-or/IpDiagMatrix.hpp +158 -0
  318. casadi/include/coin-or/IpEqMultCalculator.hpp +76 -0
  319. casadi/include/coin-or/IpException.hpp +156 -0
  320. casadi/include/coin-or/IpExpansionMatrix.hpp +245 -0
  321. casadi/include/coin-or/IpGenTMatrix.hpp +290 -0
  322. casadi/include/coin-or/IpHessianUpdater.hpp +73 -0
  323. casadi/include/coin-or/IpIdentityMatrix.hpp +167 -0
  324. casadi/include/coin-or/IpIpoptAlg.hpp +257 -0
  325. casadi/include/coin-or/IpIpoptApplication.hpp +367 -0
  326. casadi/include/coin-or/IpIpoptCalculatedQuantities.hpp +1009 -0
  327. casadi/include/coin-or/IpIpoptData.hpp +966 -0
  328. casadi/include/coin-or/IpIpoptNLP.hpp +328 -0
  329. casadi/include/coin-or/IpIterateInitializer.hpp +68 -0
  330. casadi/include/coin-or/IpIteratesVector.hpp +840 -0
  331. casadi/include/coin-or/IpIterationOutput.hpp +78 -0
  332. casadi/include/coin-or/IpJournalist.hpp +573 -0
  333. casadi/include/coin-or/IpLapack.hpp +227 -0
  334. casadi/include/coin-or/IpLibraryLoader.hpp +76 -0
  335. casadi/include/coin-or/IpLineSearch.hpp +106 -0
  336. casadi/include/coin-or/IpLinearSolvers.h +46 -0
  337. casadi/include/coin-or/IpMatrix.hpp +434 -0
  338. casadi/include/coin-or/IpMuUpdate.hpp +77 -0
  339. casadi/include/coin-or/IpNLP.hpp +306 -0
  340. casadi/include/coin-or/IpNLPScaling.hpp +582 -0
  341. casadi/include/coin-or/IpObserver.hpp +422 -0
  342. casadi/include/coin-or/IpOptionsList.hpp +412 -0
  343. casadi/include/coin-or/IpOrigIpoptNLP.hpp +603 -0
  344. casadi/include/coin-or/IpPDSystemSolver.hpp +137 -0
  345. casadi/include/coin-or/IpReferenced.hpp +262 -0
  346. casadi/include/coin-or/IpRegOptions.hpp +1152 -0
  347. casadi/include/coin-or/IpReturnCodes.h +23 -0
  348. casadi/include/coin-or/IpReturnCodes.hpp +18 -0
  349. casadi/include/coin-or/IpReturnCodes.inc +71 -0
  350. casadi/include/coin-or/IpReturnCodes_inc.h +45 -0
  351. casadi/include/coin-or/IpScaledMatrix.hpp +291 -0
  352. casadi/include/coin-or/IpSearchDirCalculator.hpp +72 -0
  353. casadi/include/coin-or/IpSmartPtr.hpp +865 -0
  354. casadi/include/coin-or/IpSolveStatistics.hpp +210 -0
  355. casadi/include/coin-or/IpSparseSymLinearSolverInterface.hpp +260 -0
  356. casadi/include/coin-or/IpStdAugSystemSolver.cpp +555 -0
  357. casadi/include/coin-or/IpStdCInterface.h +428 -0
  358. casadi/include/coin-or/IpSumSymMatrix.hpp +186 -0
  359. casadi/include/coin-or/IpSymLinearSolver.hpp +141 -0
  360. casadi/include/coin-or/IpSymMatrix.hpp +167 -0
  361. casadi/include/coin-or/IpSymScaledMatrix.hpp +255 -0
  362. casadi/include/coin-or/IpSymTMatrix.hpp +275 -0
  363. casadi/include/coin-or/IpTNLP.hpp +820 -0
  364. casadi/include/coin-or/IpTNLPAdapter.hpp +648 -0
  365. casadi/include/coin-or/IpTNLPReducer.hpp +274 -0
  366. casadi/include/coin-or/IpTaggedObject.hpp +128 -0
  367. casadi/include/coin-or/IpTimedTask.hpp +218 -0
  368. casadi/include/coin-or/IpTimingStatistics.hpp +323 -0
  369. casadi/include/coin-or/IpTripletHelper.hpp +308 -0
  370. casadi/include/coin-or/IpTypes.h +81 -0
  371. casadi/include/coin-or/IpTypes.hpp +30 -0
  372. casadi/include/coin-or/IpUtils.hpp +166 -0
  373. casadi/include/coin-or/IpVector.hpp +892 -0
  374. casadi/include/coin-or/IpZeroSymMatrix.hpp +155 -0
  375. casadi/include/coin-or/IpoptConfig.h +45 -0
  376. casadi/include/coin-or/SensAlgorithm.hpp +114 -0
  377. casadi/include/coin-or/SensApplication.hpp +188 -0
  378. casadi/include/coin-or/SensBacksolver.hpp +36 -0
  379. casadi/include/coin-or/SensMeasurement.hpp +56 -0
  380. casadi/include/coin-or/SensPCalculator.hpp +137 -0
  381. casadi/include/coin-or/SensRegOp.hpp +21 -0
  382. casadi/include/coin-or/SensSchurData.hpp +182 -0
  383. casadi/include/coin-or/SensSchurDriver.hpp +118 -0
  384. casadi/include/coin-or/SensSimpleBacksolver.hpp +49 -0
  385. casadi/include/coin-or/SensStepCalc.hpp +85 -0
  386. casadi/include/coin-or/SensUtils.hpp +63 -0
  387. casadi/include/coin-or/metis/defs.h +161 -0
  388. casadi/include/coin-or/metis/macros.h +143 -0
  389. casadi/include/coin-or/metis/metis.h +37 -0
  390. casadi/include/coin-or/metis/proto.h +505 -0
  391. casadi/include/coin-or/metis/rename.h +418 -0
  392. casadi/include/coin-or/metis/struct.h +251 -0
  393. casadi/include/coin-or/mumps/dmumps_c.h +142 -0
  394. casadi/include/coin-or/mumps/mumps_c_types.h +72 -0
  395. casadi/include/coin-or/mumps/mumps_compat.h +27 -0
  396. casadi/include/coin-or/mumps/mumps_int_def.h +11 -0
  397. casadi/include/coin-or/mumps/mumps_mpi.h +67 -0
  398. casadi/include/d_blas.h +78 -0
  399. casadi/include/d_blas_64.h +73 -0
  400. casadi/include/daqp/api.h +46 -0
  401. casadi/include/daqp/auxiliary.h +29 -0
  402. casadi/include/daqp/bnb.h +32 -0
  403. casadi/include/daqp/codegen.h +18 -0
  404. casadi/include/daqp/constants.h +92 -0
  405. casadi/include/daqp/daqp.h +22 -0
  406. casadi/include/daqp/daqp_prox.h +18 -0
  407. casadi/include/daqp/factorization.h +18 -0
  408. casadi/include/daqp/types.h +161 -0
  409. casadi/include/daqp/utils.h +44 -0
  410. casadi/include/eigen3/Eigen/Cholesky +45 -0
  411. casadi/include/eigen3/Eigen/CholmodSupport +48 -0
  412. casadi/include/eigen3/Eigen/Core +384 -0
  413. casadi/include/eigen3/Eigen/Dense +7 -0
  414. casadi/include/eigen3/Eigen/Eigen +2 -0
  415. casadi/include/eigen3/Eigen/Eigenvalues +60 -0
  416. casadi/include/eigen3/Eigen/Geometry +59 -0
  417. casadi/include/eigen3/Eigen/Householder +29 -0
  418. casadi/include/eigen3/Eigen/IterativeLinearSolvers +48 -0
  419. casadi/include/eigen3/Eigen/Jacobi +32 -0
  420. casadi/include/eigen3/Eigen/KLUSupport +41 -0
  421. casadi/include/eigen3/Eigen/LU +47 -0
  422. casadi/include/eigen3/Eigen/MetisSupport +35 -0
  423. casadi/include/eigen3/Eigen/OrderingMethods +70 -0
  424. casadi/include/eigen3/Eigen/PaStiXSupport +49 -0
  425. casadi/include/eigen3/Eigen/PardisoSupport +35 -0
  426. casadi/include/eigen3/Eigen/QR +50 -0
  427. casadi/include/eigen3/Eigen/QtAlignedMalloc +39 -0
  428. casadi/include/eigen3/Eigen/SPQRSupport +34 -0
  429. casadi/include/eigen3/Eigen/SVD +50 -0
  430. casadi/include/eigen3/Eigen/Sparse +34 -0
  431. casadi/include/eigen3/Eigen/SparseCholesky +37 -0
  432. casadi/include/eigen3/Eigen/SparseCore +69 -0
  433. casadi/include/eigen3/Eigen/SparseLU +50 -0
  434. casadi/include/eigen3/Eigen/SparseQR +36 -0
  435. casadi/include/eigen3/Eigen/StdDeque +27 -0
  436. casadi/include/eigen3/Eigen/StdList +26 -0
  437. casadi/include/eigen3/Eigen/StdVector +27 -0
  438. casadi/include/eigen3/Eigen/SuperLUSupport +64 -0
  439. casadi/include/eigen3/Eigen/UmfPackSupport +40 -0
  440. casadi/include/eigen3/Eigen/src/Cholesky/LDLT.h +688 -0
  441. casadi/include/eigen3/Eigen/src/Cholesky/LLT.h +558 -0
  442. casadi/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h +99 -0
  443. casadi/include/eigen3/Eigen/src/CholmodSupport/CholmodSupport.h +682 -0
  444. casadi/include/eigen3/Eigen/src/Core/ArithmeticSequence.h +413 -0
  445. casadi/include/eigen3/Eigen/src/Core/Array.h +417 -0
  446. casadi/include/eigen3/Eigen/src/Core/ArrayBase.h +226 -0
  447. casadi/include/eigen3/Eigen/src/Core/ArrayWrapper.h +209 -0
  448. casadi/include/eigen3/Eigen/src/Core/Assign.h +90 -0
  449. casadi/include/eigen3/Eigen/src/Core/AssignEvaluator.h +1010 -0
  450. casadi/include/eigen3/Eigen/src/Core/Assign_MKL.h +178 -0
  451. casadi/include/eigen3/Eigen/src/Core/BandMatrix.h +353 -0
  452. casadi/include/eigen3/Eigen/src/Core/Block.h +448 -0
  453. casadi/include/eigen3/Eigen/src/Core/BooleanRedux.h +162 -0
  454. casadi/include/eigen3/Eigen/src/Core/CommaInitializer.h +164 -0
  455. casadi/include/eigen3/Eigen/src/Core/ConditionEstimator.h +175 -0
  456. casadi/include/eigen3/Eigen/src/Core/CoreEvaluators.h +1741 -0
  457. casadi/include/eigen3/Eigen/src/Core/CoreIterators.h +132 -0
  458. casadi/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h +183 -0
  459. casadi/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h +1001 -0
  460. casadi/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h +197 -0
  461. casadi/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h +103 -0
  462. casadi/include/eigen3/Eigen/src/Core/CwiseUnaryView.h +132 -0
  463. casadi/include/eigen3/Eigen/src/Core/DenseBase.h +701 -0
  464. casadi/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h +685 -0
  465. casadi/include/eigen3/Eigen/src/Core/DenseStorage.h +652 -0
  466. casadi/include/eigen3/Eigen/src/Core/Diagonal.h +258 -0
  467. casadi/include/eigen3/Eigen/src/Core/DiagonalMatrix.h +391 -0
  468. casadi/include/eigen3/Eigen/src/Core/DiagonalProduct.h +28 -0
  469. casadi/include/eigen3/Eigen/src/Core/Dot.h +318 -0
  470. casadi/include/eigen3/Eigen/src/Core/EigenBase.h +160 -0
  471. casadi/include/eigen3/Eigen/src/Core/ForceAlignedAccess.h +150 -0
  472. casadi/include/eigen3/Eigen/src/Core/Fuzzy.h +155 -0
  473. casadi/include/eigen3/Eigen/src/Core/GeneralProduct.h +465 -0
  474. casadi/include/eigen3/Eigen/src/Core/GenericPacketMath.h +1040 -0
  475. casadi/include/eigen3/Eigen/src/Core/GlobalFunctions.h +194 -0
  476. casadi/include/eigen3/Eigen/src/Core/IO.h +258 -0
  477. casadi/include/eigen3/Eigen/src/Core/IndexedView.h +237 -0
  478. casadi/include/eigen3/Eigen/src/Core/Inverse.h +117 -0
  479. casadi/include/eigen3/Eigen/src/Core/Map.h +171 -0
  480. casadi/include/eigen3/Eigen/src/Core/MapBase.h +310 -0
  481. casadi/include/eigen3/Eigen/src/Core/MathFunctions.h +2057 -0
  482. casadi/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h +200 -0
  483. casadi/include/eigen3/Eigen/src/Core/Matrix.h +565 -0
  484. casadi/include/eigen3/Eigen/src/Core/MatrixBase.h +547 -0
  485. casadi/include/eigen3/Eigen/src/Core/NestByValue.h +85 -0
  486. casadi/include/eigen3/Eigen/src/Core/NoAlias.h +109 -0
  487. casadi/include/eigen3/Eigen/src/Core/NumTraits.h +335 -0
  488. casadi/include/eigen3/Eigen/src/Core/PartialReduxEvaluator.h +232 -0
  489. casadi/include/eigen3/Eigen/src/Core/PermutationMatrix.h +605 -0
  490. casadi/include/eigen3/Eigen/src/Core/PlainObjectBase.h +1128 -0
  491. casadi/include/eigen3/Eigen/src/Core/Product.h +191 -0
  492. casadi/include/eigen3/Eigen/src/Core/ProductEvaluators.h +1179 -0
  493. casadi/include/eigen3/Eigen/src/Core/Random.h +218 -0
  494. casadi/include/eigen3/Eigen/src/Core/Redux.h +515 -0
  495. casadi/include/eigen3/Eigen/src/Core/Ref.h +381 -0
  496. casadi/include/eigen3/Eigen/src/Core/Replicate.h +142 -0
  497. casadi/include/eigen3/Eigen/src/Core/Reshaped.h +454 -0
  498. casadi/include/eigen3/Eigen/src/Core/ReturnByValue.h +119 -0
  499. casadi/include/eigen3/Eigen/src/Core/Reverse.h +217 -0
  500. casadi/include/eigen3/Eigen/src/Core/Select.h +164 -0
  501. casadi/include/eigen3/Eigen/src/Core/SelfAdjointView.h +365 -0
  502. casadi/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h +47 -0
  503. casadi/include/eigen3/Eigen/src/Core/Solve.h +188 -0
  504. casadi/include/eigen3/Eigen/src/Core/SolveTriangular.h +235 -0
  505. casadi/include/eigen3/Eigen/src/Core/SolverBase.h +168 -0
  506. casadi/include/eigen3/Eigen/src/Core/StableNorm.h +251 -0
  507. casadi/include/eigen3/Eigen/src/Core/StlIterators.h +463 -0
  508. casadi/include/eigen3/Eigen/src/Core/Stride.h +116 -0
  509. casadi/include/eigen3/Eigen/src/Core/Swap.h +68 -0
  510. casadi/include/eigen3/Eigen/src/Core/Transpose.h +464 -0
  511. casadi/include/eigen3/Eigen/src/Core/Transpositions.h +386 -0
  512. casadi/include/eigen3/Eigen/src/Core/TriangularMatrix.h +1001 -0
  513. casadi/include/eigen3/Eigen/src/Core/VectorBlock.h +96 -0
  514. casadi/include/eigen3/Eigen/src/Core/VectorwiseOp.h +784 -0
  515. casadi/include/eigen3/Eigen/src/Core/Visitor.h +381 -0
  516. casadi/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h +372 -0
  517. casadi/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h +228 -0
  518. casadi/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h +1574 -0
  519. casadi/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h +115 -0
  520. casadi/include/eigen3/Eigen/src/Core/arch/AVX512/Complex.h +422 -0
  521. casadi/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h +362 -0
  522. casadi/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h +2303 -0
  523. casadi/include/eigen3/Eigen/src/Core/arch/AVX512/TypeCasting.h +89 -0
  524. casadi/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h +417 -0
  525. casadi/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h +90 -0
  526. casadi/include/eigen3/Eigen/src/Core/arch/AltiVec/MatrixProduct.h +2937 -0
  527. casadi/include/eigen3/Eigen/src/Core/arch/AltiVec/MatrixProductCommon.h +221 -0
  528. casadi/include/eigen3/Eigen/src/Core/arch/AltiVec/MatrixProductMMA.h +629 -0
  529. casadi/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h +2711 -0
  530. casadi/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h +258 -0
  531. casadi/include/eigen3/Eigen/src/Core/arch/Default/BFloat16.h +700 -0
  532. casadi/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h +117 -0
  533. casadi/include/eigen3/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h +1649 -0
  534. casadi/include/eigen3/Eigen/src/Core/arch/Default/GenericPacketMathFunctionsFwd.h +110 -0
  535. casadi/include/eigen3/Eigen/src/Core/arch/Default/Half.h +942 -0
  536. casadi/include/eigen3/Eigen/src/Core/arch/Default/Settings.h +49 -0
  537. casadi/include/eigen3/Eigen/src/Core/arch/Default/TypeCasting.h +120 -0
  538. casadi/include/eigen3/Eigen/src/Core/arch/GPU/MathFunctions.h +103 -0
  539. casadi/include/eigen3/Eigen/src/Core/arch/GPU/PacketMath.h +1685 -0
  540. casadi/include/eigen3/Eigen/src/Core/arch/GPU/TypeCasting.h +80 -0
  541. casadi/include/eigen3/Eigen/src/Core/arch/HIP/hcc/math_constants.h +23 -0
  542. casadi/include/eigen3/Eigen/src/Core/arch/MSA/Complex.h +648 -0
  543. casadi/include/eigen3/Eigen/src/Core/arch/MSA/MathFunctions.h +387 -0
  544. casadi/include/eigen3/Eigen/src/Core/arch/MSA/PacketMath.h +1233 -0
  545. casadi/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h +584 -0
  546. casadi/include/eigen3/Eigen/src/Core/arch/NEON/GeneralBlockPanelKernel.h +183 -0
  547. casadi/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h +75 -0
  548. casadi/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h +4587 -0
  549. casadi/include/eigen3/Eigen/src/Core/arch/NEON/TypeCasting.h +1419 -0
  550. casadi/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h +351 -0
  551. casadi/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h +199 -0
  552. casadi/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h +1505 -0
  553. casadi/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h +142 -0
  554. casadi/include/eigen3/Eigen/src/Core/arch/SVE/MathFunctions.h +44 -0
  555. casadi/include/eigen3/Eigen/src/Core/arch/SVE/PacketMath.h +752 -0
  556. casadi/include/eigen3/Eigen/src/Core/arch/SVE/TypeCasting.h +49 -0
  557. casadi/include/eigen3/Eigen/src/Core/arch/SYCL/InteropHeaders.h +232 -0
  558. casadi/include/eigen3/Eigen/src/Core/arch/SYCL/MathFunctions.h +301 -0
  559. casadi/include/eigen3/Eigen/src/Core/arch/SYCL/PacketMath.h +670 -0
  560. casadi/include/eigen3/Eigen/src/Core/arch/SYCL/SyclMemoryModel.h +694 -0
  561. casadi/include/eigen3/Eigen/src/Core/arch/SYCL/TypeCasting.h +85 -0
  562. casadi/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h +426 -0
  563. casadi/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h +233 -0
  564. casadi/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h +1060 -0
  565. casadi/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h +177 -0
  566. casadi/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h +541 -0
  567. casadi/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h +189 -0
  568. casadi/include/eigen3/Eigen/src/Core/functors/StlFunctors.h +166 -0
  569. casadi/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h +25 -0
  570. casadi/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h +1131 -0
  571. casadi/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h +2645 -0
  572. casadi/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h +517 -0
  573. casadi/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h +317 -0
  574. casadi/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h +145 -0
  575. casadi/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h +124 -0
  576. casadi/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h +518 -0
  577. casadi/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h +136 -0
  578. casadi/include/eigen3/Eigen/src/Core/products/Parallelizer.h +180 -0
  579. casadi/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h +544 -0
  580. casadi/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h +295 -0
  581. casadi/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h +262 -0
  582. casadi/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h +118 -0
  583. casadi/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h +133 -0
  584. casadi/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h +94 -0
  585. casadi/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h +472 -0
  586. casadi/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h +317 -0
  587. casadi/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h +350 -0
  588. casadi/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h +255 -0
  589. casadi/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h +337 -0
  590. casadi/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h +167 -0
  591. casadi/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h +148 -0
  592. casadi/include/eigen3/Eigen/src/Core/util/BlasUtil.h +583 -0
  593. casadi/include/eigen3/Eigen/src/Core/util/ConfigureVectorization.h +512 -0
  594. casadi/include/eigen3/Eigen/src/Core/util/Constants.h +563 -0
  595. casadi/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h +106 -0
  596. casadi/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h +322 -0
  597. casadi/include/eigen3/Eigen/src/Core/util/IndexedViewHelper.h +186 -0
  598. casadi/include/eigen3/Eigen/src/Core/util/IntegralConstant.h +272 -0
  599. casadi/include/eigen3/Eigen/src/Core/util/MKL_support.h +137 -0
  600. casadi/include/eigen3/Eigen/src/Core/util/Macros.h +1464 -0
  601. casadi/include/eigen3/Eigen/src/Core/util/Memory.h +1163 -0
  602. casadi/include/eigen3/Eigen/src/Core/util/Meta.h +812 -0
  603. casadi/include/eigen3/Eigen/src/Core/util/NonMPL2.h +3 -0
  604. casadi/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h +31 -0
  605. casadi/include/eigen3/Eigen/src/Core/util/ReshapedHelper.h +51 -0
  606. casadi/include/eigen3/Eigen/src/Core/util/StaticAssert.h +221 -0
  607. casadi/include/eigen3/Eigen/src/Core/util/SymbolicIndex.h +293 -0
  608. casadi/include/eigen3/Eigen/src/Core/util/XprHelper.h +856 -0
  609. casadi/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h +346 -0
  610. casadi/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h +462 -0
  611. casadi/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h +91 -0
  612. casadi/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h +622 -0
  613. casadi/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h +418 -0
  614. casadi/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h +226 -0
  615. casadi/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h +374 -0
  616. casadi/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h +158 -0
  617. casadi/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h +657 -0
  618. casadi/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h +558 -0
  619. casadi/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h +77 -0
  620. casadi/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +904 -0
  621. casadi/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h +87 -0
  622. casadi/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h +561 -0
  623. casadi/include/eigen3/Eigen/src/Geometry/AlignedBox.h +486 -0
  624. casadi/include/eigen3/Eigen/src/Geometry/AngleAxis.h +247 -0
  625. casadi/include/eigen3/Eigen/src/Geometry/EulerAngles.h +114 -0
  626. casadi/include/eigen3/Eigen/src/Geometry/Homogeneous.h +501 -0
  627. casadi/include/eigen3/Eigen/src/Geometry/Hyperplane.h +282 -0
  628. casadi/include/eigen3/Eigen/src/Geometry/OrthoMethods.h +235 -0
  629. casadi/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h +232 -0
  630. casadi/include/eigen3/Eigen/src/Geometry/Quaternion.h +870 -0
  631. casadi/include/eigen3/Eigen/src/Geometry/Rotation2D.h +199 -0
  632. casadi/include/eigen3/Eigen/src/Geometry/RotationBase.h +206 -0
  633. casadi/include/eigen3/Eigen/src/Geometry/Scaling.h +188 -0
  634. casadi/include/eigen3/Eigen/src/Geometry/Transform.h +1563 -0
  635. casadi/include/eigen3/Eigen/src/Geometry/Translation.h +202 -0
  636. casadi/include/eigen3/Eigen/src/Geometry/Umeyama.h +166 -0
  637. casadi/include/eigen3/Eigen/src/Geometry/arch/Geometry_SIMD.h +168 -0
  638. casadi/include/eigen3/Eigen/src/Householder/BlockHouseholder.h +110 -0
  639. casadi/include/eigen3/Eigen/src/Householder/Householder.h +176 -0
  640. casadi/include/eigen3/Eigen/src/Householder/HouseholderSequence.h +545 -0
  641. casadi/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h +226 -0
  642. casadi/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h +212 -0
  643. casadi/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h +229 -0
  644. casadi/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h +394 -0
  645. casadi/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h +453 -0
  646. casadi/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h +444 -0
  647. casadi/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h +198 -0
  648. casadi/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h +117 -0
  649. casadi/include/eigen3/Eigen/src/Jacobi/Jacobi.h +483 -0
  650. casadi/include/eigen3/Eigen/src/KLUSupport/KLUSupport.h +358 -0
  651. casadi/include/eigen3/Eigen/src/LU/Determinant.h +117 -0
  652. casadi/include/eigen3/Eigen/src/LU/FullPivLU.h +877 -0
  653. casadi/include/eigen3/Eigen/src/LU/InverseImpl.h +432 -0
  654. casadi/include/eigen3/Eigen/src/LU/PartialPivLU.h +624 -0
  655. casadi/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h +83 -0
  656. casadi/include/eigen3/Eigen/src/LU/arch/InverseSize4.h +351 -0
  657. casadi/include/eigen3/Eigen/src/MetisSupport/MetisSupport.h +137 -0
  658. casadi/include/eigen3/Eigen/src/OrderingMethods/Amd.h +435 -0
  659. casadi/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h +1863 -0
  660. casadi/include/eigen3/Eigen/src/OrderingMethods/Ordering.h +153 -0
  661. casadi/include/eigen3/Eigen/src/PaStiXSupport/PaStiXSupport.h +678 -0
  662. casadi/include/eigen3/Eigen/src/PardisoSupport/PardisoSupport.h +545 -0
  663. casadi/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h +674 -0
  664. casadi/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h +97 -0
  665. casadi/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h +635 -0
  666. casadi/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h +713 -0
  667. casadi/include/eigen3/Eigen/src/QR/HouseholderQR.h +434 -0
  668. casadi/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h +68 -0
  669. casadi/include/eigen3/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h +335 -0
  670. casadi/include/eigen3/Eigen/src/SVD/BDCSVD.h +1366 -0
  671. casadi/include/eigen3/Eigen/src/SVD/JacobiSVD.h +812 -0
  672. casadi/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h +91 -0
  673. casadi/include/eigen3/Eigen/src/SVD/SVDBase.h +376 -0
  674. casadi/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h +414 -0
  675. casadi/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h +697 -0
  676. casadi/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +174 -0
  677. casadi/include/eigen3/Eigen/src/SparseCore/AmbiVector.h +378 -0
  678. casadi/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h +274 -0
  679. casadi/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h +352 -0
  680. casadi/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h +67 -0
  681. casadi/include/eigen3/Eigen/src/SparseCore/SparseAssign.h +270 -0
  682. casadi/include/eigen3/Eigen/src/SparseCore/SparseBlock.h +571 -0
  683. casadi/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h +206 -0
  684. casadi/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h +370 -0
  685. casadi/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +722 -0
  686. casadi/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h +150 -0
  687. casadi/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h +342 -0
  688. casadi/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h +138 -0
  689. casadi/include/eigen3/Eigen/src/SparseCore/SparseDot.h +98 -0
  690. casadi/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h +29 -0
  691. casadi/include/eigen3/Eigen/src/SparseCore/SparseMap.h +305 -0
  692. casadi/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h +1518 -0
  693. casadi/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h +398 -0
  694. casadi/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h +178 -0
  695. casadi/include/eigen3/Eigen/src/SparseCore/SparseProduct.h +181 -0
  696. casadi/include/eigen3/Eigen/src/SparseCore/SparseRedux.h +49 -0
  697. casadi/include/eigen3/Eigen/src/SparseCore/SparseRef.h +397 -0
  698. casadi/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h +659 -0
  699. casadi/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h +124 -0
  700. casadi/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h +198 -0
  701. casadi/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h +92 -0
  702. casadi/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h +189 -0
  703. casadi/include/eigen3/Eigen/src/SparseCore/SparseUtil.h +186 -0
  704. casadi/include/eigen3/Eigen/src/SparseCore/SparseVector.h +478 -0
  705. casadi/include/eigen3/Eigen/src/SparseCore/SparseView.h +254 -0
  706. casadi/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h +315 -0
  707. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU.h +923 -0
  708. casadi/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h +66 -0
  709. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h +226 -0
  710. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h +110 -0
  711. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h +375 -0
  712. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h +80 -0
  713. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h +181 -0
  714. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h +179 -0
  715. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h +107 -0
  716. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h +280 -0
  717. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h +126 -0
  718. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h +130 -0
  719. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h +223 -0
  720. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h +258 -0
  721. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h +137 -0
  722. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h +136 -0
  723. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h +83 -0
  724. casadi/include/eigen3/Eigen/src/SparseQR/SparseQR.h +758 -0
  725. casadi/include/eigen3/Eigen/src/StlSupport/StdDeque.h +116 -0
  726. casadi/include/eigen3/Eigen/src/StlSupport/StdList.h +106 -0
  727. casadi/include/eigen3/Eigen/src/StlSupport/StdVector.h +131 -0
  728. casadi/include/eigen3/Eigen/src/StlSupport/details.h +84 -0
  729. casadi/include/eigen3/Eigen/src/SuperLUSupport/SuperLUSupport.h +1025 -0
  730. casadi/include/eigen3/Eigen/src/UmfPackSupport/UmfPackSupport.h +642 -0
  731. casadi/include/eigen3/Eigen/src/misc/Image.h +82 -0
  732. casadi/include/eigen3/Eigen/src/misc/Kernel.h +79 -0
  733. casadi/include/eigen3/Eigen/src/misc/RealSvd2x2.h +55 -0
  734. casadi/include/eigen3/Eigen/src/misc/blas.h +440 -0
  735. casadi/include/eigen3/Eigen/src/misc/lapack.h +152 -0
  736. casadi/include/eigen3/Eigen/src/misc/lapacke.h +16292 -0
  737. casadi/include/eigen3/Eigen/src/misc/lapacke_mangling.h +17 -0
  738. casadi/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h +358 -0
  739. casadi/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h +696 -0
  740. casadi/include/eigen3/Eigen/src/plugins/BlockMethods.h +1442 -0
  741. casadi/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h +115 -0
  742. casadi/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h +177 -0
  743. casadi/include/eigen3/Eigen/src/plugins/IndexedViewMethods.h +262 -0
  744. casadi/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h +152 -0
  745. casadi/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +95 -0
  746. casadi/include/eigen3/Eigen/src/plugins/ReshapedMethods.h +149 -0
  747. casadi/include/eigen3/signature_of_eigen3_matrix_library +1 -0
  748. casadi/include/eigen3/unsupported/Eigen/AdolcForward +159 -0
  749. casadi/include/eigen3/unsupported/Eigen/AlignedVector3 +234 -0
  750. casadi/include/eigen3/unsupported/Eigen/ArpackSupport +30 -0
  751. casadi/include/eigen3/unsupported/Eigen/AutoDiff +46 -0
  752. casadi/include/eigen3/unsupported/Eigen/BVH +95 -0
  753. casadi/include/eigen3/unsupported/Eigen/CXX11/Tensor +137 -0
  754. casadi/include/eigen3/unsupported/Eigen/CXX11/TensorSymmetry +42 -0
  755. casadi/include/eigen3/unsupported/Eigen/CXX11/ThreadPool +74 -0
  756. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/Tensor.h +554 -0
  757. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorArgMax.h +329 -0
  758. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorAssign.h +247 -0
  759. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorBase.h +1176 -0
  760. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorBlock.h +1559 -0
  761. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorBroadcasting.h +1093 -0
  762. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorChipping.h +518 -0
  763. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConcatenation.h +377 -0
  764. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContraction.h +1023 -0
  765. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionBlocking.h +73 -0
  766. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionCuda.h +6 -0
  767. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionGpu.h +1413 -0
  768. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionMapper.h +575 -0
  769. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionSycl.h +1650 -0
  770. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionThreadPool.h +1679 -0
  771. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConversion.h +456 -0
  772. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConvolution.h +1132 -0
  773. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConvolutionSycl.h +544 -0
  774. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorCostModel.h +214 -0
  775. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorCustomOp.h +347 -0
  776. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDevice.h +137 -0
  777. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceCuda.h +6 -0
  778. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceDefault.h +104 -0
  779. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceGpu.h +389 -0
  780. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceSycl.h +1048 -0
  781. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceThreadPool.h +409 -0
  782. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDimensionList.h +236 -0
  783. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDimensions.h +490 -0
  784. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorEvalTo.h +236 -0
  785. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorEvaluator.h +983 -0
  786. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorExecutor.h +703 -0
  787. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorExpr.h +388 -0
  788. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorFFT.h +669 -0
  789. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorFixedSize.h +379 -0
  790. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorForcedEval.h +237 -0
  791. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorForwardDeclarations.h +191 -0
  792. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorFunctors.h +488 -0
  793. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGenerator.h +302 -0
  794. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGlobalFunctions.h +33 -0
  795. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGpuHipCudaDefines.h +99 -0
  796. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGpuHipCudaUndefines.h +44 -0
  797. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorIO.h +79 -0
  798. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorImagePatch.h +603 -0
  799. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorIndexList.h +738 -0
  800. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorInflation.h +247 -0
  801. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorInitializer.h +82 -0
  802. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorIntDiv.h +263 -0
  803. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorLayoutSwap.h +216 -0
  804. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMacros.h +98 -0
  805. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMap.h +327 -0
  806. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMeta.h +311 -0
  807. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMorphing.h +1102 -0
  808. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorPadding.h +708 -0
  809. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorPatch.h +291 -0
  810. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorRandom.h +322 -0
  811. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReduction.h +998 -0
  812. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReductionCuda.h +6 -0
  813. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReductionGpu.h +966 -0
  814. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReductionSycl.h +582 -0
  815. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorRef.h +454 -0
  816. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReverse.h +465 -0
  817. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorScan.h +528 -0
  818. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorScanSycl.h +513 -0
  819. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorShuffling.h +471 -0
  820. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorStorage.h +161 -0
  821. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorStriding.h +346 -0
  822. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorTrace.h +303 -0
  823. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorTraits.h +264 -0
  824. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorUInt128.h +249 -0
  825. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorVolumePatch.h +629 -0
  826. casadi/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/DynamicSymmetry.h +293 -0
  827. casadi/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/StaticSymmetry.h +236 -0
  828. casadi/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/Symmetry.h +338 -0
  829. casadi/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/util/TemplateGroupTheory.h +669 -0
  830. casadi/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/Barrier.h +67 -0
  831. casadi/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/EventCount.h +249 -0
  832. casadi/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/NonBlockingThreadPool.h +486 -0
  833. casadi/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/RunQueue.h +236 -0
  834. casadi/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadCancel.h +23 -0
  835. casadi/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadEnvironment.h +40 -0
  836. casadi/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadLocal.h +301 -0
  837. casadi/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadPoolInterface.h +48 -0
  838. casadi/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadYield.h +20 -0
  839. casadi/include/eigen3/unsupported/Eigen/CXX11/src/util/CXX11Meta.h +537 -0
  840. casadi/include/eigen3/unsupported/Eigen/CXX11/src/util/CXX11Workarounds.h +88 -0
  841. casadi/include/eigen3/unsupported/Eigen/CXX11/src/util/EmulateArray.h +261 -0
  842. casadi/include/eigen3/unsupported/Eigen/CXX11/src/util/MaxSizeVector.h +158 -0
  843. casadi/include/eigen3/unsupported/Eigen/EulerAngles +43 -0
  844. casadi/include/eigen3/unsupported/Eigen/FFT +419 -0
  845. casadi/include/eigen3/unsupported/Eigen/IterativeSolvers +51 -0
  846. casadi/include/eigen3/unsupported/Eigen/KroneckerProduct +36 -0
  847. casadi/include/eigen3/unsupported/Eigen/LevenbergMarquardt +49 -0
  848. casadi/include/eigen3/unsupported/Eigen/MPRealSupport +213 -0
  849. casadi/include/eigen3/unsupported/Eigen/MatrixFunctions +504 -0
  850. casadi/include/eigen3/unsupported/Eigen/MoreVectorization +24 -0
  851. casadi/include/eigen3/unsupported/Eigen/NonLinearOptimization +140 -0
  852. casadi/include/eigen3/unsupported/Eigen/NumericalDiff +56 -0
  853. casadi/include/eigen3/unsupported/Eigen/OpenGLSupport +322 -0
  854. casadi/include/eigen3/unsupported/Eigen/Polynomials +137 -0
  855. casadi/include/eigen3/unsupported/Eigen/Skyline +39 -0
  856. casadi/include/eigen3/unsupported/Eigen/SparseExtra +54 -0
  857. casadi/include/eigen3/unsupported/Eigen/SpecialFunctions +103 -0
  858. casadi/include/eigen3/unsupported/Eigen/Splines +35 -0
  859. casadi/include/eigen3/unsupported/Eigen/src/AutoDiff/AutoDiffJacobian.h +108 -0
  860. casadi/include/eigen3/unsupported/Eigen/src/AutoDiff/AutoDiffScalar.h +730 -0
  861. casadi/include/eigen3/unsupported/Eigen/src/AutoDiff/AutoDiffVector.h +220 -0
  862. casadi/include/eigen3/unsupported/Eigen/src/BVH/BVAlgorithms.h +293 -0
  863. casadi/include/eigen3/unsupported/Eigen/src/BVH/KdBVH.h +223 -0
  864. casadi/include/eigen3/unsupported/Eigen/src/Eigenvalues/ArpackSelfAdjointEigenSolver.h +790 -0
  865. casadi/include/eigen3/unsupported/Eigen/src/EulerAngles/EulerAngles.h +355 -0
  866. casadi/include/eigen3/unsupported/Eigen/src/EulerAngles/EulerSystem.h +305 -0
  867. casadi/include/eigen3/unsupported/Eigen/src/FFT/ei_fftw_impl.h +261 -0
  868. casadi/include/eigen3/unsupported/Eigen/src/FFT/ei_kissfft_impl.h +449 -0
  869. casadi/include/eigen3/unsupported/Eigen/src/IterativeSolvers/ConstrainedConjGrad.h +187 -0
  870. casadi/include/eigen3/unsupported/Eigen/src/IterativeSolvers/DGMRES.h +511 -0
  871. casadi/include/eigen3/unsupported/Eigen/src/IterativeSolvers/GMRES.h +335 -0
  872. casadi/include/eigen3/unsupported/Eigen/src/IterativeSolvers/IDRS.h +436 -0
  873. casadi/include/eigen3/unsupported/Eigen/src/IterativeSolvers/IncompleteLU.h +90 -0
  874. casadi/include/eigen3/unsupported/Eigen/src/IterativeSolvers/IterationController.h +154 -0
  875. casadi/include/eigen3/unsupported/Eigen/src/IterativeSolvers/MINRES.h +267 -0
  876. casadi/include/eigen3/unsupported/Eigen/src/IterativeSolvers/Scaling.h +193 -0
  877. casadi/include/eigen3/unsupported/Eigen/src/KroneckerProduct/KroneckerTensorProduct.h +305 -0
  878. casadi/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMcovar.h +84 -0
  879. casadi/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMonestep.h +202 -0
  880. casadi/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMpar.h +160 -0
  881. casadi/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMqrsolv.h +188 -0
  882. casadi/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LevenbergMarquardt.h +396 -0
  883. casadi/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h +441 -0
  884. casadi/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixFunction.h +569 -0
  885. casadi/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixLogarithm.h +373 -0
  886. casadi/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixPower.h +705 -0
  887. casadi/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixSquareRoot.h +368 -0
  888. casadi/include/eigen3/unsupported/Eigen/src/MatrixFunctions/StemFunction.h +117 -0
  889. casadi/include/eigen3/unsupported/Eigen/src/MoreVectorization/MathFunctions.h +95 -0
  890. casadi/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/HybridNonLinearSolver.h +601 -0
  891. casadi/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/LevenbergMarquardt.h +657 -0
  892. casadi/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/chkder.h +66 -0
  893. casadi/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/covar.h +70 -0
  894. casadi/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/dogleg.h +107 -0
  895. casadi/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/fdjac1.h +79 -0
  896. casadi/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/lmpar.h +298 -0
  897. casadi/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/qrsolv.h +91 -0
  898. casadi/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/r1mpyq.h +30 -0
  899. casadi/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/r1updt.h +99 -0
  900. casadi/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/rwupdt.h +49 -0
  901. casadi/include/eigen3/unsupported/Eigen/src/NumericalDiff/NumericalDiff.h +130 -0
  902. casadi/include/eigen3/unsupported/Eigen/src/Polynomials/Companion.h +280 -0
  903. casadi/include/eigen3/unsupported/Eigen/src/Polynomials/PolynomialSolver.h +428 -0
  904. casadi/include/eigen3/unsupported/Eigen/src/Polynomials/PolynomialUtils.h +143 -0
  905. casadi/include/eigen3/unsupported/Eigen/src/Skyline/SkylineInplaceLU.h +352 -0
  906. casadi/include/eigen3/unsupported/Eigen/src/Skyline/SkylineMatrix.h +862 -0
  907. casadi/include/eigen3/unsupported/Eigen/src/Skyline/SkylineMatrixBase.h +212 -0
  908. casadi/include/eigen3/unsupported/Eigen/src/Skyline/SkylineProduct.h +295 -0
  909. casadi/include/eigen3/unsupported/Eigen/src/Skyline/SkylineStorage.h +259 -0
  910. casadi/include/eigen3/unsupported/Eigen/src/Skyline/SkylineUtil.h +89 -0
  911. casadi/include/eigen3/unsupported/Eigen/src/SparseExtra/BlockOfDynamicSparseMatrix.h +122 -0
  912. casadi/include/eigen3/unsupported/Eigen/src/SparseExtra/BlockSparseMatrix.h +1079 -0
  913. casadi/include/eigen3/unsupported/Eigen/src/SparseExtra/DynamicSparseMatrix.h +404 -0
  914. casadi/include/eigen3/unsupported/Eigen/src/SparseExtra/MarketIO.h +282 -0
  915. casadi/include/eigen3/unsupported/Eigen/src/SparseExtra/MatrixMarketIterator.h +247 -0
  916. casadi/include/eigen3/unsupported/Eigen/src/SparseExtra/RandomSetter.h +349 -0
  917. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsArrayAPI.h +286 -0
  918. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsBFloat16.h +68 -0
  919. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsFunctors.h +357 -0
  920. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsHalf.h +66 -0
  921. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsImpl.h +1959 -0
  922. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsPacketMath.h +118 -0
  923. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/HipVectorCompatibility.h +67 -0
  924. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsArrayAPI.h +167 -0
  925. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsBFloat16.h +58 -0
  926. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsFunctors.h +330 -0
  927. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsHalf.h +58 -0
  928. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsImpl.h +2045 -0
  929. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsPacketMath.h +79 -0
  930. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX/BesselFunctions.h +46 -0
  931. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX/SpecialFunctions.h +16 -0
  932. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX512/BesselFunctions.h +46 -0
  933. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX512/SpecialFunctions.h +16 -0
  934. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/GPU/SpecialFunctions.h +369 -0
  935. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/NEON/BesselFunctions.h +54 -0
  936. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/NEON/SpecialFunctions.h +34 -0
  937. casadi/include/eigen3/unsupported/Eigen/src/Splines/Spline.h +507 -0
  938. casadi/include/eigen3/unsupported/Eigen/src/Splines/SplineFitting.h +431 -0
  939. casadi/include/eigen3/unsupported/Eigen/src/Splines/SplineFwd.h +93 -0
  940. casadi/include/fatrop/auxiliary/Common.hpp +34 -0
  941. casadi/include/fatrop/auxiliary/DynamicLib.hpp +34 -0
  942. casadi/include/fatrop/auxiliary/FatropOptions.hpp +68 -0
  943. casadi/include/fatrop/auxiliary/FatropVector.hpp +143 -0
  944. casadi/include/fatrop/auxiliary/LinearAlgebra.hpp +88 -0
  945. casadi/include/fatrop/auxiliary/VectorUtils.hpp +54 -0
  946. casadi/include/fatrop/blasfeo_wrapper/LinearAlgebraBlasfeo.hpp +493 -0
  947. casadi/include/fatrop/fatrop.hpp +39 -0
  948. casadi/include/fatrop/function_evaluation/CasadiCodegen.hpp +104 -0
  949. casadi/include/fatrop/function_evaluation/FunctionEvaluation.hpp +60 -0
  950. casadi/include/fatrop/json/json.h +946 -0
  951. casadi/include/fatrop/ocp/CasadiCApiUserdataWrap.hpp +87 -0
  952. casadi/include/fatrop/ocp/DuInfEvaluator.hpp +38 -0
  953. casadi/include/fatrop/ocp/FatropOCP.hpp +161 -0
  954. casadi/include/fatrop/ocp/FatropOCPBuilder.hpp +52 -0
  955. casadi/include/fatrop/ocp/FatropOCPResto.hpp +299 -0
  956. casadi/include/fatrop/ocp/OCP.hpp +82 -0
  957. casadi/include/fatrop/ocp/OCPAbstract.hpp +254 -0
  958. casadi/include/fatrop/ocp/OCPAdapter.hpp +197 -0
  959. casadi/include/fatrop/ocp/OCPCInterface.h +289 -0
  960. casadi/include/fatrop/ocp/OCPDims.hpp +60 -0
  961. casadi/include/fatrop/ocp/OCPInitializer.hpp +41 -0
  962. casadi/include/fatrop/ocp/OCPKKT.hpp +69 -0
  963. casadi/include/fatrop/ocp/OCPLSRiccati.hpp +198 -0
  964. casadi/include/fatrop/ocp/OCPLSScaler.hpp +66 -0
  965. casadi/include/fatrop/ocp/OCPLinearSolver.hpp +75 -0
  966. casadi/include/fatrop/ocp/OCPNoScaling.hpp +42 -0
  967. casadi/include/fatrop/ocp/OCPScalingMethod.hpp +42 -0
  968. casadi/include/fatrop/ocp/StageOCP.hpp +592 -0
  969. casadi/include/fatrop/ocp/StageOCPApplication.hpp +242 -0
  970. casadi/include/fatrop/ocp/StageOCPExpressions.hpp +182 -0
  971. casadi/include/fatrop/ocp/UStageEvalAbstract.hpp +168 -0
  972. casadi/include/fatrop/ocp/UStageOCPImpl.hpp +152 -0
  973. casadi/include/fatrop/quasi_newton/bfgs.hpp +159 -0
  974. casadi/include/fatrop/solver/AlgBuilder.hpp +76 -0
  975. casadi/include/fatrop/solver/AlgStrategy.hpp +33 -0
  976. casadi/include/fatrop/solver/FatropAlg.hpp +121 -0
  977. casadi/include/fatrop/solver/FatropData.hpp +188 -0
  978. casadi/include/fatrop/solver/FatropOptions.hpp +95 -0
  979. casadi/include/fatrop/solver/FatropPrinter.hpp +65 -0
  980. casadi/include/fatrop/solver/FatropStats.hpp +63 -0
  981. casadi/include/fatrop/solver/Filter.hpp +54 -0
  982. casadi/include/fatrop/solver/IterationData.hpp +56 -0
  983. casadi/include/fatrop/solver/LineSearch.hpp +86 -0
  984. casadi/include/fatrop/solver/NLPL1.hpp +263 -0
  985. casadi/include/fatrop/templates/NLPAlg.hpp +104 -0
  986. casadi/include/hpipm_aux_mem.h +52 -0
  987. casadi/include/hpipm_aux_string.h +50 -0
  988. casadi/include/hpipm_common.h +76 -0
  989. casadi/include/hpipm_d_cast_qcqp.h +71 -0
  990. casadi/include/hpipm_d_cond.h +135 -0
  991. casadi/include/hpipm_d_cond_aux.h +92 -0
  992. casadi/include/hpipm_d_cond_qcqp.h +129 -0
  993. casadi/include/hpipm_d_core_qp_ipm.h +101 -0
  994. casadi/include/hpipm_d_core_qp_ipm_aux.h +68 -0
  995. casadi/include/hpipm_d_dense_qcqp.h +199 -0
  996. casadi/include/hpipm_d_dense_qcqp_dim.h +98 -0
  997. casadi/include/hpipm_d_dense_qcqp_ipm.h +193 -0
  998. casadi/include/hpipm_d_dense_qcqp_res.h +108 -0
  999. casadi/include/hpipm_d_dense_qcqp_sol.h +85 -0
  1000. casadi/include/hpipm_d_dense_qcqp_utils.h +82 -0
  1001. casadi/include/hpipm_d_dense_qp.h +207 -0
  1002. casadi/include/hpipm_d_dense_qp_dim.h +92 -0
  1003. casadi/include/hpipm_d_dense_qp_ipm.h +260 -0
  1004. casadi/include/hpipm_d_dense_qp_kkt.h +72 -0
  1005. casadi/include/hpipm_d_dense_qp_res.h +106 -0
  1006. casadi/include/hpipm_d_dense_qp_sol.h +94 -0
  1007. casadi/include/hpipm_d_dense_qp_utils.h +83 -0
  1008. casadi/include/hpipm_d_ocp_qcqp.h +322 -0
  1009. casadi/include/hpipm_d_ocp_qcqp_dim.h +130 -0
  1010. casadi/include/hpipm_d_ocp_qcqp_ipm.h +192 -0
  1011. casadi/include/hpipm_d_ocp_qcqp_red.h +118 -0
  1012. casadi/include/hpipm_d_ocp_qcqp_res.h +115 -0
  1013. casadi/include/hpipm_d_ocp_qcqp_sol.h +114 -0
  1014. casadi/include/hpipm_d_ocp_qcqp_utils.h +81 -0
  1015. casadi/include/hpipm_d_ocp_qp.h +306 -0
  1016. casadi/include/hpipm_d_ocp_qp_dim.h +142 -0
  1017. casadi/include/hpipm_d_ocp_qp_ipm.h +252 -0
  1018. casadi/include/hpipm_d_ocp_qp_kkt.h +66 -0
  1019. casadi/include/hpipm_d_ocp_qp_red.h +117 -0
  1020. casadi/include/hpipm_d_ocp_qp_res.h +113 -0
  1021. casadi/include/hpipm_d_ocp_qp_sol.h +128 -0
  1022. casadi/include/hpipm_d_ocp_qp_utils.h +82 -0
  1023. casadi/include/hpipm_d_part_cond.h +115 -0
  1024. casadi/include/hpipm_d_part_cond_qcqp.h +106 -0
  1025. casadi/include/hpipm_d_sim_erk.h +122 -0
  1026. casadi/include/hpipm_d_sim_rk.h +71 -0
  1027. casadi/include/hpipm_d_tree_ocp_qcqp.h +213 -0
  1028. casadi/include/hpipm_d_tree_ocp_qcqp_dim.h +117 -0
  1029. casadi/include/hpipm_d_tree_ocp_qcqp_ipm.h +191 -0
  1030. casadi/include/hpipm_d_tree_ocp_qcqp_res.h +109 -0
  1031. casadi/include/hpipm_d_tree_ocp_qcqp_sol.h +99 -0
  1032. casadi/include/hpipm_d_tree_ocp_qcqp_utils.h +84 -0
  1033. casadi/include/hpipm_d_tree_ocp_qp.h +195 -0
  1034. casadi/include/hpipm_d_tree_ocp_qp_dim.h +111 -0
  1035. casadi/include/hpipm_d_tree_ocp_qp_ipm.h +209 -0
  1036. casadi/include/hpipm_d_tree_ocp_qp_kkt.h +52 -0
  1037. casadi/include/hpipm_d_tree_ocp_qp_res.h +107 -0
  1038. casadi/include/hpipm_d_tree_ocp_qp_sol.h +100 -0
  1039. casadi/include/hpipm_d_tree_ocp_qp_utils.h +83 -0
  1040. casadi/include/hpipm_m_dense_qp.h +68 -0
  1041. casadi/include/hpipm_m_dense_qp_dim.h +68 -0
  1042. casadi/include/hpipm_m_ocp_qp.h +49 -0
  1043. casadi/include/hpipm_m_ocp_qp_ipm_hard.h +115 -0
  1044. casadi/include/hpipm_m_ocp_qp_kkt.h +45 -0
  1045. casadi/include/hpipm_s_cast_qcqp.h +72 -0
  1046. casadi/include/hpipm_s_cond.h +137 -0
  1047. casadi/include/hpipm_s_cond_aux.h +92 -0
  1048. casadi/include/hpipm_s_cond_qcqp.h +130 -0
  1049. casadi/include/hpipm_s_core_qp_ipm.h +101 -0
  1050. casadi/include/hpipm_s_core_qp_ipm_aux.h +68 -0
  1051. casadi/include/hpipm_s_dense_qcqp.h +200 -0
  1052. casadi/include/hpipm_s_dense_qcqp_dim.h +99 -0
  1053. casadi/include/hpipm_s_dense_qcqp_ipm.h +204 -0
  1054. casadi/include/hpipm_s_dense_qcqp_res.h +109 -0
  1055. casadi/include/hpipm_s_dense_qcqp_sol.h +86 -0
  1056. casadi/include/hpipm_s_dense_qcqp_utils.h +83 -0
  1057. casadi/include/hpipm_s_dense_qp.h +207 -0
  1058. casadi/include/hpipm_s_dense_qp_dim.h +94 -0
  1059. casadi/include/hpipm_s_dense_qp_ipm.h +260 -0
  1060. casadi/include/hpipm_s_dense_qp_kkt.h +72 -0
  1061. casadi/include/hpipm_s_dense_qp_res.h +107 -0
  1062. casadi/include/hpipm_s_dense_qp_sol.h +94 -0
  1063. casadi/include/hpipm_s_dense_qp_utils.h +84 -0
  1064. casadi/include/hpipm_s_ocp_qcqp.h +322 -0
  1065. casadi/include/hpipm_s_ocp_qcqp_dim.h +131 -0
  1066. casadi/include/hpipm_s_ocp_qcqp_ipm.h +193 -0
  1067. casadi/include/hpipm_s_ocp_qcqp_red.h +119 -0
  1068. casadi/include/hpipm_s_ocp_qcqp_res.h +116 -0
  1069. casadi/include/hpipm_s_ocp_qcqp_sol.h +115 -0
  1070. casadi/include/hpipm_s_ocp_qcqp_utils.h +82 -0
  1071. casadi/include/hpipm_s_ocp_qp.h +306 -0
  1072. casadi/include/hpipm_s_ocp_qp_dim.h +141 -0
  1073. casadi/include/hpipm_s_ocp_qp_ipm.h +252 -0
  1074. casadi/include/hpipm_s_ocp_qp_kkt.h +66 -0
  1075. casadi/include/hpipm_s_ocp_qp_red.h +118 -0
  1076. casadi/include/hpipm_s_ocp_qp_res.h +115 -0
  1077. casadi/include/hpipm_s_ocp_qp_sol.h +128 -0
  1078. casadi/include/hpipm_s_ocp_qp_utils.h +83 -0
  1079. casadi/include/hpipm_s_part_cond.h +115 -0
  1080. casadi/include/hpipm_s_part_cond_qcqp.h +107 -0
  1081. casadi/include/hpipm_s_sim_erk.h +121 -0
  1082. casadi/include/hpipm_s_sim_rk.h +72 -0
  1083. casadi/include/hpipm_s_tree_ocp_qcqp.h +213 -0
  1084. casadi/include/hpipm_s_tree_ocp_qcqp_dim.h +118 -0
  1085. casadi/include/hpipm_s_tree_ocp_qcqp_ipm.h +192 -0
  1086. casadi/include/hpipm_s_tree_ocp_qcqp_res.h +110 -0
  1087. casadi/include/hpipm_s_tree_ocp_qcqp_sol.h +97 -0
  1088. casadi/include/hpipm_s_tree_ocp_qcqp_utils.h +85 -0
  1089. casadi/include/hpipm_s_tree_ocp_qp.h +196 -0
  1090. casadi/include/hpipm_s_tree_ocp_qp_dim.h +111 -0
  1091. casadi/include/hpipm_s_tree_ocp_qp_ipm.h +208 -0
  1092. casadi/include/hpipm_s_tree_ocp_qp_kkt.h +54 -0
  1093. casadi/include/hpipm_s_tree_ocp_qp_res.h +108 -0
  1094. casadi/include/hpipm_s_tree_ocp_qp_sol.h +98 -0
  1095. casadi/include/hpipm_s_tree_ocp_qp_utils.h +84 -0
  1096. casadi/include/hpipm_scenario_tree.h +70 -0
  1097. casadi/include/hpipm_timing.h +67 -0
  1098. casadi/include/hpipm_tree.h +76 -0
  1099. casadi/include/licenses/FMI-Standard-2.0.2/LICENSE.txt +473 -0
  1100. casadi/include/licenses/FMI-Standard-3.0/LICENSE.txt +464 -0
  1101. casadi/include/licenses/alpaqa-external/LICENSE +165 -0
  1102. casadi/include/licenses/blasfeo-external/LICENSE.txt +26 -0
  1103. casadi/include/licenses/casadi/LICENSE/LICENSE.txt +165 -0
  1104. casadi/include/licenses/casadi-sundials/LICENSE +64 -0
  1105. casadi/include/licenses/casadi-sundials/cvodes/LICENSE +60 -0
  1106. casadi/include/licenses/casadi-sundials/idas/LICENSE +59 -0
  1107. casadi/include/licenses/casadi-sundials/kinsol/LICENSE +59 -0
  1108. casadi/include/licenses/casadi-sundials/sundials/LICENSE +67 -0
  1109. casadi/include/licenses/daqp-external/LICENSE +21 -0
  1110. casadi/include/licenses/fatrop-external/LICENSE.txt +165 -0
  1111. casadi/include/licenses/fatrop-external/external/blasfeo/LICENSE.txt +26 -0
  1112. casadi/include/licenses/fatrop-external/external/pybind11/LICENSE +29 -0
  1113. casadi/include/licenses/hpipm-external/LICENSE.txt +26 -0
  1114. casadi/include/licenses/ipopt-external/LICENSE +260 -0
  1115. casadi/include/licenses/metis-external/LICENSE +87 -0
  1116. casadi/include/licenses/metis-external/metis-4.0/LICENSE +18 -0
  1117. casadi/include/licenses/mockups-external/LICENSE +21 -0
  1118. casadi/include/licenses/mumps-external/LICENSE +87 -0
  1119. casadi/include/licenses/mumps-external/MUMPS/LICENSE +50 -0
  1120. casadi/include/licenses/openblas-external/LICENSE +29 -0
  1121. casadi/include/licenses/openblas-external/ctest/LICENSE +23 -0
  1122. casadi/include/licenses/openblas-external/lapack-netlib/LAPACKE/LICENSE +26 -0
  1123. casadi/include/licenses/openblas-external/lapack-netlib/LICENSE +48 -0
  1124. casadi/include/licenses/openblas-external/reference/LICENSE +23 -0
  1125. casadi/include/licenses/openblas-external/relapack/LICENSE +22 -0
  1126. casadi/include/licenses/openblas-external/test/LICENSE +23 -0
  1127. casadi/include/licenses/osqp-external/LICENSE +201 -0
  1128. casadi/include/licenses/osqp-external/lin_sys/direct/qdldl/amd/LICENSE +36 -0
  1129. casadi/include/licenses/osqp-external/lin_sys/direct/qdldl/qdldl_sources/LICENSE +201 -0
  1130. casadi/include/licenses/proxqp-external/LICENSE +25 -0
  1131. casadi/include/licenses/proxqp-external/bindings/python/external/pybind11/LICENSE +29 -0
  1132. casadi/include/licenses/proxqp-external/cmake-module/LICENSE +4 -0
  1133. casadi/include/licenses/proxqp-external/cmake-module/doxygen/MathJax/LICENSE +202 -0
  1134. casadi/include/licenses/proxqp-external/external/cereal/LICENSE +24 -0
  1135. casadi/include/licenses/proxqp-external/external/cereal/include/cereal/external/LICENSE +21 -0
  1136. casadi/include/licenses/proxqp-external/external/cereal/include/cereal/external/rapidjson/LICENSE +13 -0
  1137. casadi/include/licenses/proxqp-external/external/cereal/include/cereal/external/rapidjson/msinttypes/LICENSE +29 -0
  1138. casadi/include/licenses/qpOASES/LICENSE.txt +503 -0
  1139. casadi/include/licenses/superscs-external/LICENSE.txt +24 -0
  1140. casadi/include/licenses/tinyxml2-9.0.0/LICENSE.txt +18 -0
  1141. casadi/include/openblas/cblas.h +411 -0
  1142. casadi/include/openblas/f77blas.h +796 -0
  1143. casadi/include/openblas/lapack.h +22997 -0
  1144. casadi/include/openblas/lapacke.h +12665 -0
  1145. casadi/include/openblas/lapacke_config.h +119 -0
  1146. casadi/include/openblas/lapacke_example_aux.h +9 -0
  1147. casadi/include/openblas/lapacke_mangling.h +17 -0
  1148. casadi/include/openblas/lapacke_utils.h +582 -0
  1149. casadi/include/openblas/openblas/lapacke_mangling.h +17 -0
  1150. casadi/include/openblas/openblas_config.h +131 -0
  1151. casadi/include/osqp/auxil.h +181 -0
  1152. casadi/include/osqp/constants.h +128 -0
  1153. casadi/include/osqp/cs.h +180 -0
  1154. casadi/include/osqp/ctrlc.h +56 -0
  1155. casadi/include/osqp/error.h +38 -0
  1156. casadi/include/osqp/glob_opts.h +167 -0
  1157. casadi/include/osqp/lin_alg.h +216 -0
  1158. casadi/include/osqp/lin_sys.h +54 -0
  1159. casadi/include/osqp/osqp.h +430 -0
  1160. casadi/include/osqp/osqp_configure.h +49 -0
  1161. casadi/include/osqp/polish.h +25 -0
  1162. casadi/include/osqp/proj.h +37 -0
  1163. casadi/include/osqp/scaling.h +44 -0
  1164. casadi/include/osqp/types.h +326 -0
  1165. casadi/include/osqp/util.h +222 -0
  1166. casadi/include/osqp/version.h +9 -0
  1167. casadi/include/proxsuite/config.hpp +68 -0
  1168. casadi/include/proxsuite/deprecated.hpp +56 -0
  1169. casadi/include/proxsuite/fwd.hpp +52 -0
  1170. casadi/include/proxsuite/helpers/common.hpp +70 -0
  1171. casadi/include/proxsuite/helpers/instruction-set.hpp +275 -0
  1172. casadi/include/proxsuite/helpers/optional.hpp +46 -0
  1173. casadi/include/proxsuite/helpers/tl-optional.hpp +2472 -0
  1174. casadi/include/proxsuite/helpers/version.hpp +39 -0
  1175. casadi/include/proxsuite/linalg/dense/core.hpp +863 -0
  1176. casadi/include/proxsuite/linalg/dense/factorize.hpp +375 -0
  1177. casadi/include/proxsuite/linalg/dense/ldlt.hpp +817 -0
  1178. casadi/include/proxsuite/linalg/dense/modify.hpp +333 -0
  1179. casadi/include/proxsuite/linalg/dense/solve.hpp +38 -0
  1180. casadi/include/proxsuite/linalg/dense/update.hpp +330 -0
  1181. casadi/include/proxsuite/linalg/sparse/core.hpp +531 -0
  1182. casadi/include/proxsuite/linalg/sparse/factorize.hpp +1303 -0
  1183. casadi/include/proxsuite/linalg/sparse/rowmod.hpp +443 -0
  1184. casadi/include/proxsuite/linalg/sparse/update.hpp +348 -0
  1185. casadi/include/proxsuite/linalg/veg/internal/assert_impl.hpp +20 -0
  1186. casadi/include/proxsuite/linalg/veg/internal/collection_algo.hpp +93 -0
  1187. casadi/include/proxsuite/linalg/veg/internal/dbg.hpp +15 -0
  1188. casadi/include/proxsuite/linalg/veg/internal/delete_special_members.hpp +77 -0
  1189. casadi/include/proxsuite/linalg/veg/internal/dyn_index.hpp +292 -0
  1190. casadi/include/proxsuite/linalg/veg/internal/epilogue.hpp +31 -0
  1191. casadi/include/proxsuite/linalg/veg/internal/external/hedley.ext.hpp +2074 -0
  1192. casadi/include/proxsuite/linalg/veg/internal/external/unhedley.ext.hpp +148 -0
  1193. casadi/include/proxsuite/linalg/veg/internal/fix_index.hpp +339 -0
  1194. casadi/include/proxsuite/linalg/veg/internal/has_asan.hpp +17 -0
  1195. casadi/include/proxsuite/linalg/veg/internal/integer_seq.hpp +248 -0
  1196. casadi/include/proxsuite/linalg/veg/internal/macros.hpp +1312 -0
  1197. casadi/include/proxsuite/linalg/veg/internal/narrow.hpp +46 -0
  1198. casadi/include/proxsuite/linalg/veg/internal/preprocessor.hpp +434 -0
  1199. casadi/include/proxsuite/linalg/veg/internal/prologue.hpp +157 -0
  1200. casadi/include/proxsuite/linalg/veg/internal/std.hpp +13 -0
  1201. casadi/include/proxsuite/linalg/veg/internal/terminate.hpp +22 -0
  1202. casadi/include/proxsuite/linalg/veg/internal/typedefs.hpp +58 -0
  1203. casadi/include/proxsuite/linalg/veg/memory/address.hpp +97 -0
  1204. casadi/include/proxsuite/linalg/veg/memory/alloc.hpp +352 -0
  1205. casadi/include/proxsuite/linalg/veg/memory/dynamic_stack.hpp +504 -0
  1206. casadi/include/proxsuite/linalg/veg/memory/placement.hpp +202 -0
  1207. casadi/include/proxsuite/linalg/veg/memory/stack_alloc.hpp +239 -0
  1208. casadi/include/proxsuite/linalg/veg/ref.hpp +148 -0
  1209. casadi/include/proxsuite/linalg/veg/slice.hpp +240 -0
  1210. casadi/include/proxsuite/linalg/veg/tuple.hpp +876 -0
  1211. casadi/include/proxsuite/linalg/veg/type_traits/alloc.hpp +169 -0
  1212. casadi/include/proxsuite/linalg/veg/type_traits/assignable.hpp +53 -0
  1213. casadi/include/proxsuite/linalg/veg/type_traits/constructible.hpp +217 -0
  1214. casadi/include/proxsuite/linalg/veg/type_traits/core.hpp +298 -0
  1215. casadi/include/proxsuite/linalg/veg/type_traits/invocable.hpp +47 -0
  1216. casadi/include/proxsuite/linalg/veg/type_traits/primitives.hpp +43 -0
  1217. casadi/include/proxsuite/linalg/veg/type_traits/tags.hpp +47 -0
  1218. casadi/include/proxsuite/linalg/veg/util/assert.hpp +48 -0
  1219. casadi/include/proxsuite/linalg/veg/util/dbg.hpp +6 -0
  1220. casadi/include/proxsuite/linalg/veg/util/defer.hpp +57 -0
  1221. casadi/include/proxsuite/linalg/veg/util/dynstack_alloc.hpp +19 -0
  1222. casadi/include/proxsuite/linalg/veg/util/get.hpp +153 -0
  1223. casadi/include/proxsuite/linalg/veg/util/index.hpp +6 -0
  1224. casadi/include/proxsuite/linalg/veg/util/unreachable.hpp +41 -0
  1225. casadi/include/proxsuite/linalg/veg/vec.hpp +1034 -0
  1226. casadi/include/proxsuite/proxqp/dense/dense.hpp +10 -0
  1227. casadi/include/proxsuite/proxqp/dense/fwd.hpp +55 -0
  1228. casadi/include/proxsuite/proxqp/dense/helpers.hpp +520 -0
  1229. casadi/include/proxsuite/proxqp/dense/linesearch.hpp +517 -0
  1230. casadi/include/proxsuite/proxqp/dense/model.hpp +147 -0
  1231. casadi/include/proxsuite/proxqp/dense/preconditioner/identity.hpp +113 -0
  1232. casadi/include/proxsuite/proxqp/dense/preconditioner/ruiz.hpp +571 -0
  1233. casadi/include/proxsuite/proxqp/dense/solver.hpp +1330 -0
  1234. casadi/include/proxsuite/proxqp/dense/utils.hpp +415 -0
  1235. casadi/include/proxsuite/proxqp/dense/views.hpp +1466 -0
  1236. casadi/include/proxsuite/proxqp/dense/workspace.hpp +264 -0
  1237. casadi/include/proxsuite/proxqp/dense/wrapper.hpp +491 -0
  1238. casadi/include/proxsuite/proxqp/results.hpp +212 -0
  1239. casadi/include/proxsuite/proxqp/settings.hpp +302 -0
  1240. casadi/include/proxsuite/proxqp/sparse/fwd.hpp +58 -0
  1241. casadi/include/proxsuite/proxqp/sparse/helpers.hpp +309 -0
  1242. casadi/include/proxsuite/proxqp/sparse/model.hpp +228 -0
  1243. casadi/include/proxsuite/proxqp/sparse/preconditioner/identity.hpp +64 -0
  1244. casadi/include/proxsuite/proxqp/sparse/preconditioner/ruiz.hpp +569 -0
  1245. casadi/include/proxsuite/proxqp/sparse/solver.hpp +1441 -0
  1246. casadi/include/proxsuite/proxqp/sparse/sparse.hpp +10 -0
  1247. casadi/include/proxsuite/proxqp/sparse/utils.hpp +815 -0
  1248. casadi/include/proxsuite/proxqp/sparse/views.hpp +63 -0
  1249. casadi/include/proxsuite/proxqp/sparse/workspace.hpp +790 -0
  1250. casadi/include/proxsuite/proxqp/sparse/wrapper.hpp +772 -0
  1251. casadi/include/proxsuite/proxqp/status.hpp +46 -0
  1252. casadi/include/proxsuite/proxqp/timings.hpp +101 -0
  1253. casadi/include/proxsuite/proxqp/utils/prints.hpp +47 -0
  1254. casadi/include/proxsuite/proxqp/utils/random_qp_problems.hpp +669 -0
  1255. casadi/include/proxsuite/serialization/archive.hpp +231 -0
  1256. casadi/include/proxsuite/serialization/eigen.hpp +107 -0
  1257. casadi/include/proxsuite/serialization/model.hpp +34 -0
  1258. casadi/include/proxsuite/serialization/results.hpp +74 -0
  1259. casadi/include/proxsuite/serialization/settings.hpp +60 -0
  1260. casadi/include/proxsuite/serialization/wrapper.hpp +24 -0
  1261. casadi/include/proxsuite/warning.hpp +35 -0
  1262. casadi/include/qdldl/qdldl.h +169 -0
  1263. casadi/include/qdldl/qdldl_types.h +23 -0
  1264. casadi/include/s_blas.h +78 -0
  1265. casadi/include/s_blas_64.h +73 -0
  1266. casadi/include/simde/arm/neon/aba.h +208 -0
  1267. casadi/include/simde/arm/neon/abd.h +384 -0
  1268. casadi/include/simde/arm/neon/abdl.h +147 -0
  1269. casadi/include/simde/arm/neon/abs.h +408 -0
  1270. casadi/include/simde/arm/neon/add.h +681 -0
  1271. casadi/include/simde/arm/neon/addl.h +127 -0
  1272. casadi/include/simde/arm/neon/addl_high.h +127 -0
  1273. casadi/include/simde/arm/neon/addlv.h +317 -0
  1274. casadi/include/simde/arm/neon/addv.h +447 -0
  1275. casadi/include/simde/arm/neon/addw.h +222 -0
  1276. casadi/include/simde/arm/neon/addw_high.h +193 -0
  1277. casadi/include/simde/arm/neon/and.h +552 -0
  1278. casadi/include/simde/arm/neon/bic.h +472 -0
  1279. casadi/include/simde/arm/neon/bsl.h +448 -0
  1280. casadi/include/simde/arm/neon/cagt.h +168 -0
  1281. casadi/include/simde/arm/neon/ceq.h +711 -0
  1282. casadi/include/simde/arm/neon/ceqz.h +335 -0
  1283. casadi/include/simde/arm/neon/cge.h +677 -0
  1284. casadi/include/simde/arm/neon/cgez.h +378 -0
  1285. casadi/include/simde/arm/neon/cgt.h +686 -0
  1286. casadi/include/simde/arm/neon/cgtz.h +380 -0
  1287. casadi/include/simde/arm/neon/cle.h +677 -0
  1288. casadi/include/simde/arm/neon/clez.h +378 -0
  1289. casadi/include/simde/arm/neon/cls.h +148 -0
  1290. casadi/include/simde/arm/neon/clt.h +679 -0
  1291. casadi/include/simde/arm/neon/cltz.h +263 -0
  1292. casadi/include/simde/arm/neon/clz.h +423 -0
  1293. casadi/include/simde/arm/neon/cnt.h +145 -0
  1294. casadi/include/simde/arm/neon/combine.h +343 -0
  1295. casadi/include/simde/arm/neon/create.h +186 -0
  1296. casadi/include/simde/arm/neon/cvt.h +492 -0
  1297. casadi/include/simde/arm/neon/dot.h +171 -0
  1298. casadi/include/simde/arm/neon/dot_lane.h +196 -0
  1299. casadi/include/simde/arm/neon/dup_lane.h +702 -0
  1300. casadi/include/simde/arm/neon/dup_n.h +534 -0
  1301. casadi/include/simde/arm/neon/eor.h +552 -0
  1302. casadi/include/simde/arm/neon/ext.h +887 -0
  1303. casadi/include/simde/arm/neon/get_high.h +260 -0
  1304. casadi/include/simde/arm/neon/get_lane.h +499 -0
  1305. casadi/include/simde/arm/neon/get_low.h +276 -0
  1306. casadi/include/simde/arm/neon/hadd.h +287 -0
  1307. casadi/include/simde/arm/neon/hsub.h +287 -0
  1308. casadi/include/simde/arm/neon/ld1.h +399 -0
  1309. casadi/include/simde/arm/neon/ld3.h +609 -0
  1310. casadi/include/simde/arm/neon/ld4.h +448 -0
  1311. casadi/include/simde/arm/neon/max.h +614 -0
  1312. casadi/include/simde/arm/neon/maxnm.h +215 -0
  1313. casadi/include/simde/arm/neon/maxv.h +400 -0
  1314. casadi/include/simde/arm/neon/min.h +660 -0
  1315. casadi/include/simde/arm/neon/minnm.h +215 -0
  1316. casadi/include/simde/arm/neon/minv.h +424 -0
  1317. casadi/include/simde/arm/neon/mla.h +530 -0
  1318. casadi/include/simde/arm/neon/mla_n.h +333 -0
  1319. casadi/include/simde/arm/neon/mlal.h +156 -0
  1320. casadi/include/simde/arm/neon/mlal_high.h +156 -0
  1321. casadi/include/simde/arm/neon/mlal_n.h +128 -0
  1322. casadi/include/simde/arm/neon/mls.h +264 -0
  1323. casadi/include/simde/arm/neon/mlsl.h +124 -0
  1324. casadi/include/simde/arm/neon/mlsl_high.h +124 -0
  1325. casadi/include/simde/arm/neon/mlsl_n.h +96 -0
  1326. casadi/include/simde/arm/neon/movl.h +208 -0
  1327. casadi/include/simde/arm/neon/movl_high.h +126 -0
  1328. casadi/include/simde/arm/neon/movn.h +195 -0
  1329. casadi/include/simde/arm/neon/movn_high.h +125 -0
  1330. casadi/include/simde/arm/neon/mul.h +594 -0
  1331. casadi/include/simde/arm/neon/mul_lane.h +472 -0
  1332. casadi/include/simde/arm/neon/mul_n.h +383 -0
  1333. casadi/include/simde/arm/neon/mull.h +236 -0
  1334. casadi/include/simde/arm/neon/mull_high.h +125 -0
  1335. casadi/include/simde/arm/neon/mull_n.h +158 -0
  1336. casadi/include/simde/arm/neon/mvn.h +426 -0
  1337. casadi/include/simde/arm/neon/neg.h +393 -0
  1338. casadi/include/simde/arm/neon/orn.h +505 -0
  1339. casadi/include/simde/arm/neon/orr.h +552 -0
  1340. casadi/include/simde/arm/neon/padal.h +211 -0
  1341. casadi/include/simde/arm/neon/padd.h +293 -0
  1342. casadi/include/simde/arm/neon/paddl.h +239 -0
  1343. casadi/include/simde/arm/neon/pmax.h +253 -0
  1344. casadi/include/simde/arm/neon/pmin.h +260 -0
  1345. casadi/include/simde/arm/neon/qabs.h +281 -0
  1346. casadi/include/simde/arm/neon/qadd.h +553 -0
  1347. casadi/include/simde/arm/neon/qdmulh.h +125 -0
  1348. casadi/include/simde/arm/neon/qdmull.h +125 -0
  1349. casadi/include/simde/arm/neon/qmovn.h +273 -0
  1350. casadi/include/simde/arm/neon/qmovn_high.h +127 -0
  1351. casadi/include/simde/arm/neon/qmovun.h +159 -0
  1352. casadi/include/simde/arm/neon/qneg.h +301 -0
  1353. casadi/include/simde/arm/neon/qrdmulh.h +165 -0
  1354. casadi/include/simde/arm/neon/qrdmulh_n.h +136 -0
  1355. casadi/include/simde/arm/neon/qshl.h +732 -0
  1356. casadi/include/simde/arm/neon/qsub.h +549 -0
  1357. casadi/include/simde/arm/neon/qtbl.h +455 -0
  1358. casadi/include/simde/arm/neon/qtbx.h +470 -0
  1359. casadi/include/simde/arm/neon/rbit.h +165 -0
  1360. casadi/include/simde/arm/neon/reinterpret.h +3101 -0
  1361. casadi/include/simde/arm/neon/rev16.h +137 -0
  1362. casadi/include/simde/arm/neon/rev32.h +235 -0
  1363. casadi/include/simde/arm/neon/rev64.h +358 -0
  1364. casadi/include/simde/arm/neon/rhadd.h +406 -0
  1365. casadi/include/simde/arm/neon/rnd.h +143 -0
  1366. casadi/include/simde/arm/neon/rndi.h +135 -0
  1367. casadi/include/simde/arm/neon/rndm.h +143 -0
  1368. casadi/include/simde/arm/neon/rndn.h +135 -0
  1369. casadi/include/simde/arm/neon/rndp.h +143 -0
  1370. casadi/include/simde/arm/neon/rshl.h +903 -0
  1371. casadi/include/simde/arm/neon/rshr_n.h +471 -0
  1372. casadi/include/simde/arm/neon/rsra_n.h +209 -0
  1373. casadi/include/simde/arm/neon/set_lane.h +422 -0
  1374. casadi/include/simde/arm/neon/shl.h +805 -0
  1375. casadi/include/simde/arm/neon/shl_n.h +560 -0
  1376. casadi/include/simde/arm/neon/shr_n.h +612 -0
  1377. casadi/include/simde/arm/neon/sra_n.h +202 -0
  1378. casadi/include/simde/arm/neon/st1.h +353 -0
  1379. casadi/include/simde/arm/neon/st1_lane.h +363 -0
  1380. casadi/include/simde/arm/neon/st3.h +426 -0
  1381. casadi/include/simde/arm/neon/st4.h +445 -0
  1382. casadi/include/simde/arm/neon/sub.h +659 -0
  1383. casadi/include/simde/arm/neon/subl.h +127 -0
  1384. casadi/include/simde/arm/neon/subw.h +221 -0
  1385. casadi/include/simde/arm/neon/subw_high.h +222 -0
  1386. casadi/include/simde/arm/neon/tbl.h +224 -0
  1387. casadi/include/simde/arm/neon/tbx.h +247 -0
  1388. casadi/include/simde/arm/neon/trn.h +252 -0
  1389. casadi/include/simde/arm/neon/trn1.h +500 -0
  1390. casadi/include/simde/arm/neon/trn2.h +499 -0
  1391. casadi/include/simde/arm/neon/tst.h +540 -0
  1392. casadi/include/simde/arm/neon/types.h +683 -0
  1393. casadi/include/simde/arm/neon/uqadd.h +325 -0
  1394. casadi/include/simde/arm/neon/uzp.h +252 -0
  1395. casadi/include/simde/arm/neon/uzp1.h +643 -0
  1396. casadi/include/simde/arm/neon/uzp2.h +647 -0
  1397. casadi/include/simde/arm/neon/zip.h +252 -0
  1398. casadi/include/simde/arm/neon/zip1.h +625 -0
  1399. casadi/include/simde/arm/neon/zip2.h +625 -0
  1400. casadi/include/simde/arm/neon.h +166 -0
  1401. casadi/include/simde/check.h +276 -0
  1402. casadi/include/simde/debug-trap.h +85 -0
  1403. casadi/include/simde/hedley.h +1971 -0
  1404. casadi/include/simde/simde-align.h +449 -0
  1405. casadi/include/simde/simde-arch.h +532 -0
  1406. casadi/include/simde/simde-common.h +890 -0
  1407. casadi/include/simde/simde-complex.h +148 -0
  1408. casadi/include/simde/simde-constify.h +397 -0
  1409. casadi/include/simde/simde-detect-clang.h +109 -0
  1410. casadi/include/simde/simde-diagnostic.h +428 -0
  1411. casadi/include/simde/simde-features.h +522 -0
  1412. casadi/include/simde/simde-math.h +1805 -0
  1413. casadi/include/simde/x86/avx.h +6193 -0
  1414. casadi/include/simde/x86/avx2.h +5660 -0
  1415. casadi/include/simde/x86/avx512/2intersect.h +250 -0
  1416. casadi/include/simde/x86/avx512/abs.h +562 -0
  1417. casadi/include/simde/x86/avx512/add.h +641 -0
  1418. casadi/include/simde/x86/avx512/adds.h +390 -0
  1419. casadi/include/simde/x86/avx512/and.h +305 -0
  1420. casadi/include/simde/x86/avx512/andnot.h +193 -0
  1421. casadi/include/simde/x86/avx512/avg.h +258 -0
  1422. casadi/include/simde/x86/avx512/blend.h +293 -0
  1423. casadi/include/simde/x86/avx512/broadcast.h +897 -0
  1424. casadi/include/simde/x86/avx512/cast.h +324 -0
  1425. casadi/include/simde/x86/avx512/cmp.h +587 -0
  1426. casadi/include/simde/x86/avx512/cmpeq.h +179 -0
  1427. casadi/include/simde/x86/avx512/cmpge.h +104 -0
  1428. casadi/include/simde/x86/avx512/cmpgt.h +189 -0
  1429. casadi/include/simde/x86/avx512/cmple.h +103 -0
  1430. casadi/include/simde/x86/avx512/cmplt.h +123 -0
  1431. casadi/include/simde/x86/avx512/copysign.h +86 -0
  1432. casadi/include/simde/x86/avx512/cvt.h +122 -0
  1433. casadi/include/simde/x86/avx512/cvts.h +723 -0
  1434. casadi/include/simde/x86/avx512/div.h +162 -0
  1435. casadi/include/simde/x86/avx512/extract.h +198 -0
  1436. casadi/include/simde/x86/avx512/fmadd.h +136 -0
  1437. casadi/include/simde/x86/avx512/fmsub.h +108 -0
  1438. casadi/include/simde/x86/avx512/fnmadd.h +108 -0
  1439. casadi/include/simde/x86/avx512/fnmsub.h +108 -0
  1440. casadi/include/simde/x86/avx512/insert.h +193 -0
  1441. casadi/include/simde/x86/avx512/kshift.h +152 -0
  1442. casadi/include/simde/x86/avx512/load.h +67 -0
  1443. casadi/include/simde/x86/avx512/loadu.h +113 -0
  1444. casadi/include/simde/x86/avx512/lzcnt.h +209 -0
  1445. casadi/include/simde/x86/avx512/madd.h +155 -0
  1446. casadi/include/simde/x86/avx512/maddubs.h +159 -0
  1447. casadi/include/simde/x86/avx512/max.h +587 -0
  1448. casadi/include/simde/x86/avx512/min.h +587 -0
  1449. casadi/include/simde/x86/avx512/mov.h +859 -0
  1450. casadi/include/simde/x86/avx512/mov_mask.h +372 -0
  1451. casadi/include/simde/x86/avx512/movm.h +460 -0
  1452. casadi/include/simde/x86/avx512/mul.h +279 -0
  1453. casadi/include/simde/x86/avx512/mulhi.h +65 -0
  1454. casadi/include/simde/x86/avx512/mulhrs.h +65 -0
  1455. casadi/include/simde/x86/avx512/mullo.h +117 -0
  1456. casadi/include/simde/x86/avx512/negate.h +88 -0
  1457. casadi/include/simde/x86/avx512/or.h +252 -0
  1458. casadi/include/simde/x86/avx512/packs.h +122 -0
  1459. casadi/include/simde/x86/avx512/packus.h +122 -0
  1460. casadi/include/simde/x86/avx512/permutex2var.h +1645 -0
  1461. casadi/include/simde/x86/avx512/permutexvar.h +1180 -0
  1462. casadi/include/simde/x86/avx512/sad.h +77 -0
  1463. casadi/include/simde/x86/avx512/set.h +477 -0
  1464. casadi/include/simde/x86/avx512/set1.h +331 -0
  1465. casadi/include/simde/x86/avx512/set4.h +140 -0
  1466. casadi/include/simde/x86/avx512/setone.h +66 -0
  1467. casadi/include/simde/x86/avx512/setr.h +144 -0
  1468. casadi/include/simde/x86/avx512/setr4.h +140 -0
  1469. casadi/include/simde/x86/avx512/setzero.h +90 -0
  1470. casadi/include/simde/x86/avx512/shuffle.h +176 -0
  1471. casadi/include/simde/x86/avx512/sll.h +247 -0
  1472. casadi/include/simde/x86/avx512/slli.h +179 -0
  1473. casadi/include/simde/x86/avx512/sllv.h +68 -0
  1474. casadi/include/simde/x86/avx512/sqrt.h +127 -0
  1475. casadi/include/simde/x86/avx512/sra.h +81 -0
  1476. casadi/include/simde/x86/avx512/srai.h +70 -0
  1477. casadi/include/simde/x86/avx512/srav.h +67 -0
  1478. casadi/include/simde/x86/avx512/srl.h +216 -0
  1479. casadi/include/simde/x86/avx512/srli.h +180 -0
  1480. casadi/include/simde/x86/avx512/srlv.h +282 -0
  1481. casadi/include/simde/x86/avx512/store.h +93 -0
  1482. casadi/include/simde/x86/avx512/storeu.h +93 -0
  1483. casadi/include/simde/x86/avx512/sub.h +351 -0
  1484. casadi/include/simde/x86/avx512/subs.h +222 -0
  1485. casadi/include/simde/x86/avx512/test.h +193 -0
  1486. casadi/include/simde/x86/avx512/types.h +380 -0
  1487. casadi/include/simde/x86/avx512/unpackhi.h +380 -0
  1488. casadi/include/simde/x86/avx512/unpacklo.h +104 -0
  1489. casadi/include/simde/x86/avx512/xor.h +263 -0
  1490. casadi/include/simde/x86/avx512/xorsign.h +72 -0
  1491. casadi/include/simde/x86/avx512.h +108 -0
  1492. casadi/include/simde/x86/clmul.h +414 -0
  1493. casadi/include/simde/x86/fma.h +724 -0
  1494. casadi/include/simde/x86/gfni.h +802 -0
  1495. casadi/include/simde/x86/mmx.h +2399 -0
  1496. casadi/include/simde/x86/sse.h +4471 -0
  1497. casadi/include/simde/x86/sse2.h +7389 -0
  1498. casadi/include/simde/x86/sse3.h +499 -0
  1499. casadi/include/simde/x86/sse4.1.h +2216 -0
  1500. casadi/include/simde/x86/sse4.2.h +347 -0
  1501. casadi/include/simde/x86/ssse3.h +1032 -0
  1502. casadi/include/simde/x86/svml.h +12139 -0
  1503. casadi/include/simde/x86/xop.h +3644 -0
  1504. casadi/include/superscs/cones.h +185 -0
  1505. casadi/include/superscs/constants.h +144 -0
  1506. casadi/include/superscs/cs.h +109 -0
  1507. casadi/include/superscs/ctrlc.h +77 -0
  1508. casadi/include/superscs/directions.h +125 -0
  1509. casadi/include/superscs/glbopts.h +240 -0
  1510. casadi/include/superscs/linAlg.h +437 -0
  1511. casadi/include/superscs/linSys.h +205 -0
  1512. casadi/include/superscs/linsys/amatrix.h +77 -0
  1513. casadi/include/superscs/linsys/common.h +49 -0
  1514. casadi/include/superscs/normalize.h +138 -0
  1515. casadi/include/superscs/scs.h +656 -0
  1516. casadi/include/superscs/scs_blas.h +79 -0
  1517. casadi/include/superscs/scs_parser.h +187 -0
  1518. casadi/include/superscs/unit_test_util.h +210 -0
  1519. casadi/include/superscs/util.h +354 -0
  1520. casadi/include/tinyxml2.h +2380 -0
  1521. casadi/lib/cmake/tinyxml2/tinyxml2-config-version.cmake +65 -0
  1522. casadi/lib/cmake/tinyxml2/tinyxml2-config.cmake +57 -0
  1523. casadi/lib/cmake/tinyxml2/tinyxml2-static-targets-release.cmake +19 -0
  1524. casadi/lib/cmake/tinyxml2/tinyxml2-static-targets.cmake +103 -0
  1525. casadi/lib/libtinyxml2.a +0 -0
  1526. casadi/lib/pkgconfig/tinyxml2.pc +10 -0
  1527. casadi/libalpaqa-dl-loader.so +0 -0
  1528. casadi/libalpaqa-dl-loader.so.1.0.0 +0 -0
  1529. casadi/libalpaqa.so +0 -0
  1530. casadi/libalpaqa.so.1.0.0 +0 -0
  1531. casadi/libblasfeo.so +0 -0
  1532. casadi/libcasadi-tp-openblas.so +0 -0
  1533. casadi/libcasadi-tp-openblas.so.0 +0 -0
  1534. casadi/libcasadi-tp-openblas.so.0.3 +0 -0
  1535. casadi/libcasadi.so +0 -0
  1536. casadi/libcasadi.so.3.7 +0 -0
  1537. casadi/libcasadi_conic_cplex.so +0 -0
  1538. casadi/libcasadi_conic_cplex.so.3.7 +0 -0
  1539. casadi/libcasadi_conic_daqp.so +0 -0
  1540. casadi/libcasadi_conic_daqp.so.3.7 +0 -0
  1541. casadi/libcasadi_conic_fatrop.so +0 -0
  1542. casadi/libcasadi_conic_fatrop.so.3.7 +0 -0
  1543. casadi/libcasadi_conic_gurobi.so +0 -0
  1544. casadi/libcasadi_conic_gurobi.so.3.7 +0 -0
  1545. casadi/libcasadi_conic_hpipm.so +0 -0
  1546. casadi/libcasadi_conic_hpipm.so.3.7 +0 -0
  1547. casadi/libcasadi_conic_ipqp.so +0 -0
  1548. casadi/libcasadi_conic_ipqp.so.3.7 +0 -0
  1549. casadi/libcasadi_conic_nlpsol.so +0 -0
  1550. casadi/libcasadi_conic_nlpsol.so.3.7 +0 -0
  1551. casadi/libcasadi_conic_osqp.so +0 -0
  1552. casadi/libcasadi_conic_osqp.so.3.7 +0 -0
  1553. casadi/libcasadi_conic_proxqp.so +0 -0
  1554. casadi/libcasadi_conic_proxqp.so.3.7 +0 -0
  1555. casadi/libcasadi_conic_qpoases.so +0 -0
  1556. casadi/libcasadi_conic_qpoases.so.3.7 +0 -0
  1557. casadi/libcasadi_conic_qrqp.so +0 -0
  1558. casadi/libcasadi_conic_qrqp.so.3.7 +0 -0
  1559. casadi/libcasadi_conic_superscs.so +0 -0
  1560. casadi/libcasadi_conic_superscs.so.3.7 +0 -0
  1561. casadi/libcasadi_importer_shell.so +0 -0
  1562. casadi/libcasadi_importer_shell.so.3.7 +0 -0
  1563. casadi/libcasadi_integrator_collocation.so +0 -0
  1564. casadi/libcasadi_integrator_collocation.so.3.7 +0 -0
  1565. casadi/libcasadi_integrator_cvodes.so +0 -0
  1566. casadi/libcasadi_integrator_cvodes.so.3.7 +0 -0
  1567. casadi/libcasadi_integrator_idas.so +0 -0
  1568. casadi/libcasadi_integrator_idas.so.3.7 +0 -0
  1569. casadi/libcasadi_integrator_rk.so +0 -0
  1570. casadi/libcasadi_integrator_rk.so.3.7 +0 -0
  1571. casadi/libcasadi_interpolant_bspline.so +0 -0
  1572. casadi/libcasadi_interpolant_bspline.so.3.7 +0 -0
  1573. casadi/libcasadi_interpolant_linear.so +0 -0
  1574. casadi/libcasadi_interpolant_linear.so.3.7 +0 -0
  1575. casadi/libcasadi_linsol_csparse.so +0 -0
  1576. casadi/libcasadi_linsol_csparse.so.3.7 +0 -0
  1577. casadi/libcasadi_linsol_csparsecholesky.so +0 -0
  1578. casadi/libcasadi_linsol_csparsecholesky.so.3.7 +0 -0
  1579. casadi/libcasadi_linsol_lapacklu.so +0 -0
  1580. casadi/libcasadi_linsol_lapacklu.so.3.7 +0 -0
  1581. casadi/libcasadi_linsol_lapackqr.so +0 -0
  1582. casadi/libcasadi_linsol_lapackqr.so.3.7 +0 -0
  1583. casadi/libcasadi_linsol_ldl.so +0 -0
  1584. casadi/libcasadi_linsol_ldl.so.3.7 +0 -0
  1585. casadi/libcasadi_linsol_lsqr.so +0 -0
  1586. casadi/libcasadi_linsol_lsqr.so.3.7 +0 -0
  1587. casadi/libcasadi_linsol_ma27.so +0 -0
  1588. casadi/libcasadi_linsol_ma27.so.3.7 +0 -0
  1589. casadi/libcasadi_linsol_mumps.so +0 -0
  1590. casadi/libcasadi_linsol_mumps.so.3.7 +0 -0
  1591. casadi/libcasadi_linsol_qr.so +0 -0
  1592. casadi/libcasadi_linsol_qr.so.3.7 +0 -0
  1593. casadi/libcasadi_linsol_symbolicqr.so +0 -0
  1594. casadi/libcasadi_linsol_symbolicqr.so.3.7 +0 -0
  1595. casadi/libcasadi_linsol_tridiag.so +0 -0
  1596. casadi/libcasadi_linsol_tridiag.so.3.7 +0 -0
  1597. casadi/libcasadi_nlpsol_alpaqa.so +0 -0
  1598. casadi/libcasadi_nlpsol_alpaqa.so.3.7 +0 -0
  1599. casadi/libcasadi_nlpsol_ampl.so +0 -0
  1600. casadi/libcasadi_nlpsol_ampl.so.3.7 +0 -0
  1601. casadi/libcasadi_nlpsol_blocksqp.so +0 -0
  1602. casadi/libcasadi_nlpsol_blocksqp.so.3.7 +0 -0
  1603. casadi/libcasadi_nlpsol_fatrop.so +0 -0
  1604. casadi/libcasadi_nlpsol_fatrop.so.3.7 +0 -0
  1605. casadi/libcasadi_nlpsol_feasiblesqpmethod.so +0 -0
  1606. casadi/libcasadi_nlpsol_feasiblesqpmethod.so.3.7 +0 -0
  1607. casadi/libcasadi_nlpsol_ipopt.so +0 -0
  1608. casadi/libcasadi_nlpsol_ipopt.so.3.7 +0 -0
  1609. casadi/libcasadi_nlpsol_knitro.so +0 -0
  1610. casadi/libcasadi_nlpsol_knitro.so.3.7 +0 -0
  1611. casadi/libcasadi_nlpsol_madnlp.so +0 -0
  1612. casadi/libcasadi_nlpsol_madnlp.so.3.7 +0 -0
  1613. casadi/libcasadi_nlpsol_qrsqp.so +0 -0
  1614. casadi/libcasadi_nlpsol_qrsqp.so.3.7 +0 -0
  1615. casadi/libcasadi_nlpsol_scpgen.so +0 -0
  1616. casadi/libcasadi_nlpsol_scpgen.so.3.7 +0 -0
  1617. casadi/libcasadi_nlpsol_snopt.so +0 -0
  1618. casadi/libcasadi_nlpsol_snopt.so.3.7 +0 -0
  1619. casadi/libcasadi_nlpsol_sqpmethod.so +0 -0
  1620. casadi/libcasadi_nlpsol_sqpmethod.so.3.7 +0 -0
  1621. casadi/libcasadi_nlpsol_worhp.so +0 -0
  1622. casadi/libcasadi_nlpsol_worhp.so.3.7 +0 -0
  1623. casadi/libcasadi_rootfinder_fast_newton.so +0 -0
  1624. casadi/libcasadi_rootfinder_fast_newton.so.3.7 +0 -0
  1625. casadi/libcasadi_rootfinder_kinsol.so +0 -0
  1626. casadi/libcasadi_rootfinder_kinsol.so.3.7 +0 -0
  1627. casadi/libcasadi_rootfinder_newton.so +0 -0
  1628. casadi/libcasadi_rootfinder_newton.so.3.7 +0 -0
  1629. casadi/libcasadi_rootfinder_nlpsol.so +0 -0
  1630. casadi/libcasadi_rootfinder_nlpsol.so.3.7 +0 -0
  1631. casadi/libcasadi_sundials_common.so +0 -0
  1632. casadi/libcasadi_sundials_common.so.3.7 +0 -0
  1633. casadi/libcasadi_xmlfile_tinyxml.so +0 -0
  1634. casadi/libcasadi_xmlfile_tinyxml.so.3.7 +0 -0
  1635. casadi/libcoinmetis.la +41 -0
  1636. casadi/libcoinmetis.so +0 -0
  1637. casadi/libcoinmetis.so.2 +0 -0
  1638. casadi/libcoinmetis.so.2.0.0 +0 -0
  1639. casadi/libcoinmumps.la +41 -0
  1640. casadi/libcoinmumps.so +0 -0
  1641. casadi/libcoinmumps.so.3 +0 -0
  1642. casadi/libcoinmumps.so.3.0.1 +0 -0
  1643. casadi/libcplex_adaptor.so +0 -0
  1644. casadi/libdaqp.so +0 -0
  1645. casadi/libdaqpstat.a +0 -0
  1646. casadi/libfatrop.so +0 -0
  1647. casadi/libgurobi_adaptor.so +0 -0
  1648. casadi/libhpipm.so +0 -0
  1649. casadi/libindirect.a +0 -0
  1650. casadi/libipopt.la +41 -0
  1651. casadi/libipopt.so +0 -0
  1652. casadi/libipopt.so.3 +0 -0
  1653. casadi/libipopt.so.3.14.11 +0 -0
  1654. casadi/liblinsys.a +0 -0
  1655. casadi/libmatlab_ipc.so +0 -0
  1656. casadi/libosqp.a +0 -0
  1657. casadi/libosqp.so +0 -0
  1658. casadi/libqdldl.a +0 -0
  1659. casadi/libqdldl.so +0 -0
  1660. casadi/libsipopt.la +41 -0
  1661. casadi/libsipopt.so +0 -0
  1662. casadi/libsipopt.so.3 +0 -0
  1663. casadi/libsipopt.so.3.14.11 +0 -0
  1664. casadi/libsuperscs.a +0 -0
  1665. casadi/pkgconfig/blas.pc +11 -0
  1666. casadi/pkgconfig/casadi.pc +12 -0
  1667. casadi/pkgconfig/coinmetis.pc +13 -0
  1668. casadi/pkgconfig/coinmumps.pc +15 -0
  1669. casadi/pkgconfig/ipopt.pc +15 -0
  1670. casadi/pkgconfig/lapack.pc +11 -0
  1671. casadi/pkgconfig/openblas.pc +11 -0
  1672. casadi/pkgconfig/proxsuite.pc +22 -0
  1673. casadi/tools/__init__.py +52 -0
  1674. casadi/tools/bounds.py +107 -0
  1675. casadi/tools/graph/__init__.py +35 -0
  1676. casadi/tools/graph/graph.py +747 -0
  1677. casadi/tools/in_out.py +89 -0
  1678. casadi/tools/structure.py +1446 -0
  1679. casadi/tools/structure3.py +1441 -0
  1680. casadi-3.6.7.dist-info/METADATA +45 -0
  1681. casadi-3.6.7.dist-info/RECORD +1683 -0
  1682. casadi-3.6.7.dist-info/WHEEL +4 -0
  1683. dummy.txt +1 -0
@@ -0,0 +1,1598 @@
1
+ /*
2
+ * This file is part of CasADi.
3
+ *
4
+ * CasADi -- A symbolic framework for dynamic optimization.
5
+ * Copyright (C) 2010-2023 Joel Andersson, Joris Gillis, Moritz Diehl,
6
+ * KU Leuven. All rights reserved.
7
+ * Copyright (C) 2011-2014 Greg Horn
8
+ *
9
+ * CasADi is free software; you can redistribute it and/or
10
+ * modify it under the terms of the GNU Lesser General Public
11
+ * License as published by the Free Software Foundation; either
12
+ * version 3 of the License, or (at your option) any later version.
13
+ *
14
+ * CasADi is distributed in the hope that it will be useful,
15
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
16
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17
+ * Lesser General Public License for more details.
18
+ *
19
+ * You should have received a copy of the GNU Lesser General Public
20
+ * License along with CasADi; if not, write to the Free Software
21
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
22
+ *
23
+ */
24
+
25
+
26
+ #ifndef CASADI_GENERIC_MATRIX_HPP
27
+ #define CASADI_GENERIC_MATRIX_HPP
28
+
29
+ #include "slice.hpp"
30
+ #include "submatrix.hpp"
31
+ #include "nonzeros.hpp"
32
+ #include "sparsity.hpp"
33
+ #include "calculus.hpp"
34
+ #include "sparsity_interface.hpp"
35
+ #include "generic_type.hpp"
36
+
37
+ namespace casadi {
38
+ /** \brief Empty Base
39
+
40
+ This class is extended in SWIG.
41
+
42
+ \identifier{1al} */
43
+ struct CASADI_EXPORT GenericMatrixCommon {};
44
+
45
+ /** \brief Matrix base class
46
+
47
+ This is a common base class for MX and Matrix<>, introducing a uniform syntax and implementing
48
+ common functionality using the curiously recurring template pattern (CRTP) idiom.\n
49
+
50
+ The class is designed with the idea that "everything is a matrix",
51
+ that is, also scalars and vectors.\n
52
+ This philosophy makes it easy to use and to interface in particularly
53
+ with Python and Matlab/Octave.\n
54
+
55
+ The syntax tries to stay as close as possible to the ublas syntax
56
+ when it comes to vector/matrix operations.\n
57
+
58
+ Index starts with 0.\n
59
+ Index vec happens as follows: (rr, cc) -> k = rr+cc*size1()\n
60
+ Vectors are column vectors.\n
61
+
62
+ The storage format is Compressed Column Storage (CCS),
63
+ similar to that used for sparse matrices in Matlab, \n
64
+ but unlike this format, we do allow for elements to be structurally non-zero
65
+ but numerically zero.\n
66
+
67
+ The sparsity pattern, which is reference counted and cached,
68
+ can be accessed with Sparsity& sparsity()\n
69
+
70
+ \author Joel Andersson
71
+ \date 2012
72
+
73
+ \identifier{1am} */
74
+ template<typename MatType>
75
+ class GenericMatrix
76
+ : public GenericMatrixCommon,
77
+ public SWIG_IF_ELSE(SparsityInterfaceCommon, SparsityInterface<MatType>) {
78
+ using SparsityInterface<MatType>::self;
79
+ public:
80
+
81
+ /** \brief Get the number of (structural) non-zero elements
82
+
83
+ \identifier{1an} */
84
+ casadi_int nnz() const;
85
+
86
+ /** \brief Get the number of non-zeros in the lower triangular half
87
+
88
+ \identifier{1ao} */
89
+ casadi_int nnz_lower() const;
90
+
91
+ /** \brief Get the number of non-zeros in the upper triangular half
92
+
93
+ \identifier{1ap} */
94
+ casadi_int nnz_upper() const;
95
+
96
+ /** \brief Get get the number of non-zeros on the diagonal
97
+
98
+ \identifier{1aq} */
99
+ casadi_int nnz_diag() const;
100
+
101
+ /** \brief Get the number of elements
102
+
103
+ \identifier{1ar} */
104
+ casadi_int numel() const;
105
+
106
+ /** \brief Get the first dimension (i.e. number of rows)
107
+
108
+ \identifier{1as} */
109
+ casadi_int size1() const;
110
+
111
+ /** \brief Get the number of rows, Octave-style syntax
112
+
113
+ \identifier{1at} */
114
+ casadi_int rows() const {return size1();}
115
+
116
+ /** \brief Get the second dimension (i.e. number of columns)
117
+
118
+ \identifier{1au} */
119
+ casadi_int size2() const;
120
+
121
+ /** \brief Get the number of columns, Octave-style syntax
122
+
123
+ \identifier{1av} */
124
+ casadi_int columns() const {return size2();}
125
+
126
+ /** \brief Get string representation of dimensions.
127
+
128
+ The representation is e.g. "4x5" or "4x5,10nz"
129
+
130
+ \identifier{1aw} */
131
+ std::string dim(bool with_nz=false) const;
132
+
133
+ /** \brief Get the shape
134
+
135
+ \identifier{1ax} */
136
+ std::pair<casadi_int, casadi_int> size() const;
137
+
138
+ /** \brief Get the size along a particular dimensions
139
+
140
+ \identifier{1ay} */
141
+ casadi_int size(casadi_int axis) const;
142
+
143
+ /** \brief Check if the sparsity is empty, i.e. if one of the dimensions is zero
144
+
145
+ * (or optionally both dimensions)
146
+
147
+ \identifier{1az} */
148
+ bool is_empty(bool both=false) const { return sparsity().is_empty(both);}
149
+
150
+ /** \brief Check if the matrix expression is dense
151
+
152
+ \identifier{1b0} */
153
+ bool is_dense() const { return sparsity().is_dense();}
154
+
155
+ /** \brief Check if the matrix expression is scalar
156
+
157
+ \identifier{1b1} */
158
+ bool is_scalar(bool scalar_and_dense=false) const;
159
+
160
+ /** \brief Check if the matrix expression is square
161
+
162
+ \identifier{1b2} */
163
+ bool is_square() const { return sparsity().is_square();}
164
+
165
+ /** \brief Check if the matrix is a row or column vector
166
+
167
+ \identifier{1b3} */
168
+ bool is_vector() const { return sparsity().is_vector();}
169
+
170
+ /** \brief Check if the matrix is a row vector (i.e. size1()==1)
171
+
172
+ \identifier{1b4} */
173
+ bool is_row() const { return sparsity().is_row();}
174
+
175
+ /** \brief Check if the matrix is a column vector (i.e. size2()==1)
176
+
177
+ \identifier{1b5} */
178
+ bool is_column() const { return sparsity().is_column();}
179
+
180
+ /** \brief Check if the matrix is upper triangular
181
+
182
+ \identifier{1b6} */
183
+ bool is_triu() const { return sparsity().is_triu();}
184
+
185
+ /** \brief Check if the matrix is lower triangular
186
+
187
+ \identifier{1b7} */
188
+ bool is_tril() const { return sparsity().is_tril();}
189
+
190
+ ///@{
191
+ /** \brief Get the sparsity pattern. See the Sparsity class for details.
192
+
193
+ \identifier{1b8} */
194
+ std::vector<casadi_int> get_row() const { return sparsity().get_row(); }
195
+ std::vector<casadi_int> get_colind() const { return sparsity().get_colind(); }
196
+ #ifndef SWIG
197
+ const casadi_int* row() const { return sparsity().row(); }
198
+ const casadi_int* colind() const { return sparsity().colind(); }
199
+ #endif
200
+ casadi_int row(casadi_int el) const { return sparsity().row(el); }
201
+ casadi_int colind(casadi_int col) const { return sparsity().colind(col); }
202
+ ///@}
203
+
204
+ /** \brief Get the sparsity pattern
205
+
206
+ \identifier{1b9} */
207
+ SWIG_CONSTREF(Sparsity) sparsity() const;
208
+
209
+ #ifndef SWIG
210
+ /// \cond CLUTTER
211
+ /** @{ */
212
+ /// Functions called by friend functions defined here
213
+ static MatType interp1d(const std::vector<double>& x, const MatType &v,
214
+ const std::vector<double>& xq, const std::string& mode, bool equidistant);
215
+ static casadi_int sprank(const MatType &x) { return Sparsity::sprank(x.sparsity());}
216
+ static casadi_int norm_0_mul(const MatType &x, const MatType &y) {
217
+ return Sparsity::norm_0_mul(x.sparsity(), y.sparsity());
218
+ }
219
+ static MatType tril(const MatType &x, bool includeDiagonal=true) {
220
+ return project(x, Sparsity::tril(x.sparsity(), includeDiagonal));
221
+ }
222
+ static MatType triu(const MatType &x, bool includeDiagonal=true) {
223
+ return project(x, Sparsity::triu(x.sparsity(), includeDiagonal));
224
+ }
225
+ static MatType sumsqr(const MatType &x) { return dot(x, x);}
226
+ static MatType linspace(const MatType &a, const MatType &b, casadi_int nsteps);
227
+ static MatType cross(const MatType &a, const MatType &b, casadi_int dim=-1);
228
+ static MatType skew(const MatType &a);
229
+ static MatType inv_skew(const MatType &a);
230
+ static MatType tril2symm(const MatType &x);
231
+ static MatType triu2symm(const MatType &x);
232
+ static MatType repsum(const MatType &x, casadi_int n, casadi_int m=1);
233
+ static MatType diff(const MatType &x, casadi_int n=1, casadi_int axis=-1);
234
+
235
+ static bool is_linear(const MatType &expr, const MatType &var);
236
+ static bool is_quadratic(const MatType &expr, const MatType &var);
237
+ static void quadratic_coeff(const MatType &expr, const MatType &var,
238
+ MatType& A, MatType& b, MatType& c, bool check);
239
+ static void linear_coeff(const MatType &expr, const MatType &var,
240
+ MatType& A, MatType& b, bool check);
241
+ /** @} */
242
+ /// \endcond
243
+
244
+ /** \brief Get vector nonzero or slice of nonzeros
245
+
246
+ \identifier{1bb} */
247
+ template<typename K>
248
+ const MatType nz(const K& k) const {
249
+ MatType ret;
250
+ self().get_nz(ret, false, k);
251
+ return ret;
252
+ }
253
+
254
+ /** \brief Access vector nonzero or slice of nonzeros
255
+
256
+ \identifier{1bc} */
257
+ template<typename K>
258
+ NonZeros<MatType, K> nz(const K& k) {
259
+ return NonZeros<MatType, K>(self(), k);
260
+ }
261
+
262
+ /** \brief Get vector element or slice
263
+
264
+ \identifier{1bd} */
265
+ template<typename RR>
266
+ const MatType operator()(const RR& rr) const {
267
+ MatType ret;
268
+ self().get(ret, false, rr);
269
+ return ret;
270
+ }
271
+
272
+ /** \brief Get Matrix element or slice
273
+
274
+ \identifier{1be} */
275
+ template<typename RR, typename CC>
276
+ const MatType operator()(const RR& rr, const CC& cc) const {
277
+ MatType ret;
278
+ self().get(ret, false, rr, cc);
279
+ return ret;
280
+ }
281
+
282
+ /** \brief Access Matrix elements (one argument)
283
+
284
+ \identifier{1bf} */
285
+ template<typename RR>
286
+ SubIndex<MatType, RR> operator()(const RR& rr) {
287
+ return SubIndex<MatType, RR>(self(), rr);
288
+ }
289
+
290
+ /** \brief Access Matrix elements (two arguments)
291
+
292
+ \identifier{1bg} */
293
+ template<typename RR, typename CC>
294
+ SubMatrix<MatType, RR, CC> operator()(const RR& rr, const CC& cc) {
295
+ return SubMatrix<MatType, RR, CC>(self(), rr, cc);
296
+ }
297
+ #endif // SWIG
298
+
299
+ #if !defined(SWIG) || defined(DOXYGEN)
300
+ /**
301
+ \addtogroup expression_tools
302
+ @{
303
+ */
304
+
305
+ /** \brief Performs 1d linear interpolation
306
+ *
307
+ * The data-points to be interpolated are given as (x[i], v[i]).
308
+ * xq[j] is used as interplating value
309
+
310
+ \identifier{1bh} */
311
+ inline friend MatType interp1d(const std::vector<double>& x, const MatType&v,
312
+ const std::vector<double>& xq, const std::string& mode, bool equidistant=false) {
313
+ return MatType::interp1d(x, v, xq, mode, equidistant);
314
+ }
315
+
316
+ /** \brief Matrix power x^n
317
+
318
+ \identifier{1bi} */
319
+ inline friend MatType mpower(const MatType& x, const MatType& n) {
320
+ return MatType::mpower(x, n);
321
+ }
322
+
323
+ /** \brief Construct second-order-convex
324
+ *
325
+ * \param[in] x vector expression of size n
326
+ * \param[in] y scalar expression
327
+ *
328
+ * soc(x,y) computes [y*eye(n) x; x' y]
329
+ *
330
+ * soc(x,y) positive semi definite
331
+ * <=> || x ||_2 <= y
332
+ *
333
+ \identifier{1bj} */
334
+ inline friend MatType soc(const MatType& x, const MatType& y) {
335
+ return MatType::soc(x, y);
336
+ }
337
+
338
+ /** \brief Compute any contraction of two dense tensors, using index/einstein notation
339
+
340
+ einstein(A, B, a, b, c) -> C
341
+
342
+ Given two tensors, A and B, computes a third tensor C such that:
343
+
344
+ C_c = A_a * B_b
345
+
346
+ With a, b, c representing einstein indices.
347
+ Instead of the classical index labels i,j,k,... we employ -1,-2,-3,...
348
+
349
+ A, B, C are represented as CasADi vectors, with dim_a, dim_b, dim_c
350
+ indictating theire tensorial dimensions.
351
+
352
+ \identifier{1bk} */
353
+ ///@{
354
+ inline friend MatType
355
+ einstein(const MatType &A, const MatType &B, const MatType &C,
356
+ const std::vector<casadi_int>& dim_a, const std::vector<casadi_int>& dim_b,
357
+ const std::vector<casadi_int>& dim_c,
358
+ const std::vector<casadi_int>& a, const std::vector<casadi_int>& b,
359
+ const std::vector<casadi_int>& c) {
360
+ return MatType::einstein(A, B, C, dim_a, dim_b, dim_c, a, b, c);
361
+ }
362
+
363
+ inline friend MatType
364
+ einstein(const MatType &A, const MatType &B,
365
+ const std::vector<casadi_int>& dim_a, const std::vector<casadi_int>& dim_b,
366
+ const std::vector<casadi_int>& dim_c,
367
+ const std::vector<casadi_int>& a, const std::vector<casadi_int>& b,
368
+ const std::vector<casadi_int>& c) {
369
+ return MatType::einstein(A, B, dim_a, dim_b, dim_c, a, b, c);
370
+ }
371
+ ///@}
372
+
373
+ /** \brief Matrix divide (cf. slash '/' in MATLAB)
374
+
375
+ \identifier{1bl} */
376
+ inline friend MatType mrdivide(const MatType& x, const MatType& n) {
377
+ return MatType::mrdivide(x, n);
378
+ }
379
+
380
+ /** \brief Matrix divide (cf. backslash '\' in MATLAB)
381
+
382
+ \identifier{1bm} */
383
+ inline friend MatType mldivide(const MatType& x, const MatType& n) {
384
+ return MatType::mldivide(x, n);
385
+ }
386
+
387
+ /** \brief Get all symbols contained in the supplied expression
388
+
389
+ * Get all symbols on which the supplied expression depends
390
+ * \see SXFunction::getFree(), MXFunction::getFree()
391
+
392
+ \identifier{1bn} */
393
+ inline friend std::vector<MatType> symvar(const MatType& x) {
394
+ return MatType::symvar(x);
395
+ }
396
+
397
+ ///@{
398
+ /** \brief Calculate bilinear/quadratic form x^T A y
399
+ *
400
+ * \param[in] y can be omitted, in which case x^T A x is calculated
401
+
402
+ \identifier{1bo} */
403
+ inline friend MatType bilin(const MatType &A, const MatType &x, const MatType &y) {
404
+ return MatType::bilin(A, x, y);
405
+ }
406
+ inline friend MatType bilin(const MatType &A, const MatType &x) {
407
+ return MatType::bilin(A, x, x);
408
+ }
409
+ static MatType bilin(const MatType& A, const MatType& x, const MatType& y);
410
+ ///@}
411
+
412
+ ///@{
413
+ /** \brief Make a rank-1 update to a matrix A
414
+
415
+ * Calculates A + 1/2 * alpha * x*y'
416
+
417
+ \identifier{1bp} */
418
+ inline friend MatType rank1(const MatType &A, const MatType &alpha,
419
+ const MatType &x, const MatType &y) {
420
+ return MatType::rank1(A, alpha, x, y);
421
+ }
422
+ static MatType rank1(const MatType& A, const MatType& alpha,
423
+ const MatType& x, const MatType& y);
424
+ ///@}
425
+
426
+ /** \brief Calculate sum of squares: sum_ij X_ij^2
427
+
428
+ \identifier{1bq} */
429
+ inline friend MatType sumsqr(const MatType &x) {
430
+ return MatType::sumsqr(x);
431
+ }
432
+
433
+ /** \brief x -> log(sum_i exp(x_i))
434
+ *
435
+ * Can be used to achieve a smooth max.
436
+ *
437
+ * Implementations for DM/SX/MX are hardened against overflow
438
+ * Implementations for DM/MX are more accurate with log1p (*)
439
+ *
440
+ * (*) https://nhigham.com/2021/01/05/what-is-the-log-sum-exp-function/
441
+ *
442
+ \identifier{1br} */
443
+ inline friend MatType logsumexp(const MatType& x) {
444
+ return MatType::logsumexp(x);
445
+ }
446
+ /** \brief Scaled version of logsumexp
447
+ *
448
+ * Scaled such that max(x) <= logsumexp(x, margin) <= max(x)+margin
449
+ *
450
+ \identifier{1bs} */
451
+ inline friend MatType logsumexp(const MatType& x, const MatType& margin) {
452
+ MatType alpha = log(x.size1()) / margin;
453
+ return MatType::logsumexp(alpha*x)/alpha;
454
+ }
455
+ static MatType logsumexp(const MatType& x);
456
+
457
+ /** \brief Matlab's \c linspace command
458
+
459
+ \identifier{1bt} */
460
+ inline friend MatType linspace(const MatType &a, const MatType &b, casadi_int nsteps) {
461
+ return MatType::linspace(a, b, nsteps);
462
+ }
463
+
464
+ /** \brief Matlab's \c cross command
465
+
466
+ \identifier{1bu} */
467
+ inline friend MatType cross(const MatType &a, const MatType &b, casadi_int dim = -1) {
468
+ return MatType::cross(a, b, dim);
469
+ }
470
+
471
+ /** \brief Generate a skew symmetric matrix from a 3-vector
472
+
473
+ \identifier{1bv} */
474
+ inline friend MatType skew(const MatType &a) {
475
+ return MatType::skew(a);
476
+ }
477
+
478
+ /** \brief Generate the 3-vector progenitor of a skew symmetric matrix
479
+
480
+ \identifier{1bw} */
481
+ inline friend MatType inv_skew(const MatType &a) {
482
+ return MatType::inv_skew(a);
483
+ }
484
+
485
+ /** \brief Matrix determinant (experimental)
486
+
487
+ \identifier{1bx} */
488
+ inline friend MatType det(const MatType& A) { return MatType::det(A);}
489
+
490
+ /** \brief Matrix inverse (experimental)
491
+
492
+ \identifier{1by} */
493
+ inline friend MatType inv_minor(const MatType& A) { return MatType::inv_minor(A);}
494
+
495
+ /** \brief Matrix inverse
496
+
497
+ \identifier{1bz} */
498
+ inline friend MatType inv(const MatType& A) {
499
+ return MatType::inv(A);
500
+ }
501
+
502
+ /** \brief Matrix inverse
503
+
504
+ \identifier{1c0} */
505
+ inline friend MatType inv(const MatType& A,
506
+ const std::string& lsolver,
507
+ const Dict& options=Dict()) {
508
+ return MatType::inv(A, lsolver, options);
509
+ }
510
+
511
+ /** \brief Matrix trace
512
+
513
+ \identifier{1c1} */
514
+ inline friend MatType trace(const MatType& x) { return MatType::trace(x);}
515
+
516
+ /** \brief Convert a lower triangular matrix to a symmetric one
517
+
518
+ \identifier{1c2} */
519
+ inline friend MatType tril2symm(const MatType &a) { return MatType::tril2symm(a);}
520
+
521
+ /** \brief Convert a upper triangular matrix to a symmetric one
522
+
523
+ \identifier{1c3} */
524
+ inline friend MatType triu2symm(const MatType &a) { return MatType::triu2symm(a);}
525
+
526
+ /** \brief Frobenius norm
527
+
528
+ \identifier{1c4} */
529
+ inline friend MatType norm_fro(const MatType &x) { return MatType::norm_fro(x);}
530
+
531
+ /** \brief 2-norm
532
+
533
+ \identifier{1c5} */
534
+ inline friend MatType norm_2(const MatType &x) { return MatType::norm_2(x);}
535
+
536
+ /** \brief 1-norm
537
+
538
+ \identifier{1c6} */
539
+ inline friend MatType norm_1(const MatType &x) { return MatType::norm_1(x);}
540
+
541
+ /** \brief Infinity-norm
542
+
543
+ \identifier{1c7} */
544
+ inline friend MatType norm_inf(const MatType &x) { return MatType::norm_inf(x);}
545
+
546
+ /** \brief Returns difference (n-th order) along given axis (MATLAB convention)
547
+
548
+ \identifier{1c8} */
549
+ inline friend MatType diff(const MatType &x, casadi_int n=1, casadi_int axis=-1) {
550
+ return MatType::diff(x, n, axis);
551
+ }
552
+
553
+ /** \brief Returns cumulative sum along given axis (MATLAB convention)
554
+
555
+ \identifier{1c9} */
556
+ inline friend MatType cumsum(const MatType &x, casadi_int axis=-1) {
557
+ return MatType::cumsum(x, axis);
558
+ }
559
+
560
+ /** \brief Inner product of two matrices
561
+
562
+ with x and y matrices of the same dimension
563
+
564
+ \identifier{1ca} */
565
+ inline friend MatType dot(const MatType &x, const MatType &y) {
566
+ return MatType::dot(x, y);
567
+ }
568
+
569
+ /** \brief Computes the nullspace of a matrix A
570
+ *
571
+ * Finds Z m-by-(m-n) such that AZ = 0
572
+ * with A n-by-m with m > n
573
+ *
574
+ * Assumes A is full rank
575
+ *
576
+ * Inspired by Numerical Methods in Scientific Computing by Ake Bjorck
577
+
578
+ \identifier{1cb} */
579
+ inline friend MatType nullspace(const MatType& A) {
580
+ return MatType::nullspace(A);
581
+ }
582
+
583
+ /** \brief Evaluate a polynomial with coefficients p in x
584
+
585
+ \identifier{1cc} */
586
+ inline friend MatType polyval(const MatType& p, const MatType& x) {
587
+ return MatType::polyval(p, x);
588
+ }
589
+
590
+ /** \brief Get the diagonal of a matrix or construct a diagonal
591
+
592
+ When the input is square, the diagonal elements are returned.
593
+ If the input is vector-like, a diagonal matrix is constructed with it.
594
+
595
+ \identifier{1cd} */
596
+ inline friend MatType diag(const MatType &A) {
597
+ return MatType::diag(A);
598
+ }
599
+
600
+ /** \brief Unite two matrices no overlapping sparsity
601
+
602
+ \identifier{1ce} */
603
+ inline friend MatType unite(const MatType& A, const MatType& B) {
604
+ return MatType::unite(A, B);
605
+ }
606
+
607
+ /** \brief Make the matrix dense if not already
608
+
609
+ \identifier{1cf} */
610
+ inline friend MatType densify(const MatType& x) {
611
+ return MatType::densify(x);
612
+ }
613
+
614
+ /** \brief Make the matrix dense and assign nonzeros to a value
615
+
616
+ \identifier{1cg} */
617
+ inline friend MatType densify(const MatType& x, const MatType& val) {
618
+ return MatType::densify(x, val);
619
+ }
620
+
621
+ /** \brief Create a new matrix with a given sparsity pattern but with the
622
+
623
+ * nonzeros taken from an existing matrix
624
+
625
+ \identifier{1ch} */
626
+ inline friend MatType project(const MatType& A, const Sparsity& sp,
627
+ bool intersect=false) {
628
+ return MatType::project(A, sp, intersect);
629
+ }
630
+
631
+ /** \brief Branching on MX nodes
632
+
633
+ Ternary operator, "cond ? if_true : if_false"
634
+
635
+ \identifier{1ci} */
636
+ inline friend MatType if_else(const MatType &cond, const MatType &if_true,
637
+ const MatType &if_false, bool short_circuit=false) {
638
+ return MatType::if_else(cond, if_true, if_false, short_circuit);
639
+ }
640
+
641
+ /** \brief Create a switch
642
+ *
643
+ * If the condition \param ind evaluates to the integer k, where 0<=k<f.size(),
644
+ * then x[k] will be returned, otherwise \param x_default will be returned.
645
+
646
+ \identifier{1cj} */
647
+ inline friend MatType conditional(const MatType& ind, const std::vector<MatType> &x,
648
+ const MatType &x_default, bool short_circuit=false) {
649
+ return MatType::conditional(ind, x, x_default, short_circuit);
650
+ }
651
+
652
+ /** \brief Check if expression depends on the argument
653
+
654
+ The argument must be symbolic
655
+
656
+ \identifier{1ck} */
657
+ inline friend bool depends_on(const MatType& f, const MatType &arg) {
658
+ return MatType::depends_on(f, arg);
659
+ }
660
+
661
+ /** \brief Substitute variable v with expression vdef in an expression ex
662
+
663
+ \identifier{1cl} */
664
+ friend inline MatType substitute(const MatType& ex, const MatType& v,
665
+ const MatType& vdef) {
666
+ return MatType::substitute(ex, v, vdef);
667
+ }
668
+
669
+ /** \brief Substitute variable var with expression expr in multiple expressions
670
+
671
+ \identifier{1cm} */
672
+ friend inline std::vector<MatType>
673
+ substitute(const std::vector<MatType>& ex, const std::vector<MatType>& v,
674
+ const std::vector<MatType>& vdef) {
675
+ return MatType::substitute(ex, v, vdef);
676
+ }
677
+
678
+ /** \brief Inplace substitution with piggyback expressions
679
+
680
+ * Substitute variables v out of the expressions vdef sequentially,
681
+ * as well as out of a number of other expressions piggyback
682
+
683
+ \identifier{1cn} */
684
+ inline friend void
685
+ substitute_inplace(const std::vector<MatType>& v,
686
+ std::vector<MatType>& inout_vdef,
687
+ std::vector<MatType>& inout_ex, bool reverse=false) {
688
+ return MatType::substitute_inplace(v, inout_vdef, inout_ex, reverse);
689
+ }
690
+
691
+ /** \brief Common subexpression elimination
692
+
693
+ \identifier{1co} */
694
+ inline friend MatType cse(const MatType& e) {
695
+ return MatType::cse({e}).at(0);
696
+ }
697
+
698
+
699
+ /** \brief Common subexpression elimination
700
+
701
+ \identifier{1cp} */
702
+ inline friend std::vector<MatType> cse(const std::vector<MatType>& e) {
703
+ return MatType::cse(e);
704
+ }
705
+
706
+ /** \brief Solve a system of equations: A*x = b
707
+
708
+ The solve routine works similar to Matlab's backslash when A is square and nonsingular.
709
+ The algorithm used is the following:
710
+ 1. A simple forward or backward substitution if A is upper or lower triangular
711
+ 2. If the linear system is at most 3-by-3, form the inverse via minor expansion and multiply
712
+ 3. Permute the variables and equations as to get a (structurally) nonzero diagonal,
713
+ then perform a QR factorization without pivoting and solve the factorized system.
714
+
715
+ Note 1: If there are entries of the linear system known to be zero, these will be removed.
716
+ Elements that are very small, or will evaluate to be zero, can still cause numerical errors,
717
+ due to the lack of pivoting (which is not possible since cannot compare the size of entries)
718
+
719
+ Note 2: When permuting the linear system, a BLT (block lower triangular) transformation is
720
+ formed. Only the permutation part of this is however used. An improvement would be to solve
721
+ block-by-block if there are multiple BLT blocks.
722
+
723
+ \identifier{1cq} */
724
+ friend inline MatType solve(const MatType& A, const MatType& b) {
725
+ return MatType::solve(A, b);
726
+ }
727
+
728
+ /** \brief Solve a system of equations: A*x = b
729
+
730
+ \identifier{1cr} */
731
+ friend inline MatType solve(const MatType& A, const MatType& b,
732
+ const std::string& lsolver,
733
+ const Dict& dict = Dict()) {
734
+ return MatType::solve(A, b, lsolver, dict);
735
+ }
736
+
737
+ /** \brief Linearize an expression
738
+
739
+ \identifier{1cs} */
740
+ friend inline MatType linearize(const MatType& f, const MatType& x, const MatType& x0,
741
+ const Dict& opts=Dict()) {
742
+ return MatType::linearize(f, x, x0, opts);
743
+ }
744
+
745
+ /** \brief Computes the Moore-Penrose pseudo-inverse
746
+ *
747
+ * If the matrix A is fat (size1<size2), mul(A, pinv(A)) is unity.
748
+ *
749
+ * pinv(A)' = (AA')^(-1) A
750
+ *
751
+ *
752
+ * If the matrix A is slender (size1>size2), mul(pinv(A), A) is unity.
753
+ *
754
+ * pinv(A) = (A'A)^(-1) A'
755
+ *
756
+ \identifier{1ct} */
757
+ friend inline MatType pinv(const MatType& A) {
758
+ return MatType::pinv(A);
759
+ }
760
+
761
+ /** \brief Computes the Moore-Penrose pseudo-inverse
762
+ *
763
+ * If the matrix A is fat (size1>size2), mul(A, pinv(A)) is unity.
764
+ * If the matrix A is slender (size2<size1), mul(pinv(A), A) is unity.
765
+ *
766
+ \identifier{1cu} */
767
+ friend inline MatType pinv(const MatType& A, const std::string& lsolver,
768
+ const Dict& dict = Dict()) {
769
+ return MatType::pinv(A, lsolver, dict);
770
+ }
771
+
772
+
773
+ /** \brief Calculate Matrix exponential
774
+ *
775
+ * Computes expm(A*t) with A constant
776
+ *
777
+ * \param A[in] Square matrix
778
+ * \param t[in] Scalar
779
+ *
780
+
781
+ \identifier{23v} */
782
+ friend inline MatType expm_const(const MatType& A, const MatType& t) {
783
+ return MatType::expm_const(A, t);
784
+ }
785
+
786
+ /** \brief Calculate Matrix exponential
787
+ *
788
+
789
+ \identifier{23w} */
790
+ friend inline MatType expm(const MatType& A) {
791
+ return MatType::expm(A);
792
+ }
793
+
794
+ /** \brief Calculate Jacobian
795
+ *
796
+ * \return Sparse matrix
797
+
798
+ \identifier{1cv} */
799
+ inline friend MatType jacobian(const MatType &ex, const MatType &arg,
800
+ const Dict& opts = Dict()) {
801
+ return MatType::jacobian(ex, arg, opts);
802
+ }
803
+ /** \brief Calculate the gradient of an expression
804
+ *
805
+ * \param ex[in] Scalar expression to take the gradient of
806
+ * \param arg[in] Vector expression of symbols
807
+ * \param opts[in] Options
808
+ *
809
+ * \return Dense column vector
810
+
811
+ \identifier{23x} */
812
+ inline friend MatType gradient(const MatType &ex, const MatType &arg, const Dict& opts=Dict()) {
813
+ return MatType::gradient(ex, arg, opts);
814
+ }
815
+ /** \brief Calculate the tangent of an expression
816
+ *
817
+
818
+ \identifier{23y} */
819
+ inline friend MatType tangent(const MatType &ex, const MatType &arg, const Dict& opts=Dict()) {
820
+ return MatType::tangent(ex, arg, opts);
821
+ }
822
+
823
+ /** \brief Calculate the Jacobian and multiply by a vector from the right
824
+
825
+ This is equivalent to <tt>mul(jacobian(ex, arg), v)</tt> or
826
+ <tt>mul(jacobian(ex, arg).T, v)</tt> for
827
+ tr set to false and true respectively. If contrast to these
828
+ expressions, it will use directional derivatives which is typically (but
829
+ not necessarily) more efficient if the complete Jacobian is not needed and v has few rows.
830
+
831
+ \identifier{1cw} */
832
+ friend inline MatType jtimes(const MatType &ex, const MatType &arg,
833
+ const MatType &v, bool tr=false, const Dict& opts=Dict()) {
834
+ return MatType::jtimes(ex, arg, v, tr, opts);
835
+ }
836
+
837
+ /** \brief Forward directional derivative
838
+
839
+ \identifier{1cx} */
840
+ friend inline std::vector<std::vector<MatType> >
841
+ forward(const std::vector<MatType> &ex, const std::vector<MatType> &arg,
842
+ const std::vector<std::vector<MatType> > &v,
843
+ const Dict& opts = Dict()) {
844
+ return MatType::forward(ex, arg, v, opts);
845
+ }
846
+
847
+ /** \brief Reverse directional derivative
848
+
849
+ \identifier{1cy} */
850
+ friend inline std::vector<std::vector<MatType> >
851
+ reverse(const std::vector<MatType> &ex, const std::vector<MatType> &arg,
852
+ const std::vector<std::vector<MatType> > &v,
853
+ const Dict& opts = Dict()) {
854
+ return MatType::reverse(ex, arg, v, opts);
855
+ }
856
+
857
+ ///@{
858
+ /** \brief Hessian and (optionally) gradient
859
+
860
+ \identifier{23z} */
861
+ inline friend MatType hessian(const MatType &ex, const MatType &arg,
862
+ const Dict& opts = Dict()) {
863
+ return MatType::hessian(ex, arg, opts);
864
+ }
865
+ inline friend MatType hessian(const MatType &ex, const MatType &arg, MatType& output_g,
866
+ const Dict& opts = Dict()) {
867
+ return MatType::hessian(ex, arg, output_g, opts);
868
+ }
869
+ ///@}
870
+
871
+ /** \brief Find out which variables enter with some order
872
+
873
+ \identifier{1cz} */
874
+ inline friend std::vector<bool> which_depends(const MatType &expr, const MatType &var,
875
+ casadi_int order, bool tr) {
876
+ return MatType::which_depends(expr, var, order, tr);
877
+ }
878
+
879
+ /** \brief Get the sparsity pattern of a jacobian
880
+ *
881
+ * Equivalent to, but cheaper to compute than, jacobian(f,x).sparsity()
882
+
883
+ \identifier{259} */
884
+ inline friend Sparsity jacobian_sparsity(const MatType &f, const MatType &x) {
885
+ return MatType::jacobian_sparsity(f, x);
886
+ }
887
+
888
+ /** \brief Is expr linear in var?
889
+ *
890
+ * False negatives are possible
891
+ * (an expression may not be recognised as linear while it really is),
892
+ * false positives not.
893
+
894
+ \identifier{1d0} */
895
+ inline friend bool is_linear(const MatType &expr, const MatType &var) {
896
+ return MatType::is_linear(expr, var);
897
+ }
898
+
899
+ /** \brief Is expr quadratic in var?
900
+ *
901
+ * False negatives are possible
902
+ * (an expression may not be recognised as quadratic while it really is),
903
+ * false positives not.
904
+
905
+ \identifier{1d1} */
906
+ inline friend bool is_quadratic(const MatType &expr, const MatType &var) {
907
+ return MatType::is_quadratic(expr, var);
908
+ }
909
+
910
+ /** \brief Recognizes quadratic form in scalar expression
911
+ *
912
+ * 1/2*x' A x + b' x + c
913
+ *
914
+ * e = 0.5*bilin(A,x,x)+dot(b,x)+c
915
+ *
916
+ * \param check[in] When true (default), A is checked to be independent of x.
917
+ * Provided to deal with false positive dependency checks.
918
+
919
+ \identifier{1d2} */
920
+ inline friend void quadratic_coeff(const MatType &expr, const MatType &var,
921
+ MatType& A, MatType& b, MatType& c, bool check=true) {
922
+ MatType::quadratic_coeff(expr, var, A, b, c, check);
923
+ }
924
+
925
+ /** \brief Recognizes linear form in vector expression
926
+ *
927
+ * A x + b
928
+ *
929
+ * \param check[in] When true (default)m, A is checked to be independent of x.
930
+ * Provided to deal with false positive dependency checks.
931
+
932
+ \identifier{1d3} */
933
+ inline friend void linear_coeff(const MatType &expr, const MatType &var,
934
+ MatType& A, MatType& b, bool check=true) {
935
+ MatType::linear_coeff(expr, var, A, b, check);
936
+ }
937
+
938
+ /** Count number of nodes */
939
+ inline friend casadi_int n_nodes(const MatType& A) {
940
+ return MatType::n_nodes(A);
941
+ }
942
+
943
+ /// Simplify an expression
944
+ friend inline MatType simplify(const MatType &x) {
945
+ return MatType::simplify(x);
946
+ }
947
+
948
+ /** \brief Get a string representation for a binary MatType, using custom arguments
949
+
950
+ \identifier{1d4} */
951
+ inline friend std::string
952
+ print_operator(const MatType& xb, const std::vector<std::string>& args) {
953
+ return MatType::print_operator(xb, args);
954
+ }
955
+
956
+ /** \brief Introduce intermediate variables for selected nodes in a graph
957
+
958
+ \identifier{1d5} */
959
+ inline friend void extract(std::vector<MatType>& ex,
960
+ std::vector<MatType>& v,
961
+ std::vector<MatType>& vdef,
962
+ const Dict& opts = Dict()) {
963
+ MatType::extract(ex, v, vdef, opts);
964
+ }
965
+
966
+ /** \brief Extract shared subexpressions from an set of expressions
967
+
968
+ \identifier{1d6} */
969
+ inline friend void shared(std::vector<MatType>& ex,
970
+ std::vector<MatType>& v,
971
+ std::vector<MatType>& vdef,
972
+ const std::string& v_prefix="v_",
973
+ const std::string& v_suffix="") {
974
+ return MatType::shared(ex, v, vdef, v_prefix, v_suffix);
975
+ }
976
+
977
+ /** \brief Given a repeated matrix, computes the sum of repeated parts
978
+
979
+ \identifier{1d7} */
980
+ inline friend MatType repsum(const MatType &A, casadi_int n, casadi_int m=1) {
981
+ return MatType::repsum(A, n, m);
982
+ }
983
+
984
+ ///@{
985
+ /** \brief Smallest element in a matrix
986
+
987
+ \identifier{1d8} */
988
+ friend inline MatType mmin(const MatType& x) {
989
+ return MatType::mmin(x);
990
+ }
991
+ ///@}
992
+
993
+ ///@{
994
+ /** \brief Largest element in a matrix
995
+
996
+ \identifier{1d9} */
997
+ friend inline MatType mmax(const MatType& x) {
998
+ return MatType::mmax(x);
999
+ }
1000
+ ///@}
1001
+
1002
+ ///@{
1003
+ /// Functions called by friend functions defined here
1004
+ static MatType jtimes(const MatType &ex, const MatType &arg,
1005
+ const MatType &v, bool tr=false, const Dict& opts=Dict());
1006
+ static MatType gradient(const MatType &ex, const MatType &arg, const Dict& opts=Dict());
1007
+ static MatType tangent(const MatType &ex, const MatType &arg, const Dict& opts=Dict());
1008
+ static MatType linearize(const MatType& f, const MatType& x, const MatType& x0,
1009
+ const Dict& opts=Dict());
1010
+ static MatType mpower(const MatType &x, const MatType &y);
1011
+ static MatType soc(const MatType &x, const MatType &y);
1012
+ ///@}
1013
+
1014
+ /** @} */
1015
+ #endif // SWIG
1016
+
1017
+ /** @name Construct symbolic primitives
1018
+ The "sym" function is intended to work in a similar way as "sym" used
1019
+ in the Symbolic Toolbox for Matlab but instead creating a
1020
+ CasADi symbolic primitive.
1021
+ */
1022
+ ///@{
1023
+
1024
+ /** \brief Create an nrow-by-ncol symbolic primitive
1025
+
1026
+ \identifier{1da} */
1027
+ static MatType sym(const std::string& name, casadi_int nrow=1, casadi_int ncol=1) {
1028
+ return sym(name, Sparsity::dense(nrow, ncol));
1029
+ }
1030
+
1031
+ /** \brief Construct a symbolic primitive with given dimensions
1032
+
1033
+ \identifier{1db} */
1034
+ static MatType sym(const std::string& name, const std::pair<casadi_int, casadi_int> &rc) {
1035
+ return sym(name, rc.first, rc.second);
1036
+ }
1037
+
1038
+ /** \brief Create symbolic primitive with a given sparsity pattern
1039
+
1040
+ \identifier{1dc} */
1041
+ static MatType sym(const std::string& name, const Sparsity& sp) {
1042
+ return MatType::_sym(name, sp);
1043
+ }
1044
+
1045
+ /** \brief Create a vector of length p with with matrices
1046
+
1047
+ * with symbolic primitives of given sparsity
1048
+
1049
+ \identifier{1dd} */
1050
+ static std::vector<MatType > sym(const std::string& name, const Sparsity& sp, casadi_int p);
1051
+
1052
+ /** \brief Create a vector of length p with nrow-by-ncol symbolic primitives
1053
+
1054
+ \identifier{1de} */
1055
+ static std::vector<MatType > sym(const std::string& name, casadi_int nrow,
1056
+ casadi_int ncol, casadi_int p) {
1057
+ return sym(name, Sparsity::dense(nrow, ncol), p);
1058
+ }
1059
+
1060
+ /** \brief Create a vector of length r of vectors of length p with
1061
+
1062
+ * symbolic primitives with given sparsity
1063
+
1064
+ \identifier{1df} */
1065
+ static std::vector<std::vector<MatType> >
1066
+ sym(const std::string& name, const Sparsity& sp, casadi_int p, casadi_int r);
1067
+
1068
+ /** \brief Create a vector of length r of vectors of length p
1069
+
1070
+ * with nrow-by-ncol symbolic primitives
1071
+
1072
+ \identifier{1dg} */
1073
+ static std::vector<std::vector<MatType> >
1074
+ sym(const std::string& name, casadi_int nrow, casadi_int ncol, casadi_int p, casadi_int r) {
1075
+ return sym(name, Sparsity::dense(nrow, ncol), p, r);
1076
+ }
1077
+ ///@}
1078
+
1079
+ ///@{
1080
+ /** \brief Create a dense matrix or a matrix with specified sparsity with all entries zero
1081
+
1082
+ \identifier{1dh} */
1083
+ static MatType zeros(casadi_int nrow=1, casadi_int ncol=1) {
1084
+ return zeros(Sparsity::dense(nrow, ncol));
1085
+ }
1086
+ static MatType zeros(const Sparsity& sp) { return MatType(sp, 0, false);}
1087
+ static MatType zeros(const std::pair<casadi_int, casadi_int>& rc) {
1088
+ return zeros(rc.first, rc.second);
1089
+ }
1090
+ ///@}
1091
+
1092
+ ///@{
1093
+ /** \brief Create a dense matrix or a matrix with specified sparsity with all entries one
1094
+
1095
+ \identifier{1di} */
1096
+ static MatType ones(casadi_int nrow=1, casadi_int ncol=1) {
1097
+ return ones(Sparsity::dense(nrow, ncol));
1098
+ }
1099
+ static MatType ones(const Sparsity& sp) { return MatType(sp, 1, false);}
1100
+ static MatType ones(const std::pair<casadi_int, casadi_int>& rc) {
1101
+ return ones(rc.first, rc.second);
1102
+ }
1103
+ ///@}
1104
+ };
1105
+
1106
+ // Throw informative error message
1107
+ #define CASADI_THROW_ERROR(FNAME, WHAT) \
1108
+ throw CasadiException("Error in " + MatType::type_name() \
1109
+ + "::" FNAME " at " + CASADI_WHERE + ":\n" + std::string(WHAT));
1110
+
1111
+ #ifndef SWIG
1112
+ // Implementations
1113
+ template<typename MatType>
1114
+ const Sparsity& GenericMatrix<MatType>::sparsity() const {
1115
+ return self().sparsity();
1116
+ }
1117
+
1118
+ template<typename MatType>
1119
+ casadi_int GenericMatrix<MatType>::nnz() const {
1120
+ return sparsity().nnz();
1121
+ }
1122
+
1123
+ template<typename MatType>
1124
+ casadi_int GenericMatrix<MatType>::nnz_lower() const {
1125
+ return sparsity().nnz_lower();
1126
+ }
1127
+
1128
+ template<typename MatType>
1129
+ casadi_int GenericMatrix<MatType>::nnz_upper() const {
1130
+ return sparsity().nnz_upper();
1131
+ }
1132
+
1133
+ template<typename MatType>
1134
+ casadi_int GenericMatrix<MatType>::nnz_diag() const {
1135
+ return sparsity().nnz_diag();
1136
+ }
1137
+
1138
+ template<typename MatType>
1139
+ casadi_int GenericMatrix<MatType>::numel() const {
1140
+ return sparsity().numel();
1141
+ }
1142
+
1143
+ template<typename MatType>
1144
+ casadi_int GenericMatrix<MatType>::size1() const {
1145
+ return sparsity().size1();
1146
+ }
1147
+
1148
+ template<typename MatType>
1149
+ casadi_int GenericMatrix<MatType>::size2() const {
1150
+ return sparsity().size2();
1151
+ }
1152
+
1153
+ template<typename MatType>
1154
+ std::pair<casadi_int, casadi_int> GenericMatrix<MatType>::size() const {
1155
+ return sparsity().size();
1156
+ }
1157
+
1158
+ template<typename MatType>
1159
+ casadi_int GenericMatrix<MatType>::size(casadi_int axis) const {
1160
+ return sparsity().size(axis);
1161
+ }
1162
+
1163
+ template<typename MatType>
1164
+ std::string GenericMatrix<MatType>::dim(bool with_nz) const {
1165
+ return sparsity().dim(with_nz);
1166
+ }
1167
+
1168
+ template<typename MatType>
1169
+ bool GenericMatrix<MatType>::is_scalar(bool scalar_and_dense) const {
1170
+ return sparsity().is_scalar(scalar_and_dense);
1171
+ }
1172
+
1173
+ #endif // SWIG
1174
+
1175
+ template<typename MatType>
1176
+ std::vector<MatType> GenericMatrix<MatType>::sym(const std::string& name,
1177
+ const Sparsity& sp, casadi_int p) {
1178
+ std::vector<MatType> ret(p);
1179
+ std::stringstream ss;
1180
+ for (casadi_int k=0; k<p; ++k) {
1181
+ ss.str("");
1182
+ ss << name << k;
1183
+ ret[k] = sym(ss.str(), sp);
1184
+ }
1185
+ return ret;
1186
+ }
1187
+
1188
+ template<typename MatType>
1189
+ std::vector<std::vector<MatType> > GenericMatrix<MatType>::sym(const std::string& name,
1190
+ const Sparsity& sp, casadi_int p,
1191
+ casadi_int r) {
1192
+ std::vector<std::vector<MatType> > ret(r);
1193
+ for (casadi_int k=0; k<r; ++k) {
1194
+ std::stringstream ss;
1195
+ ss << name << "_" << k;
1196
+ ret[k] = sym(ss.str(), sp, p);
1197
+ }
1198
+ return ret;
1199
+ }
1200
+
1201
+ template<typename MatType>
1202
+ MatType GenericMatrix<MatType>::linspace(const MatType& a, const MatType& b, casadi_int nsteps) {
1203
+ std::vector<MatType> ret(nsteps);
1204
+ ret[0] = a;
1205
+ MatType step = (b-a)/static_cast<MatType>(nsteps-1);
1206
+
1207
+ for (casadi_int i=1; i<nsteps-1; ++i)
1208
+ ret[i] = a + i * step;
1209
+
1210
+ ret[nsteps-1] = b;
1211
+ return vertcat(ret);
1212
+ }
1213
+
1214
+ template<typename MatType>
1215
+ MatType GenericMatrix<MatType>::cross(const MatType& a, const MatType& b, casadi_int dim) {
1216
+ casadi_assert(a.size1()==b.size1() && a.size2()==b.size2(),
1217
+ "cross(a, b): Inconsistent dimensions. Dimension of a ("
1218
+ + a.dim() + " ) must equal that of b (" + b.dim() + ").");
1219
+
1220
+ casadi_assert(a.size1()==3 || a.size2()==3,
1221
+ "cross(a, b): One of the dimensions of a should have length 3, but got "
1222
+ + a.dim() + ".");
1223
+ casadi_assert(dim==-1 || dim==1 || dim==2,
1224
+ "cross(a, b, dim): Dim must be 1, 2 or -1 (automatic).");
1225
+
1226
+ std::vector<MatType> ret(3);
1227
+
1228
+ bool t = a.size1()==3;
1229
+
1230
+ if (dim==1) t = true;
1231
+ if (dim==2) t = false;
1232
+
1233
+ MatType a1 = t ? a(0, Slice()) : a(Slice(), 0);
1234
+ MatType a2 = t ? a(1, Slice()) : a(Slice(), 1);
1235
+ MatType a3 = t ? a(2, Slice()) : a(Slice(), 2);
1236
+
1237
+ MatType b1 = t ? b(0, Slice()) : b(Slice(), 0);
1238
+ MatType b2 = t ? b(1, Slice()) : b(Slice(), 1);
1239
+ MatType b3 = t ? b(2, Slice()) : b(Slice(), 2);
1240
+
1241
+ ret[0] = a2*b3-a3*b2;
1242
+ ret[1] = a3*b1-a1*b3;
1243
+ ret[2] = a1*b2-a2*b1;
1244
+
1245
+ return t ? vertcat(ret) : horzcat(ret);
1246
+ }
1247
+
1248
+ double CASADI_EXPORT index_interp1d(const std::vector<double>& x, double xq,
1249
+ bool equidistant=false);
1250
+
1251
+ template<typename MatType>
1252
+ MatType GenericMatrix<MatType>::interp1d(const std::vector<double>& x, const MatType& v,
1253
+ const std::vector<double>& xq, const std::string& mode, bool equidistant) {
1254
+
1255
+ bool mode_floor = mode == "floor";
1256
+ bool mode_ceil = mode == "ceil";
1257
+
1258
+ casadi_assert_dev(is_increasing(x));
1259
+
1260
+ casadi_assert(x.size()==v.size1(),
1261
+ "interp1d(x, v, xq): dimensions mismatch. v expected to have " + str(x.size()) + " rows,"
1262
+ " but got " + str(v.size1()) + " instead.");
1263
+
1264
+ // Need at least two elements
1265
+ casadi_assert(x.size()>=2, "interp1d(x, v, xq): x must be at least length 2.");
1266
+
1267
+ // Vectors to compose a sparse matrix
1268
+ std::vector<double> val;
1269
+ std::vector<casadi_int> colind(1, 0);
1270
+ std::vector<casadi_int> row;
1271
+
1272
+ // Number of nonzeros in to-be composed matrix
1273
+ casadi_int nnz = 0;
1274
+ for (casadi_int i=0;i<xq.size();++i) {
1275
+ // Obtain index corresponding to xq[i]
1276
+ double ind = index_interp1d(x, xq[i], equidistant);
1277
+
1278
+ if (mode_floor) ind = floor(ind);
1279
+ if (mode_ceil) ind = ceil(ind);
1280
+
1281
+ // Split into integer and fractional part
1282
+ double int_partd;
1283
+ double frac_part = modf(ind, &int_partd);
1284
+ casadi_int int_part = static_cast<casadi_int>(int_partd);
1285
+
1286
+ if (frac_part==0) {
1287
+ // Create a single entry
1288
+ val.push_back(1);
1289
+ row.push_back(int_part);
1290
+ nnz+=1;
1291
+ colind.push_back(nnz);
1292
+ } else {
1293
+ // Create a double entry
1294
+ val.push_back(1-frac_part);
1295
+ val.push_back(frac_part);
1296
+ row.push_back(int_part);
1297
+ row.push_back(int_part+1);
1298
+ nnz+=2;
1299
+ colind.push_back(nnz);
1300
+ }
1301
+ }
1302
+
1303
+ // Construct sparsity for composed matrix
1304
+ Sparsity sp(x.size(), xq.size() , colind, row);
1305
+
1306
+ return MatType::mtimes(MatType(sp, val).T(), v);
1307
+
1308
+ }
1309
+
1310
+ template<typename MatType>
1311
+ MatType GenericMatrix<MatType>::skew(const MatType& a) {
1312
+ casadi_assert(a.is_vector() && (a.size1()==3 || a.size2()==3),
1313
+ "skew(a): Expecting 3-vector, got " + a.dim() + ".");
1314
+
1315
+ MatType x = a(0);
1316
+ MatType y = a(1);
1317
+ MatType z = a(2);
1318
+ return blockcat(std::vector< std::vector<MatType> >({{0, -z, y}, {z, 0, -x}, {-y, x, 0}}));
1319
+ }
1320
+
1321
+ template<typename MatType>
1322
+ MatType GenericMatrix<MatType>::inv_skew(const MatType& a) {
1323
+ casadi_assert(a.size1()==3 && a.size2()==3,
1324
+ "inv_skew(a): Expecting 3-by-3 matrix, got " + a.dim() + ".");
1325
+
1326
+ return 0.5*vertcat(std::vector<MatType>({a(2, 1)-a(1, 2), a(0, 2)-a(2, 0), a(1, 0)-a(0, 1)}));
1327
+ }
1328
+
1329
+
1330
+ template<typename MatType>
1331
+ MatType GenericMatrix<MatType>::tril2symm(const MatType& x) {
1332
+ casadi_assert(x.is_square(),
1333
+ "Shape error in tril2symm. Expecting square shape but got " + x.dim());
1334
+ casadi_assert(x.nnz_upper()-x.nnz_diag()==0,
1335
+ "Sparsity error in tril2symm. Found above-diagonal entries in argument: " + x.dim());
1336
+ return x + x.T() - diag(diag(x));
1337
+ }
1338
+
1339
+ template<typename MatType>
1340
+ MatType GenericMatrix<MatType>::repsum(const MatType& x, casadi_int n, casadi_int m) {
1341
+ casadi_assert_dev(x.size1() % n==0);
1342
+ casadi_assert_dev(x.size2() % m==0);
1343
+ std::vector< std::vector< MatType> > s =
1344
+ blocksplit(x, x.size1()/n, x.size2()/m);
1345
+ MatType sum = 0;
1346
+ for (casadi_int i=0;i<s.size();++i) {
1347
+ for (casadi_int j=0;j<s[i].size();++j) {
1348
+ sum = sum + s[i][j];
1349
+ }
1350
+ }
1351
+ return sum;
1352
+ }
1353
+
1354
+ template<typename MatType>
1355
+ MatType GenericMatrix<MatType>::triu2symm(const MatType& x) {
1356
+ casadi_assert(x.is_square(),
1357
+ "Shape error in triu2symm. Expecting square shape but got " + x.dim());
1358
+ casadi_assert(x.nnz_lower()-x.nnz_diag()==0,
1359
+ "Sparsity error in triu2symm. Found below-diagonal entries in argument: " + x.dim());
1360
+ return x + x.T() - diag(diag(x));
1361
+ }
1362
+
1363
+ template<typename MatType>
1364
+ MatType GenericMatrix<MatType>::bilin(const MatType& A, const MatType& x,
1365
+ const MatType& y) {
1366
+ // Check/correct x
1367
+ casadi_assert_dev(x.is_vector());
1368
+ if (!x.is_column()) return bilin(A, x.T(), y);
1369
+ if (!x.is_dense()) return bilin(A, densify(x), y);
1370
+
1371
+ // Check/correct y
1372
+ casadi_assert_dev(y.is_vector());
1373
+ if (!y.is_column()) return bilin(A, x, y.T());
1374
+ if (!y.is_dense()) return bilin(A, x, densify(y));
1375
+
1376
+ // Assert dimensions
1377
+ casadi_assert(x.size1()==A.size1() && y.size1()==A.size2(),
1378
+ "Dimension mismatch. Got x.size1() = " + str(x.size1())
1379
+ + " and y.size1() = " + str(y.size1()) + " but A.size() = " + str(A.size()));
1380
+
1381
+ // Call the class specific method
1382
+ return MatType::_bilin(A, x, y);
1383
+ }
1384
+
1385
+ template<typename MatType>
1386
+ MatType GenericMatrix<MatType>::rank1(const MatType& A, const MatType& alpha,
1387
+ const MatType& x, const MatType& y) {
1388
+ // Check/correct x
1389
+ casadi_assert_dev(x.is_vector());
1390
+ if (!x.is_column()) return rank1(A, alpha, x.T(), y);
1391
+ if (!x.is_dense()) return rank1(A, alpha, densify(x), y);
1392
+
1393
+ // Check/correct y
1394
+ casadi_assert_dev(y.is_vector());
1395
+ if (!y.is_column()) return rank1(A, alpha, x, y.T());
1396
+ if (!y.is_dense()) return rank1(A, alpha, x, densify(y));
1397
+
1398
+ // Check alpha, quick return
1399
+ casadi_assert_dev(alpha.is_scalar());
1400
+ if (!alpha.is_dense()) return A;
1401
+
1402
+ // Assert dimensions
1403
+ casadi_assert(x.size1()==A.size1() && y.size1()==A.size2(),
1404
+ "Dimension mismatch. Got x.size1() = " + str(x.size1())
1405
+ + " and y.size1() = " + str(y.size1())
1406
+ + " but A.size() = " + str(A.size()));
1407
+
1408
+ // Call the class specific method
1409
+ return MatType::_rank1(A, alpha, x, y);
1410
+ }
1411
+
1412
+ template<typename MatType>
1413
+ MatType GenericMatrix<MatType>::logsumexp(const MatType& x) {
1414
+ casadi_assert(x.is_dense(), "Argument must be dense");
1415
+ casadi_assert(x.is_column(), "Argument must be column vector");
1416
+ // Call the class specific method
1417
+ return MatType::_logsumexp(x);
1418
+ }
1419
+
1420
+ template<typename MatType>
1421
+ MatType GenericMatrix<MatType>::jtimes(const MatType &ex, const MatType &arg,
1422
+ const MatType &v, bool tr, const Dict& opts) {
1423
+ try {
1424
+ // Assert consistent input dimensions
1425
+ if (tr) {
1426
+ casadi_assert(v.size1() == ex.size1() && v.size2() % ex.size2() == 0,
1427
+ "'v' has inconsistent dimensions: "
1428
+ " v " + v.dim(false) + ", ex " + ex.dim(false) + ".");
1429
+ } else {
1430
+ casadi_assert(v.size1() == arg.size1() && v.size2() % arg.size2() == 0,
1431
+ "'v' has inconsistent dimensions: "
1432
+ " v " + v.dim(false) + ", arg " + arg.dim(false) + ".");
1433
+ }
1434
+
1435
+ // Quick return if no seeds
1436
+ if (v.is_empty()) return MatType(tr ? arg.size1() : ex.size1(), 0);
1437
+
1438
+ // Split up the seed into its components
1439
+ std::vector<MatType> w = horzsplit(v, tr ? ex.size2() : arg.size2());
1440
+
1441
+ // Seeds as a vector of vectors
1442
+ std::vector<std::vector<MatType> > ww(w.size());
1443
+ for (casadi_int i=0; i<w.size(); ++i) ww[i] = {w[i]};
1444
+
1445
+ // Calculate directional derivatives
1446
+ if (tr) {
1447
+ ww = reverse({ex}, {arg}, ww, opts);
1448
+ } else {
1449
+ ww = forward({ex}, {arg}, ww, opts);
1450
+ }
1451
+
1452
+ // Get results
1453
+ for (casadi_int i=0; i<w.size(); ++i) w[i] = ww[i][0];
1454
+ return horzcat(w);
1455
+ } catch (std::exception& e) {
1456
+ CASADI_THROW_ERROR("jtimes", e.what());
1457
+ }
1458
+ }
1459
+
1460
+ template<typename MatType>
1461
+ MatType GenericMatrix<MatType>::gradient(const MatType &ex, const MatType &arg,
1462
+ const Dict& opts) {
1463
+ try {
1464
+ casadi_assert(ex.is_scalar(),
1465
+ "'gradient' only defined for scalar outputs: Use 'jacobian' instead.");
1466
+ return project(jtimes(ex, arg, MatType::ones(ex.sparsity()), true, opts), arg.sparsity());
1467
+ } catch (std::exception& e) {
1468
+ CASADI_THROW_ERROR("gradient", e.what());
1469
+ }
1470
+ }
1471
+
1472
+ template<typename MatType>
1473
+ MatType GenericMatrix<MatType>::tangent(const MatType &ex, const MatType &arg,
1474
+ const Dict& opts) {
1475
+ try {
1476
+ casadi_assert(arg.is_scalar(),
1477
+ "'tangent' only defined for scalar inputs: Use 'jacobian' instead.");
1478
+ return project(jtimes(ex, arg, MatType::ones(arg.sparsity()), false, opts), ex.sparsity());
1479
+ } catch (std::exception& e) {
1480
+ CASADI_THROW_ERROR("tangent", e.what());
1481
+ }
1482
+ }
1483
+
1484
+ template<typename MatType>
1485
+ MatType GenericMatrix<MatType>::
1486
+ linearize(const MatType& f, const MatType& x, const MatType& x0, const Dict& opts) {
1487
+ MatType x_lin = MatType::sym("x_lin", x.sparsity());
1488
+ // mismatching dimensions
1489
+ if (x0.size() != x.size()) {
1490
+ // Scalar x0 is ok
1491
+ if (x0.sparsity().is_scalar()) {
1492
+ return linearize(f, x, MatType(x.sparsity(), x0));
1493
+ }
1494
+ casadi_error("Dimension mismatch in 'linearize'");
1495
+ }
1496
+ return substitute(f + jtimes(f, x, x_lin, false, opts),
1497
+ MatType::vertcat({x_lin, x}), MatType::vertcat({x, x0}));
1498
+ }
1499
+
1500
+ template<typename MatType>
1501
+ MatType GenericMatrix<MatType>::mpower(const MatType& a,
1502
+ const MatType& b) {
1503
+ if (a.is_scalar() && b.is_scalar()) return pow(a, b);
1504
+ casadi_assert(a.is_square() && b.is_constant() && b.is_scalar(),
1505
+ "Not Implemented");
1506
+ double bv = static_cast<double>(b);
1507
+ casadi_int N = static_cast<casadi_int>(bv);
1508
+ casadi_assert(bv-static_cast<double>(N)==0, "mpower only defined for integer powers.");
1509
+ casadi_assert(bv==N, "Not Implemented");
1510
+ if (N<0) return inv(mpower(a, -N));
1511
+ if (N==0) return MatType::eye(a.size1());
1512
+ if (N==1) return a;
1513
+ if (N % 2 == 0) {
1514
+ MatType h = mpower(a, N/2); // NOLINT
1515
+ return MatType::mtimes(h, h);
1516
+ } else {
1517
+ return MatType::mtimes(mpower(a, N-1), a);
1518
+ }
1519
+ }
1520
+
1521
+ template<typename MatType>
1522
+ MatType GenericMatrix<MatType>::soc(const MatType& x,
1523
+ const MatType& y) {
1524
+ casadi_assert(y.is_scalar(), "y needs to be scalar. Got " + y.dim() + ".");
1525
+ casadi_assert(x.is_vector(), "x needs to be a vector. Got " + x.dim() + ".");
1526
+
1527
+ MatType x_col = x.is_column() ? x : x.T();
1528
+
1529
+ x_col = x_col.nz(Slice()); // NOLINT
1530
+
1531
+ casadi_int n = x_col.numel();
1532
+ return blockcat(y*MatType::eye(n), x_col, x_col.T(), y);
1533
+ }
1534
+
1535
+ template<typename MatType>
1536
+ bool GenericMatrix<MatType>::is_linear(const MatType &expr, const MatType &var) {
1537
+ return !any(MatType::which_depends(expr, var, 2, true));
1538
+ }
1539
+
1540
+ template<typename MatType>
1541
+ bool GenericMatrix<MatType>::is_quadratic(const MatType &expr, const MatType &var) {
1542
+ return is_linear(gradient(expr, var), var);
1543
+ }
1544
+
1545
+ template<typename MatType>
1546
+ void GenericMatrix<MatType>::quadratic_coeff(const MatType &expr, const MatType &var,
1547
+ MatType& A, MatType& b, MatType& c, bool check) {
1548
+ casadi_assert(expr.is_scalar(), "'quadratic_coeff' only defined for scalar expressions.");
1549
+ A = hessian(expr, var);
1550
+ b = substitute(jacobian(expr, var), var, 0).T();
1551
+ if (check)
1552
+ casadi_assert(!depends_on(A, var), "'quadratic_coeff' called on non-quadratic expression.");
1553
+ c = substitute(expr, var, 0);
1554
+ }
1555
+
1556
+ template<typename MatType>
1557
+ void GenericMatrix<MatType>::linear_coeff(const MatType &expr, const MatType &var,
1558
+ MatType& A, MatType& b, bool check) {
1559
+ casadi_assert(expr.is_vector(), "'linear_coeff' only defined for vector expressions.");
1560
+ if (check)
1561
+ casadi_assert(is_linear(expr, var), "'linear_coeff' called on non-linear expression.");
1562
+ A = substitute(jacobian(expr, var), var, 0);
1563
+ b = vec(substitute(expr, var, 0));
1564
+ }
1565
+
1566
+ template<typename MatType>
1567
+ MatType GenericMatrix<MatType>::diff(const MatType& x, casadi_int n, casadi_int axis) {
1568
+ casadi_assert(axis==-1 || axis==0 || axis==1, "Axis argument invalid");
1569
+ casadi_assert(n>=1, "n argument invalid");
1570
+
1571
+ MatType ret = x;
1572
+ for (casadi_int i=0;i<n;++i) {
1573
+ // Matlab's special case
1574
+ if (axis==-1 && ret.is_scalar()) return MatType();
1575
+
1576
+ casadi_int local_axis = (axis==-1) ? ret.is_row() : axis;
1577
+ if (local_axis==0) {
1578
+ if (ret.size1()<=1) {
1579
+ ret = MatType::zeros(0, ret.size2());
1580
+ } else {
1581
+ ret = ret(Slice(1, ret.size1()), Slice())-ret(Slice(0, ret.size1()-1), Slice());
1582
+ }
1583
+ } else {
1584
+ if (ret.size2()<=1) {
1585
+ ret = MatType::zeros(ret.size1(), 0);
1586
+ } else {
1587
+ ret = ret(Slice(), Slice(1, ret.size2()))-ret(Slice(), Slice(0, ret.size2()-1));
1588
+ }
1589
+ }
1590
+ }
1591
+ return ret;
1592
+ }
1593
+
1594
+ #undef CASADI_THROW_ERROR
1595
+
1596
+ } // namespace casadi
1597
+
1598
+ #endif // CASADI_GENERIC_MATRIX_HPP