casadi 3.6.7__cp313-none-manylinux2014_i686.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1693) hide show
  1. casadi/__init__.py +92 -0
  2. casadi/_casadi.so +0 -0
  3. casadi/casadi-cli +0 -0
  4. casadi/casadi.py +50976 -0
  5. casadi/cbc +0 -0
  6. casadi/clp +0 -0
  7. casadi/cmake/alpaqa/alpaqaConfig.cmake +24 -0
  8. casadi/cmake/alpaqa/alpaqaConfigVersion.cmake +70 -0
  9. casadi/cmake/alpaqa/alpaqaTargets-release.cmake +29 -0
  10. casadi/cmake/alpaqa/alpaqaTargets.cmake +131 -0
  11. casadi/cmake/casadi-config-version.cmake +11 -0
  12. casadi/cmake/casadi-config.cmake +8 -0
  13. casadi/cmake/casadi-targets-release.cmake +19 -0
  14. casadi/cmake/casadi-targets.cmake +107 -0
  15. casadi/cmake/highs/highs-config.cmake +17 -0
  16. casadi/cmake/highs/highs-targets-release.cmake +28 -0
  17. casadi/cmake/highs/highs-targets.cmake +117 -0
  18. casadi/cmake/osqp/osqp-config.cmake +1 -0
  19. casadi/cmake/osqp/osqp-targets-noconfig.cmake +29 -0
  20. casadi/cmake/osqp/osqp-targets.cmake +109 -0
  21. casadi/cmake/proxsuite/find-external/Simde/FindSimde.cmake +39 -0
  22. casadi/cmake/proxsuite/proxsuiteConfig.cmake +177 -0
  23. casadi/cmake/proxsuite/proxsuiteConfigVersion.cmake +70 -0
  24. casadi/cmake/proxsuite/proxsuiteTargets.cmake +115 -0
  25. casadi/cmake/qdldl/qdldl-config.cmake +1 -0
  26. casadi/cmake/qdldl/qdldl-targets-noconfig.cmake +29 -0
  27. casadi/cmake/qdldl/qdldl-targets.cmake +109 -0
  28. casadi/cmake/sleqp/sleqp-config-version.cmake +70 -0
  29. casadi/cmake/sleqp/sleqp-config.cmake +1 -0
  30. casadi/cmake/sleqp/sleqp-targets-release.cmake +20 -0
  31. casadi/cmake/sleqp/sleqp-targets.cmake +102 -0
  32. casadi/cmake/trlib/trlib-config-release.cmake +19 -0
  33. casadi/cmake/trlib/trlib-config-version.cmake +88 -0
  34. casadi/cmake/trlib/trlib-config.cmake +107 -0
  35. casadi/highs +0 -0
  36. casadi/include/casadi/casadi.hpp +31 -0
  37. casadi/include/casadi/casadi.i +4691 -0
  38. casadi/include/casadi/casadi_c.h +138 -0
  39. casadi/include/casadi/casadi_numpy.hpp +97 -0
  40. casadi/include/casadi/config.h +46 -0
  41. casadi/include/casadi/core/calculus.hpp +1750 -0
  42. casadi/include/casadi/core/callback.hpp +226 -0
  43. casadi/include/casadi/core/casadi_common.hpp +318 -0
  44. casadi/include/casadi/core/casadi_enum.hpp +90 -0
  45. casadi/include/casadi/core/casadi_export.h +42 -0
  46. casadi/include/casadi/core/casadi_interrupt.hpp +83 -0
  47. casadi/include/casadi/core/casadi_limits.hpp +104 -0
  48. casadi/include/casadi/core/casadi_logger.hpp +134 -0
  49. casadi/include/casadi/core/casadi_meta.hpp +107 -0
  50. casadi/include/casadi/core/casadi_misc.hpp +1001 -0
  51. casadi/include/casadi/core/casadi_types.hpp +66 -0
  52. casadi/include/casadi/core/code_generator.hpp +975 -0
  53. casadi/include/casadi/core/conic.hpp +213 -0
  54. casadi/include/casadi/core/core.hpp +70 -0
  55. casadi/include/casadi/core/dae_builder.hpp +723 -0
  56. casadi/include/casadi/core/dm.hpp +87 -0
  57. casadi/include/casadi/core/dm_fwd.hpp +39 -0
  58. casadi/include/casadi/core/dple.hpp +138 -0
  59. casadi/include/casadi/core/exception.hpp +167 -0
  60. casadi/include/casadi/core/expm.hpp +84 -0
  61. casadi/include/casadi/core/external.hpp +70 -0
  62. casadi/include/casadi/core/fmu.hpp +224 -0
  63. casadi/include/casadi/core/function.hpp +1347 -0
  64. casadi/include/casadi/core/generic_expression.hpp +760 -0
  65. casadi/include/casadi/core/generic_matrix.hpp +1598 -0
  66. casadi/include/casadi/core/generic_type.hpp +311 -0
  67. casadi/include/casadi/core/global_options.hpp +97 -0
  68. casadi/include/casadi/core/im.hpp +52 -0
  69. casadi/include/casadi/core/im_fwd.hpp +35 -0
  70. casadi/include/casadi/core/importer.hpp +221 -0
  71. casadi/include/casadi/core/integration_tools.hpp +292 -0
  72. casadi/include/casadi/core/integrator.hpp +256 -0
  73. casadi/include/casadi/core/interpolant.hpp +163 -0
  74. casadi/include/casadi/core/linsol.hpp +171 -0
  75. casadi/include/casadi/core/matrix_decl.hpp +1352 -0
  76. casadi/include/casadi/core/matrix_fwd.hpp +37 -0
  77. casadi/include/casadi/core/mx.hpp +953 -0
  78. casadi/include/casadi/core/nlp_builder.hpp +162 -0
  79. casadi/include/casadi/core/nlp_tools.hpp +124 -0
  80. casadi/include/casadi/core/nlpsol.hpp +234 -0
  81. casadi/include/casadi/core/nonzeros.hpp +111 -0
  82. casadi/include/casadi/core/options.hpp +119 -0
  83. casadi/include/casadi/core/optistack.hpp +670 -0
  84. casadi/include/casadi/core/polynomial.hpp +126 -0
  85. casadi/include/casadi/core/printable.hpp +73 -0
  86. casadi/include/casadi/core/rootfinder.hpp +176 -0
  87. casadi/include/casadi/core/runtime/casadi_axpy.hpp +8 -0
  88. casadi/include/casadi/core/runtime/casadi_bfgs.hpp +49 -0
  89. casadi/include/casadi/core/runtime/casadi_bilin.hpp +42 -0
  90. casadi/include/casadi/core/runtime/casadi_bound_consistency.hpp +51 -0
  91. casadi/include/casadi/core/runtime/casadi_cache.hpp +59 -0
  92. casadi/include/casadi/core/runtime/casadi_clear.hpp +27 -0
  93. casadi/include/casadi/core/runtime/casadi_clip_max.hpp +33 -0
  94. casadi/include/casadi/core/runtime/casadi_clip_min.hpp +33 -0
  95. casadi/include/casadi/core/runtime/casadi_convexify.hpp +182 -0
  96. casadi/include/casadi/core/runtime/casadi_copy.hpp +31 -0
  97. casadi/include/casadi/core/runtime/casadi_cvx.hpp +463 -0
  98. casadi/include/casadi/core/runtime/casadi_de_boor.hpp +36 -0
  99. casadi/include/casadi/core/runtime/casadi_dense_lsqr.hpp +247 -0
  100. casadi/include/casadi/core/runtime/casadi_densify.hpp +48 -0
  101. casadi/include/casadi/core/runtime/casadi_dot.hpp +27 -0
  102. casadi/include/casadi/core/runtime/casadi_feasiblesqpmethod.hpp +208 -0
  103. casadi/include/casadi/core/runtime/casadi_file_slurp.hpp +32 -0
  104. casadi/include/casadi/core/runtime/casadi_fill.hpp +27 -0
  105. casadi/include/casadi/core/runtime/casadi_finite_diff.hpp +345 -0
  106. casadi/include/casadi/core/runtime/casadi_flip.hpp +33 -0
  107. casadi/include/casadi/core/runtime/casadi_getu.hpp +35 -0
  108. casadi/include/casadi/core/runtime/casadi_iamax.hpp +36 -0
  109. casadi/include/casadi/core/runtime/casadi_interpn.hpp +39 -0
  110. casadi/include/casadi/core/runtime/casadi_interpn_grad.hpp +72 -0
  111. casadi/include/casadi/core/runtime/casadi_interpn_interpolate.hpp +43 -0
  112. casadi/include/casadi/core/runtime/casadi_interpn_weights.hpp +39 -0
  113. casadi/include/casadi/core/runtime/casadi_ipqp.hpp +868 -0
  114. casadi/include/casadi/core/runtime/casadi_jac.hpp +186 -0
  115. casadi/include/casadi/core/runtime/casadi_kkt.hpp +67 -0
  116. casadi/include/casadi/core/runtime/casadi_kron.hpp +50 -0
  117. casadi/include/casadi/core/runtime/casadi_ldl.hpp +109 -0
  118. casadi/include/casadi/core/runtime/casadi_logsumexp.hpp +41 -0
  119. casadi/include/casadi/core/runtime/casadi_low.hpp +65 -0
  120. casadi/include/casadi/core/runtime/casadi_lsqr.hpp +247 -0
  121. casadi/include/casadi/core/runtime/casadi_masked_norm_inf.hpp +33 -0
  122. casadi/include/casadi/core/runtime/casadi_max_viol.hpp +37 -0
  123. casadi/include/casadi/core/runtime/casadi_mmax.hpp +28 -0
  124. casadi/include/casadi/core/runtime/casadi_mmin.hpp +29 -0
  125. casadi/include/casadi/core/runtime/casadi_mtimes.hpp +75 -0
  126. casadi/include/casadi/core/runtime/casadi_mv.hpp +46 -0
  127. casadi/include/casadi/core/runtime/casadi_mv_dense.hpp +39 -0
  128. casadi/include/casadi/core/runtime/casadi_nd_boor_dual_eval.hpp +127 -0
  129. casadi/include/casadi/core/runtime/casadi_nd_boor_eval.hpp +120 -0
  130. casadi/include/casadi/core/runtime/casadi_newton.hpp +66 -0
  131. casadi/include/casadi/core/runtime/casadi_nlp.hpp +289 -0
  132. casadi/include/casadi/core/runtime/casadi_norm_1.hpp +29 -0
  133. casadi/include/casadi/core/runtime/casadi_norm_2.hpp +24 -0
  134. casadi/include/casadi/core/runtime/casadi_norm_inf.hpp +28 -0
  135. casadi/include/casadi/core/runtime/casadi_norm_inf_mul.hpp +105 -0
  136. casadi/include/casadi/core/runtime/casadi_ocp_block.hpp +55 -0
  137. casadi/include/casadi/core/runtime/casadi_oracle.hpp +44 -0
  138. casadi/include/casadi/core/runtime/casadi_oracle_callback.hpp +39 -0
  139. casadi/include/casadi/core/runtime/casadi_polyval.hpp +29 -0
  140. casadi/include/casadi/core/runtime/casadi_project.hpp +39 -0
  141. casadi/include/casadi/core/runtime/casadi_qp.hpp +86 -0
  142. casadi/include/casadi/core/runtime/casadi_qr.hpp +272 -0
  143. casadi/include/casadi/core/runtime/casadi_qrqp.hpp +1239 -0
  144. casadi/include/casadi/core/runtime/casadi_rank1.hpp +40 -0
  145. casadi/include/casadi/core/runtime/casadi_regularize.hpp +73 -0
  146. casadi/include/casadi/core/runtime/casadi_runtime.hpp +318 -0
  147. casadi/include/casadi/core/runtime/casadi_scal.hpp +26 -0
  148. casadi/include/casadi/core/runtime/casadi_scaled_copy.hpp +31 -0
  149. casadi/include/casadi/core/runtime/casadi_sparsify.hpp +42 -0
  150. casadi/include/casadi/core/runtime/casadi_sparsity.hpp +24 -0
  151. casadi/include/casadi/core/runtime/casadi_sqpmethod.hpp +178 -0
  152. casadi/include/casadi/core/runtime/casadi_sum.hpp +31 -0
  153. casadi/include/casadi/core/runtime/casadi_sum_viol.hpp +37 -0
  154. casadi/include/casadi/core/runtime/casadi_swap.hpp +32 -0
  155. casadi/include/casadi/core/runtime/casadi_trans.hpp +35 -0
  156. casadi/include/casadi/core/runtime/casadi_tri_project.hpp +37 -0
  157. casadi/include/casadi/core/runtime/casadi_trilsolve.hpp +81 -0
  158. casadi/include/casadi/core/runtime/casadi_triusolve.hpp +81 -0
  159. casadi/include/casadi/core/runtime/casadi_vector_fmax.hpp +28 -0
  160. casadi/include/casadi/core/runtime/casadi_vector_fmin.hpp +28 -0
  161. casadi/include/casadi/core/runtime/casadi_vfmax.hpp +28 -0
  162. casadi/include/casadi/core/runtime/casadi_vfmin.hpp +28 -0
  163. casadi/include/casadi/core/runtime/shared.hpp +261 -0
  164. casadi/include/casadi/core/serializer.hpp +256 -0
  165. casadi/include/casadi/core/serializing_stream.hpp +329 -0
  166. casadi/include/casadi/core/shared_object.hpp +270 -0
  167. casadi/include/casadi/core/slice.hpp +149 -0
  168. casadi/include/casadi/core/sparsity.hpp +1495 -0
  169. casadi/include/casadi/core/sparsity_interface.hpp +745 -0
  170. casadi/include/casadi/core/submatrix.hpp +156 -0
  171. casadi/include/casadi/core/sx.hpp +203 -0
  172. casadi/include/casadi/core/sx_elem.hpp +351 -0
  173. casadi/include/casadi/core/sx_fwd.hpp +45 -0
  174. casadi/include/casadi/core/timing.hpp +98 -0
  175. casadi/include/casadi/core/tools.hpp +67 -0
  176. casadi/include/casadi/core/xml_file.hpp +93 -0
  177. casadi/include/casadi/core/xml_node.hpp +207 -0
  178. casadi/include/casadi/doc.i +58615 -0
  179. casadi/include/casadi/doc_merged.i +36123 -0
  180. casadi/include/casadi/mem.h +311 -0
  181. casadi/include/casadi/valgrind-casadi.supp +511 -0
  182. casadi/include/casadi/valgrind-python.supp +1416 -0
  183. casadi/include/coin-or/IpAlgBuilder.hpp +417 -0
  184. casadi/include/coin-or/IpAlgStrategy.hpp +201 -0
  185. casadi/include/coin-or/IpAlgTypes.hpp +64 -0
  186. casadi/include/coin-or/IpAugSystemSolver.hpp +212 -0
  187. casadi/include/coin-or/IpBlas.hpp +426 -0
  188. casadi/include/coin-or/IpCachedResults.hpp +897 -0
  189. casadi/include/coin-or/IpCompoundMatrix.hpp +423 -0
  190. casadi/include/coin-or/IpCompoundSymMatrix.hpp +348 -0
  191. casadi/include/coin-or/IpCompoundVector.hpp +395 -0
  192. casadi/include/coin-or/IpConvCheck.hpp +97 -0
  193. casadi/include/coin-or/IpDebug.hpp +167 -0
  194. casadi/include/coin-or/IpDenseVector.hpp +626 -0
  195. casadi/include/coin-or/IpDiagMatrix.hpp +158 -0
  196. casadi/include/coin-or/IpEqMultCalculator.hpp +76 -0
  197. casadi/include/coin-or/IpException.hpp +156 -0
  198. casadi/include/coin-or/IpExpansionMatrix.hpp +245 -0
  199. casadi/include/coin-or/IpGenTMatrix.hpp +290 -0
  200. casadi/include/coin-or/IpHessianUpdater.hpp +73 -0
  201. casadi/include/coin-or/IpIdentityMatrix.hpp +167 -0
  202. casadi/include/coin-or/IpIpoptAlg.hpp +257 -0
  203. casadi/include/coin-or/IpIpoptApplication.hpp +367 -0
  204. casadi/include/coin-or/IpIpoptCalculatedQuantities.hpp +1009 -0
  205. casadi/include/coin-or/IpIpoptData.hpp +966 -0
  206. casadi/include/coin-or/IpIpoptNLP.hpp +328 -0
  207. casadi/include/coin-or/IpIterateInitializer.hpp +68 -0
  208. casadi/include/coin-or/IpIteratesVector.hpp +840 -0
  209. casadi/include/coin-or/IpIterationOutput.hpp +78 -0
  210. casadi/include/coin-or/IpJournalist.hpp +573 -0
  211. casadi/include/coin-or/IpLapack.hpp +227 -0
  212. casadi/include/coin-or/IpLibraryLoader.hpp +76 -0
  213. casadi/include/coin-or/IpLineSearch.hpp +106 -0
  214. casadi/include/coin-or/IpLinearSolvers.h +46 -0
  215. casadi/include/coin-or/IpMatrix.hpp +434 -0
  216. casadi/include/coin-or/IpMuUpdate.hpp +77 -0
  217. casadi/include/coin-or/IpNLP.hpp +306 -0
  218. casadi/include/coin-or/IpNLPScaling.hpp +582 -0
  219. casadi/include/coin-or/IpObserver.hpp +422 -0
  220. casadi/include/coin-or/IpOptionsList.hpp +412 -0
  221. casadi/include/coin-or/IpOrigIpoptNLP.hpp +603 -0
  222. casadi/include/coin-or/IpPDSystemSolver.hpp +137 -0
  223. casadi/include/coin-or/IpReferenced.hpp +262 -0
  224. casadi/include/coin-or/IpRegOptions.hpp +1152 -0
  225. casadi/include/coin-or/IpReturnCodes.h +23 -0
  226. casadi/include/coin-or/IpReturnCodes.hpp +18 -0
  227. casadi/include/coin-or/IpReturnCodes.inc +71 -0
  228. casadi/include/coin-or/IpReturnCodes_inc.h +45 -0
  229. casadi/include/coin-or/IpScaledMatrix.hpp +291 -0
  230. casadi/include/coin-or/IpSearchDirCalculator.hpp +72 -0
  231. casadi/include/coin-or/IpSmartPtr.hpp +865 -0
  232. casadi/include/coin-or/IpSolveStatistics.hpp +210 -0
  233. casadi/include/coin-or/IpSparseSymLinearSolverInterface.hpp +260 -0
  234. casadi/include/coin-or/IpStdAugSystemSolver.cpp +555 -0
  235. casadi/include/coin-or/IpStdCInterface.h +428 -0
  236. casadi/include/coin-or/IpSumSymMatrix.hpp +186 -0
  237. casadi/include/coin-or/IpSymLinearSolver.hpp +141 -0
  238. casadi/include/coin-or/IpSymMatrix.hpp +167 -0
  239. casadi/include/coin-or/IpSymScaledMatrix.hpp +255 -0
  240. casadi/include/coin-or/IpSymTMatrix.hpp +275 -0
  241. casadi/include/coin-or/IpTNLP.hpp +820 -0
  242. casadi/include/coin-or/IpTNLPAdapter.hpp +648 -0
  243. casadi/include/coin-or/IpTNLPReducer.hpp +274 -0
  244. casadi/include/coin-or/IpTaggedObject.hpp +128 -0
  245. casadi/include/coin-or/IpTimedTask.hpp +218 -0
  246. casadi/include/coin-or/IpTimingStatistics.hpp +323 -0
  247. casadi/include/coin-or/IpTripletHelper.hpp +308 -0
  248. casadi/include/coin-or/IpTypes.h +81 -0
  249. casadi/include/coin-or/IpTypes.hpp +30 -0
  250. casadi/include/coin-or/IpUtils.hpp +166 -0
  251. casadi/include/coin-or/IpVector.hpp +892 -0
  252. casadi/include/coin-or/IpZeroSymMatrix.hpp +155 -0
  253. casadi/include/coin-or/IpoptConfig.h +45 -0
  254. casadi/include/coin-or/SensAlgorithm.hpp +114 -0
  255. casadi/include/coin-or/SensApplication.hpp +188 -0
  256. casadi/include/coin-or/SensBacksolver.hpp +36 -0
  257. casadi/include/coin-or/SensMeasurement.hpp +56 -0
  258. casadi/include/coin-or/SensPCalculator.hpp +137 -0
  259. casadi/include/coin-or/SensRegOp.hpp +21 -0
  260. casadi/include/coin-or/SensSchurData.hpp +182 -0
  261. casadi/include/coin-or/SensSchurDriver.hpp +118 -0
  262. casadi/include/coin-or/SensSimpleBacksolver.hpp +49 -0
  263. casadi/include/coin-or/SensStepCalc.hpp +85 -0
  264. casadi/include/coin-or/SensUtils.hpp +63 -0
  265. casadi/include/coin-or/metis/defs.h +161 -0
  266. casadi/include/coin-or/metis/macros.h +143 -0
  267. casadi/include/coin-or/metis/metis.h +37 -0
  268. casadi/include/coin-or/metis/proto.h +505 -0
  269. casadi/include/coin-or/metis/rename.h +418 -0
  270. casadi/include/coin-or/metis/struct.h +251 -0
  271. casadi/include/coin-or/mumps/dmumps_c.h +142 -0
  272. casadi/include/coin-or/mumps/mumps_c_types.h +72 -0
  273. casadi/include/coin-or/mumps/mumps_compat.h +27 -0
  274. casadi/include/coin-or/mumps/mumps_int_def.h +11 -0
  275. casadi/include/coin-or/mumps/mumps_mpi.h +67 -0
  276. casadi/include/daqp/api.h +46 -0
  277. casadi/include/daqp/auxiliary.h +29 -0
  278. casadi/include/daqp/bnb.h +32 -0
  279. casadi/include/daqp/codegen.h +18 -0
  280. casadi/include/daqp/constants.h +92 -0
  281. casadi/include/daqp/daqp.h +22 -0
  282. casadi/include/daqp/daqp_prox.h +18 -0
  283. casadi/include/daqp/factorization.h +18 -0
  284. casadi/include/daqp/types.h +161 -0
  285. casadi/include/daqp/utils.h +44 -0
  286. casadi/include/eigen3/Eigen/Cholesky +45 -0
  287. casadi/include/eigen3/Eigen/CholmodSupport +48 -0
  288. casadi/include/eigen3/Eigen/Core +384 -0
  289. casadi/include/eigen3/Eigen/Dense +7 -0
  290. casadi/include/eigen3/Eigen/Eigen +2 -0
  291. casadi/include/eigen3/Eigen/Eigenvalues +60 -0
  292. casadi/include/eigen3/Eigen/Geometry +59 -0
  293. casadi/include/eigen3/Eigen/Householder +29 -0
  294. casadi/include/eigen3/Eigen/IterativeLinearSolvers +48 -0
  295. casadi/include/eigen3/Eigen/Jacobi +32 -0
  296. casadi/include/eigen3/Eigen/KLUSupport +41 -0
  297. casadi/include/eigen3/Eigen/LU +47 -0
  298. casadi/include/eigen3/Eigen/MetisSupport +35 -0
  299. casadi/include/eigen3/Eigen/OrderingMethods +70 -0
  300. casadi/include/eigen3/Eigen/PaStiXSupport +49 -0
  301. casadi/include/eigen3/Eigen/PardisoSupport +35 -0
  302. casadi/include/eigen3/Eigen/QR +50 -0
  303. casadi/include/eigen3/Eigen/QtAlignedMalloc +39 -0
  304. casadi/include/eigen3/Eigen/SPQRSupport +34 -0
  305. casadi/include/eigen3/Eigen/SVD +50 -0
  306. casadi/include/eigen3/Eigen/Sparse +34 -0
  307. casadi/include/eigen3/Eigen/SparseCholesky +37 -0
  308. casadi/include/eigen3/Eigen/SparseCore +69 -0
  309. casadi/include/eigen3/Eigen/SparseLU +50 -0
  310. casadi/include/eigen3/Eigen/SparseQR +36 -0
  311. casadi/include/eigen3/Eigen/StdDeque +27 -0
  312. casadi/include/eigen3/Eigen/StdList +26 -0
  313. casadi/include/eigen3/Eigen/StdVector +27 -0
  314. casadi/include/eigen3/Eigen/SuperLUSupport +64 -0
  315. casadi/include/eigen3/Eigen/UmfPackSupport +40 -0
  316. casadi/include/eigen3/Eigen/src/Cholesky/LDLT.h +688 -0
  317. casadi/include/eigen3/Eigen/src/Cholesky/LLT.h +558 -0
  318. casadi/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h +99 -0
  319. casadi/include/eigen3/Eigen/src/CholmodSupport/CholmodSupport.h +682 -0
  320. casadi/include/eigen3/Eigen/src/Core/ArithmeticSequence.h +413 -0
  321. casadi/include/eigen3/Eigen/src/Core/Array.h +417 -0
  322. casadi/include/eigen3/Eigen/src/Core/ArrayBase.h +226 -0
  323. casadi/include/eigen3/Eigen/src/Core/ArrayWrapper.h +209 -0
  324. casadi/include/eigen3/Eigen/src/Core/Assign.h +90 -0
  325. casadi/include/eigen3/Eigen/src/Core/AssignEvaluator.h +1010 -0
  326. casadi/include/eigen3/Eigen/src/Core/Assign_MKL.h +178 -0
  327. casadi/include/eigen3/Eigen/src/Core/BandMatrix.h +353 -0
  328. casadi/include/eigen3/Eigen/src/Core/Block.h +448 -0
  329. casadi/include/eigen3/Eigen/src/Core/BooleanRedux.h +162 -0
  330. casadi/include/eigen3/Eigen/src/Core/CommaInitializer.h +164 -0
  331. casadi/include/eigen3/Eigen/src/Core/ConditionEstimator.h +175 -0
  332. casadi/include/eigen3/Eigen/src/Core/CoreEvaluators.h +1741 -0
  333. casadi/include/eigen3/Eigen/src/Core/CoreIterators.h +132 -0
  334. casadi/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h +183 -0
  335. casadi/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h +1001 -0
  336. casadi/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h +197 -0
  337. casadi/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h +103 -0
  338. casadi/include/eigen3/Eigen/src/Core/CwiseUnaryView.h +132 -0
  339. casadi/include/eigen3/Eigen/src/Core/DenseBase.h +701 -0
  340. casadi/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h +685 -0
  341. casadi/include/eigen3/Eigen/src/Core/DenseStorage.h +652 -0
  342. casadi/include/eigen3/Eigen/src/Core/Diagonal.h +258 -0
  343. casadi/include/eigen3/Eigen/src/Core/DiagonalMatrix.h +391 -0
  344. casadi/include/eigen3/Eigen/src/Core/DiagonalProduct.h +28 -0
  345. casadi/include/eigen3/Eigen/src/Core/Dot.h +318 -0
  346. casadi/include/eigen3/Eigen/src/Core/EigenBase.h +160 -0
  347. casadi/include/eigen3/Eigen/src/Core/ForceAlignedAccess.h +150 -0
  348. casadi/include/eigen3/Eigen/src/Core/Fuzzy.h +155 -0
  349. casadi/include/eigen3/Eigen/src/Core/GeneralProduct.h +465 -0
  350. casadi/include/eigen3/Eigen/src/Core/GenericPacketMath.h +1040 -0
  351. casadi/include/eigen3/Eigen/src/Core/GlobalFunctions.h +194 -0
  352. casadi/include/eigen3/Eigen/src/Core/IO.h +258 -0
  353. casadi/include/eigen3/Eigen/src/Core/IndexedView.h +237 -0
  354. casadi/include/eigen3/Eigen/src/Core/Inverse.h +117 -0
  355. casadi/include/eigen3/Eigen/src/Core/Map.h +171 -0
  356. casadi/include/eigen3/Eigen/src/Core/MapBase.h +310 -0
  357. casadi/include/eigen3/Eigen/src/Core/MathFunctions.h +2057 -0
  358. casadi/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h +200 -0
  359. casadi/include/eigen3/Eigen/src/Core/Matrix.h +565 -0
  360. casadi/include/eigen3/Eigen/src/Core/MatrixBase.h +547 -0
  361. casadi/include/eigen3/Eigen/src/Core/NestByValue.h +85 -0
  362. casadi/include/eigen3/Eigen/src/Core/NoAlias.h +109 -0
  363. casadi/include/eigen3/Eigen/src/Core/NumTraits.h +335 -0
  364. casadi/include/eigen3/Eigen/src/Core/PartialReduxEvaluator.h +232 -0
  365. casadi/include/eigen3/Eigen/src/Core/PermutationMatrix.h +605 -0
  366. casadi/include/eigen3/Eigen/src/Core/PlainObjectBase.h +1128 -0
  367. casadi/include/eigen3/Eigen/src/Core/Product.h +191 -0
  368. casadi/include/eigen3/Eigen/src/Core/ProductEvaluators.h +1179 -0
  369. casadi/include/eigen3/Eigen/src/Core/Random.h +218 -0
  370. casadi/include/eigen3/Eigen/src/Core/Redux.h +515 -0
  371. casadi/include/eigen3/Eigen/src/Core/Ref.h +381 -0
  372. casadi/include/eigen3/Eigen/src/Core/Replicate.h +142 -0
  373. casadi/include/eigen3/Eigen/src/Core/Reshaped.h +454 -0
  374. casadi/include/eigen3/Eigen/src/Core/ReturnByValue.h +119 -0
  375. casadi/include/eigen3/Eigen/src/Core/Reverse.h +217 -0
  376. casadi/include/eigen3/Eigen/src/Core/Select.h +164 -0
  377. casadi/include/eigen3/Eigen/src/Core/SelfAdjointView.h +365 -0
  378. casadi/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h +47 -0
  379. casadi/include/eigen3/Eigen/src/Core/Solve.h +188 -0
  380. casadi/include/eigen3/Eigen/src/Core/SolveTriangular.h +235 -0
  381. casadi/include/eigen3/Eigen/src/Core/SolverBase.h +168 -0
  382. casadi/include/eigen3/Eigen/src/Core/StableNorm.h +251 -0
  383. casadi/include/eigen3/Eigen/src/Core/StlIterators.h +463 -0
  384. casadi/include/eigen3/Eigen/src/Core/Stride.h +116 -0
  385. casadi/include/eigen3/Eigen/src/Core/Swap.h +68 -0
  386. casadi/include/eigen3/Eigen/src/Core/Transpose.h +464 -0
  387. casadi/include/eigen3/Eigen/src/Core/Transpositions.h +386 -0
  388. casadi/include/eigen3/Eigen/src/Core/TriangularMatrix.h +1001 -0
  389. casadi/include/eigen3/Eigen/src/Core/VectorBlock.h +96 -0
  390. casadi/include/eigen3/Eigen/src/Core/VectorwiseOp.h +784 -0
  391. casadi/include/eigen3/Eigen/src/Core/Visitor.h +381 -0
  392. casadi/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h +372 -0
  393. casadi/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h +228 -0
  394. casadi/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h +1574 -0
  395. casadi/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h +115 -0
  396. casadi/include/eigen3/Eigen/src/Core/arch/AVX512/Complex.h +422 -0
  397. casadi/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h +362 -0
  398. casadi/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h +2303 -0
  399. casadi/include/eigen3/Eigen/src/Core/arch/AVX512/TypeCasting.h +89 -0
  400. casadi/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h +417 -0
  401. casadi/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h +90 -0
  402. casadi/include/eigen3/Eigen/src/Core/arch/AltiVec/MatrixProduct.h +2937 -0
  403. casadi/include/eigen3/Eigen/src/Core/arch/AltiVec/MatrixProductCommon.h +221 -0
  404. casadi/include/eigen3/Eigen/src/Core/arch/AltiVec/MatrixProductMMA.h +629 -0
  405. casadi/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h +2711 -0
  406. casadi/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h +258 -0
  407. casadi/include/eigen3/Eigen/src/Core/arch/Default/BFloat16.h +700 -0
  408. casadi/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h +117 -0
  409. casadi/include/eigen3/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h +1649 -0
  410. casadi/include/eigen3/Eigen/src/Core/arch/Default/GenericPacketMathFunctionsFwd.h +110 -0
  411. casadi/include/eigen3/Eigen/src/Core/arch/Default/Half.h +942 -0
  412. casadi/include/eigen3/Eigen/src/Core/arch/Default/Settings.h +49 -0
  413. casadi/include/eigen3/Eigen/src/Core/arch/Default/TypeCasting.h +120 -0
  414. casadi/include/eigen3/Eigen/src/Core/arch/GPU/MathFunctions.h +103 -0
  415. casadi/include/eigen3/Eigen/src/Core/arch/GPU/PacketMath.h +1685 -0
  416. casadi/include/eigen3/Eigen/src/Core/arch/GPU/TypeCasting.h +80 -0
  417. casadi/include/eigen3/Eigen/src/Core/arch/HIP/hcc/math_constants.h +23 -0
  418. casadi/include/eigen3/Eigen/src/Core/arch/MSA/Complex.h +648 -0
  419. casadi/include/eigen3/Eigen/src/Core/arch/MSA/MathFunctions.h +387 -0
  420. casadi/include/eigen3/Eigen/src/Core/arch/MSA/PacketMath.h +1233 -0
  421. casadi/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h +584 -0
  422. casadi/include/eigen3/Eigen/src/Core/arch/NEON/GeneralBlockPanelKernel.h +183 -0
  423. casadi/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h +75 -0
  424. casadi/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h +4587 -0
  425. casadi/include/eigen3/Eigen/src/Core/arch/NEON/TypeCasting.h +1419 -0
  426. casadi/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h +351 -0
  427. casadi/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h +199 -0
  428. casadi/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h +1505 -0
  429. casadi/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h +142 -0
  430. casadi/include/eigen3/Eigen/src/Core/arch/SVE/MathFunctions.h +44 -0
  431. casadi/include/eigen3/Eigen/src/Core/arch/SVE/PacketMath.h +752 -0
  432. casadi/include/eigen3/Eigen/src/Core/arch/SVE/TypeCasting.h +49 -0
  433. casadi/include/eigen3/Eigen/src/Core/arch/SYCL/InteropHeaders.h +232 -0
  434. casadi/include/eigen3/Eigen/src/Core/arch/SYCL/MathFunctions.h +301 -0
  435. casadi/include/eigen3/Eigen/src/Core/arch/SYCL/PacketMath.h +670 -0
  436. casadi/include/eigen3/Eigen/src/Core/arch/SYCL/SyclMemoryModel.h +694 -0
  437. casadi/include/eigen3/Eigen/src/Core/arch/SYCL/TypeCasting.h +85 -0
  438. casadi/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h +426 -0
  439. casadi/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h +233 -0
  440. casadi/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h +1060 -0
  441. casadi/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h +177 -0
  442. casadi/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h +541 -0
  443. casadi/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h +189 -0
  444. casadi/include/eigen3/Eigen/src/Core/functors/StlFunctors.h +166 -0
  445. casadi/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h +25 -0
  446. casadi/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h +1131 -0
  447. casadi/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h +2645 -0
  448. casadi/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h +517 -0
  449. casadi/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h +317 -0
  450. casadi/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h +145 -0
  451. casadi/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h +124 -0
  452. casadi/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h +518 -0
  453. casadi/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h +136 -0
  454. casadi/include/eigen3/Eigen/src/Core/products/Parallelizer.h +180 -0
  455. casadi/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h +544 -0
  456. casadi/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h +295 -0
  457. casadi/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h +262 -0
  458. casadi/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h +118 -0
  459. casadi/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h +133 -0
  460. casadi/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h +94 -0
  461. casadi/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h +472 -0
  462. casadi/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h +317 -0
  463. casadi/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h +350 -0
  464. casadi/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h +255 -0
  465. casadi/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h +337 -0
  466. casadi/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h +167 -0
  467. casadi/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h +148 -0
  468. casadi/include/eigen3/Eigen/src/Core/util/BlasUtil.h +583 -0
  469. casadi/include/eigen3/Eigen/src/Core/util/ConfigureVectorization.h +512 -0
  470. casadi/include/eigen3/Eigen/src/Core/util/Constants.h +563 -0
  471. casadi/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h +106 -0
  472. casadi/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h +322 -0
  473. casadi/include/eigen3/Eigen/src/Core/util/IndexedViewHelper.h +186 -0
  474. casadi/include/eigen3/Eigen/src/Core/util/IntegralConstant.h +272 -0
  475. casadi/include/eigen3/Eigen/src/Core/util/MKL_support.h +137 -0
  476. casadi/include/eigen3/Eigen/src/Core/util/Macros.h +1464 -0
  477. casadi/include/eigen3/Eigen/src/Core/util/Memory.h +1163 -0
  478. casadi/include/eigen3/Eigen/src/Core/util/Meta.h +812 -0
  479. casadi/include/eigen3/Eigen/src/Core/util/NonMPL2.h +3 -0
  480. casadi/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h +31 -0
  481. casadi/include/eigen3/Eigen/src/Core/util/ReshapedHelper.h +51 -0
  482. casadi/include/eigen3/Eigen/src/Core/util/StaticAssert.h +221 -0
  483. casadi/include/eigen3/Eigen/src/Core/util/SymbolicIndex.h +293 -0
  484. casadi/include/eigen3/Eigen/src/Core/util/XprHelper.h +856 -0
  485. casadi/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h +346 -0
  486. casadi/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h +462 -0
  487. casadi/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h +91 -0
  488. casadi/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h +622 -0
  489. casadi/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h +418 -0
  490. casadi/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h +226 -0
  491. casadi/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h +374 -0
  492. casadi/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h +158 -0
  493. casadi/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h +657 -0
  494. casadi/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h +558 -0
  495. casadi/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h +77 -0
  496. casadi/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +904 -0
  497. casadi/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h +87 -0
  498. casadi/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h +561 -0
  499. casadi/include/eigen3/Eigen/src/Geometry/AlignedBox.h +486 -0
  500. casadi/include/eigen3/Eigen/src/Geometry/AngleAxis.h +247 -0
  501. casadi/include/eigen3/Eigen/src/Geometry/EulerAngles.h +114 -0
  502. casadi/include/eigen3/Eigen/src/Geometry/Homogeneous.h +501 -0
  503. casadi/include/eigen3/Eigen/src/Geometry/Hyperplane.h +282 -0
  504. casadi/include/eigen3/Eigen/src/Geometry/OrthoMethods.h +235 -0
  505. casadi/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h +232 -0
  506. casadi/include/eigen3/Eigen/src/Geometry/Quaternion.h +870 -0
  507. casadi/include/eigen3/Eigen/src/Geometry/Rotation2D.h +199 -0
  508. casadi/include/eigen3/Eigen/src/Geometry/RotationBase.h +206 -0
  509. casadi/include/eigen3/Eigen/src/Geometry/Scaling.h +188 -0
  510. casadi/include/eigen3/Eigen/src/Geometry/Transform.h +1563 -0
  511. casadi/include/eigen3/Eigen/src/Geometry/Translation.h +202 -0
  512. casadi/include/eigen3/Eigen/src/Geometry/Umeyama.h +166 -0
  513. casadi/include/eigen3/Eigen/src/Geometry/arch/Geometry_SIMD.h +168 -0
  514. casadi/include/eigen3/Eigen/src/Householder/BlockHouseholder.h +110 -0
  515. casadi/include/eigen3/Eigen/src/Householder/Householder.h +176 -0
  516. casadi/include/eigen3/Eigen/src/Householder/HouseholderSequence.h +545 -0
  517. casadi/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h +226 -0
  518. casadi/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h +212 -0
  519. casadi/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h +229 -0
  520. casadi/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h +394 -0
  521. casadi/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h +453 -0
  522. casadi/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h +444 -0
  523. casadi/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h +198 -0
  524. casadi/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h +117 -0
  525. casadi/include/eigen3/Eigen/src/Jacobi/Jacobi.h +483 -0
  526. casadi/include/eigen3/Eigen/src/KLUSupport/KLUSupport.h +358 -0
  527. casadi/include/eigen3/Eigen/src/LU/Determinant.h +117 -0
  528. casadi/include/eigen3/Eigen/src/LU/FullPivLU.h +877 -0
  529. casadi/include/eigen3/Eigen/src/LU/InverseImpl.h +432 -0
  530. casadi/include/eigen3/Eigen/src/LU/PartialPivLU.h +624 -0
  531. casadi/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h +83 -0
  532. casadi/include/eigen3/Eigen/src/LU/arch/InverseSize4.h +351 -0
  533. casadi/include/eigen3/Eigen/src/MetisSupport/MetisSupport.h +137 -0
  534. casadi/include/eigen3/Eigen/src/OrderingMethods/Amd.h +435 -0
  535. casadi/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h +1863 -0
  536. casadi/include/eigen3/Eigen/src/OrderingMethods/Ordering.h +153 -0
  537. casadi/include/eigen3/Eigen/src/PaStiXSupport/PaStiXSupport.h +678 -0
  538. casadi/include/eigen3/Eigen/src/PardisoSupport/PardisoSupport.h +545 -0
  539. casadi/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h +674 -0
  540. casadi/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h +97 -0
  541. casadi/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h +635 -0
  542. casadi/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h +713 -0
  543. casadi/include/eigen3/Eigen/src/QR/HouseholderQR.h +434 -0
  544. casadi/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h +68 -0
  545. casadi/include/eigen3/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h +335 -0
  546. casadi/include/eigen3/Eigen/src/SVD/BDCSVD.h +1366 -0
  547. casadi/include/eigen3/Eigen/src/SVD/JacobiSVD.h +812 -0
  548. casadi/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h +91 -0
  549. casadi/include/eigen3/Eigen/src/SVD/SVDBase.h +376 -0
  550. casadi/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h +414 -0
  551. casadi/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h +697 -0
  552. casadi/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +174 -0
  553. casadi/include/eigen3/Eigen/src/SparseCore/AmbiVector.h +378 -0
  554. casadi/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h +274 -0
  555. casadi/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h +352 -0
  556. casadi/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h +67 -0
  557. casadi/include/eigen3/Eigen/src/SparseCore/SparseAssign.h +270 -0
  558. casadi/include/eigen3/Eigen/src/SparseCore/SparseBlock.h +571 -0
  559. casadi/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h +206 -0
  560. casadi/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h +370 -0
  561. casadi/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +722 -0
  562. casadi/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h +150 -0
  563. casadi/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h +342 -0
  564. casadi/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h +138 -0
  565. casadi/include/eigen3/Eigen/src/SparseCore/SparseDot.h +98 -0
  566. casadi/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h +29 -0
  567. casadi/include/eigen3/Eigen/src/SparseCore/SparseMap.h +305 -0
  568. casadi/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h +1518 -0
  569. casadi/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h +398 -0
  570. casadi/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h +178 -0
  571. casadi/include/eigen3/Eigen/src/SparseCore/SparseProduct.h +181 -0
  572. casadi/include/eigen3/Eigen/src/SparseCore/SparseRedux.h +49 -0
  573. casadi/include/eigen3/Eigen/src/SparseCore/SparseRef.h +397 -0
  574. casadi/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h +659 -0
  575. casadi/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h +124 -0
  576. casadi/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h +198 -0
  577. casadi/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h +92 -0
  578. casadi/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h +189 -0
  579. casadi/include/eigen3/Eigen/src/SparseCore/SparseUtil.h +186 -0
  580. casadi/include/eigen3/Eigen/src/SparseCore/SparseVector.h +478 -0
  581. casadi/include/eigen3/Eigen/src/SparseCore/SparseView.h +254 -0
  582. casadi/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h +315 -0
  583. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU.h +923 -0
  584. casadi/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h +66 -0
  585. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h +226 -0
  586. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h +110 -0
  587. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h +375 -0
  588. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h +80 -0
  589. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h +181 -0
  590. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h +179 -0
  591. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h +107 -0
  592. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h +280 -0
  593. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h +126 -0
  594. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h +130 -0
  595. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h +223 -0
  596. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h +258 -0
  597. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h +137 -0
  598. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h +136 -0
  599. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h +83 -0
  600. casadi/include/eigen3/Eigen/src/SparseQR/SparseQR.h +758 -0
  601. casadi/include/eigen3/Eigen/src/StlSupport/StdDeque.h +116 -0
  602. casadi/include/eigen3/Eigen/src/StlSupport/StdList.h +106 -0
  603. casadi/include/eigen3/Eigen/src/StlSupport/StdVector.h +131 -0
  604. casadi/include/eigen3/Eigen/src/StlSupport/details.h +84 -0
  605. casadi/include/eigen3/Eigen/src/SuperLUSupport/SuperLUSupport.h +1025 -0
  606. casadi/include/eigen3/Eigen/src/UmfPackSupport/UmfPackSupport.h +642 -0
  607. casadi/include/eigen3/Eigen/src/misc/Image.h +82 -0
  608. casadi/include/eigen3/Eigen/src/misc/Kernel.h +79 -0
  609. casadi/include/eigen3/Eigen/src/misc/RealSvd2x2.h +55 -0
  610. casadi/include/eigen3/Eigen/src/misc/blas.h +440 -0
  611. casadi/include/eigen3/Eigen/src/misc/lapack.h +152 -0
  612. casadi/include/eigen3/Eigen/src/misc/lapacke.h +16292 -0
  613. casadi/include/eigen3/Eigen/src/misc/lapacke_mangling.h +17 -0
  614. casadi/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h +358 -0
  615. casadi/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h +696 -0
  616. casadi/include/eigen3/Eigen/src/plugins/BlockMethods.h +1442 -0
  617. casadi/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h +115 -0
  618. casadi/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h +177 -0
  619. casadi/include/eigen3/Eigen/src/plugins/IndexedViewMethods.h +262 -0
  620. casadi/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h +152 -0
  621. casadi/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +95 -0
  622. casadi/include/eigen3/Eigen/src/plugins/ReshapedMethods.h +149 -0
  623. casadi/include/eigen3/signature_of_eigen3_matrix_library +1 -0
  624. casadi/include/eigen3/unsupported/Eigen/AdolcForward +159 -0
  625. casadi/include/eigen3/unsupported/Eigen/AlignedVector3 +234 -0
  626. casadi/include/eigen3/unsupported/Eigen/ArpackSupport +30 -0
  627. casadi/include/eigen3/unsupported/Eigen/AutoDiff +46 -0
  628. casadi/include/eigen3/unsupported/Eigen/BVH +95 -0
  629. casadi/include/eigen3/unsupported/Eigen/CXX11/Tensor +137 -0
  630. casadi/include/eigen3/unsupported/Eigen/CXX11/TensorSymmetry +42 -0
  631. casadi/include/eigen3/unsupported/Eigen/CXX11/ThreadPool +74 -0
  632. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/Tensor.h +554 -0
  633. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorArgMax.h +329 -0
  634. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorAssign.h +247 -0
  635. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorBase.h +1176 -0
  636. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorBlock.h +1559 -0
  637. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorBroadcasting.h +1093 -0
  638. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorChipping.h +518 -0
  639. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConcatenation.h +377 -0
  640. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContraction.h +1023 -0
  641. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionBlocking.h +73 -0
  642. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionCuda.h +6 -0
  643. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionGpu.h +1413 -0
  644. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionMapper.h +575 -0
  645. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionSycl.h +1650 -0
  646. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionThreadPool.h +1679 -0
  647. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConversion.h +456 -0
  648. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConvolution.h +1132 -0
  649. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConvolutionSycl.h +544 -0
  650. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorCostModel.h +214 -0
  651. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorCustomOp.h +347 -0
  652. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDevice.h +137 -0
  653. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceCuda.h +6 -0
  654. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceDefault.h +104 -0
  655. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceGpu.h +389 -0
  656. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceSycl.h +1048 -0
  657. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceThreadPool.h +409 -0
  658. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDimensionList.h +236 -0
  659. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDimensions.h +490 -0
  660. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorEvalTo.h +236 -0
  661. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorEvaluator.h +983 -0
  662. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorExecutor.h +703 -0
  663. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorExpr.h +388 -0
  664. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorFFT.h +669 -0
  665. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorFixedSize.h +379 -0
  666. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorForcedEval.h +237 -0
  667. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorForwardDeclarations.h +191 -0
  668. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorFunctors.h +488 -0
  669. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGenerator.h +302 -0
  670. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGlobalFunctions.h +33 -0
  671. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGpuHipCudaDefines.h +99 -0
  672. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGpuHipCudaUndefines.h +44 -0
  673. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorIO.h +79 -0
  674. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorImagePatch.h +603 -0
  675. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorIndexList.h +738 -0
  676. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorInflation.h +247 -0
  677. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorInitializer.h +82 -0
  678. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorIntDiv.h +263 -0
  679. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorLayoutSwap.h +216 -0
  680. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMacros.h +98 -0
  681. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMap.h +327 -0
  682. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMeta.h +311 -0
  683. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMorphing.h +1102 -0
  684. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorPadding.h +708 -0
  685. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorPatch.h +291 -0
  686. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorRandom.h +322 -0
  687. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReduction.h +998 -0
  688. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReductionCuda.h +6 -0
  689. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReductionGpu.h +966 -0
  690. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReductionSycl.h +582 -0
  691. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorRef.h +454 -0
  692. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReverse.h +465 -0
  693. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorScan.h +528 -0
  694. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorScanSycl.h +513 -0
  695. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorShuffling.h +471 -0
  696. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorStorage.h +161 -0
  697. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorStriding.h +346 -0
  698. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorTrace.h +303 -0
  699. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorTraits.h +264 -0
  700. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorUInt128.h +249 -0
  701. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorVolumePatch.h +629 -0
  702. casadi/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/DynamicSymmetry.h +293 -0
  703. casadi/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/StaticSymmetry.h +236 -0
  704. casadi/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/Symmetry.h +338 -0
  705. casadi/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/util/TemplateGroupTheory.h +669 -0
  706. casadi/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/Barrier.h +67 -0
  707. casadi/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/EventCount.h +249 -0
  708. casadi/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/NonBlockingThreadPool.h +486 -0
  709. casadi/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/RunQueue.h +236 -0
  710. casadi/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadCancel.h +23 -0
  711. casadi/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadEnvironment.h +40 -0
  712. casadi/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadLocal.h +301 -0
  713. casadi/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadPoolInterface.h +48 -0
  714. casadi/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadYield.h +20 -0
  715. casadi/include/eigen3/unsupported/Eigen/CXX11/src/util/CXX11Meta.h +537 -0
  716. casadi/include/eigen3/unsupported/Eigen/CXX11/src/util/CXX11Workarounds.h +88 -0
  717. casadi/include/eigen3/unsupported/Eigen/CXX11/src/util/EmulateArray.h +261 -0
  718. casadi/include/eigen3/unsupported/Eigen/CXX11/src/util/MaxSizeVector.h +158 -0
  719. casadi/include/eigen3/unsupported/Eigen/EulerAngles +43 -0
  720. casadi/include/eigen3/unsupported/Eigen/FFT +419 -0
  721. casadi/include/eigen3/unsupported/Eigen/IterativeSolvers +51 -0
  722. casadi/include/eigen3/unsupported/Eigen/KroneckerProduct +36 -0
  723. casadi/include/eigen3/unsupported/Eigen/LevenbergMarquardt +49 -0
  724. casadi/include/eigen3/unsupported/Eigen/MPRealSupport +213 -0
  725. casadi/include/eigen3/unsupported/Eigen/MatrixFunctions +504 -0
  726. casadi/include/eigen3/unsupported/Eigen/MoreVectorization +24 -0
  727. casadi/include/eigen3/unsupported/Eigen/NonLinearOptimization +140 -0
  728. casadi/include/eigen3/unsupported/Eigen/NumericalDiff +56 -0
  729. casadi/include/eigen3/unsupported/Eigen/OpenGLSupport +322 -0
  730. casadi/include/eigen3/unsupported/Eigen/Polynomials +137 -0
  731. casadi/include/eigen3/unsupported/Eigen/Skyline +39 -0
  732. casadi/include/eigen3/unsupported/Eigen/SparseExtra +54 -0
  733. casadi/include/eigen3/unsupported/Eigen/SpecialFunctions +103 -0
  734. casadi/include/eigen3/unsupported/Eigen/Splines +35 -0
  735. casadi/include/eigen3/unsupported/Eigen/src/AutoDiff/AutoDiffJacobian.h +108 -0
  736. casadi/include/eigen3/unsupported/Eigen/src/AutoDiff/AutoDiffScalar.h +730 -0
  737. casadi/include/eigen3/unsupported/Eigen/src/AutoDiff/AutoDiffVector.h +220 -0
  738. casadi/include/eigen3/unsupported/Eigen/src/BVH/BVAlgorithms.h +293 -0
  739. casadi/include/eigen3/unsupported/Eigen/src/BVH/KdBVH.h +223 -0
  740. casadi/include/eigen3/unsupported/Eigen/src/Eigenvalues/ArpackSelfAdjointEigenSolver.h +790 -0
  741. casadi/include/eigen3/unsupported/Eigen/src/EulerAngles/EulerAngles.h +355 -0
  742. casadi/include/eigen3/unsupported/Eigen/src/EulerAngles/EulerSystem.h +305 -0
  743. casadi/include/eigen3/unsupported/Eigen/src/FFT/ei_fftw_impl.h +261 -0
  744. casadi/include/eigen3/unsupported/Eigen/src/FFT/ei_kissfft_impl.h +449 -0
  745. casadi/include/eigen3/unsupported/Eigen/src/IterativeSolvers/ConstrainedConjGrad.h +187 -0
  746. casadi/include/eigen3/unsupported/Eigen/src/IterativeSolvers/DGMRES.h +511 -0
  747. casadi/include/eigen3/unsupported/Eigen/src/IterativeSolvers/GMRES.h +335 -0
  748. casadi/include/eigen3/unsupported/Eigen/src/IterativeSolvers/IDRS.h +436 -0
  749. casadi/include/eigen3/unsupported/Eigen/src/IterativeSolvers/IncompleteLU.h +90 -0
  750. casadi/include/eigen3/unsupported/Eigen/src/IterativeSolvers/IterationController.h +154 -0
  751. casadi/include/eigen3/unsupported/Eigen/src/IterativeSolvers/MINRES.h +267 -0
  752. casadi/include/eigen3/unsupported/Eigen/src/IterativeSolvers/Scaling.h +193 -0
  753. casadi/include/eigen3/unsupported/Eigen/src/KroneckerProduct/KroneckerTensorProduct.h +305 -0
  754. casadi/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMcovar.h +84 -0
  755. casadi/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMonestep.h +202 -0
  756. casadi/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMpar.h +160 -0
  757. casadi/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMqrsolv.h +188 -0
  758. casadi/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LevenbergMarquardt.h +396 -0
  759. casadi/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h +441 -0
  760. casadi/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixFunction.h +569 -0
  761. casadi/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixLogarithm.h +373 -0
  762. casadi/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixPower.h +705 -0
  763. casadi/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixSquareRoot.h +368 -0
  764. casadi/include/eigen3/unsupported/Eigen/src/MatrixFunctions/StemFunction.h +117 -0
  765. casadi/include/eigen3/unsupported/Eigen/src/MoreVectorization/MathFunctions.h +95 -0
  766. casadi/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/HybridNonLinearSolver.h +601 -0
  767. casadi/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/LevenbergMarquardt.h +657 -0
  768. casadi/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/chkder.h +66 -0
  769. casadi/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/covar.h +70 -0
  770. casadi/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/dogleg.h +107 -0
  771. casadi/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/fdjac1.h +79 -0
  772. casadi/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/lmpar.h +298 -0
  773. casadi/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/qrsolv.h +91 -0
  774. casadi/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/r1mpyq.h +30 -0
  775. casadi/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/r1updt.h +99 -0
  776. casadi/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/rwupdt.h +49 -0
  777. casadi/include/eigen3/unsupported/Eigen/src/NumericalDiff/NumericalDiff.h +130 -0
  778. casadi/include/eigen3/unsupported/Eigen/src/Polynomials/Companion.h +280 -0
  779. casadi/include/eigen3/unsupported/Eigen/src/Polynomials/PolynomialSolver.h +428 -0
  780. casadi/include/eigen3/unsupported/Eigen/src/Polynomials/PolynomialUtils.h +143 -0
  781. casadi/include/eigen3/unsupported/Eigen/src/Skyline/SkylineInplaceLU.h +352 -0
  782. casadi/include/eigen3/unsupported/Eigen/src/Skyline/SkylineMatrix.h +862 -0
  783. casadi/include/eigen3/unsupported/Eigen/src/Skyline/SkylineMatrixBase.h +212 -0
  784. casadi/include/eigen3/unsupported/Eigen/src/Skyline/SkylineProduct.h +295 -0
  785. casadi/include/eigen3/unsupported/Eigen/src/Skyline/SkylineStorage.h +259 -0
  786. casadi/include/eigen3/unsupported/Eigen/src/Skyline/SkylineUtil.h +89 -0
  787. casadi/include/eigen3/unsupported/Eigen/src/SparseExtra/BlockOfDynamicSparseMatrix.h +122 -0
  788. casadi/include/eigen3/unsupported/Eigen/src/SparseExtra/BlockSparseMatrix.h +1079 -0
  789. casadi/include/eigen3/unsupported/Eigen/src/SparseExtra/DynamicSparseMatrix.h +404 -0
  790. casadi/include/eigen3/unsupported/Eigen/src/SparseExtra/MarketIO.h +282 -0
  791. casadi/include/eigen3/unsupported/Eigen/src/SparseExtra/MatrixMarketIterator.h +247 -0
  792. casadi/include/eigen3/unsupported/Eigen/src/SparseExtra/RandomSetter.h +349 -0
  793. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsArrayAPI.h +286 -0
  794. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsBFloat16.h +68 -0
  795. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsFunctors.h +357 -0
  796. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsHalf.h +66 -0
  797. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsImpl.h +1959 -0
  798. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsPacketMath.h +118 -0
  799. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/HipVectorCompatibility.h +67 -0
  800. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsArrayAPI.h +167 -0
  801. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsBFloat16.h +58 -0
  802. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsFunctors.h +330 -0
  803. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsHalf.h +58 -0
  804. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsImpl.h +2045 -0
  805. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsPacketMath.h +79 -0
  806. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX/BesselFunctions.h +46 -0
  807. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX/SpecialFunctions.h +16 -0
  808. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX512/BesselFunctions.h +46 -0
  809. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX512/SpecialFunctions.h +16 -0
  810. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/GPU/SpecialFunctions.h +369 -0
  811. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/NEON/BesselFunctions.h +54 -0
  812. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/NEON/SpecialFunctions.h +34 -0
  813. casadi/include/eigen3/unsupported/Eigen/src/Splines/Spline.h +507 -0
  814. casadi/include/eigen3/unsupported/Eigen/src/Splines/SplineFitting.h +431 -0
  815. casadi/include/eigen3/unsupported/Eigen/src/Splines/SplineFwd.h +93 -0
  816. casadi/include/highs/HConfig.h +21 -0
  817. casadi/include/highs/Highs.h +1529 -0
  818. casadi/include/highs/filereaderlp/builder.hpp +25 -0
  819. casadi/include/highs/filereaderlp/def.hpp +19 -0
  820. casadi/include/highs/filereaderlp/model.hpp +68 -0
  821. casadi/include/highs/filereaderlp/reader.hpp +10 -0
  822. casadi/include/highs/interfaces/highs_c_api.h +2283 -0
  823. casadi/include/highs/io/Filereader.h +47 -0
  824. casadi/include/highs/io/FilereaderEms.h +33 -0
  825. casadi/include/highs/io/FilereaderLp.h +54 -0
  826. casadi/include/highs/io/FilereaderMps.h +30 -0
  827. casadi/include/highs/io/HMPSIO.h +81 -0
  828. casadi/include/highs/io/HMpsFF.h +235 -0
  829. casadi/include/highs/io/HighsIO.h +109 -0
  830. casadi/include/highs/io/LoadOptions.h +27 -0
  831. casadi/include/highs/ipm/IpxSolution.h +35 -0
  832. casadi/include/highs/ipm/IpxWrapper.h +73 -0
  833. casadi/include/highs/ipm/basiclu/basiclu.h +161 -0
  834. casadi/include/highs/ipm/basiclu/basiclu_factorize.h +247 -0
  835. casadi/include/highs/ipm/basiclu/basiclu_get_factors.h +108 -0
  836. casadi/include/highs/ipm/basiclu/basiclu_initialize.h +119 -0
  837. casadi/include/highs/ipm/basiclu/basiclu_obj_factorize.h +34 -0
  838. casadi/include/highs/ipm/basiclu/basiclu_obj_free.h +19 -0
  839. casadi/include/highs/ipm/basiclu/basiclu_obj_get_factors.h +34 -0
  840. casadi/include/highs/ipm/basiclu/basiclu_obj_initialize.h +46 -0
  841. casadi/include/highs/ipm/basiclu/basiclu_obj_solve_dense.h +29 -0
  842. casadi/include/highs/ipm/basiclu/basiclu_obj_solve_for_update.h +42 -0
  843. casadi/include/highs/ipm/basiclu/basiclu_obj_solve_sparse.h +32 -0
  844. casadi/include/highs/ipm/basiclu/basiclu_obj_update.h +31 -0
  845. casadi/include/highs/ipm/basiclu/basiclu_object.h +30 -0
  846. casadi/include/highs/ipm/basiclu/basiclu_solve_dense.h +75 -0
  847. casadi/include/highs/ipm/basiclu/basiclu_solve_for_update.h +169 -0
  848. casadi/include/highs/ipm/basiclu/basiclu_solve_sparse.h +112 -0
  849. casadi/include/highs/ipm/basiclu/basiclu_update.h +125 -0
  850. casadi/include/highs/ipm/basiclu/lu_def.h +39 -0
  851. casadi/include/highs/ipm/basiclu/lu_file.h +21 -0
  852. casadi/include/highs/ipm/basiclu/lu_internal.h +220 -0
  853. casadi/include/highs/ipm/basiclu/lu_list.h +168 -0
  854. casadi/include/highs/ipm/ipx/basiclu_kernel.h +20 -0
  855. casadi/include/highs/ipm/ipx/basiclu_wrapper.h +47 -0
  856. casadi/include/highs/ipm/ipx/basis.h +351 -0
  857. casadi/include/highs/ipm/ipx/conjugate_residuals.h +74 -0
  858. casadi/include/highs/ipm/ipx/control.h +163 -0
  859. casadi/include/highs/ipm/ipx/crossover.h +157 -0
  860. casadi/include/highs/ipm/ipx/diagonal_precond.h +45 -0
  861. casadi/include/highs/ipm/ipx/forrest_tomlin.h +102 -0
  862. casadi/include/highs/ipm/ipx/guess_basis.h +21 -0
  863. casadi/include/highs/ipm/ipx/indexed_vector.h +113 -0
  864. casadi/include/highs/ipm/ipx/info.h +27 -0
  865. casadi/include/highs/ipm/ipx/ipm.h +94 -0
  866. casadi/include/highs/ipm/ipx/ipx_c.h +47 -0
  867. casadi/include/highs/ipm/ipx/ipx_config.h +9 -0
  868. casadi/include/highs/ipm/ipx/ipx_info.h +111 -0
  869. casadi/include/highs/ipm/ipx/ipx_internal.h +88 -0
  870. casadi/include/highs/ipm/ipx/ipx_parameters.h +75 -0
  871. casadi/include/highs/ipm/ipx/ipx_status.h +57 -0
  872. casadi/include/highs/ipm/ipx/iterate.h +328 -0
  873. casadi/include/highs/ipm/ipx/kkt_solver.h +70 -0
  874. casadi/include/highs/ipm/ipx/kkt_solver_basis.h +66 -0
  875. casadi/include/highs/ipm/ipx/kkt_solver_diag.h +48 -0
  876. casadi/include/highs/ipm/ipx/linear_operator.h +26 -0
  877. casadi/include/highs/ipm/ipx/lp_solver.h +201 -0
  878. casadi/include/highs/ipm/ipx/lu_factorization.h +79 -0
  879. casadi/include/highs/ipm/ipx/lu_update.h +129 -0
  880. casadi/include/highs/ipm/ipx/maxvolume.h +54 -0
  881. casadi/include/highs/ipm/ipx/model.h +409 -0
  882. casadi/include/highs/ipm/ipx/multistream.h +52 -0
  883. casadi/include/highs/ipm/ipx/normal_matrix.h +44 -0
  884. casadi/include/highs/ipm/ipx/power_method.h +44 -0
  885. casadi/include/highs/ipm/ipx/sparse_matrix.h +195 -0
  886. casadi/include/highs/ipm/ipx/sparse_utils.h +58 -0
  887. casadi/include/highs/ipm/ipx/splitted_normal_matrix.h +63 -0
  888. casadi/include/highs/ipm/ipx/starting_basis.h +39 -0
  889. casadi/include/highs/ipm/ipx/symbolic_invert.h +29 -0
  890. casadi/include/highs/ipm/ipx/timer.h +24 -0
  891. casadi/include/highs/ipm/ipx/utils.h +39 -0
  892. casadi/include/highs/lp_data/HConst.h +305 -0
  893. casadi/include/highs/lp_data/HStruct.h +146 -0
  894. casadi/include/highs/lp_data/HighsAnalysis.h +26 -0
  895. casadi/include/highs/lp_data/HighsCallback.h +40 -0
  896. casadi/include/highs/lp_data/HighsCallbackStruct.h +62 -0
  897. casadi/include/highs/lp_data/HighsDebug.h +37 -0
  898. casadi/include/highs/lp_data/HighsInfo.h +322 -0
  899. casadi/include/highs/lp_data/HighsInfoDebug.h +30 -0
  900. casadi/include/highs/lp_data/HighsLp.h +101 -0
  901. casadi/include/highs/lp_data/HighsLpSolverObject.h +48 -0
  902. casadi/include/highs/lp_data/HighsLpUtils.h +266 -0
  903. casadi/include/highs/lp_data/HighsModelUtils.h +109 -0
  904. casadi/include/highs/lp_data/HighsOptions.h +1357 -0
  905. casadi/include/highs/lp_data/HighsRanging.h +46 -0
  906. casadi/include/highs/lp_data/HighsRuntimeOptions.h +276 -0
  907. casadi/include/highs/lp_data/HighsSolution.h +137 -0
  908. casadi/include/highs/lp_data/HighsSolutionDebug.h +90 -0
  909. casadi/include/highs/lp_data/HighsSolve.h +26 -0
  910. casadi/include/highs/lp_data/HighsStatus.h +32 -0
  911. casadi/include/highs/mip/HighsCliqueTable.h +318 -0
  912. casadi/include/highs/mip/HighsConflictPool.h +112 -0
  913. casadi/include/highs/mip/HighsCutGeneration.h +96 -0
  914. casadi/include/highs/mip/HighsCutPool.h +171 -0
  915. casadi/include/highs/mip/HighsDebugSol.h +135 -0
  916. casadi/include/highs/mip/HighsDomain.h +641 -0
  917. casadi/include/highs/mip/HighsDomainChange.h +51 -0
  918. casadi/include/highs/mip/HighsDynamicRowMatrix.h +107 -0
  919. casadi/include/highs/mip/HighsGFkSolve.h +441 -0
  920. casadi/include/highs/mip/HighsImplications.h +146 -0
  921. casadi/include/highs/mip/HighsLpAggregator.h +53 -0
  922. casadi/include/highs/mip/HighsLpRelaxation.h +360 -0
  923. casadi/include/highs/mip/HighsMipSolver.h +105 -0
  924. casadi/include/highs/mip/HighsMipSolverData.h +236 -0
  925. casadi/include/highs/mip/HighsModkSeparator.h +63 -0
  926. casadi/include/highs/mip/HighsNodeQueue.h +314 -0
  927. casadi/include/highs/mip/HighsObjectiveFunction.h +74 -0
  928. casadi/include/highs/mip/HighsPathSeparator.h +42 -0
  929. casadi/include/highs/mip/HighsPrimalHeuristics.h +68 -0
  930. casadi/include/highs/mip/HighsPseudocost.h +363 -0
  931. casadi/include/highs/mip/HighsRedcostFixing.h +45 -0
  932. casadi/include/highs/mip/HighsSearch.h +244 -0
  933. casadi/include/highs/mip/HighsSeparation.h +44 -0
  934. casadi/include/highs/mip/HighsSeparator.h +56 -0
  935. casadi/include/highs/mip/HighsTableauSeparator.h +37 -0
  936. casadi/include/highs/mip/HighsTransformedLp.h +66 -0
  937. casadi/include/highs/model/HighsHessian.h +54 -0
  938. casadi/include/highs/model/HighsHessianUtils.h +49 -0
  939. casadi/include/highs/model/HighsModel.h +52 -0
  940. casadi/include/highs/parallel/HighsBinarySemaphore.h +113 -0
  941. casadi/include/highs/parallel/HighsCacheAlign.h +87 -0
  942. casadi/include/highs/parallel/HighsCombinable.h +121 -0
  943. casadi/include/highs/parallel/HighsMutex.h +129 -0
  944. casadi/include/highs/parallel/HighsParallel.h +133 -0
  945. casadi/include/highs/parallel/HighsRaceTimer.h +43 -0
  946. casadi/include/highs/parallel/HighsSchedulerConstants.h +24 -0
  947. casadi/include/highs/parallel/HighsSpinMutex.h +53 -0
  948. casadi/include/highs/parallel/HighsSplitDeque.h +583 -0
  949. casadi/include/highs/parallel/HighsTask.h +175 -0
  950. casadi/include/highs/parallel/HighsTaskExecutor.h +209 -0
  951. casadi/include/highs/pdlp/CupdlpWrapper.h +93 -0
  952. casadi/include/highs/pdlp/cupdlp/cupdlp_cs.h +41 -0
  953. casadi/include/highs/pdlp/cupdlp/cupdlp_defs.h +423 -0
  954. casadi/include/highs/pdlp/cupdlp/cupdlp_linalg.h +183 -0
  955. casadi/include/highs/pdlp/cupdlp/cupdlp_proj.h +19 -0
  956. casadi/include/highs/pdlp/cupdlp/cupdlp_restart.h +31 -0
  957. casadi/include/highs/pdlp/cupdlp/cupdlp_scaling_cuda.h +28 -0
  958. casadi/include/highs/pdlp/cupdlp/cupdlp_solver.h +98 -0
  959. casadi/include/highs/pdlp/cupdlp/cupdlp_step.h +33 -0
  960. casadi/include/highs/pdlp/cupdlp/cupdlp_utils.c +1726 -0
  961. casadi/include/highs/pdqsort/pdqsort.h +532 -0
  962. casadi/include/highs/presolve/HPresolve.h +365 -0
  963. casadi/include/highs/presolve/HPresolveAnalysis.h +54 -0
  964. casadi/include/highs/presolve/HighsPostsolveStack.h +907 -0
  965. casadi/include/highs/presolve/HighsSymmetry.h +284 -0
  966. casadi/include/highs/presolve/ICrash.h +127 -0
  967. casadi/include/highs/presolve/ICrashUtil.h +65 -0
  968. casadi/include/highs/presolve/ICrashX.h +26 -0
  969. casadi/include/highs/presolve/PresolveComponent.h +93 -0
  970. casadi/include/highs/qpsolver/a_asm.hpp +67 -0
  971. casadi/include/highs/qpsolver/a_quass.hpp +19 -0
  972. casadi/include/highs/qpsolver/basis.hpp +150 -0
  973. casadi/include/highs/qpsolver/crashsolution.hpp +12 -0
  974. casadi/include/highs/qpsolver/dantzigpricing.hpp +72 -0
  975. casadi/include/highs/qpsolver/devexpricing.hpp +99 -0
  976. casadi/include/highs/qpsolver/eventhandler.hpp +23 -0
  977. casadi/include/highs/qpsolver/factor.hpp +400 -0
  978. casadi/include/highs/qpsolver/feasibility_bounded.hpp +105 -0
  979. casadi/include/highs/qpsolver/feasibility_highs.hpp +270 -0
  980. casadi/include/highs/qpsolver/gradient.hpp +39 -0
  981. casadi/include/highs/qpsolver/instance.hpp +63 -0
  982. casadi/include/highs/qpsolver/matrix.hpp +335 -0
  983. casadi/include/highs/qpsolver/perturbation.hpp +8 -0
  984. casadi/include/highs/qpsolver/pricing.hpp +15 -0
  985. casadi/include/highs/qpsolver/qpconst.hpp +27 -0
  986. casadi/include/highs/qpsolver/qpvector.hpp +235 -0
  987. casadi/include/highs/qpsolver/quass.hpp +20 -0
  988. casadi/include/highs/qpsolver/ratiotest.hpp +19 -0
  989. casadi/include/highs/qpsolver/runtime.hpp +38 -0
  990. casadi/include/highs/qpsolver/scaling.hpp +8 -0
  991. casadi/include/highs/qpsolver/settings.hpp +57 -0
  992. casadi/include/highs/qpsolver/snippets.hpp +29 -0
  993. casadi/include/highs/qpsolver/statistics.hpp +23 -0
  994. casadi/include/highs/qpsolver/steepestedgepricing.hpp +167 -0
  995. casadi/include/highs/simplex/HApp.h +422 -0
  996. casadi/include/highs/simplex/HEkk.h +403 -0
  997. casadi/include/highs/simplex/HEkkDual.h +515 -0
  998. casadi/include/highs/simplex/HEkkDualRHS.h +137 -0
  999. casadi/include/highs/simplex/HEkkDualRow.h +204 -0
  1000. casadi/include/highs/simplex/HEkkPrimal.h +195 -0
  1001. casadi/include/highs/simplex/HSimplex.h +45 -0
  1002. casadi/include/highs/simplex/HSimplexDebug.h +51 -0
  1003. casadi/include/highs/simplex/HSimplexNla.h +184 -0
  1004. casadi/include/highs/simplex/HSimplexReport.h +24 -0
  1005. casadi/include/highs/simplex/HighsSimplexAnalysis.h +503 -0
  1006. casadi/include/highs/simplex/SimplexConst.h +274 -0
  1007. casadi/include/highs/simplex/SimplexStruct.h +264 -0
  1008. casadi/include/highs/simplex/SimplexTimer.h +427 -0
  1009. casadi/include/highs/test/DevKkt.h +146 -0
  1010. casadi/include/highs/test/KktCh2.h +82 -0
  1011. casadi/include/highs/util/FactorTimer.h +224 -0
  1012. casadi/include/highs/util/HFactor.h +587 -0
  1013. casadi/include/highs/util/HFactorConst.h +84 -0
  1014. casadi/include/highs/util/HFactorDebug.h +58 -0
  1015. casadi/include/highs/util/HSet.h +92 -0
  1016. casadi/include/highs/util/HVector.h +25 -0
  1017. casadi/include/highs/util/HVectorBase.h +105 -0
  1018. casadi/include/highs/util/HighsCDouble.h +310 -0
  1019. casadi/include/highs/util/HighsComponent.h +56 -0
  1020. casadi/include/highs/util/HighsDataStack.h +86 -0
  1021. casadi/include/highs/util/HighsDisjointSets.h +110 -0
  1022. casadi/include/highs/util/HighsHash.h +1277 -0
  1023. casadi/include/highs/util/HighsHashTree.h +1443 -0
  1024. casadi/include/highs/util/HighsInt.h +39 -0
  1025. casadi/include/highs/util/HighsIntegers.h +215 -0
  1026. casadi/include/highs/util/HighsLinearSumBounds.h +160 -0
  1027. casadi/include/highs/util/HighsMatrixPic.h +40 -0
  1028. casadi/include/highs/util/HighsMatrixSlice.h +564 -0
  1029. casadi/include/highs/util/HighsMatrixUtils.h +57 -0
  1030. casadi/include/highs/util/HighsMemoryAllocation.h +55 -0
  1031. casadi/include/highs/util/HighsRandom.h +245 -0
  1032. casadi/include/highs/util/HighsRbTree.h +455 -0
  1033. casadi/include/highs/util/HighsSort.h +134 -0
  1034. casadi/include/highs/util/HighsSparseMatrix.h +147 -0
  1035. casadi/include/highs/util/HighsSparseVectorSum.h +98 -0
  1036. casadi/include/highs/util/HighsSplay.h +138 -0
  1037. casadi/include/highs/util/HighsTimer.h +343 -0
  1038. casadi/include/highs/util/HighsUtils.h +210 -0
  1039. casadi/include/highs/util/stringutil.h +44 -0
  1040. casadi/include/highs/zstr/strict_fstream.hpp +237 -0
  1041. casadi/include/highs/zstr/zstr.hpp +472 -0
  1042. casadi/include/licenses/FMI-Standard-2.0.2/LICENSE.txt +473 -0
  1043. casadi/include/licenses/FMI-Standard-3.0/LICENSE.txt +464 -0
  1044. casadi/include/licenses/alpaqa-external/LICENSE +165 -0
  1045. casadi/include/licenses/bonmin-external/Bonmin/LICENSE +87 -0
  1046. casadi/include/licenses/bonmin-external/LICENSE +3 -0
  1047. casadi/include/licenses/casadi/LICENSE/LICENSE.txt +165 -0
  1048. casadi/include/licenses/casadi-sundials/LICENSE +64 -0
  1049. casadi/include/licenses/casadi-sundials/cvodes/LICENSE +60 -0
  1050. casadi/include/licenses/casadi-sundials/idas/LICENSE +59 -0
  1051. casadi/include/licenses/casadi-sundials/kinsol/LICENSE +59 -0
  1052. casadi/include/licenses/casadi-sundials/sundials/LICENSE +67 -0
  1053. casadi/include/licenses/cbc-external/Cbc/LICENSE +239 -0
  1054. casadi/include/licenses/cbc-external/LICENSE +245 -0
  1055. casadi/include/licenses/cgl-external/Cgl/LICENSE +239 -0
  1056. casadi/include/licenses/cgl-external/LICENSE +245 -0
  1057. casadi/include/licenses/clp-external/Clp/LICENSE +239 -0
  1058. casadi/include/licenses/clp-external/LICENSE +245 -0
  1059. casadi/include/licenses/coinutils-external/CoinUtils/LICENSE +239 -0
  1060. casadi/include/licenses/coinutils-external/LICENSE +245 -0
  1061. casadi/include/licenses/daqp-external/LICENSE +21 -0
  1062. casadi/include/licenses/highs-external/LICENSE.txt +21 -0
  1063. casadi/include/licenses/highs-external/extern/filereaderlp/LICENSE +19 -0
  1064. casadi/include/licenses/ipopt-external/LICENSE +260 -0
  1065. casadi/include/licenses/metis-external/LICENSE +87 -0
  1066. casadi/include/licenses/metis-external/metis-4.0/LICENSE +18 -0
  1067. casadi/include/licenses/mockups-external/LICENSE +21 -0
  1068. casadi/include/licenses/mumps-external/LICENSE +87 -0
  1069. casadi/include/licenses/mumps-external/MUMPS/LICENSE +50 -0
  1070. casadi/include/licenses/openblas-external/LICENSE +29 -0
  1071. casadi/include/licenses/openblas-external/ctest/LICENSE +23 -0
  1072. casadi/include/licenses/openblas-external/lapack-netlib/LAPACKE/LICENSE +26 -0
  1073. casadi/include/licenses/openblas-external/lapack-netlib/LICENSE +48 -0
  1074. casadi/include/licenses/openblas-external/reference/LICENSE +23 -0
  1075. casadi/include/licenses/openblas-external/relapack/LICENSE +22 -0
  1076. casadi/include/licenses/openblas-external/test/LICENSE +23 -0
  1077. casadi/include/licenses/osi-external/LICENSE +245 -0
  1078. casadi/include/licenses/osi-external/Osi/LICENSE +239 -0
  1079. casadi/include/licenses/osqp-external/LICENSE +201 -0
  1080. casadi/include/licenses/osqp-external/lin_sys/direct/qdldl/amd/LICENSE +36 -0
  1081. casadi/include/licenses/osqp-external/lin_sys/direct/qdldl/qdldl_sources/LICENSE +201 -0
  1082. casadi/include/licenses/proxqp-external/LICENSE +25 -0
  1083. casadi/include/licenses/proxqp-external/bindings/python/external/pybind11/LICENSE +29 -0
  1084. casadi/include/licenses/proxqp-external/cmake-module/LICENSE +4 -0
  1085. casadi/include/licenses/proxqp-external/cmake-module/doxygen/MathJax/LICENSE +202 -0
  1086. casadi/include/licenses/proxqp-external/external/cereal/LICENSE +24 -0
  1087. casadi/include/licenses/proxqp-external/external/cereal/include/cereal/external/LICENSE +21 -0
  1088. casadi/include/licenses/proxqp-external/external/cereal/include/cereal/external/rapidjson/LICENSE +13 -0
  1089. casadi/include/licenses/proxqp-external/external/cereal/include/cereal/external/rapidjson/msinttypes/LICENSE +29 -0
  1090. casadi/include/licenses/qpOASES/LICENSE.txt +503 -0
  1091. casadi/include/licenses/sleqp-external/LICENSE +165 -0
  1092. casadi/include/licenses/superscs-external/LICENSE.txt +24 -0
  1093. casadi/include/licenses/tinyxml2-9.0.0/LICENSE.txt +18 -0
  1094. casadi/include/licenses/trlib-external/LICENSE +21 -0
  1095. casadi/include/osqp/auxil.h +181 -0
  1096. casadi/include/osqp/constants.h +128 -0
  1097. casadi/include/osqp/cs.h +180 -0
  1098. casadi/include/osqp/ctrlc.h +56 -0
  1099. casadi/include/osqp/error.h +38 -0
  1100. casadi/include/osqp/glob_opts.h +167 -0
  1101. casadi/include/osqp/lin_alg.h +216 -0
  1102. casadi/include/osqp/lin_sys.h +54 -0
  1103. casadi/include/osqp/osqp.h +430 -0
  1104. casadi/include/osqp/osqp_configure.h +49 -0
  1105. casadi/include/osqp/polish.h +25 -0
  1106. casadi/include/osqp/proj.h +37 -0
  1107. casadi/include/osqp/scaling.h +44 -0
  1108. casadi/include/osqp/types.h +326 -0
  1109. casadi/include/osqp/util.h +222 -0
  1110. casadi/include/osqp/version.h +9 -0
  1111. casadi/include/proxsuite/config.hpp +68 -0
  1112. casadi/include/proxsuite/deprecated.hpp +56 -0
  1113. casadi/include/proxsuite/fwd.hpp +52 -0
  1114. casadi/include/proxsuite/helpers/common.hpp +70 -0
  1115. casadi/include/proxsuite/helpers/instruction-set.hpp +275 -0
  1116. casadi/include/proxsuite/helpers/optional.hpp +46 -0
  1117. casadi/include/proxsuite/helpers/tl-optional.hpp +2472 -0
  1118. casadi/include/proxsuite/helpers/version.hpp +39 -0
  1119. casadi/include/proxsuite/linalg/dense/core.hpp +863 -0
  1120. casadi/include/proxsuite/linalg/dense/factorize.hpp +375 -0
  1121. casadi/include/proxsuite/linalg/dense/ldlt.hpp +817 -0
  1122. casadi/include/proxsuite/linalg/dense/modify.hpp +333 -0
  1123. casadi/include/proxsuite/linalg/dense/solve.hpp +38 -0
  1124. casadi/include/proxsuite/linalg/dense/update.hpp +330 -0
  1125. casadi/include/proxsuite/linalg/sparse/core.hpp +531 -0
  1126. casadi/include/proxsuite/linalg/sparse/factorize.hpp +1303 -0
  1127. casadi/include/proxsuite/linalg/sparse/rowmod.hpp +443 -0
  1128. casadi/include/proxsuite/linalg/sparse/update.hpp +348 -0
  1129. casadi/include/proxsuite/linalg/veg/internal/assert_impl.hpp +20 -0
  1130. casadi/include/proxsuite/linalg/veg/internal/collection_algo.hpp +93 -0
  1131. casadi/include/proxsuite/linalg/veg/internal/dbg.hpp +15 -0
  1132. casadi/include/proxsuite/linalg/veg/internal/delete_special_members.hpp +77 -0
  1133. casadi/include/proxsuite/linalg/veg/internal/dyn_index.hpp +292 -0
  1134. casadi/include/proxsuite/linalg/veg/internal/epilogue.hpp +31 -0
  1135. casadi/include/proxsuite/linalg/veg/internal/external/hedley.ext.hpp +2074 -0
  1136. casadi/include/proxsuite/linalg/veg/internal/external/unhedley.ext.hpp +148 -0
  1137. casadi/include/proxsuite/linalg/veg/internal/fix_index.hpp +339 -0
  1138. casadi/include/proxsuite/linalg/veg/internal/has_asan.hpp +17 -0
  1139. casadi/include/proxsuite/linalg/veg/internal/integer_seq.hpp +248 -0
  1140. casadi/include/proxsuite/linalg/veg/internal/macros.hpp +1312 -0
  1141. casadi/include/proxsuite/linalg/veg/internal/narrow.hpp +46 -0
  1142. casadi/include/proxsuite/linalg/veg/internal/preprocessor.hpp +434 -0
  1143. casadi/include/proxsuite/linalg/veg/internal/prologue.hpp +157 -0
  1144. casadi/include/proxsuite/linalg/veg/internal/std.hpp +13 -0
  1145. casadi/include/proxsuite/linalg/veg/internal/terminate.hpp +22 -0
  1146. casadi/include/proxsuite/linalg/veg/internal/typedefs.hpp +58 -0
  1147. casadi/include/proxsuite/linalg/veg/memory/address.hpp +97 -0
  1148. casadi/include/proxsuite/linalg/veg/memory/alloc.hpp +352 -0
  1149. casadi/include/proxsuite/linalg/veg/memory/dynamic_stack.hpp +504 -0
  1150. casadi/include/proxsuite/linalg/veg/memory/placement.hpp +202 -0
  1151. casadi/include/proxsuite/linalg/veg/memory/stack_alloc.hpp +239 -0
  1152. casadi/include/proxsuite/linalg/veg/ref.hpp +148 -0
  1153. casadi/include/proxsuite/linalg/veg/slice.hpp +240 -0
  1154. casadi/include/proxsuite/linalg/veg/tuple.hpp +876 -0
  1155. casadi/include/proxsuite/linalg/veg/type_traits/alloc.hpp +169 -0
  1156. casadi/include/proxsuite/linalg/veg/type_traits/assignable.hpp +53 -0
  1157. casadi/include/proxsuite/linalg/veg/type_traits/constructible.hpp +217 -0
  1158. casadi/include/proxsuite/linalg/veg/type_traits/core.hpp +298 -0
  1159. casadi/include/proxsuite/linalg/veg/type_traits/invocable.hpp +47 -0
  1160. casadi/include/proxsuite/linalg/veg/type_traits/primitives.hpp +43 -0
  1161. casadi/include/proxsuite/linalg/veg/type_traits/tags.hpp +47 -0
  1162. casadi/include/proxsuite/linalg/veg/util/assert.hpp +48 -0
  1163. casadi/include/proxsuite/linalg/veg/util/dbg.hpp +6 -0
  1164. casadi/include/proxsuite/linalg/veg/util/defer.hpp +57 -0
  1165. casadi/include/proxsuite/linalg/veg/util/dynstack_alloc.hpp +19 -0
  1166. casadi/include/proxsuite/linalg/veg/util/get.hpp +153 -0
  1167. casadi/include/proxsuite/linalg/veg/util/index.hpp +6 -0
  1168. casadi/include/proxsuite/linalg/veg/util/unreachable.hpp +41 -0
  1169. casadi/include/proxsuite/linalg/veg/vec.hpp +1034 -0
  1170. casadi/include/proxsuite/proxqp/dense/dense.hpp +10 -0
  1171. casadi/include/proxsuite/proxqp/dense/fwd.hpp +55 -0
  1172. casadi/include/proxsuite/proxqp/dense/helpers.hpp +520 -0
  1173. casadi/include/proxsuite/proxqp/dense/linesearch.hpp +517 -0
  1174. casadi/include/proxsuite/proxqp/dense/model.hpp +147 -0
  1175. casadi/include/proxsuite/proxqp/dense/preconditioner/identity.hpp +113 -0
  1176. casadi/include/proxsuite/proxqp/dense/preconditioner/ruiz.hpp +571 -0
  1177. casadi/include/proxsuite/proxqp/dense/solver.hpp +1330 -0
  1178. casadi/include/proxsuite/proxqp/dense/utils.hpp +415 -0
  1179. casadi/include/proxsuite/proxqp/dense/views.hpp +1466 -0
  1180. casadi/include/proxsuite/proxqp/dense/workspace.hpp +264 -0
  1181. casadi/include/proxsuite/proxqp/dense/wrapper.hpp +491 -0
  1182. casadi/include/proxsuite/proxqp/results.hpp +212 -0
  1183. casadi/include/proxsuite/proxqp/settings.hpp +302 -0
  1184. casadi/include/proxsuite/proxqp/sparse/fwd.hpp +58 -0
  1185. casadi/include/proxsuite/proxqp/sparse/helpers.hpp +309 -0
  1186. casadi/include/proxsuite/proxqp/sparse/model.hpp +228 -0
  1187. casadi/include/proxsuite/proxqp/sparse/preconditioner/identity.hpp +64 -0
  1188. casadi/include/proxsuite/proxqp/sparse/preconditioner/ruiz.hpp +569 -0
  1189. casadi/include/proxsuite/proxqp/sparse/solver.hpp +1441 -0
  1190. casadi/include/proxsuite/proxqp/sparse/sparse.hpp +10 -0
  1191. casadi/include/proxsuite/proxqp/sparse/utils.hpp +815 -0
  1192. casadi/include/proxsuite/proxqp/sparse/views.hpp +63 -0
  1193. casadi/include/proxsuite/proxqp/sparse/workspace.hpp +790 -0
  1194. casadi/include/proxsuite/proxqp/sparse/wrapper.hpp +772 -0
  1195. casadi/include/proxsuite/proxqp/status.hpp +46 -0
  1196. casadi/include/proxsuite/proxqp/timings.hpp +101 -0
  1197. casadi/include/proxsuite/proxqp/utils/prints.hpp +47 -0
  1198. casadi/include/proxsuite/proxqp/utils/random_qp_problems.hpp +669 -0
  1199. casadi/include/proxsuite/serialization/archive.hpp +231 -0
  1200. casadi/include/proxsuite/serialization/eigen.hpp +107 -0
  1201. casadi/include/proxsuite/serialization/model.hpp +34 -0
  1202. casadi/include/proxsuite/serialization/results.hpp +74 -0
  1203. casadi/include/proxsuite/serialization/settings.hpp +60 -0
  1204. casadi/include/proxsuite/serialization/wrapper.hpp +24 -0
  1205. casadi/include/proxsuite/warning.hpp +35 -0
  1206. casadi/include/simde/arm/neon/aba.h +208 -0
  1207. casadi/include/simde/arm/neon/abd.h +384 -0
  1208. casadi/include/simde/arm/neon/abdl.h +147 -0
  1209. casadi/include/simde/arm/neon/abs.h +408 -0
  1210. casadi/include/simde/arm/neon/add.h +681 -0
  1211. casadi/include/simde/arm/neon/addl.h +127 -0
  1212. casadi/include/simde/arm/neon/addl_high.h +127 -0
  1213. casadi/include/simde/arm/neon/addlv.h +317 -0
  1214. casadi/include/simde/arm/neon/addv.h +447 -0
  1215. casadi/include/simde/arm/neon/addw.h +222 -0
  1216. casadi/include/simde/arm/neon/addw_high.h +193 -0
  1217. casadi/include/simde/arm/neon/and.h +552 -0
  1218. casadi/include/simde/arm/neon/bic.h +472 -0
  1219. casadi/include/simde/arm/neon/bsl.h +448 -0
  1220. casadi/include/simde/arm/neon/cagt.h +168 -0
  1221. casadi/include/simde/arm/neon/ceq.h +711 -0
  1222. casadi/include/simde/arm/neon/ceqz.h +335 -0
  1223. casadi/include/simde/arm/neon/cge.h +677 -0
  1224. casadi/include/simde/arm/neon/cgez.h +378 -0
  1225. casadi/include/simde/arm/neon/cgt.h +686 -0
  1226. casadi/include/simde/arm/neon/cgtz.h +380 -0
  1227. casadi/include/simde/arm/neon/cle.h +677 -0
  1228. casadi/include/simde/arm/neon/clez.h +378 -0
  1229. casadi/include/simde/arm/neon/cls.h +148 -0
  1230. casadi/include/simde/arm/neon/clt.h +679 -0
  1231. casadi/include/simde/arm/neon/cltz.h +263 -0
  1232. casadi/include/simde/arm/neon/clz.h +423 -0
  1233. casadi/include/simde/arm/neon/cnt.h +145 -0
  1234. casadi/include/simde/arm/neon/combine.h +343 -0
  1235. casadi/include/simde/arm/neon/create.h +186 -0
  1236. casadi/include/simde/arm/neon/cvt.h +492 -0
  1237. casadi/include/simde/arm/neon/dot.h +171 -0
  1238. casadi/include/simde/arm/neon/dot_lane.h +196 -0
  1239. casadi/include/simde/arm/neon/dup_lane.h +702 -0
  1240. casadi/include/simde/arm/neon/dup_n.h +534 -0
  1241. casadi/include/simde/arm/neon/eor.h +552 -0
  1242. casadi/include/simde/arm/neon/ext.h +887 -0
  1243. casadi/include/simde/arm/neon/get_high.h +260 -0
  1244. casadi/include/simde/arm/neon/get_lane.h +499 -0
  1245. casadi/include/simde/arm/neon/get_low.h +276 -0
  1246. casadi/include/simde/arm/neon/hadd.h +287 -0
  1247. casadi/include/simde/arm/neon/hsub.h +287 -0
  1248. casadi/include/simde/arm/neon/ld1.h +399 -0
  1249. casadi/include/simde/arm/neon/ld3.h +609 -0
  1250. casadi/include/simde/arm/neon/ld4.h +448 -0
  1251. casadi/include/simde/arm/neon/max.h +614 -0
  1252. casadi/include/simde/arm/neon/maxnm.h +215 -0
  1253. casadi/include/simde/arm/neon/maxv.h +400 -0
  1254. casadi/include/simde/arm/neon/min.h +660 -0
  1255. casadi/include/simde/arm/neon/minnm.h +215 -0
  1256. casadi/include/simde/arm/neon/minv.h +424 -0
  1257. casadi/include/simde/arm/neon/mla.h +530 -0
  1258. casadi/include/simde/arm/neon/mla_n.h +333 -0
  1259. casadi/include/simde/arm/neon/mlal.h +156 -0
  1260. casadi/include/simde/arm/neon/mlal_high.h +156 -0
  1261. casadi/include/simde/arm/neon/mlal_n.h +128 -0
  1262. casadi/include/simde/arm/neon/mls.h +264 -0
  1263. casadi/include/simde/arm/neon/mlsl.h +124 -0
  1264. casadi/include/simde/arm/neon/mlsl_high.h +124 -0
  1265. casadi/include/simde/arm/neon/mlsl_n.h +96 -0
  1266. casadi/include/simde/arm/neon/movl.h +208 -0
  1267. casadi/include/simde/arm/neon/movl_high.h +126 -0
  1268. casadi/include/simde/arm/neon/movn.h +195 -0
  1269. casadi/include/simde/arm/neon/movn_high.h +125 -0
  1270. casadi/include/simde/arm/neon/mul.h +594 -0
  1271. casadi/include/simde/arm/neon/mul_lane.h +472 -0
  1272. casadi/include/simde/arm/neon/mul_n.h +383 -0
  1273. casadi/include/simde/arm/neon/mull.h +236 -0
  1274. casadi/include/simde/arm/neon/mull_high.h +125 -0
  1275. casadi/include/simde/arm/neon/mull_n.h +158 -0
  1276. casadi/include/simde/arm/neon/mvn.h +426 -0
  1277. casadi/include/simde/arm/neon/neg.h +393 -0
  1278. casadi/include/simde/arm/neon/orn.h +505 -0
  1279. casadi/include/simde/arm/neon/orr.h +552 -0
  1280. casadi/include/simde/arm/neon/padal.h +211 -0
  1281. casadi/include/simde/arm/neon/padd.h +293 -0
  1282. casadi/include/simde/arm/neon/paddl.h +239 -0
  1283. casadi/include/simde/arm/neon/pmax.h +253 -0
  1284. casadi/include/simde/arm/neon/pmin.h +260 -0
  1285. casadi/include/simde/arm/neon/qabs.h +281 -0
  1286. casadi/include/simde/arm/neon/qadd.h +553 -0
  1287. casadi/include/simde/arm/neon/qdmulh.h +125 -0
  1288. casadi/include/simde/arm/neon/qdmull.h +125 -0
  1289. casadi/include/simde/arm/neon/qmovn.h +273 -0
  1290. casadi/include/simde/arm/neon/qmovn_high.h +127 -0
  1291. casadi/include/simde/arm/neon/qmovun.h +159 -0
  1292. casadi/include/simde/arm/neon/qneg.h +301 -0
  1293. casadi/include/simde/arm/neon/qrdmulh.h +165 -0
  1294. casadi/include/simde/arm/neon/qrdmulh_n.h +136 -0
  1295. casadi/include/simde/arm/neon/qshl.h +732 -0
  1296. casadi/include/simde/arm/neon/qsub.h +549 -0
  1297. casadi/include/simde/arm/neon/qtbl.h +455 -0
  1298. casadi/include/simde/arm/neon/qtbx.h +470 -0
  1299. casadi/include/simde/arm/neon/rbit.h +165 -0
  1300. casadi/include/simde/arm/neon/reinterpret.h +3101 -0
  1301. casadi/include/simde/arm/neon/rev16.h +137 -0
  1302. casadi/include/simde/arm/neon/rev32.h +235 -0
  1303. casadi/include/simde/arm/neon/rev64.h +358 -0
  1304. casadi/include/simde/arm/neon/rhadd.h +406 -0
  1305. casadi/include/simde/arm/neon/rnd.h +143 -0
  1306. casadi/include/simde/arm/neon/rndi.h +135 -0
  1307. casadi/include/simde/arm/neon/rndm.h +143 -0
  1308. casadi/include/simde/arm/neon/rndn.h +135 -0
  1309. casadi/include/simde/arm/neon/rndp.h +143 -0
  1310. casadi/include/simde/arm/neon/rshl.h +903 -0
  1311. casadi/include/simde/arm/neon/rshr_n.h +471 -0
  1312. casadi/include/simde/arm/neon/rsra_n.h +209 -0
  1313. casadi/include/simde/arm/neon/set_lane.h +422 -0
  1314. casadi/include/simde/arm/neon/shl.h +805 -0
  1315. casadi/include/simde/arm/neon/shl_n.h +560 -0
  1316. casadi/include/simde/arm/neon/shr_n.h +612 -0
  1317. casadi/include/simde/arm/neon/sra_n.h +202 -0
  1318. casadi/include/simde/arm/neon/st1.h +353 -0
  1319. casadi/include/simde/arm/neon/st1_lane.h +363 -0
  1320. casadi/include/simde/arm/neon/st3.h +426 -0
  1321. casadi/include/simde/arm/neon/st4.h +445 -0
  1322. casadi/include/simde/arm/neon/sub.h +659 -0
  1323. casadi/include/simde/arm/neon/subl.h +127 -0
  1324. casadi/include/simde/arm/neon/subw.h +221 -0
  1325. casadi/include/simde/arm/neon/subw_high.h +222 -0
  1326. casadi/include/simde/arm/neon/tbl.h +224 -0
  1327. casadi/include/simde/arm/neon/tbx.h +247 -0
  1328. casadi/include/simde/arm/neon/trn.h +252 -0
  1329. casadi/include/simde/arm/neon/trn1.h +500 -0
  1330. casadi/include/simde/arm/neon/trn2.h +499 -0
  1331. casadi/include/simde/arm/neon/tst.h +540 -0
  1332. casadi/include/simde/arm/neon/types.h +683 -0
  1333. casadi/include/simde/arm/neon/uqadd.h +325 -0
  1334. casadi/include/simde/arm/neon/uzp.h +252 -0
  1335. casadi/include/simde/arm/neon/uzp1.h +643 -0
  1336. casadi/include/simde/arm/neon/uzp2.h +647 -0
  1337. casadi/include/simde/arm/neon/zip.h +252 -0
  1338. casadi/include/simde/arm/neon/zip1.h +625 -0
  1339. casadi/include/simde/arm/neon/zip2.h +625 -0
  1340. casadi/include/simde/arm/neon.h +166 -0
  1341. casadi/include/simde/check.h +276 -0
  1342. casadi/include/simde/debug-trap.h +85 -0
  1343. casadi/include/simde/hedley.h +1971 -0
  1344. casadi/include/simde/simde-align.h +449 -0
  1345. casadi/include/simde/simde-arch.h +532 -0
  1346. casadi/include/simde/simde-common.h +890 -0
  1347. casadi/include/simde/simde-complex.h +148 -0
  1348. casadi/include/simde/simde-constify.h +397 -0
  1349. casadi/include/simde/simde-detect-clang.h +109 -0
  1350. casadi/include/simde/simde-diagnostic.h +428 -0
  1351. casadi/include/simde/simde-features.h +522 -0
  1352. casadi/include/simde/simde-math.h +1805 -0
  1353. casadi/include/simde/x86/avx.h +6193 -0
  1354. casadi/include/simde/x86/avx2.h +5660 -0
  1355. casadi/include/simde/x86/avx512/2intersect.h +250 -0
  1356. casadi/include/simde/x86/avx512/abs.h +562 -0
  1357. casadi/include/simde/x86/avx512/add.h +641 -0
  1358. casadi/include/simde/x86/avx512/adds.h +390 -0
  1359. casadi/include/simde/x86/avx512/and.h +305 -0
  1360. casadi/include/simde/x86/avx512/andnot.h +193 -0
  1361. casadi/include/simde/x86/avx512/avg.h +258 -0
  1362. casadi/include/simde/x86/avx512/blend.h +293 -0
  1363. casadi/include/simde/x86/avx512/broadcast.h +897 -0
  1364. casadi/include/simde/x86/avx512/cast.h +324 -0
  1365. casadi/include/simde/x86/avx512/cmp.h +587 -0
  1366. casadi/include/simde/x86/avx512/cmpeq.h +179 -0
  1367. casadi/include/simde/x86/avx512/cmpge.h +104 -0
  1368. casadi/include/simde/x86/avx512/cmpgt.h +189 -0
  1369. casadi/include/simde/x86/avx512/cmple.h +103 -0
  1370. casadi/include/simde/x86/avx512/cmplt.h +123 -0
  1371. casadi/include/simde/x86/avx512/copysign.h +86 -0
  1372. casadi/include/simde/x86/avx512/cvt.h +122 -0
  1373. casadi/include/simde/x86/avx512/cvts.h +723 -0
  1374. casadi/include/simde/x86/avx512/div.h +162 -0
  1375. casadi/include/simde/x86/avx512/extract.h +198 -0
  1376. casadi/include/simde/x86/avx512/fmadd.h +136 -0
  1377. casadi/include/simde/x86/avx512/fmsub.h +108 -0
  1378. casadi/include/simde/x86/avx512/fnmadd.h +108 -0
  1379. casadi/include/simde/x86/avx512/fnmsub.h +108 -0
  1380. casadi/include/simde/x86/avx512/insert.h +193 -0
  1381. casadi/include/simde/x86/avx512/kshift.h +152 -0
  1382. casadi/include/simde/x86/avx512/load.h +67 -0
  1383. casadi/include/simde/x86/avx512/loadu.h +113 -0
  1384. casadi/include/simde/x86/avx512/lzcnt.h +209 -0
  1385. casadi/include/simde/x86/avx512/madd.h +155 -0
  1386. casadi/include/simde/x86/avx512/maddubs.h +159 -0
  1387. casadi/include/simde/x86/avx512/max.h +587 -0
  1388. casadi/include/simde/x86/avx512/min.h +587 -0
  1389. casadi/include/simde/x86/avx512/mov.h +859 -0
  1390. casadi/include/simde/x86/avx512/mov_mask.h +372 -0
  1391. casadi/include/simde/x86/avx512/movm.h +460 -0
  1392. casadi/include/simde/x86/avx512/mul.h +279 -0
  1393. casadi/include/simde/x86/avx512/mulhi.h +65 -0
  1394. casadi/include/simde/x86/avx512/mulhrs.h +65 -0
  1395. casadi/include/simde/x86/avx512/mullo.h +117 -0
  1396. casadi/include/simde/x86/avx512/negate.h +88 -0
  1397. casadi/include/simde/x86/avx512/or.h +252 -0
  1398. casadi/include/simde/x86/avx512/packs.h +122 -0
  1399. casadi/include/simde/x86/avx512/packus.h +122 -0
  1400. casadi/include/simde/x86/avx512/permutex2var.h +1645 -0
  1401. casadi/include/simde/x86/avx512/permutexvar.h +1180 -0
  1402. casadi/include/simde/x86/avx512/sad.h +77 -0
  1403. casadi/include/simde/x86/avx512/set.h +477 -0
  1404. casadi/include/simde/x86/avx512/set1.h +331 -0
  1405. casadi/include/simde/x86/avx512/set4.h +140 -0
  1406. casadi/include/simde/x86/avx512/setone.h +66 -0
  1407. casadi/include/simde/x86/avx512/setr.h +144 -0
  1408. casadi/include/simde/x86/avx512/setr4.h +140 -0
  1409. casadi/include/simde/x86/avx512/setzero.h +90 -0
  1410. casadi/include/simde/x86/avx512/shuffle.h +176 -0
  1411. casadi/include/simde/x86/avx512/sll.h +247 -0
  1412. casadi/include/simde/x86/avx512/slli.h +179 -0
  1413. casadi/include/simde/x86/avx512/sllv.h +68 -0
  1414. casadi/include/simde/x86/avx512/sqrt.h +127 -0
  1415. casadi/include/simde/x86/avx512/sra.h +81 -0
  1416. casadi/include/simde/x86/avx512/srai.h +70 -0
  1417. casadi/include/simde/x86/avx512/srav.h +67 -0
  1418. casadi/include/simde/x86/avx512/srl.h +216 -0
  1419. casadi/include/simde/x86/avx512/srli.h +180 -0
  1420. casadi/include/simde/x86/avx512/srlv.h +282 -0
  1421. casadi/include/simde/x86/avx512/store.h +93 -0
  1422. casadi/include/simde/x86/avx512/storeu.h +93 -0
  1423. casadi/include/simde/x86/avx512/sub.h +351 -0
  1424. casadi/include/simde/x86/avx512/subs.h +222 -0
  1425. casadi/include/simde/x86/avx512/test.h +193 -0
  1426. casadi/include/simde/x86/avx512/types.h +380 -0
  1427. casadi/include/simde/x86/avx512/unpackhi.h +380 -0
  1428. casadi/include/simde/x86/avx512/unpacklo.h +104 -0
  1429. casadi/include/simde/x86/avx512/xor.h +263 -0
  1430. casadi/include/simde/x86/avx512/xorsign.h +72 -0
  1431. casadi/include/simde/x86/avx512.h +108 -0
  1432. casadi/include/simde/x86/clmul.h +414 -0
  1433. casadi/include/simde/x86/fma.h +724 -0
  1434. casadi/include/simde/x86/gfni.h +802 -0
  1435. casadi/include/simde/x86/mmx.h +2399 -0
  1436. casadi/include/simde/x86/sse.h +4471 -0
  1437. casadi/include/simde/x86/sse2.h +7389 -0
  1438. casadi/include/simde/x86/sse3.h +499 -0
  1439. casadi/include/simde/x86/sse4.1.h +2216 -0
  1440. casadi/include/simde/x86/sse4.2.h +347 -0
  1441. casadi/include/simde/x86/ssse3.h +1032 -0
  1442. casadi/include/simde/x86/svml.h +12139 -0
  1443. casadi/include/simde/x86/xop.h +3644 -0
  1444. casadi/include/superscs/cones.h +185 -0
  1445. casadi/include/superscs/constants.h +144 -0
  1446. casadi/include/superscs/cs.h +109 -0
  1447. casadi/include/superscs/ctrlc.h +77 -0
  1448. casadi/include/superscs/directions.h +125 -0
  1449. casadi/include/superscs/glbopts.h +240 -0
  1450. casadi/include/superscs/linAlg.h +437 -0
  1451. casadi/include/superscs/linSys.h +205 -0
  1452. casadi/include/superscs/linsys/amatrix.h +77 -0
  1453. casadi/include/superscs/linsys/common.h +49 -0
  1454. casadi/include/superscs/normalize.h +138 -0
  1455. casadi/include/superscs/scs.h +656 -0
  1456. casadi/include/superscs/scs_blas.h +79 -0
  1457. casadi/include/superscs/scs_parser.h +187 -0
  1458. casadi/include/superscs/unit_test_util.h +210 -0
  1459. casadi/include/superscs/util.h +354 -0
  1460. casadi/include/tinyxml2.h +2380 -0
  1461. casadi/include/trlib/trlib_eigen_inverse.h +118 -0
  1462. casadi/include/trlib/trlib_krylov.h +493 -0
  1463. casadi/include/trlib/trlib_leftmost.h +181 -0
  1464. casadi/include/trlib/trlib_private.h +109 -0
  1465. casadi/include/trlib/trlib_quadratic_zero.h +57 -0
  1466. casadi/include/trlib/trlib_tri_factor.h +409 -0
  1467. casadi/include/trlib/trlib_types.h +36 -0
  1468. casadi/lib/cmake/tinyxml2/tinyxml2-config-version.cmake +70 -0
  1469. casadi/lib/cmake/tinyxml2/tinyxml2-config.cmake +57 -0
  1470. casadi/lib/cmake/tinyxml2/tinyxml2-static-targets-release.cmake +19 -0
  1471. casadi/lib/cmake/tinyxml2/tinyxml2-static-targets.cmake +103 -0
  1472. casadi/lib/libtinyxml2.a +0 -0
  1473. casadi/lib/pkgconfig/tinyxml2.pc +10 -0
  1474. casadi/libCbc.la +35 -0
  1475. casadi/libCbc.so +0 -0
  1476. casadi/libCbc.so.3 +0 -0
  1477. casadi/libCbc.so.3.10.11 +0 -0
  1478. casadi/libCbcSolver.la +35 -0
  1479. casadi/libCbcSolver.so +0 -0
  1480. casadi/libCbcSolver.so.3 +0 -0
  1481. casadi/libCbcSolver.so.3.10.11 +0 -0
  1482. casadi/libCgl.la +35 -0
  1483. casadi/libCgl.so +0 -0
  1484. casadi/libCgl.so.1 +0 -0
  1485. casadi/libCgl.so.1.10.8 +0 -0
  1486. casadi/libClp.la +35 -0
  1487. casadi/libClp.so +0 -0
  1488. casadi/libClp.so.1 +0 -0
  1489. casadi/libClp.so.1.14.9 +0 -0
  1490. casadi/libClpSolver.la +35 -0
  1491. casadi/libClpSolver.so +0 -0
  1492. casadi/libClpSolver.so.1 +0 -0
  1493. casadi/libClpSolver.so.1.14.9 +0 -0
  1494. casadi/libCoinUtils.la +35 -0
  1495. casadi/libCoinUtils.so +0 -0
  1496. casadi/libCoinUtils.so.3 +0 -0
  1497. casadi/libCoinUtils.so.3.11.10 +0 -0
  1498. casadi/libOsi.la +35 -0
  1499. casadi/libOsi.so +0 -0
  1500. casadi/libOsi.so.1 +0 -0
  1501. casadi/libOsi.so.1.13.9 +0 -0
  1502. casadi/libOsiCbc.la +35 -0
  1503. casadi/libOsiCbc.so +0 -0
  1504. casadi/libOsiCbc.so.3 +0 -0
  1505. casadi/libOsiCbc.so.3.10.11 +0 -0
  1506. casadi/libOsiClp.la +35 -0
  1507. casadi/libOsiClp.so +0 -0
  1508. casadi/libOsiClp.so.1 +0 -0
  1509. casadi/libOsiClp.so.1.14.9 +0 -0
  1510. casadi/libOsiCommonTests.la +35 -0
  1511. casadi/libOsiCommonTests.so +0 -0
  1512. casadi/libOsiCommonTests.so.1 +0 -0
  1513. casadi/libOsiCommonTests.so.1.13.9 +0 -0
  1514. casadi/libalpaqa-dl-loader.so +0 -0
  1515. casadi/libalpaqa-dl-loader.so.1.0.0 +0 -0
  1516. casadi/libalpaqa.so +0 -0
  1517. casadi/libalpaqa.so.1.0.0 +0 -0
  1518. casadi/libbonmin.la +35 -0
  1519. casadi/libbonmin.so +0 -0
  1520. casadi/libbonmin.so.4 +0 -0
  1521. casadi/libbonmin.so.4.8.9 +0 -0
  1522. casadi/libcasadi-tp-openblas.so +0 -0
  1523. casadi/libcasadi-tp-openblas.so.0 +0 -0
  1524. casadi/libcasadi-tp-openblas.so.0.3 +0 -0
  1525. casadi/libcasadi.so +0 -0
  1526. casadi/libcasadi.so.3.7 +0 -0
  1527. casadi/libcasadi_conic_cbc.so +0 -0
  1528. casadi/libcasadi_conic_cbc.so.3.7 +0 -0
  1529. casadi/libcasadi_conic_clp.so +0 -0
  1530. casadi/libcasadi_conic_clp.so.3.7 +0 -0
  1531. casadi/libcasadi_conic_daqp.so +0 -0
  1532. casadi/libcasadi_conic_daqp.so.3.7 +0 -0
  1533. casadi/libcasadi_conic_gurobi.so +0 -0
  1534. casadi/libcasadi_conic_gurobi.so.3.7 +0 -0
  1535. casadi/libcasadi_conic_highs.so +0 -0
  1536. casadi/libcasadi_conic_highs.so.3.7 +0 -0
  1537. casadi/libcasadi_conic_ipqp.so +0 -0
  1538. casadi/libcasadi_conic_ipqp.so.3.7 +0 -0
  1539. casadi/libcasadi_conic_nlpsol.so +0 -0
  1540. casadi/libcasadi_conic_nlpsol.so.3.7 +0 -0
  1541. casadi/libcasadi_conic_osqp.so +0 -0
  1542. casadi/libcasadi_conic_osqp.so.3.7 +0 -0
  1543. casadi/libcasadi_conic_proxqp.so +0 -0
  1544. casadi/libcasadi_conic_proxqp.so.3.7 +0 -0
  1545. casadi/libcasadi_conic_qpoases.so +0 -0
  1546. casadi/libcasadi_conic_qpoases.so.3.7 +0 -0
  1547. casadi/libcasadi_conic_qrqp.so +0 -0
  1548. casadi/libcasadi_conic_qrqp.so.3.7 +0 -0
  1549. casadi/libcasadi_conic_superscs.so +0 -0
  1550. casadi/libcasadi_conic_superscs.so.3.7 +0 -0
  1551. casadi/libcasadi_importer_shell.so +0 -0
  1552. casadi/libcasadi_importer_shell.so.3.7 +0 -0
  1553. casadi/libcasadi_integrator_collocation.so +0 -0
  1554. casadi/libcasadi_integrator_collocation.so.3.7 +0 -0
  1555. casadi/libcasadi_integrator_cvodes.so +0 -0
  1556. casadi/libcasadi_integrator_cvodes.so.3.7 +0 -0
  1557. casadi/libcasadi_integrator_idas.so +0 -0
  1558. casadi/libcasadi_integrator_idas.so.3.7 +0 -0
  1559. casadi/libcasadi_integrator_rk.so +0 -0
  1560. casadi/libcasadi_integrator_rk.so.3.7 +0 -0
  1561. casadi/libcasadi_interpolant_bspline.so +0 -0
  1562. casadi/libcasadi_interpolant_bspline.so.3.7 +0 -0
  1563. casadi/libcasadi_interpolant_linear.so +0 -0
  1564. casadi/libcasadi_interpolant_linear.so.3.7 +0 -0
  1565. casadi/libcasadi_linsol_csparse.so +0 -0
  1566. casadi/libcasadi_linsol_csparse.so.3.7 +0 -0
  1567. casadi/libcasadi_linsol_csparsecholesky.so +0 -0
  1568. casadi/libcasadi_linsol_csparsecholesky.so.3.7 +0 -0
  1569. casadi/libcasadi_linsol_lapacklu.so +0 -0
  1570. casadi/libcasadi_linsol_lapacklu.so.3.7 +0 -0
  1571. casadi/libcasadi_linsol_lapackqr.so +0 -0
  1572. casadi/libcasadi_linsol_lapackqr.so.3.7 +0 -0
  1573. casadi/libcasadi_linsol_ldl.so +0 -0
  1574. casadi/libcasadi_linsol_ldl.so.3.7 +0 -0
  1575. casadi/libcasadi_linsol_lsqr.so +0 -0
  1576. casadi/libcasadi_linsol_lsqr.so.3.7 +0 -0
  1577. casadi/libcasadi_linsol_ma27.so +0 -0
  1578. casadi/libcasadi_linsol_ma27.so.3.7 +0 -0
  1579. casadi/libcasadi_linsol_mumps.so +0 -0
  1580. casadi/libcasadi_linsol_mumps.so.3.7 +0 -0
  1581. casadi/libcasadi_linsol_qr.so +0 -0
  1582. casadi/libcasadi_linsol_qr.so.3.7 +0 -0
  1583. casadi/libcasadi_linsol_symbolicqr.so +0 -0
  1584. casadi/libcasadi_linsol_symbolicqr.so.3.7 +0 -0
  1585. casadi/libcasadi_linsol_tridiag.so +0 -0
  1586. casadi/libcasadi_linsol_tridiag.so.3.7 +0 -0
  1587. casadi/libcasadi_nlpsol_alpaqa.so +0 -0
  1588. casadi/libcasadi_nlpsol_alpaqa.so.3.7 +0 -0
  1589. casadi/libcasadi_nlpsol_ampl.so +0 -0
  1590. casadi/libcasadi_nlpsol_ampl.so.3.7 +0 -0
  1591. casadi/libcasadi_nlpsol_blocksqp.so +0 -0
  1592. casadi/libcasadi_nlpsol_blocksqp.so.3.7 +0 -0
  1593. casadi/libcasadi_nlpsol_bonmin.so +0 -0
  1594. casadi/libcasadi_nlpsol_bonmin.so.3.7 +0 -0
  1595. casadi/libcasadi_nlpsol_feasiblesqpmethod.so +0 -0
  1596. casadi/libcasadi_nlpsol_feasiblesqpmethod.so.3.7 +0 -0
  1597. casadi/libcasadi_nlpsol_ipopt.so +0 -0
  1598. casadi/libcasadi_nlpsol_ipopt.so.3.7 +0 -0
  1599. casadi/libcasadi_nlpsol_knitro.so +0 -0
  1600. casadi/libcasadi_nlpsol_knitro.so.3.7 +0 -0
  1601. casadi/libcasadi_nlpsol_madnlp.so +0 -0
  1602. casadi/libcasadi_nlpsol_madnlp.so.3.7 +0 -0
  1603. casadi/libcasadi_nlpsol_qrsqp.so +0 -0
  1604. casadi/libcasadi_nlpsol_qrsqp.so.3.7 +0 -0
  1605. casadi/libcasadi_nlpsol_scpgen.so +0 -0
  1606. casadi/libcasadi_nlpsol_scpgen.so.3.7 +0 -0
  1607. casadi/libcasadi_nlpsol_sleqp.so +0 -0
  1608. casadi/libcasadi_nlpsol_sleqp.so.3.7 +0 -0
  1609. casadi/libcasadi_nlpsol_snopt.so +0 -0
  1610. casadi/libcasadi_nlpsol_snopt.so.3.7 +0 -0
  1611. casadi/libcasadi_nlpsol_sqpmethod.so +0 -0
  1612. casadi/libcasadi_nlpsol_sqpmethod.so.3.7 +0 -0
  1613. casadi/libcasadi_nlpsol_worhp.so +0 -0
  1614. casadi/libcasadi_nlpsol_worhp.so.3.7 +0 -0
  1615. casadi/libcasadi_rootfinder_fast_newton.so +0 -0
  1616. casadi/libcasadi_rootfinder_fast_newton.so.3.7 +0 -0
  1617. casadi/libcasadi_rootfinder_kinsol.so +0 -0
  1618. casadi/libcasadi_rootfinder_kinsol.so.3.7 +0 -0
  1619. casadi/libcasadi_rootfinder_newton.so +0 -0
  1620. casadi/libcasadi_rootfinder_newton.so.3.7 +0 -0
  1621. casadi/libcasadi_rootfinder_nlpsol.so +0 -0
  1622. casadi/libcasadi_rootfinder_nlpsol.so.3.7 +0 -0
  1623. casadi/libcasadi_sundials_common.so +0 -0
  1624. casadi/libcasadi_sundials_common.so.3.7 +0 -0
  1625. casadi/libcasadi_xmlfile_tinyxml.so +0 -0
  1626. casadi/libcasadi_xmlfile_tinyxml.so.3.7 +0 -0
  1627. casadi/libcoinmetis.la +41 -0
  1628. casadi/libcoinmetis.so +0 -0
  1629. casadi/libcoinmetis.so.2 +0 -0
  1630. casadi/libcoinmetis.so.2.0.0 +0 -0
  1631. casadi/libcoinmumps.la +41 -0
  1632. casadi/libcoinmumps.so +0 -0
  1633. casadi/libcoinmumps.so.3 +0 -0
  1634. casadi/libcoinmumps.so.3.0.1 +0 -0
  1635. casadi/libdaqp.so +0 -0
  1636. casadi/libdaqpstat.a +0 -0
  1637. casadi/libgfortran-a8535147.so.5.0.0 +0 -0
  1638. casadi/libgurobi_adaptor.so +0 -0
  1639. casadi/libhighs.so +0 -0
  1640. casadi/libhighs.so.1 +0 -0
  1641. casadi/libhighs.so.1.7.2 +0 -0
  1642. casadi/libindirect.a +0 -0
  1643. casadi/libipopt.la +41 -0
  1644. casadi/libipopt.so +0 -0
  1645. casadi/libipopt.so.3 +0 -0
  1646. casadi/libipopt.so.3.14.11 +0 -0
  1647. casadi/liblinsys.a +0 -0
  1648. casadi/libmatlab_ipc.so +0 -0
  1649. casadi/libosqp.a +0 -0
  1650. casadi/libosqp.so +0 -0
  1651. casadi/libqdldl.a +0 -0
  1652. casadi/libqdldl.so +0 -0
  1653. casadi/libquadmath-e2ac3af2.so.0.0.0 +0 -0
  1654. casadi/libsipopt.la +41 -0
  1655. casadi/libsipopt.so +0 -0
  1656. casadi/libsipopt.so.3 +0 -0
  1657. casadi/libsipopt.so.3.14.11 +0 -0
  1658. casadi/libsleqp.so +0 -0
  1659. casadi/libsleqp.so.1.0.1 +0 -0
  1660. casadi/libspral.a +0 -0
  1661. casadi/libsuperscs.a +0 -0
  1662. casadi/libtrlib.so +0 -0
  1663. casadi/libtrlib.so.0.4 +0 -0
  1664. casadi/pkgconfig/blas.pc +11 -0
  1665. casadi/pkgconfig/bonmin.pc +12 -0
  1666. casadi/pkgconfig/casadi.pc +12 -0
  1667. casadi/pkgconfig/cbc.pc +12 -0
  1668. casadi/pkgconfig/cgl.pc +12 -0
  1669. casadi/pkgconfig/clp.pc +12 -0
  1670. casadi/pkgconfig/coinmetis.pc +13 -0
  1671. casadi/pkgconfig/coinmumps.pc +15 -0
  1672. casadi/pkgconfig/coinutils.pc +12 -0
  1673. casadi/pkgconfig/highs.pc +12 -0
  1674. casadi/pkgconfig/ipopt.pc +15 -0
  1675. casadi/pkgconfig/lapack.pc +11 -0
  1676. casadi/pkgconfig/openblas.pc +11 -0
  1677. casadi/pkgconfig/osi-cbc.pc +12 -0
  1678. casadi/pkgconfig/osi-clp.pc +12 -0
  1679. casadi/pkgconfig/osi-unittests.pc +12 -0
  1680. casadi/pkgconfig/osi.pc +12 -0
  1681. casadi/pkgconfig/proxsuite.pc +22 -0
  1682. casadi/pkgconfig/sleqp.pc +10 -0
  1683. casadi/tools/__init__.py +52 -0
  1684. casadi/tools/bounds.py +107 -0
  1685. casadi/tools/graph/__init__.py +35 -0
  1686. casadi/tools/graph/graph.py +747 -0
  1687. casadi/tools/in_out.py +89 -0
  1688. casadi/tools/structure.py +1446 -0
  1689. casadi/tools/structure3.py +1441 -0
  1690. casadi-3.6.7.dist-info/METADATA +45 -0
  1691. casadi-3.6.7.dist-info/RECORD +1693 -0
  1692. casadi-3.6.7.dist-info/WHEEL +4 -0
  1693. dummy.txt +1 -0
@@ -0,0 +1,1446 @@
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
+ from casadi import *
25
+
26
+
27
+ import numpy as np
28
+ import operator
29
+ import sys
30
+ import copy
31
+
32
+ import __builtin__
33
+
34
+ def is_integer(a):
35
+ return isinstance(a,int) or isinstance(a,np.integer)
36
+
37
+ def is_string(a):
38
+ return isinstance(a,str) or isinstance(a,unicode)
39
+
40
+ def isIterable(a):
41
+ return isinstance(a,list) or isinstance(a,tuple)
42
+
43
+ # StructIndex :tuple/list of strings
44
+ # canonicalIndex : tuple/list of string or numbers
45
+ # powerIndex: tuple/list of string, numbers, lists, slices, dicts
46
+
47
+ # flatIndex
48
+
49
+ # Primitive helpers
50
+ def lpack(L): return [[x] for x in L]
51
+
52
+ def combine(*args):
53
+ if len(args)==0:
54
+ return [[]]
55
+ else:
56
+ return [a + b for a in args[0] for b in combine(*args[1:])]
57
+
58
+ def listindices(dims,nest=False):
59
+ if len(dims)==0:
60
+ if nest:
61
+ return [[[]]]
62
+ else:
63
+ return [[]]
64
+ else:
65
+ tail = listindices(dims[1:])
66
+ if nest:
67
+ return [combine([[i]],tail) for i in range(dims[0])]
68
+ else:
69
+ return combine(lpack(range(dims[0])),tail)
70
+
71
+ def intersperseIt(*args):
72
+ iterators = map(iter,args)
73
+ active = [True]*len(args)
74
+ i = 0
75
+ while any(active):
76
+ try:
77
+ yield iterators[i].next()
78
+ except:
79
+ active[i] = False
80
+ i = (i + 1) % len(args)
81
+
82
+ def intersperse(*args):
83
+ return list(intersperseIt(*args))
84
+
85
+ def canonicalIndexAncestors(ind):
86
+ if len(ind)==0: return []
87
+ return [ind] + canonicalIndexAncestors(ind[:-(map(is_string,ind[::-1]).index(True)+1)])
88
+
89
+ def canonical(ind,s):
90
+ if ind < 0:
91
+ return ind + s
92
+ else:
93
+ return ind
94
+
95
+ def vec(e):
96
+ if any(isinstance(i,list) for i in e):
97
+ return sum(map(vec,e),[])
98
+ else:
99
+ return e
100
+
101
+ def correct_vector_indexing(x, i):
102
+ return casadi.reshape(x[i], i.shape)
103
+
104
+ # Decoraters
105
+
106
+ def properGetitem(f):
107
+ """
108
+ This decorator modifies a __getitem__/__setitem__ method such that it will always receive a tuple
109
+ """
110
+ def proper(self,mbt,*args):
111
+ if not isinstance(mbt,tuple):
112
+ mbt = (mbt,)
113
+ return f(self,mbt,*args)
114
+ return proper
115
+
116
+ # Enhanced standard classes
117
+ class SafeDict(dict):
118
+ def __getitem__(self,k):
119
+ if k not in self:
120
+ raise Exception("Unknown keyword '%s'. Available entries: %s" % (k,str(self.keys())))
121
+ return dict.__getitem__(self,k)
122
+
123
+ # Placeholder classes and instances
124
+ class Repeater:
125
+ def __init__(self,e): self.e = e
126
+
127
+ def repeated(e):
128
+ """
129
+ From the arguemnt, constructs something that acts like a 'list' with the argument repeated the 'correct' number of times
130
+
131
+ s = struct_symSX([entry("x",repeat=6)])
132
+ s["x"] = repeated(12)
133
+
134
+ """
135
+ return Repeater(e)
136
+
137
+ class NestedDictLiteral:
138
+ """
139
+ NestedDictLiteral will cause all dictionaries to become explicit recursively
140
+ """
141
+
142
+ nesteddict = NestedDictLiteral()
143
+
144
+ # Casadi-independent Structure framework
145
+
146
+ def payloadUnpack(payload,i):
147
+ if is_string(i):
148
+ raise Exception("Got string %s where number expected."% i)
149
+ if isIterable(payload):
150
+ if i>=len(payload):
151
+ raise Exception("Rhs out of range. Got list index %s but rhs list is only of length %s." % (i,len(payload)))
152
+ return payload[i]
153
+ elif isinstance(payload,Repeater):
154
+ return payload.e
155
+ else:
156
+ return payload
157
+
158
+ class StructEntry:
159
+ def __init__(self,name,struct=None,data=None,dims=[]):
160
+ self.name = name
161
+ self.dims = dims
162
+ self.struct = struct
163
+
164
+ def __str__(self,compact=False):
165
+ s=''
166
+ if len(self.dims)>=1:
167
+ s+= "repeated(%s): " % str(self.dims)
168
+ if self.isPrimitive():
169
+ s+=self.primitiveString()
170
+ else:
171
+ s+=self.struct.__str__(compact=True)
172
+ return s
173
+
174
+ __repr__ = __str__
175
+
176
+ def primitiveString(self):
177
+ return "*"
178
+
179
+ def isPrimitive(self):
180
+ return self.struct is None
181
+
182
+ def traverseCanonicalIndex(self,nest=False,limit=1000):
183
+ children = [[]] if (self.struct is None or limit==0) else self.struct.traverseCanonicalIndex(limit=limit-1)
184
+ li = listindices(self.dims,nest)
185
+ n = [[self.name]]
186
+ if nest:
187
+ return [combine(n,i,children) for i in li]
188
+ else:
189
+ return combine(n,li,children)
190
+
191
+ def getStructEntryByStructIndex(self,structIndex):
192
+ return self.struct.getStructEntryByStructIndex(structIndex)
193
+
194
+ def traverseByPowerIndex(self,powerIndex,dims=None,canonicalIndex=(),dispatcher=None,payload=None):
195
+ try:
196
+ if dims is None: dims = self.dims
197
+ # At the end of powerIndex, pending : are added automatically if dims is not exhausted
198
+ if len(powerIndex)==0:
199
+ if len(dims)>0:
200
+ return self.traverseByPowerIndex(
201
+ [slice(None) for i in dims],
202
+ dims=dims,
203
+ canonicalIndex=canonicalIndex,
204
+ dispatcher=dispatcher,
205
+ payload=payload
206
+ )
207
+ else:
208
+ return dispatcher(payload,canonicalIndex,entry=self)
209
+
210
+ if len(dims)==0:
211
+ if self.isPrimitive(): # Pass on remainder of powerIndex to dispatcher
212
+ return dispatcher(payload,canonicalIndex,extraIndex=tuple(powerIndex),entry=self)
213
+ else:
214
+ return self.struct.traverseByPowerIndex(
215
+ powerIndex,
216
+ canonicalIndex=canonicalIndex,
217
+ dispatcher=dispatcher,
218
+ payload=payload
219
+ )
220
+ else:
221
+ p = powerIndex[0]
222
+ s = dims[0]
223
+ if isinstance(p,slice): # Expand slice
224
+ p = range(*p.indices(s))
225
+ if is_integer(p):
226
+ return self.traverseByPowerIndex(
227
+ powerIndex[1:],
228
+ dims=dims[1:],
229
+ canonicalIndex=canonicalIndex+(canonical(p,s),),
230
+ dispatcher=dispatcher,
231
+ payload=payload
232
+ )
233
+ elif isinstance(p,list):
234
+ return [
235
+ self.traverseByPowerIndex(
236
+ powerIndex[1:],
237
+ dims=dims[1:],
238
+ canonicalIndex=canonicalIndex+(canonical(i,s),),
239
+ dispatcher=dispatcher,
240
+ payload = payloadUnpack(payload,i)
241
+ )
242
+ for i in p]
243
+ elif isinstance(p,dict):
244
+ raise Exception("powerIndex entry {} cannot be used in list context.")
245
+ elif isinstance(p,set):
246
+ raise Exception("""powerIndex entry {"foo","bar"} cannot be used in list context.""")
247
+ elif isinstance(p,NestedDictLiteral):
248
+ return [
249
+ self.traverseByPowerIndex(
250
+ [p],
251
+ dims=dims[1:],
252
+ canonicalIndex=canonicalIndex+(canonical(i,s),),
253
+ dispatcher=dispatcher,
254
+ payload = payloadUnpack(payload,i)
255
+ )
256
+ for i in range(s)]
257
+ elif callable(p):
258
+ r = p(self.traverseByPowerIndex(
259
+ powerIndex[1:],
260
+ dims=dims,
261
+ canonicalIndex=canonicalIndex,
262
+ dispatcher=dispatcher.callableInner(),
263
+ payload=payload
264
+ ))
265
+ return dispatcher.callableOuter(payload,canonicalIndex,extraIndex=None,entry=None,inner=r)
266
+ else:
267
+ raise Exception("I don't know what to do with this: %s" % str(p))
268
+ except Exception as e:
269
+ exc_class, exc, tb = sys.exc_info()
270
+ new_exc = Exception("Error occured in entry context with powerIndex %s, at canonicalIndex %s:\n%s" % (str(powerIndex),str(canonicalIndex),str(e)))
271
+ raise new_exc.__class__, new_exc, tb
272
+
273
+ class Structure(object):
274
+ def __init__(self,entries,order=None):
275
+ self.entries = entries
276
+
277
+ self.order = [e.name for e in self.entries] if order is None else order
278
+ self.keyslist = sum([ list(i) if isinstance(i,tuple) else list([i]) for i in self.order],[])
279
+
280
+ self.dict = SafeDict([(e.name,e) for e in self.entries])
281
+
282
+ for e in self.order:
283
+ if is_string(e):
284
+ if e not in self.dict:
285
+ raise Exception("Order '%s' is invalid." % e)
286
+ elif isinstance(e,tuple):
287
+ for ee in e:
288
+ if ee not in self.dict:
289
+ raise Exception("Order '%s' is invalid." % ee)
290
+
291
+ def keys(self):
292
+ return self.keyslist
293
+
294
+ def __str__(self,compact=False):
295
+ s=''
296
+ if compact:
297
+ s+= "{" + ",".join(k + ": " + v.__str__(compact=True) for k,v in self.dict.items()) + "}"
298
+ else:
299
+ s+= "Structure holding %d entries.\n" % len(self.dict)
300
+ s+=" Order: %s\n" % str(self.order)
301
+ for k,v in self.dict.items():
302
+ s+= " " + k + " = " + v.__str__(compact=True) + "\n"
303
+ return s
304
+
305
+ __repr__ = __str__
306
+
307
+ def traverseCanonicalIndex(self,limit=1000):
308
+ ret = []
309
+ for d in self.order:
310
+ if isinstance(d,tuple):
311
+ for v in intersperse(*[self.dict[de].traverseCanonicalIndex(True,limit=limit-1) for de in d]):
312
+ ret += v
313
+ else:
314
+ ret += self.dict[d].traverseCanonicalIndex(limit=limit-1)
315
+ return ret
316
+
317
+ def getStructEntryByStructIndex(self,structIndex):
318
+ e = self.dict[structIndex[0]]
319
+ if len(structIndex)>1:
320
+ return e.getStructEntryByStructIndex(structIndex[1:])
321
+ else:
322
+ return e
323
+
324
+ def getStructEntryByCanonicalIndex(self,indices):
325
+ return self.getStructEntryByStructIndex(filter(lambda x: is_string(x),indices))
326
+
327
+ def getStruct(self,name):
328
+ if name not in self.struct.dict:
329
+ raise Exception("Cannot find entry with key '%s'. Candidates: " % (str(name),str(name.keys())))
330
+ ret = self.struct.dict[name].struct
331
+ if ret is None:
332
+ raise Exception("Entry '%s' has no structure." % (name))
333
+ else:
334
+ return ret
335
+
336
+ def traverseByPowerIndex(self,powerIndex,canonicalIndex=(),dispatcher=None,payload=None):
337
+ try:
338
+ if len(powerIndex)==0: return dispatcher(payload,canonicalIndex)
339
+ p = powerIndex[0]
340
+ if is_string(p):
341
+ return self.dict[p].traverseByPowerIndex(
342
+ powerIndex[1:],
343
+ canonicalIndex=canonicalIndex+(p,),
344
+ dispatcher=dispatcher,
345
+ payload=payload
346
+ )
347
+ elif isinstance(p,slice):
348
+ raise Exception("slice not allowed here, did you mean '...' ?")
349
+ elif isinstance(p,type(Ellipsis)):
350
+ """
351
+ Why ellipsis? Because it's all or nothing
352
+ """
353
+ return [
354
+ self.dict[k].traverseByPowerIndex(
355
+ powerIndex[1:],
356
+ canonicalIndex=canonicalIndex+(k,),
357
+ dispatcher=dispatcher,
358
+ payload=payloadUnpack(payload,i)
359
+ )
360
+ for i,k in enumerate(self.keys())]
361
+ elif isinstance(p,dict) or isinstance(p,NestedDictLiteral):
362
+ if isinstance(payload,dict):
363
+ return dict([
364
+ ( k,
365
+ self.dict[k].traverseByPowerIndex(
366
+ powerIndex[1:] if isinstance(p,dict) else [p],
367
+ canonicalIndex=canonicalIndex+(k,),
368
+ dispatcher=dispatcher,
369
+ payload=v
370
+ )
371
+ ) for k,v in payload.iteritems()
372
+ ])
373
+ else:
374
+ return dict([
375
+ ( k,
376
+ v.traverseByPowerIndex(
377
+ powerIndex[1:] if isinstance(p,dict) else [p],
378
+ canonicalIndex=canonicalIndex+(k,),
379
+ dispatcher=dispatcher,
380
+ payload=payload
381
+ )
382
+ ) for k,v in self.dict.iteritems()
383
+ ])
384
+ elif isinstance(p,set):
385
+ if isinstance(payload,dict):
386
+ return dict([
387
+ ( k,
388
+ self.dict[k].traverseByPowerIndex(
389
+ powerIndex[1:],
390
+ canonicalIndex=canonicalIndex+(k,),
391
+ dispatcher=dispatcher,
392
+ payload=v
393
+ )
394
+ ) for k,v in payload.iteritems() if k in p
395
+ ])
396
+ else:
397
+ return dict([
398
+ ( k,
399
+ self.dict[k].traverseByPowerIndex(
400
+ powerIndex[1:],
401
+ canonicalIndex=canonicalIndex+(k,),
402
+ dispatcher=dispatcher,
403
+ payload=payload
404
+ )
405
+ ) for k in p
406
+ ])
407
+ elif isinstance(p,list):
408
+ return [
409
+ self.traverseByPowerIndex(
410
+ powerIndex[1:],
411
+ canonicalIndex=canonicalIndex+(s,),
412
+ dispatcher=dispatcher,
413
+ payload=payloadUnpack(payload,i)
414
+ )
415
+ for i,s in enumerate(p)]
416
+ elif callable(p):
417
+ r = p(self.traverseByPowerIndex(
418
+ powerIndex[1:],
419
+ canonicalIndex=canonicalIndex,
420
+ dispatcher=dispatcher.callableInner(),
421
+ payload=payload
422
+ ))
423
+ return dispatcher.callableOuter(payload,canonicalIndex,extraIndex=None,entry=None,inner=r)
424
+ else:
425
+ raise Exception("I don't know what to do with this: %s" % str(p))
426
+ except Exception as e:
427
+ exc_class, exc, tb = sys.exc_info()
428
+ new_exc = Exception("Error occured in struct context with powerIndex %s, at canonicalIndex %s:\n%s" % (str(powerIndex),str(canonicalIndex),str(e)))
429
+ raise new_exc.__class__, new_exc, tb
430
+
431
+ # Casadi-dependent Structure framework
432
+
433
+ class Dispatcher:
434
+ def __init__(self,**args):
435
+ for k,v in args.items():
436
+ setattr(self,k,v)
437
+
438
+ def callableInner(self):
439
+ return self
440
+
441
+ def callableOuter(self,payload,canonicalIndex,extraIndex=None,entry=None,inner=None):
442
+ return inner
443
+
444
+
445
+ #Mixins
446
+ class CasadiStructureDerivable:
447
+
448
+ def argtype(self,arg):
449
+ mtype = None
450
+ if isinstance(arg,DM):
451
+ a = arg
452
+ mtype = DM
453
+ elif not isinstance(arg,MX) and not isinstance(arg,SX):
454
+ try:
455
+ a = DM(arg)
456
+ mtype = DM
457
+ except:
458
+ pass
459
+
460
+ if mtype is None:
461
+ if isinstance(arg,MX):
462
+ a = arg
463
+ mtype = MX
464
+ else:
465
+ try:
466
+ a = MX(arg)
467
+ mtype = MX
468
+ except:
469
+ pass
470
+
471
+ if mtype is None:
472
+ if isinstance(arg,SX):
473
+ a = arg
474
+ mtype = SX
475
+ else:
476
+ try:
477
+ a = SX(arg)
478
+ mtype = SX
479
+ except:
480
+ raise Exception("Call to Structure has weird argument: expecting DM-like or MX-like or SXMatrix-like")
481
+
482
+ return (a,mtype)
483
+
484
+ def __call__(self,arg=0):
485
+ (a,mtype) = self.argtype(arg)
486
+
487
+ if isinstance(a,DM):
488
+ if a.shape[0] == 1 and a.shape[1] == 1 and self.size!=1:
489
+ a = DM.ones(self.size,1)*a
490
+ return DMStruct(self,data=a)
491
+
492
+ if isinstance(a,MX):
493
+ return MXStruct(self,data=a)
494
+
495
+ if isinstance(a,SX):
496
+ return SXStruct(self,data=a)
497
+
498
+ def repeated(self,arg=0):
499
+ (a,mtype) = self.argtype(arg)
500
+
501
+ if not(a.shape[0] == self.size):
502
+ raise Exception("Expecting %d x n DM. Got %s" % (self.size,a.dim()))
503
+ s = struct([entry("t",struct=self,repeat=a.shape[1])])
504
+
505
+ for (t,c) in [(DM,DMStruct), (MX, MXStruct), (SX, SXStruct)]:
506
+ if isinstance(a,t):
507
+ numbers = c(s,data=DataReferenceRepeated(a,a.shape[1]))
508
+
509
+ p = numbers.prefix["t"]
510
+ p.castmaster = True
511
+ return p
512
+
513
+ def squared(self,arg=0):
514
+ (a,mtype) = self.argtype(arg)
515
+
516
+ if a.shape[0] == 1 and a.shape[1] == 1 and self.size!=1:
517
+ a = DM.ones(self.size,self.size)*a
518
+ if not(a.shape[1] == a.shape[0] and a.shape[0]==self.size):
519
+ raise Exception("Expecting square DM of size %s. Got %s" % (self.size,a.dim()))
520
+ s = struct([entry("t",shapestruct=(self,self))])
521
+ for (t,c) in [(DM,DMStruct), (MX, MXStruct), (SX, SXStruct)]:
522
+ if isinstance(a,t):
523
+ numbers = c(s,data=DataReferenceSquared(a,a.shape[0]))
524
+ p = numbers.prefix["t"]
525
+ p.castmaster = True
526
+ return p
527
+
528
+ def product(self,otherstruct,arg=0):
529
+ (a,mtype) = self.argtype(arg)
530
+
531
+ if a.shape[0] == 1 and a.shape[1] == 1 and self.size!=1:
532
+ a = DM.ones(self.size,otherstruct.size)*a
533
+ if not(a.shape[1]==otherstruct.size and a.shape[0]==self.size):
534
+ raise Exception("Expecting DM of shape (%s,%s). Got %s" % (self.size,otherstruct.size,a.dim()))
535
+ s = struct([entry("t",shapestruct=(self,otherstruct))])
536
+ for (t,c) in [(DM,DMStruct), (MX, MXStruct), (SX, SXStruct)]:
537
+ if isinstance(a,t):
538
+ numbers = c(s,data=DataReferenceProduct(a,a.shape[0],a.shape[1]))
539
+ p = numbers.prefix["t"]
540
+ p.castmaster = True
541
+ return p
542
+
543
+ def squared_repeated(self,arg=0):
544
+ (a,mtype) = self.argtype(arg)
545
+
546
+ if not(a.shape[0]==self.size and a.shape[1] % self.size == 0):
547
+ raise Exception("Expecting square (%d) DM by N. Got %s" % (self.size,a.dim()))
548
+ s = struct([entry("t",shapestruct=(self,self),repeat=a.shape[1] / self.size)])
549
+
550
+ for (t,c) in [(DM,DMStruct), (MX, MXStruct), (SX, SXStruct)]:
551
+ if isinstance(a,t):
552
+ numbers = c(s,data=DataReferenceSquaredRepeated(a,self.size,a.shape[1] / self.size))
553
+
554
+ p = numbers.prefix["t"]
555
+ p.castmaster = True
556
+ return p
557
+
558
+ class GetterDispatcher(Dispatcher):
559
+ def __call__(self,payload,canonicalIndex,extraIndex=None,entry=None):
560
+ type = None if entry is None else entry.type
561
+ if canonicalIndex in self.struct.map:
562
+
563
+ if canonicalIndex in self.priority_object_map and (extraIndex is None or len(extraIndex)==0):
564
+ r = self.priority_object_map[canonicalIndex]
565
+ if type is None:
566
+ return r
567
+ elif type=="symm":
568
+ return triu2symm(r)
569
+ else:
570
+ raise Exception("Cannot handle type '%s'." % entry.type)
571
+
572
+ i = performExtraIndex(self.struct.map[canonicalIndex],extraIndex=extraIndex,entry=entry)
573
+
574
+ try:
575
+ if type is None:
576
+ return correct_vector_indexing(self.master, i)
577
+ elif type=="symm":
578
+ return triu2symm(self.master[i])
579
+ else:
580
+ raise Exception("Cannot handle type '%s'." % entry.type)
581
+ except Exception as e:
582
+ exc_class, exc, tb = sys.exc_info()
583
+ new_exc = Exception("Error in powerIndex slicing for canonicalIndex %s:\n%s" % (str(canonicalIndex),str(e)))
584
+ raise new_exc.__class__, new_exc, tb
585
+ else:
586
+ raise Exception("Canonical index %s does not exist." % str(canonicalIndex))
587
+
588
+ class SetterDispatcher(Dispatcher):
589
+ def __call__(self,payload,canonicalIndex,extraIndex=None,entry=None):
590
+ payload_ = self.mtype(payload)
591
+ type = None if entry is None else entry.type
592
+ if canonicalIndex in self.struct.map:
593
+ i = performExtraIndex(self.struct.map[canonicalIndex],extraIndex=extraIndex,entry=entry)
594
+ try:
595
+ if type is None:
596
+ self.master[i] = payload_
597
+ elif type=="symm":
598
+ iflip = performExtraIndex(self.struct.map[canonicalIndex],extraIndex=extraIndex,entry=entry,flip=True)
599
+ if payload_.is_scalar():
600
+ self.master[i] = payload_
601
+ self.master[iflip] = payload_
602
+ else:
603
+ oi = performExtraIndex(DM.ones(entry.originalsparsity),extraIndex=extraIndex,entry=entry)
604
+ if oi.sparsity()!=payload_.sparsity():
605
+ raise Exception("Payload sparsity " + payload_.dim() + " does not match lhs sparisty " + oi.dim() + "." )
606
+ self.master[iflip] = payload_.T[iflip.sparsity()]
607
+ self.master[i] = payload_[i.sparsity()]
608
+ else:
609
+ raise Exception("Cannot handle type '%s'." % entry.type)
610
+ except NotImplementedError as e:
611
+ raise CompatibilityException("Error in canonicalIndex slicing for %s: Incompatible types in a[i]=b with a %s (%s) and b %s (%s) and i %s (%s). Error: %s" % (str(canonicalIndex),str(self.master),str(__builtin__.type(self.master)),str(payload),str(__builtin__.type(payload)),str(i),str(__builtin__.type(i)),str(e)))
612
+ except Exception as e:
613
+ exc_class, exc, tb = sys.exc_info()
614
+ new_exc = Exception("Error in powerIndex slicing for canonicalIndex %s:\n%s" % (str(canonicalIndex),str(e)))
615
+ raise new_exc.__class__, new_exc, tb
616
+ else:
617
+ raise Exception("Canonical index %s does not exist." % str(canonicalIndex))
618
+
619
+ def callableInner(self):
620
+ return CasadiStructure.IMDispatcher(struct=self.struct)
621
+
622
+ def callableOuter(self,payload,canonicalIndex,extraIndex=None,entry=None,inner=None):
623
+ try:
624
+ self.master[inner] = payload
625
+ except NotImplementedError:
626
+ raise CompatibilityException("Error in canonicalIndex slicing for %s: Incompatible types in a[i]=b with a %s and b %s." % (str(canonicalIndex),str(self.master),str(payload)))
627
+ except Exception as e:
628
+ exc_class, exc, tb = sys.exc_info()
629
+ new_exc = Exception("Error in powerIndex slicing for canonicalIndex %s:\n %s" % (str(canonicalIndex),str(e)))
630
+ raise new_exc.__class__, new_exc, tb
631
+
632
+ class MasterGettable:
633
+ @properGetitem
634
+ def __getitem__(self,powerIndex):
635
+ return self.struct.traverseByPowerIndex(powerIndex,dispatcher=GetterDispatcher(struct=self.struct,master=self.master,priority_object_map=self.priority_object_map))
636
+
637
+ class MasterSettable:
638
+ @properGetitem
639
+ def __setitem__(self,powerIndex,value):
640
+ return self.struct.traverseByPowerIndex(powerIndex,dispatcher=
641
+ SetterDispatcher(struct=self.struct,master=self.master,mtype=self.mtype),payload=value)
642
+
643
+ def delegation(extraIndex,entry,i):
644
+ if is_string(extraIndex) or (isinstance(extraIndex,list) and len(extraIndex)>0 and all([is_string(e) for e in extraIndex])):
645
+ extraIndex = FlatIndexDelegater(extraIndex)
646
+ if isinstance(extraIndex,Delegater):
647
+ if entry is None: raise Exception("Cannot use delayed index without supplied entry.")
648
+ if entry.shapestruct is None: raise Exception("Cannot use delayed index without supplied shapestruct.")
649
+ if not(isinstance(entry.shapestruct[i],Structure)) : raise Exception("Cannot use delayed index with a integer shapestruct argument.")
650
+ return extraIndex(entry.shapestruct[i])
651
+ else:
652
+ return extraIndex
653
+
654
+ def performExtraIndex(i,extraIndex=None,entry=None,flip=False):
655
+ if extraIndex is None or len(extraIndex)==0:
656
+ return i
657
+ if callable(extraIndex[0]) and not isinstance(extraIndex[0],Delegater):
658
+ return extraIndex[0](performExtraIndex(i,extraIndex=extraIndex[1:],entry=entry,flip=flip))
659
+ if not(isinstance(extraIndex[0],NestedDictLiteral)):
660
+ if len(extraIndex)>2 or len(extraIndex)==0:
661
+ raise Exception("Powerindex exhausted. Remaining %s is interpreted as extraIndex, but length must be 1 or 2." % str(extraIndex))
662
+ try:
663
+ if len(extraIndex)==1:
664
+ a = extraIndex[0]
665
+ a = delegation(a,entry,0)
666
+ return i.__getitem__(a)
667
+ else:
668
+ a,b = extraIndex
669
+ a = delegation(a,entry,0)
670
+ b = delegation(b,entry,1)
671
+ return i.__getitem__((b,a) if flip else (a,b))
672
+ except NotImplementedError:
673
+ raise Exception("Powerindex exhausted. Passing on %s to %s, but it doesn't know what to do with it" % (str(extraIndex),str(type(i))))
674
+ else:
675
+ return i
676
+
677
+
678
+ class Prefixer:
679
+ def __init__(self,struct,prefix,castmaster=False):
680
+ self.struct = struct
681
+ self.prefix = prefix
682
+ self.castmaster = castmaster
683
+
684
+ methods = [ "__DM__", "__SX__","__MX__"]
685
+ for m in methods:
686
+ if hasattr(self.struct,m):
687
+ setattr(self,m,self.cast)
688
+
689
+ def __setstate__(self,state):
690
+ self.__init__(state["struct"],state["prefix"],state["castmaster"])
691
+
692
+ def __getstate__(self):
693
+ return {"struct": self.struct, "prefix": self.prefix,"castmaster": self.castmaster}
694
+
695
+ def __getattr__(self,name):
696
+ # When attributes are not found, delegate to self()
697
+ # This allows for e.g. sin(x) and x+1 to work
698
+ if isinstance(self.struct.master,DataReference):
699
+ t = self.struct.master.a
700
+ else:
701
+ t = self.struct.master
702
+ if not(isinstance(t,list) or isinstance(t,dict) or isinstance(t,tuple)):
703
+ return getattr(t,name)
704
+
705
+ def cast(self):
706
+ if self.castmaster:
707
+ if isinstance(self.struct.master,DataReference):
708
+ return self.struct.master.a
709
+ else:
710
+ return self.struct.master
711
+ else:
712
+ return self()
713
+
714
+ def __str__(self):
715
+ return "prefix( " + str(self.prefix) + "," + self.struct.__str__(compact=True) + ")"
716
+
717
+ __repr__ = __str__
718
+
719
+ def __call__(self):
720
+ return self.struct.__getitem__(self.prefix)
721
+
722
+ @properGetitem
723
+ def __getitem__(self,powerIndex):
724
+ return self.struct.__getitem__(self.prefix + powerIndex)
725
+
726
+ @properGetitem
727
+ def __setitem__(self,powerIndex,data):
728
+ return self.struct.__setitem__(self.prefix + powerIndex,data)
729
+
730
+ class PrefixConstructor:
731
+
732
+ def __str__(self):
733
+ return "prefixConstructor(" + self.struct.__str__(compact=True) + ")"
734
+
735
+ __repr__ = __str__
736
+
737
+ def __init__(self,struct,castmaster=False):
738
+ self.struct = struct
739
+ self.castmaster=castmaster
740
+
741
+ @properGetitem
742
+ def __getitem__(self,prefix):
743
+ return Prefixer(self.struct,prefix,castmaster=self.castmaster)
744
+
745
+ class CasadiStructure(Structure,CasadiStructureDerivable):
746
+ """
747
+ size
748
+ map
749
+ """
750
+
751
+ def save(self,filename):
752
+ import pickle
753
+ pickle.dump(self,file(filename,"wb"),2)
754
+
755
+ class FlatIndexDispatcher(Dispatcher):
756
+ def __call__(self,payload,canonicalIndex,extraIndex=None,entry=None):
757
+ if canonicalIndex in self.struct.map:
758
+ res = performExtraIndex(self.struct.map[canonicalIndex],extraIndex=extraIndex,entry=entry)
759
+ if isinstance(res,DM):
760
+ assert res.is_dense()
761
+ return map(int,list(res.nonzeros()))
762
+ return list(res)
763
+ else:
764
+ raise Exception("Canonical index %s not found." % str(canonicalIndex))
765
+
766
+ class IMDispatcher(Dispatcher):
767
+ def __call__(self,payload,canonicalIndex,extraIndex=None,entry=None):
768
+ if canonicalIndex in self.struct.map:
769
+ return performExtraIndex(self.struct.map[canonicalIndex],extraIndex=extraIndex,entry=entry)
770
+ else:
771
+ raise Exception("Canonical index %s not found." % str(canonicalIndex))
772
+
773
+ def __setstate__(self,state):
774
+ self.__init__(*state["args"],**state["kwargs"])
775
+
776
+ def __getstate__(self):
777
+ return self.initializer
778
+
779
+ def __init__(self,*args,**kwargs):
780
+ self.initializer = {"args": args, "kwargs": kwargs}
781
+ Structure.__init__(self,*args,**kwargs)
782
+
783
+ self.map = {}
784
+ self.lookuptable = []
785
+
786
+ hmap = {}
787
+ k = 0 # Global index counter
788
+ for i in self.traverseCanonicalIndex():
789
+ e = self.getStructEntryByCanonicalIndex(i)
790
+ sp = Sparsity.dense(1,1) if e.sparsity is None else e.sparsity
791
+ m = DM(sp,range(k,k+sp.nnz()))
792
+ k += sp.nnz()
793
+ it = tuple(i)
794
+ self.map[it] = m
795
+ self.lookuptable+=[(it,kk,p) for kk,p in enumerate(zip(sp.get_col(),sp.row()))]
796
+ for a in canonicalIndexAncestors(it)[1:]:
797
+ if a in hmap:
798
+ hmap[a].append(m)
799
+ else:
800
+ hmap[a] = [m]
801
+ self.size = k
802
+ for k,v in hmap.iteritems():
803
+ hmap[k] = vertcat(*[i.nz[:] for i in v])
804
+
805
+ self.map.update(hmap)
806
+
807
+ class StructureGetter:
808
+ def __init__(self,struct):
809
+ self.struct = struct
810
+
811
+ class IMGetter(StructureGetter):
812
+ @properGetitem
813
+ def __getitem__(self,powerIndex):
814
+ return self.struct.traverseByPowerIndex(powerIndex,dispatcher=CasadiStructure.IMDispatcher(struct=self.struct))
815
+
816
+ class FlatIndexGetter(StructureGetter):
817
+ @properGetitem
818
+ def __getitem__(self,powerIndex):
819
+ return vec(self.struct.traverseByPowerIndex(powerIndex,dispatcher=CasadiStructure.FlatIndexDispatcher(struct=self.struct)))
820
+
821
+ self.i = IMGetter(self)
822
+ self.f = FlatIndexGetter(self)
823
+ self.struct = self
824
+
825
+ def __str__(self,compact=False):
826
+ return ("" if compact else "Structure with total size %d.\n" % self.size)+ Structure.__str__(self,compact=compact)
827
+
828
+ def getCanonicalIndex(self,i,extraMode=1):
829
+ """
830
+ Returns the canonicalIndex of the entry with a given flatIndex
831
+ extraMode influences wether nothing (0), [i] (1) or [i,j] (2) will be returned as extra index
832
+ """
833
+ if i<0 or i>=self.size:
834
+ raise Exception("Lookup index out of range. Got %d, but structure is of size %d" % (i,self.size))
835
+ can,k,p = self.lookuptable[i]
836
+ if extraMode==0:
837
+ return can
838
+ elif extraMode==1:
839
+ return can+(k,)
840
+ else:
841
+ return can+p
842
+
843
+ def canonicalIndices(self,extraMode=1):
844
+ return [self.getCanonicalIndex(i,extraMode=extraMode) for i in range(self.size)]
845
+
846
+ def getLabel(self,i,extraMode=1):
847
+ t = self.getCanonicalIndex(i,extraMode=extraMode)
848
+ return "["+ ",".join(map(str,t)) + "]"
849
+
850
+ def labels(self,extraMode=1):
851
+ return [self.getLabel(i,extraMode=extraMode) for i in range(self.size)]
852
+
853
+ class Structured(object):
854
+ description = "Generic Structured object"
855
+
856
+ def __init__(self,structure):
857
+ self.struct = structure.struct
858
+ self.i = self.struct.i
859
+ self.f = self.struct.f
860
+ self.getStruct = self.struct.getStruct
861
+ self.prefix = PrefixConstructor(self)
862
+
863
+ @property
864
+ def size(self):
865
+ return self.struct.size
866
+
867
+ @property
868
+ def cat(self):
869
+ if isinstance(self.master,DataReference):
870
+ return self.master.a
871
+ else:
872
+ return self.master
873
+
874
+ def __str__(self,compact=False):
875
+ if compact is False:
876
+ return self.description + " with following structure:\n" + self.struct.__str__()
877
+ else:
878
+ return self.description + " (" + self.struct.__str__(compact=True) + ")"
879
+
880
+ def keys(self):
881
+ return self.struct.keys()
882
+
883
+ class CasadiStructured(Structured,CasadiStructureDerivable):
884
+ description = "Generic Structured object"
885
+
886
+ def __setstate__(self,state):
887
+ cs = CasadiStructure.__new__(CasadiStructure)
888
+ cs.__setstate__({"args": state["args"],"kwargs": state["kwargs"]})
889
+ self.__init__(cs,order=state["order"])
890
+
891
+ def __getstate__(self):
892
+ d = copy.deepcopy(self.struct.__getstate__())
893
+ d["order"] = self.order
894
+ return d
895
+
896
+ def __init__(self,struct,order=None):
897
+ self.order = order
898
+ if hasattr(struct,"struct"):
899
+ Structured.__init__(self,struct.struct)
900
+ self.entries = []
901
+ else:
902
+ entrylist = EntryList(struct,order=order)
903
+ self.entries = entrylist.entries
904
+ Structured.__init__(self,CasadiStructure(self.entries, order=entrylist.order))
905
+
906
+ self.getCanonicalIndex = self.struct.getCanonicalIndex
907
+ self.canonicalIndices = self.struct.canonicalIndices
908
+ self.getLabel = self.struct.getLabel
909
+ self.labels = self.struct.labels
910
+ self.priority_object_map = {}
911
+
912
+ @property
913
+ def shape(self):
914
+ return (self.size,1)
915
+
916
+ def sparsity(self):
917
+ return Sparsity.dense(self.size,1)
918
+
919
+ def getCanonicalIndex(self,*args,**kwargs):
920
+ return self.struct.lookup(*args,**kwargs)
921
+
922
+ class CompatibilityException(Exception):
923
+ pass
924
+
925
+ class ssymStruct(CasadiStructured,MasterGettable):
926
+ description = "symbolic SX"
927
+ def __init__(self,struct,order=None):
928
+ CasadiStructured.__init__(self,struct,order=order)
929
+
930
+ if any(e.expr is not None for e in self.entries):
931
+ raise Exception("struct_symSX does not accept entries with an 'expr' argument, because such an element is not purely symbolic.")
932
+
933
+ s = []
934
+ for i in self.struct.traverseCanonicalIndex():
935
+ e = self.struct.getStructEntryByCanonicalIndex(i)
936
+ s.append(SX.sym("_".join(map(str,i)),e.sparsity.nnz()))
937
+
938
+ self.master = vertcat(*[i.nz[:] for i in s])
939
+
940
+ for e in self.entries:
941
+ if e.sym is not None:
942
+ self.master[self.i[e.name]] = e.sym
943
+
944
+ def __SX__(self):
945
+ return self.cat
946
+
947
+ class VertsplitStructure:
948
+ def buildMap(self,struct=None,parentIndex = (),parent=None):
949
+ if struct is None: struct = self.struct
950
+ if parent is None: parent = self.master
951
+
952
+ if isinstance(parent,DataReference):
953
+ parent = parent.a
954
+
955
+ ks = []
956
+ its = []
957
+ sps = []
958
+ es = []
959
+ k = 0 # Global index counter
960
+ for i in struct.traverseCanonicalIndex(limit=1):
961
+ e = struct.getStructEntryByCanonicalIndex(i)
962
+ sp = None
963
+ if e.isPrimitive():
964
+ sp = Sparsity.dense(1,1) if e.sparsity is None else e.sparsity
965
+ else:
966
+ sp = Sparsity.dense(e.struct.size,1)
967
+ ks.append(k)
968
+ it = tuple(i)
969
+ es.append(e)
970
+ its.append(it)
971
+ sps.append(sp)
972
+ k += sp.nnz()
973
+ ks.append(parent.size1())
974
+
975
+ for it, k, sp,e in zip(its,vertsplit(parent,ks),sps,es):
976
+ if not(e.isPrimitive()):
977
+ self.buildMap(struct=e.struct,parentIndex = parentIndex + it,parent=k)
978
+ self.priority_object_map[parentIndex+it] = k if k.sparsity()==sp else MX(sp,k) #[IM(sp,range(sp.nnz()))]
979
+
980
+ class msymStruct(CasadiStructured,MasterGettable,VertsplitStructure):
981
+ description = "MX.sym"
982
+ def __init__(self,struct,order=None):
983
+ CasadiStructured.__init__(self,struct,order=order)
984
+
985
+ if any(e.expr is not None for e in self.entries):
986
+ raise Exception("struct_symMX does not accept entries with an 'expr' argument, because such an element is not purely symbolic.")
987
+ if any(e.sym is not None for e in self.entries):
988
+ raise Exception("struct_symMX does not accept entries with an 'sym' argument.")
989
+
990
+ self.master = MX.sym("V",self.size,1)
991
+
992
+ self.buildMap()
993
+
994
+ def __MX__(self):
995
+ return self.cat
996
+
997
+
998
+
999
+
1000
+ class MatrixStruct(CasadiStructured,MasterGettable,MasterSettable):
1001
+
1002
+ @property
1003
+ def description(self):
1004
+ return "Mutable " + self.mtype.__name__
1005
+
1006
+ def __init__(self,struct,mtype,data=None,order=None):
1007
+ CasadiStructured.__init__(self,struct,order=None)
1008
+ if any(e.expr is None for e in self.entries):
1009
+ raise Exception("struct_SX does only accept entries with an 'expr' argument.")
1010
+
1011
+ self.mtype = mtype
1012
+ if isinstance(data,mtype) or isinstance(data,DataReference):
1013
+ self.master = data
1014
+ elif data is None:
1015
+ self.master = mtype.nan(self.size,1)
1016
+ else:
1017
+ self.master = mtype(data)
1018
+
1019
+ if self.master.shape[0]!=self.size:
1020
+ raise Exception("MatrixStruct: dimension error. Expecting %d-by-1, but got %s" % (self.size,self.master.dim()))
1021
+ if self.master.shape[1]!=1 and self.master.shape[0]>0:
1022
+ raise Exception("MatrixStruct: dimension error. Expecting %d-by-1, but got %s" % (self.size,self.master.dim()))
1023
+
1024
+ for e in self.entries:
1025
+ self[e.name] = e.expr
1026
+
1027
+ class DMStruct(MatrixStruct):
1028
+
1029
+ def save(self,filename):
1030
+ import pickle
1031
+ pickle.dump(self,file(filename,"wb"),2)
1032
+
1033
+ def __setstate__(self,state):
1034
+ cs = CasadiStructure.__new__(CasadiStructure)
1035
+ cs.__setstate__({"args": state["args"],"kwargs": state["kwargs"]})
1036
+ self.__init__(cs,data=state["master"])
1037
+
1038
+ def __getstate__(self):
1039
+ d = copy.deepcopy(self.struct.__getstate__())
1040
+ d["master"] = self.master
1041
+ return d
1042
+
1043
+ def __init__(self,struct,data=None):
1044
+ MatrixStruct.__init__(self,struct,DM,data=data)
1045
+
1046
+ def __DM__(self):
1047
+ return self.cat
1048
+
1049
+ class SXStruct(MatrixStruct):
1050
+ def __init__(self,struct,data=None):
1051
+ MatrixStruct.__init__(self,struct,SX,data=data)
1052
+
1053
+ def __SX__(self):
1054
+ return self.cat
1055
+
1056
+ class MXStruct(MatrixStruct,VertsplitStructure):
1057
+ def __init__(self,struct,data=None):
1058
+ MatrixStruct.__init__(self,struct,MX,data=data)
1059
+
1060
+ self.buildMap()
1061
+
1062
+ def __MX__(self):
1063
+ return self.cat
1064
+
1065
+ class MXVeccatStruct(CasadiStructured,MasterGettable):
1066
+ description = "Partially mutable MX"
1067
+ def __init__(self,arg,order=None):
1068
+ CasadiStructured.__init__(self,arg,order=order)
1069
+ if any(e.expr is None for e in self.entries):
1070
+ raise Exception("struct_MX does only accept entries with an 'expr' argument.")
1071
+
1072
+ self.storage = []
1073
+ self.mapping = {}
1074
+ for k,i in enumerate(self.struct.traverseCanonicalIndex(limit=1)):
1075
+ self.storage.append(None)
1076
+ self.mapping[tuple(i)] = k
1077
+
1078
+ for e in self.entries:
1079
+ self[e.name] = e.expr
1080
+
1081
+ self.dirty = True
1082
+
1083
+ def __setitem__(self,powerIndex,value):
1084
+ if not isinstance(powerIndex,tuple):
1085
+ powerIndex = (powerIndex,)
1086
+
1087
+ def inject(payload,canonicalIndex,extraIndex=None,entry=None):
1088
+ if extraIndex is not None:
1089
+ raise Exception("An MX veccat structure does not accept indexing on MX level for __setitem__.")
1090
+ if not hasattr(self,"sparsity"):
1091
+ raise Exception("An MX veccat structure __setitem__ accepts only objects that have sparsity.")
1092
+
1093
+ if canonicalIndex in self.mapping:
1094
+ if self.struct.map[canonicalIndex].sparsity()!=payload.sparsity():
1095
+ raise Exception("Error in powerIndex slicing %s for canonicalIndex %s: Shape mismatch. lhs is %s, rhs is %s." % (str(powerIndex),str(canonicalIndex),self.struct.map[canonicalIndex].sparsity().dim(),payload.sparsity().dim()))
1096
+ self.storage[self.mapping[canonicalIndex]] = payload
1097
+ else:
1098
+ raise Exception("Not found: %s " % str(canonicalIndex))
1099
+ self.dirty = True
1100
+ return self.struct.traverseByPowerIndex(powerIndex,dispatcher=inject,payload=value)
1101
+
1102
+ def __MX__(self):
1103
+ return self.cat
1104
+
1105
+ @property
1106
+ def master(self):
1107
+ if any(e is None for e in self.storage):
1108
+ missing = filter(lambda k: self.storage[self.mapping[k]] is None,self.mapping.keys())
1109
+
1110
+ raise Exception("Problem in MX vecNZcat structure cat: missing expressions. The following entries are missing: %s" % str(missing))
1111
+
1112
+ if self.dirty:
1113
+ self.master_cached = vertcat(*[casadi.vec(i.nz[:]) for i in self.storage])
1114
+
1115
+ return self.master_cached
1116
+
1117
+
1118
+ struct_symSX = ssymStruct
1119
+ struct_symMX = msymStruct
1120
+ struct_SX = SXStruct
1121
+ struct_MX_mutable = MXStruct
1122
+ struct_MX = MXVeccatStruct
1123
+ struct = CasadiStructured
1124
+
1125
+
1126
+
1127
+ entry = StructEntry
1128
+
1129
+ class CasadiStructEntry(StructEntry):
1130
+ def __init__(self,*args,**kwargs):
1131
+ if len(args)==0:
1132
+ raise Exception("Missing name argument (first argument of Entry)")
1133
+ else:
1134
+ self.name = args[0]
1135
+ self.dict = kwargs
1136
+
1137
+ if len(args)>1:
1138
+ raise Exception("Don't know what to do with unnamed arguments %s" % str(args[1:]))
1139
+
1140
+
1141
+
1142
+ kw = kwargs.keys()
1143
+ kws = ['repeat','shape','sym','expr','struct','shapestruct','type']
1144
+ for k in kw:
1145
+ if k not in kws:
1146
+ raise Exception("Unknown keyword argument '%s'. Please use one of %s." % (k,str(kws)))
1147
+
1148
+
1149
+
1150
+ for kc, fk in [
1151
+ ('shape',['struct']),
1152
+ ('struct',['shape','shapestruct']),
1153
+ ('shapestruct',['struct']), # You might have a sparse matrix with shapestruct
1154
+ ('sym',['shape','repeat','expr']),
1155
+ ('expr',['shape','repeat','sym'])
1156
+ ]:
1157
+ if kc in kwargs:
1158
+ for fki in fk:
1159
+ if fki in kwargs:
1160
+ raise Exception("You supplied keyword argument '%s', but it cannot be combined with keyword argument '%s'." % (kc,fki))
1161
+
1162
+ # repeat argument
1163
+ self.repeat = []
1164
+
1165
+ if 'repeat' in kwargs:
1166
+ self.repeat = kwargs["repeat"] if isinstance(kwargs["repeat"],list) else [kwargs["repeat"]]
1167
+
1168
+ if not all(map(lambda x: is_integer(x),self.repeat)):
1169
+ raise Exception("The 'repeat' argument, if present, must be a list of integers, but got %s" % str(self.repeat))
1170
+
1171
+
1172
+ self.struct = None
1173
+ # struct argument
1174
+ if 'struct' in kwargs:
1175
+ struct = kwargs["struct"]
1176
+ if isinstance(struct,Structure):
1177
+ self.struct = struct
1178
+ elif isinstance(struct,Structured):
1179
+ self.struct = struct.struct
1180
+
1181
+
1182
+ self.sparsity = None
1183
+ # shape argument
1184
+ if 'shape' in kwargs:
1185
+ shape = kwargs["shape"]
1186
+ if is_integer(shape) :
1187
+ self.sparsity = Sparsity.dense(shape,1)
1188
+ elif isinstance(shape,list) or isinstance(shape,tuple):
1189
+ if len(shape)==0 or len(shape)>2:
1190
+ raise Exception("The 'shape' argument, if present, must be an integer, a tuple of 1 or 2 integers, a sparsity pattern.")
1191
+ else:
1192
+ self.sparsity = Sparsity.dense(*shape)
1193
+ elif isinstance(shape,Sparsity):
1194
+ self.sparsity = shape
1195
+ else:
1196
+ raise Exception("The 'shape' argument, if present, must be an integer, a tuple of 1 or 2 integers, or a sparsity pattern. Got %s " % str(shape))
1197
+ else:
1198
+ self.sparsity = Sparsity.dense(1,1)
1199
+
1200
+ self.shapestruct = None
1201
+ # shapestruct argument
1202
+ if 'shapestruct' in kwargs:
1203
+ shapestruct = kwargs["shapestruct"]
1204
+ if isinstance(shapestruct,Structured) or isinstance(shapestruct,Structure):
1205
+ self.shapestruct = (shapestruct.struct,1)
1206
+ elif isinstance(shapestruct,tuple):
1207
+ if not(all([isinstance(e,Structured) or isinstance(e,Structure) or is_integer(e) for e in shapestruct])) or len(shapestruct)==0 or len(shapestruct)>2:
1208
+ raise Exception("The 'shapestruct' argument, if present, must be a structure or a tuple of structures or numbers")
1209
+ self.shapestruct = tuple([e if is_integer(e) else e.struct for e in shapestruct])
1210
+ else:
1211
+ raise Exception("The 'shapestruct' argument, if present, must be a structure or a tuple of at most structures")
1212
+
1213
+ if 'shape' not in kwargs:
1214
+ self.sparsity = Sparsity.dense(*[e if is_integer(e) else e.size for e in self.shapestruct])
1215
+
1216
+ # sym argument
1217
+ self.sym = None
1218
+ if 'sym' in kwargs:
1219
+ sym = kwargs["sym"]
1220
+ if isinstance(sym,SX) and sym.is_valid_input():
1221
+ self.sym = sym
1222
+ elif isinstance(sym,Structured):
1223
+ self.struct = sym.struct
1224
+ self.sym = sym.cat
1225
+ else:
1226
+ raise Exception("The 'sym' argument must be a purely symbolic SX or a structured symbolic. Got %s instead." % str(self.sym))
1227
+ self.sparsity = self.sym.sparsity()
1228
+
1229
+ # expr argument
1230
+ self.expr = None
1231
+ if 'expr' in kwargs:
1232
+ self.expr = kwargs["expr"]
1233
+
1234
+ def getPrimitive(e,repeat=[]):
1235
+ if isinstance(e,list):
1236
+ if len(e)==0:
1237
+ return None,repeat+[0]
1238
+ else:
1239
+ return getPrimitive(e[0],repeat=repeat+[len(e)])
1240
+ else:
1241
+ return e,repeat
1242
+
1243
+
1244
+ p,r = getPrimitive(self.expr)
1245
+
1246
+ if p is None:
1247
+ self.repeat = [0]
1248
+ self.sparsity = Sparsity.dense(0,0)
1249
+ else:
1250
+ self.repeat = r
1251
+
1252
+ if hasattr(p,"sparsity"):
1253
+ self.sparsity = p.sparsity()
1254
+ else:
1255
+ raise Exception("The 'expr' argument must be a matrix expression or nested list of matrix expressions. Got %s instead." % str(p))
1256
+
1257
+ self.type = None
1258
+ # class argument
1259
+ if 'type' in kwargs:
1260
+ self.type= kwargs["type"]
1261
+ allowedclass = ['symm']
1262
+ if self.type not in allowedclass:
1263
+ raise Exception("You supplied a type argument '%s' but it is not recognised. Use one of %s" % (str(self.type,str(allowedclass))))
1264
+ if self.type=="symm":
1265
+ if self.sparsity.size1() != self.sparsity.size2():
1266
+ raise Exception("You supplied a type 'symm', but matrix is not square. Got " % self.sparsity.dim() + ".")
1267
+ self.originalsparsity = self.sparsity
1268
+ self.sparsity = self.sparsity*Sparsity.upper(self.sparsity.size1())
1269
+
1270
+
1271
+
1272
+ StructEntry.__init__(self,self.name,struct=self.struct,dims=self.repeat,data=self.sparsity)
1273
+
1274
+ def primitiveString(self):
1275
+ if self.type is None:
1276
+ return self.sparsity.dim()
1277
+ elif self.type=="symm":
1278
+ return "symm(" + self.sparsity.dim() + ")"
1279
+
1280
+ def __getstate__(self):
1281
+ return dict((k,getattr(self,k)) for k in ["name", "struct", "sparsity","type","repeat","shapestruct","dims"])
1282
+
1283
+
1284
+ def entry(*args,**kwargs):
1285
+ if len(args)==1 and isinstance(args[0],CasadiStructEntry):
1286
+ return args[0]
1287
+ return CasadiStructEntry(*args,**kwargs)
1288
+
1289
+ class EntryList:
1290
+ def __init__(self,arg,order = None):
1291
+ self.entries = []
1292
+ self.order = []
1293
+
1294
+ if not isinstance(arg,list):
1295
+ raise Exception("Expecting list of entries, with possible tuples for grouping, but got %s" % str(arg))
1296
+
1297
+ for e in arg:
1298
+ if isinstance(e,tuple):
1299
+ entries = map(entry,e)
1300
+ self.order.append(tuple(x.name for x in entries))
1301
+ self.entries+=entries
1302
+ else:
1303
+ ee = entry(e)
1304
+ self.order.append(ee.name)
1305
+ self.entries.append(ee)
1306
+
1307
+ # Override order
1308
+ if order is not None:
1309
+ if any(isinstance(e,tuple) for e in self.order):
1310
+ raise Exception("You supplied an order by using tuple syntax on entries %s, but you overwrite it with the 'order' keyword. Use one or the other, not both.")
1311
+ self.order = order
1312
+
1313
+ self.names = map(lambda x : x.name,self.entries)
1314
+ if len(self.names)!=len(set(self.names)):
1315
+ duplicates = []
1316
+ for i,e in enumerate(self.names):
1317
+ if e in self.names[:i] or e in self.names[i+1:]:
1318
+ duplicates.append(e)
1319
+ raise Exception("Your list of entries contains duplicates: %s" % str(list(set(duplicates))))
1320
+
1321
+
1322
+ class Delegater:
1323
+ def __init__(self,arg):
1324
+ self.arg = arg
1325
+
1326
+ def __str__(self):
1327
+ return "%s[%s]" % (self.__class__.__name__,str(self.arg))
1328
+
1329
+ __repr__ = __str__
1330
+
1331
+
1332
+ class IndexDelegater(Delegater):
1333
+ def __call__(self,struct):
1334
+ return struct.i.__getitem__(self.arg)
1335
+
1336
+ class FlatIndexDelegater(Delegater):
1337
+ def __call__(self,struct):
1338
+ return struct.f.__getitem__(self.arg)
1339
+
1340
+
1341
+ class DelegaterConstructor:
1342
+ """
1343
+ Creates an object that delegates a slicing operation.
1344
+
1345
+ Example usage:
1346
+ s = struct_symSX([])
1347
+ x = struct_symSX(entry("x",Sparsity.diag(4)))
1348
+ x["x",0,index[:]]
1349
+
1350
+ """
1351
+ def __init__(self,delegater,prepend=()):
1352
+ self.prepend = prepend
1353
+ self.delegater = delegater
1354
+
1355
+ @properGetitem
1356
+ def __getitem__(self,arg):
1357
+ return self.delegater(self.prepend + arg)
1358
+
1359
+ index = DelegaterConstructor(IndexDelegater)
1360
+ indexf = DelegaterConstructor(FlatIndexDelegater)
1361
+
1362
+ class DataReference:
1363
+ @property
1364
+ def shape(self):
1365
+ return self.v.shape
1366
+
1367
+ def dim(self):
1368
+ return self.v.dim()
1369
+
1370
+
1371
+ class DataReferenceRepeated(DataReference):
1372
+ def __init__(self,a,n):
1373
+ assert(a.is_dense())
1374
+ self.a = a
1375
+ self.n = n
1376
+ self.v = a.reshape((n*a.size1(),1))
1377
+
1378
+ def __setitem__(self,a,b):
1379
+ self.v.nz[a] = b
1380
+ I = self.a.sparsity().find()
1381
+ self.a.nz[I] = self.v.nz[I]
1382
+
1383
+ def __getitem__(self,a):
1384
+ return self.v.nz[a]
1385
+
1386
+ class DataReferenceSquared(DataReference):
1387
+ def __init__(self,a,n):
1388
+ assert(a.is_dense())
1389
+ self.a = a
1390
+ self.v = a
1391
+ self.n = n
1392
+
1393
+ def __setitem__(self,a,b):
1394
+ self.a.nz[a] = b
1395
+
1396
+ def __getitem__(self,a):
1397
+ return self.a.nz[a]
1398
+
1399
+ @property
1400
+ def shape(self):
1401
+ return (self.n*self.n,1)
1402
+
1403
+ class DataReferenceProduct(DataReference):
1404
+ def __init__(self,a,n,m):
1405
+ assert(a.is_dense())
1406
+ self.a = a
1407
+ self.v = a
1408
+ self.n = n
1409
+ self.m = m
1410
+
1411
+ def __setitem__(self,a,b):
1412
+ self.a.nz[a] = b
1413
+
1414
+ def __getitem__(self,a):
1415
+ return self.a.nz[a]
1416
+
1417
+ @property
1418
+ def shape(self):
1419
+ return (self.n*self.m,1)
1420
+
1421
+ def size1(self):
1422
+ return self.n
1423
+
1424
+ def size2(self):
1425
+ return self.m
1426
+
1427
+ class DataReferenceSquaredRepeated(DataReference):
1428
+ def __init__(self,a,n,N):
1429
+ assert(a.is_dense())
1430
+ self.a = a
1431
+ self.n = n
1432
+ self.N = N
1433
+ self.v = a.reshape((n*n*N,1))
1434
+
1435
+ def __setitem__(self,a,b):
1436
+ self.v.nz[a] = b
1437
+ I = self.a.sparsity().find()
1438
+ self.a.nz[I] = self.v.nz[I]
1439
+
1440
+ def __getitem__(self,a):
1441
+ return self.v.nz[a]
1442
+
1443
+ def struct_load(filename):
1444
+ import pickle
1445
+ return pickle.load(file(filename,"rb"))
1446
+