casadi 3.7.2__cp314-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 (1726) hide show
  1. casadi/__init__.py +92 -0
  2. casadi/_casadi.so +0 -0
  3. casadi/casadi-cli +0 -0
  4. casadi/casadi.py +54468 -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 +65 -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/ghc_filesystem/ghc_filesystem-config-version.cmake +85 -0
  16. casadi/cmake/ghc_filesystem/ghc_filesystem-config.cmake +30 -0
  17. casadi/cmake/ghc_filesystem/ghc_filesystem-targets.cmake +107 -0
  18. casadi/cmake/highs/highs-config.cmake +17 -0
  19. casadi/cmake/highs/highs-targets-release.cmake +28 -0
  20. casadi/cmake/highs/highs-targets.cmake +117 -0
  21. casadi/cmake/libzip/libzip-config-version.cmake +43 -0
  22. casadi/cmake/libzip/libzip-config.cmake +69 -0
  23. casadi/cmake/libzip/libzip-targets-release.cmake +19 -0
  24. casadi/cmake/libzip/libzip-targets.cmake +107 -0
  25. casadi/cmake/libzip/modules/FindMbedTLS.cmake +141 -0
  26. casadi/cmake/libzip/modules/FindNettle.cmake +141 -0
  27. casadi/cmake/libzip/modules/Findzstd.cmake +186 -0
  28. casadi/cmake/osqp/osqp-config.cmake +1 -0
  29. casadi/cmake/osqp/osqp-targets-noconfig.cmake +29 -0
  30. casadi/cmake/osqp/osqp-targets.cmake +113 -0
  31. casadi/cmake/proxsuite/find-external/Simde/FindSimde.cmake +39 -0
  32. casadi/cmake/proxsuite/proxsuiteConfig.cmake +177 -0
  33. casadi/cmake/proxsuite/proxsuiteConfigVersion.cmake +65 -0
  34. casadi/cmake/proxsuite/proxsuiteTargets.cmake +115 -0
  35. casadi/cmake/qdldl/qdldl-config.cmake +1 -0
  36. casadi/cmake/qdldl/qdldl-targets-noconfig.cmake +29 -0
  37. casadi/cmake/qdldl/qdldl-targets.cmake +113 -0
  38. casadi/cmake/sleqp/sleqp-config-version.cmake +65 -0
  39. casadi/cmake/sleqp/sleqp-config.cmake +1 -0
  40. casadi/cmake/sleqp/sleqp-targets-release.cmake +20 -0
  41. casadi/cmake/sleqp/sleqp-targets.cmake +106 -0
  42. casadi/cmake/trlib/trlib-config-release.cmake +19 -0
  43. casadi/cmake/trlib/trlib-config-version.cmake +83 -0
  44. casadi/cmake/trlib/trlib-config.cmake +107 -0
  45. casadi/highs +0 -0
  46. casadi/include/casadi/casadi.hpp +31 -0
  47. casadi/include/casadi/casadi.i +4920 -0
  48. casadi/include/casadi/casadi_c.h +138 -0
  49. casadi/include/casadi/casadi_numpy.hpp +97 -0
  50. casadi/include/casadi/config.h +46 -0
  51. casadi/include/casadi/core/archiver.hpp +58 -0
  52. casadi/include/casadi/core/blazing_spline.hpp +47 -0
  53. casadi/include/casadi/core/calculus.hpp +1805 -0
  54. casadi/include/casadi/core/callback.hpp +235 -0
  55. casadi/include/casadi/core/casadi_common.hpp +355 -0
  56. casadi/include/casadi/core/casadi_enum.hpp +90 -0
  57. casadi/include/casadi/core/casadi_export.h +43 -0
  58. casadi/include/casadi/core/casadi_interrupt.hpp +83 -0
  59. casadi/include/casadi/core/casadi_limits.hpp +104 -0
  60. casadi/include/casadi/core/casadi_logger.hpp +134 -0
  61. casadi/include/casadi/core/casadi_meta.hpp +122 -0
  62. casadi/include/casadi/core/casadi_misc.hpp +1022 -0
  63. casadi/include/casadi/core/casadi_types.hpp +66 -0
  64. casadi/include/casadi/core/code_generator.hpp +1071 -0
  65. casadi/include/casadi/core/conic.hpp +213 -0
  66. casadi/include/casadi/core/core.hpp +75 -0
  67. casadi/include/casadi/core/dae_builder.hpp +885 -0
  68. casadi/include/casadi/core/dm.hpp +90 -0
  69. casadi/include/casadi/core/dm_fwd.hpp +39 -0
  70. casadi/include/casadi/core/dple.hpp +138 -0
  71. casadi/include/casadi/core/exception.hpp +167 -0
  72. casadi/include/casadi/core/expm.hpp +84 -0
  73. casadi/include/casadi/core/external.hpp +70 -0
  74. casadi/include/casadi/core/filesystem.hpp +58 -0
  75. casadi/include/casadi/core/fmu.hpp +270 -0
  76. casadi/include/casadi/core/function.hpp +1389 -0
  77. casadi/include/casadi/core/generic_expression.hpp +760 -0
  78. casadi/include/casadi/core/generic_matrix.hpp +1805 -0
  79. casadi/include/casadi/core/generic_shared.hpp +395 -0
  80. casadi/include/casadi/core/generic_shared_impl.hpp +218 -0
  81. casadi/include/casadi/core/generic_shared_internal.hpp +215 -0
  82. casadi/include/casadi/core/generic_type.hpp +314 -0
  83. casadi/include/casadi/core/global_options.hpp +107 -0
  84. casadi/include/casadi/core/im.hpp +52 -0
  85. casadi/include/casadi/core/im_fwd.hpp +35 -0
  86. casadi/include/casadi/core/importer.hpp +221 -0
  87. casadi/include/casadi/core/integration_tools.hpp +292 -0
  88. casadi/include/casadi/core/integrator.hpp +290 -0
  89. casadi/include/casadi/core/interpolant.hpp +163 -0
  90. casadi/include/casadi/core/linsol.hpp +171 -0
  91. casadi/include/casadi/core/matrix_decl.hpp +1423 -0
  92. casadi/include/casadi/core/matrix_fwd.hpp +37 -0
  93. casadi/include/casadi/core/mx.hpp +1014 -0
  94. casadi/include/casadi/core/nlp_builder.hpp +163 -0
  95. casadi/include/casadi/core/nlp_tools.hpp +124 -0
  96. casadi/include/casadi/core/nlpsol.hpp +234 -0
  97. casadi/include/casadi/core/nonzeros.hpp +111 -0
  98. casadi/include/casadi/core/options.hpp +122 -0
  99. casadi/include/casadi/core/optistack.hpp +704 -0
  100. casadi/include/casadi/core/polynomial.hpp +126 -0
  101. casadi/include/casadi/core/printable.hpp +81 -0
  102. casadi/include/casadi/core/resource.hpp +107 -0
  103. casadi/include/casadi/core/rootfinder.hpp +176 -0
  104. casadi/include/casadi/core/runtime/casadi_axpy.hpp +8 -0
  105. casadi/include/casadi/core/runtime/casadi_bfgs.hpp +49 -0
  106. casadi/include/casadi/core/runtime/casadi_bilin.hpp +42 -0
  107. casadi/include/casadi/core/runtime/casadi_blazing_1d_boor_eval.hpp +112 -0
  108. casadi/include/casadi/core/runtime/casadi_blazing_2d_boor_eval.hpp +311 -0
  109. casadi/include/casadi/core/runtime/casadi_blazing_3d_boor_eval.hpp +645 -0
  110. casadi/include/casadi/core/runtime/casadi_blazing_de_boor.hpp +101 -0
  111. casadi/include/casadi/core/runtime/casadi_bound_consistency.hpp +51 -0
  112. casadi/include/casadi/core/runtime/casadi_cache.hpp +59 -0
  113. casadi/include/casadi/core/runtime/casadi_clear.hpp +27 -0
  114. casadi/include/casadi/core/runtime/casadi_clip_max.hpp +33 -0
  115. casadi/include/casadi/core/runtime/casadi_clip_min.hpp +33 -0
  116. casadi/include/casadi/core/runtime/casadi_convexify.hpp +182 -0
  117. casadi/include/casadi/core/runtime/casadi_copy.hpp +31 -0
  118. casadi/include/casadi/core/runtime/casadi_cvx.hpp +463 -0
  119. casadi/include/casadi/core/runtime/casadi_de_boor.hpp +36 -0
  120. casadi/include/casadi/core/runtime/casadi_dense_lsqr.hpp +247 -0
  121. casadi/include/casadi/core/runtime/casadi_densify.hpp +48 -0
  122. casadi/include/casadi/core/runtime/casadi_dot.hpp +27 -0
  123. casadi/include/casadi/core/runtime/casadi_feasiblesqpmethod.hpp +208 -0
  124. casadi/include/casadi/core/runtime/casadi_file_slurp.hpp +32 -0
  125. casadi/include/casadi/core/runtime/casadi_fill.hpp +27 -0
  126. casadi/include/casadi/core/runtime/casadi_finite_diff.hpp +345 -0
  127. casadi/include/casadi/core/runtime/casadi_flip.hpp +33 -0
  128. casadi/include/casadi/core/runtime/casadi_getu.hpp +35 -0
  129. casadi/include/casadi/core/runtime/casadi_iamax.hpp +36 -0
  130. casadi/include/casadi/core/runtime/casadi_interpn.hpp +39 -0
  131. casadi/include/casadi/core/runtime/casadi_interpn_grad.hpp +72 -0
  132. casadi/include/casadi/core/runtime/casadi_interpn_interpolate.hpp +43 -0
  133. casadi/include/casadi/core/runtime/casadi_interpn_weights.hpp +39 -0
  134. casadi/include/casadi/core/runtime/casadi_ipqp.hpp +868 -0
  135. casadi/include/casadi/core/runtime/casadi_jac.hpp +186 -0
  136. casadi/include/casadi/core/runtime/casadi_kkt.hpp +67 -0
  137. casadi/include/casadi/core/runtime/casadi_kron.hpp +50 -0
  138. casadi/include/casadi/core/runtime/casadi_ldl.hpp +109 -0
  139. casadi/include/casadi/core/runtime/casadi_logsumexp.hpp +41 -0
  140. casadi/include/casadi/core/runtime/casadi_low.hpp +65 -0
  141. casadi/include/casadi/core/runtime/casadi_lsqr.hpp +247 -0
  142. casadi/include/casadi/core/runtime/casadi_masked_norm_inf.hpp +33 -0
  143. casadi/include/casadi/core/runtime/casadi_max_viol.hpp +37 -0
  144. casadi/include/casadi/core/runtime/casadi_mmax.hpp +28 -0
  145. casadi/include/casadi/core/runtime/casadi_mmin.hpp +29 -0
  146. casadi/include/casadi/core/runtime/casadi_mtimes.hpp +75 -0
  147. casadi/include/casadi/core/runtime/casadi_mv.hpp +46 -0
  148. casadi/include/casadi/core/runtime/casadi_mv_dense.hpp +39 -0
  149. casadi/include/casadi/core/runtime/casadi_nd_boor_dual_eval.hpp +127 -0
  150. casadi/include/casadi/core/runtime/casadi_nd_boor_eval.hpp +120 -0
  151. casadi/include/casadi/core/runtime/casadi_newton.hpp +66 -0
  152. casadi/include/casadi/core/runtime/casadi_nlp.hpp +295 -0
  153. casadi/include/casadi/core/runtime/casadi_norm_1.hpp +29 -0
  154. casadi/include/casadi/core/runtime/casadi_norm_2.hpp +24 -0
  155. casadi/include/casadi/core/runtime/casadi_norm_inf.hpp +28 -0
  156. casadi/include/casadi/core/runtime/casadi_norm_inf_mul.hpp +105 -0
  157. casadi/include/casadi/core/runtime/casadi_ocp_block.hpp +55 -0
  158. casadi/include/casadi/core/runtime/casadi_oracle.hpp +44 -0
  159. casadi/include/casadi/core/runtime/casadi_oracle_callback.hpp +39 -0
  160. casadi/include/casadi/core/runtime/casadi_polyval.hpp +29 -0
  161. casadi/include/casadi/core/runtime/casadi_print_canonical.hpp +55 -0
  162. casadi/include/casadi/core/runtime/casadi_print_scalar.hpp +25 -0
  163. casadi/include/casadi/core/runtime/casadi_print_vector.hpp +32 -0
  164. casadi/include/casadi/core/runtime/casadi_printme.hpp +26 -0
  165. casadi/include/casadi/core/runtime/casadi_project.hpp +39 -0
  166. casadi/include/casadi/core/runtime/casadi_qp.hpp +86 -0
  167. casadi/include/casadi/core/runtime/casadi_qr.hpp +272 -0
  168. casadi/include/casadi/core/runtime/casadi_qrqp.hpp +1239 -0
  169. casadi/include/casadi/core/runtime/casadi_rank1.hpp +40 -0
  170. casadi/include/casadi/core/runtime/casadi_regularize.hpp +73 -0
  171. casadi/include/casadi/core/runtime/casadi_runtime.hpp +318 -0
  172. casadi/include/casadi/core/runtime/casadi_scal.hpp +26 -0
  173. casadi/include/casadi/core/runtime/casadi_scaled_copy.hpp +31 -0
  174. casadi/include/casadi/core/runtime/casadi_sparsify.hpp +42 -0
  175. casadi/include/casadi/core/runtime/casadi_sparsity.hpp +24 -0
  176. casadi/include/casadi/core/runtime/casadi_sqpmethod.hpp +178 -0
  177. casadi/include/casadi/core/runtime/casadi_sum.hpp +31 -0
  178. casadi/include/casadi/core/runtime/casadi_sum_viol.hpp +37 -0
  179. casadi/include/casadi/core/runtime/casadi_swap.hpp +32 -0
  180. casadi/include/casadi/core/runtime/casadi_trans.hpp +35 -0
  181. casadi/include/casadi/core/runtime/casadi_tri_project.hpp +37 -0
  182. casadi/include/casadi/core/runtime/casadi_trilsolve.hpp +81 -0
  183. casadi/include/casadi/core/runtime/casadi_triusolve.hpp +81 -0
  184. casadi/include/casadi/core/runtime/casadi_vector_fmax.hpp +28 -0
  185. casadi/include/casadi/core/runtime/casadi_vector_fmin.hpp +28 -0
  186. casadi/include/casadi/core/runtime/casadi_vfmax.hpp +28 -0
  187. casadi/include/casadi/core/runtime/casadi_vfmin.hpp +28 -0
  188. casadi/include/casadi/core/runtime/shared.hpp +261 -0
  189. casadi/include/casadi/core/serializer.hpp +264 -0
  190. casadi/include/casadi/core/serializing_stream.hpp +336 -0
  191. casadi/include/casadi/core/shared_object.hpp +182 -0
  192. casadi/include/casadi/core/slice.hpp +149 -0
  193. casadi/include/casadi/core/sparsity.hpp +1507 -0
  194. casadi/include/casadi/core/sparsity_interface.hpp +763 -0
  195. casadi/include/casadi/core/submatrix.hpp +156 -0
  196. casadi/include/casadi/core/sx.hpp +244 -0
  197. casadi/include/casadi/core/sx_elem.hpp +376 -0
  198. casadi/include/casadi/core/sx_fwd.hpp +45 -0
  199. casadi/include/casadi/core/timing.hpp +98 -0
  200. casadi/include/casadi/core/tools.hpp +67 -0
  201. casadi/include/casadi/core/xml_file.hpp +93 -0
  202. casadi/include/casadi/core/xml_node.hpp +212 -0
  203. casadi/include/casadi/doc.i +62244 -0
  204. casadi/include/casadi/doc_merged.i +38499 -0
  205. casadi/include/casadi/mem.h +311 -0
  206. casadi/include/casadi/valgrind-casadi.supp +649 -0
  207. casadi/include/casadi/valgrind-python.supp +3886 -0
  208. casadi/include/coin-or/IpAlgBuilder.hpp +417 -0
  209. casadi/include/coin-or/IpAlgStrategy.hpp +201 -0
  210. casadi/include/coin-or/IpAlgTypes.hpp +64 -0
  211. casadi/include/coin-or/IpAugSystemSolver.hpp +212 -0
  212. casadi/include/coin-or/IpBlas.hpp +426 -0
  213. casadi/include/coin-or/IpCachedResults.hpp +897 -0
  214. casadi/include/coin-or/IpCompoundMatrix.hpp +423 -0
  215. casadi/include/coin-or/IpCompoundSymMatrix.hpp +348 -0
  216. casadi/include/coin-or/IpCompoundVector.hpp +395 -0
  217. casadi/include/coin-or/IpConvCheck.hpp +97 -0
  218. casadi/include/coin-or/IpDebug.hpp +167 -0
  219. casadi/include/coin-or/IpDenseVector.hpp +626 -0
  220. casadi/include/coin-or/IpDiagMatrix.hpp +158 -0
  221. casadi/include/coin-or/IpEqMultCalculator.hpp +76 -0
  222. casadi/include/coin-or/IpException.hpp +156 -0
  223. casadi/include/coin-or/IpExpansionMatrix.hpp +245 -0
  224. casadi/include/coin-or/IpGenTMatrix.hpp +290 -0
  225. casadi/include/coin-or/IpHessianUpdater.hpp +73 -0
  226. casadi/include/coin-or/IpIdentityMatrix.hpp +167 -0
  227. casadi/include/coin-or/IpIpoptAlg.hpp +257 -0
  228. casadi/include/coin-or/IpIpoptApplication.hpp +367 -0
  229. casadi/include/coin-or/IpIpoptCalculatedQuantities.hpp +1009 -0
  230. casadi/include/coin-or/IpIpoptData.hpp +966 -0
  231. casadi/include/coin-or/IpIpoptNLP.hpp +328 -0
  232. casadi/include/coin-or/IpIterateInitializer.hpp +68 -0
  233. casadi/include/coin-or/IpIteratesVector.hpp +840 -0
  234. casadi/include/coin-or/IpIterationOutput.hpp +78 -0
  235. casadi/include/coin-or/IpJournalist.hpp +573 -0
  236. casadi/include/coin-or/IpLapack.hpp +227 -0
  237. casadi/include/coin-or/IpLibraryLoader.hpp +76 -0
  238. casadi/include/coin-or/IpLineSearch.hpp +106 -0
  239. casadi/include/coin-or/IpLinearSolvers.h +46 -0
  240. casadi/include/coin-or/IpMatrix.hpp +434 -0
  241. casadi/include/coin-or/IpMuUpdate.hpp +77 -0
  242. casadi/include/coin-or/IpNLP.hpp +306 -0
  243. casadi/include/coin-or/IpNLPScaling.hpp +582 -0
  244. casadi/include/coin-or/IpObserver.hpp +422 -0
  245. casadi/include/coin-or/IpOptionsList.hpp +412 -0
  246. casadi/include/coin-or/IpOrigIpoptNLP.hpp +603 -0
  247. casadi/include/coin-or/IpPDSystemSolver.hpp +137 -0
  248. casadi/include/coin-or/IpReferenced.hpp +262 -0
  249. casadi/include/coin-or/IpRegOptions.hpp +1152 -0
  250. casadi/include/coin-or/IpReturnCodes.h +23 -0
  251. casadi/include/coin-or/IpReturnCodes.hpp +18 -0
  252. casadi/include/coin-or/IpReturnCodes.inc +71 -0
  253. casadi/include/coin-or/IpReturnCodes_inc.h +45 -0
  254. casadi/include/coin-or/IpScaledMatrix.hpp +291 -0
  255. casadi/include/coin-or/IpSearchDirCalculator.hpp +72 -0
  256. casadi/include/coin-or/IpSmartPtr.hpp +865 -0
  257. casadi/include/coin-or/IpSolveStatistics.hpp +210 -0
  258. casadi/include/coin-or/IpSparseSymLinearSolverInterface.hpp +260 -0
  259. casadi/include/coin-or/IpStdAugSystemSolver.cpp +555 -0
  260. casadi/include/coin-or/IpStdCInterface.h +428 -0
  261. casadi/include/coin-or/IpSumSymMatrix.hpp +186 -0
  262. casadi/include/coin-or/IpSymLinearSolver.hpp +141 -0
  263. casadi/include/coin-or/IpSymMatrix.hpp +167 -0
  264. casadi/include/coin-or/IpSymScaledMatrix.hpp +255 -0
  265. casadi/include/coin-or/IpSymTMatrix.hpp +275 -0
  266. casadi/include/coin-or/IpTNLP.hpp +820 -0
  267. casadi/include/coin-or/IpTNLPAdapter.hpp +648 -0
  268. casadi/include/coin-or/IpTNLPReducer.hpp +274 -0
  269. casadi/include/coin-or/IpTaggedObject.hpp +128 -0
  270. casadi/include/coin-or/IpTimedTask.hpp +218 -0
  271. casadi/include/coin-or/IpTimingStatistics.hpp +323 -0
  272. casadi/include/coin-or/IpTripletHelper.hpp +308 -0
  273. casadi/include/coin-or/IpTypes.h +81 -0
  274. casadi/include/coin-or/IpTypes.hpp +30 -0
  275. casadi/include/coin-or/IpUtils.hpp +166 -0
  276. casadi/include/coin-or/IpVector.hpp +892 -0
  277. casadi/include/coin-or/IpZeroSymMatrix.hpp +155 -0
  278. casadi/include/coin-or/IpoptConfig.h +45 -0
  279. casadi/include/coin-or/SensAlgorithm.hpp +114 -0
  280. casadi/include/coin-or/SensApplication.hpp +188 -0
  281. casadi/include/coin-or/SensBacksolver.hpp +36 -0
  282. casadi/include/coin-or/SensMeasurement.hpp +56 -0
  283. casadi/include/coin-or/SensPCalculator.hpp +137 -0
  284. casadi/include/coin-or/SensRegOp.hpp +21 -0
  285. casadi/include/coin-or/SensSchurData.hpp +182 -0
  286. casadi/include/coin-or/SensSchurDriver.hpp +118 -0
  287. casadi/include/coin-or/SensSimpleBacksolver.hpp +49 -0
  288. casadi/include/coin-or/SensStepCalc.hpp +85 -0
  289. casadi/include/coin-or/SensUtils.hpp +63 -0
  290. casadi/include/coin-or/metis/defs.h +161 -0
  291. casadi/include/coin-or/metis/macros.h +143 -0
  292. casadi/include/coin-or/metis/metis.h +37 -0
  293. casadi/include/coin-or/metis/proto.h +505 -0
  294. casadi/include/coin-or/metis/rename.h +418 -0
  295. casadi/include/coin-or/metis/struct.h +251 -0
  296. casadi/include/coin-or/mumps/dmumps_c.h +142 -0
  297. casadi/include/coin-or/mumps/mumps_c_types.h +72 -0
  298. casadi/include/coin-or/mumps/mumps_compat.h +27 -0
  299. casadi/include/coin-or/mumps/mumps_int_def.h +11 -0
  300. casadi/include/coin-or/mumps/mumps_mpi.h +67 -0
  301. casadi/include/daqp/api.h +46 -0
  302. casadi/include/daqp/auxiliary.h +29 -0
  303. casadi/include/daqp/bnb.h +32 -0
  304. casadi/include/daqp/codegen.h +18 -0
  305. casadi/include/daqp/constants.h +92 -0
  306. casadi/include/daqp/daqp.h +22 -0
  307. casadi/include/daqp/daqp_prox.h +18 -0
  308. casadi/include/daqp/factorization.h +18 -0
  309. casadi/include/daqp/types.h +161 -0
  310. casadi/include/daqp/utils.h +44 -0
  311. casadi/include/eigen3/Eigen/Cholesky +45 -0
  312. casadi/include/eigen3/Eigen/CholmodSupport +48 -0
  313. casadi/include/eigen3/Eigen/Core +384 -0
  314. casadi/include/eigen3/Eigen/Dense +7 -0
  315. casadi/include/eigen3/Eigen/Eigen +2 -0
  316. casadi/include/eigen3/Eigen/Eigenvalues +60 -0
  317. casadi/include/eigen3/Eigen/Geometry +59 -0
  318. casadi/include/eigen3/Eigen/Householder +29 -0
  319. casadi/include/eigen3/Eigen/IterativeLinearSolvers +48 -0
  320. casadi/include/eigen3/Eigen/Jacobi +32 -0
  321. casadi/include/eigen3/Eigen/KLUSupport +41 -0
  322. casadi/include/eigen3/Eigen/LU +47 -0
  323. casadi/include/eigen3/Eigen/MetisSupport +35 -0
  324. casadi/include/eigen3/Eigen/OrderingMethods +70 -0
  325. casadi/include/eigen3/Eigen/PaStiXSupport +49 -0
  326. casadi/include/eigen3/Eigen/PardisoSupport +35 -0
  327. casadi/include/eigen3/Eigen/QR +50 -0
  328. casadi/include/eigen3/Eigen/QtAlignedMalloc +39 -0
  329. casadi/include/eigen3/Eigen/SPQRSupport +34 -0
  330. casadi/include/eigen3/Eigen/SVD +50 -0
  331. casadi/include/eigen3/Eigen/Sparse +34 -0
  332. casadi/include/eigen3/Eigen/SparseCholesky +37 -0
  333. casadi/include/eigen3/Eigen/SparseCore +69 -0
  334. casadi/include/eigen3/Eigen/SparseLU +50 -0
  335. casadi/include/eigen3/Eigen/SparseQR +36 -0
  336. casadi/include/eigen3/Eigen/StdDeque +27 -0
  337. casadi/include/eigen3/Eigen/StdList +26 -0
  338. casadi/include/eigen3/Eigen/StdVector +27 -0
  339. casadi/include/eigen3/Eigen/SuperLUSupport +64 -0
  340. casadi/include/eigen3/Eigen/UmfPackSupport +40 -0
  341. casadi/include/eigen3/Eigen/src/Cholesky/LDLT.h +688 -0
  342. casadi/include/eigen3/Eigen/src/Cholesky/LLT.h +558 -0
  343. casadi/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h +99 -0
  344. casadi/include/eigen3/Eigen/src/CholmodSupport/CholmodSupport.h +682 -0
  345. casadi/include/eigen3/Eigen/src/Core/ArithmeticSequence.h +413 -0
  346. casadi/include/eigen3/Eigen/src/Core/Array.h +417 -0
  347. casadi/include/eigen3/Eigen/src/Core/ArrayBase.h +226 -0
  348. casadi/include/eigen3/Eigen/src/Core/ArrayWrapper.h +209 -0
  349. casadi/include/eigen3/Eigen/src/Core/Assign.h +90 -0
  350. casadi/include/eigen3/Eigen/src/Core/AssignEvaluator.h +1010 -0
  351. casadi/include/eigen3/Eigen/src/Core/Assign_MKL.h +178 -0
  352. casadi/include/eigen3/Eigen/src/Core/BandMatrix.h +353 -0
  353. casadi/include/eigen3/Eigen/src/Core/Block.h +448 -0
  354. casadi/include/eigen3/Eigen/src/Core/BooleanRedux.h +162 -0
  355. casadi/include/eigen3/Eigen/src/Core/CommaInitializer.h +164 -0
  356. casadi/include/eigen3/Eigen/src/Core/ConditionEstimator.h +175 -0
  357. casadi/include/eigen3/Eigen/src/Core/CoreEvaluators.h +1741 -0
  358. casadi/include/eigen3/Eigen/src/Core/CoreIterators.h +132 -0
  359. casadi/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h +183 -0
  360. casadi/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h +1001 -0
  361. casadi/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h +197 -0
  362. casadi/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h +103 -0
  363. casadi/include/eigen3/Eigen/src/Core/CwiseUnaryView.h +132 -0
  364. casadi/include/eigen3/Eigen/src/Core/DenseBase.h +701 -0
  365. casadi/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h +685 -0
  366. casadi/include/eigen3/Eigen/src/Core/DenseStorage.h +652 -0
  367. casadi/include/eigen3/Eigen/src/Core/Diagonal.h +258 -0
  368. casadi/include/eigen3/Eigen/src/Core/DiagonalMatrix.h +391 -0
  369. casadi/include/eigen3/Eigen/src/Core/DiagonalProduct.h +28 -0
  370. casadi/include/eigen3/Eigen/src/Core/Dot.h +318 -0
  371. casadi/include/eigen3/Eigen/src/Core/EigenBase.h +160 -0
  372. casadi/include/eigen3/Eigen/src/Core/ForceAlignedAccess.h +150 -0
  373. casadi/include/eigen3/Eigen/src/Core/Fuzzy.h +155 -0
  374. casadi/include/eigen3/Eigen/src/Core/GeneralProduct.h +465 -0
  375. casadi/include/eigen3/Eigen/src/Core/GenericPacketMath.h +1040 -0
  376. casadi/include/eigen3/Eigen/src/Core/GlobalFunctions.h +194 -0
  377. casadi/include/eigen3/Eigen/src/Core/IO.h +258 -0
  378. casadi/include/eigen3/Eigen/src/Core/IndexedView.h +237 -0
  379. casadi/include/eigen3/Eigen/src/Core/Inverse.h +117 -0
  380. casadi/include/eigen3/Eigen/src/Core/Map.h +171 -0
  381. casadi/include/eigen3/Eigen/src/Core/MapBase.h +310 -0
  382. casadi/include/eigen3/Eigen/src/Core/MathFunctions.h +2057 -0
  383. casadi/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h +200 -0
  384. casadi/include/eigen3/Eigen/src/Core/Matrix.h +565 -0
  385. casadi/include/eigen3/Eigen/src/Core/MatrixBase.h +547 -0
  386. casadi/include/eigen3/Eigen/src/Core/NestByValue.h +85 -0
  387. casadi/include/eigen3/Eigen/src/Core/NoAlias.h +109 -0
  388. casadi/include/eigen3/Eigen/src/Core/NumTraits.h +335 -0
  389. casadi/include/eigen3/Eigen/src/Core/PartialReduxEvaluator.h +232 -0
  390. casadi/include/eigen3/Eigen/src/Core/PermutationMatrix.h +605 -0
  391. casadi/include/eigen3/Eigen/src/Core/PlainObjectBase.h +1128 -0
  392. casadi/include/eigen3/Eigen/src/Core/Product.h +191 -0
  393. casadi/include/eigen3/Eigen/src/Core/ProductEvaluators.h +1179 -0
  394. casadi/include/eigen3/Eigen/src/Core/Random.h +218 -0
  395. casadi/include/eigen3/Eigen/src/Core/Redux.h +515 -0
  396. casadi/include/eigen3/Eigen/src/Core/Ref.h +381 -0
  397. casadi/include/eigen3/Eigen/src/Core/Replicate.h +142 -0
  398. casadi/include/eigen3/Eigen/src/Core/Reshaped.h +454 -0
  399. casadi/include/eigen3/Eigen/src/Core/ReturnByValue.h +119 -0
  400. casadi/include/eigen3/Eigen/src/Core/Reverse.h +217 -0
  401. casadi/include/eigen3/Eigen/src/Core/Select.h +164 -0
  402. casadi/include/eigen3/Eigen/src/Core/SelfAdjointView.h +365 -0
  403. casadi/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h +47 -0
  404. casadi/include/eigen3/Eigen/src/Core/Solve.h +188 -0
  405. casadi/include/eigen3/Eigen/src/Core/SolveTriangular.h +235 -0
  406. casadi/include/eigen3/Eigen/src/Core/SolverBase.h +168 -0
  407. casadi/include/eigen3/Eigen/src/Core/StableNorm.h +251 -0
  408. casadi/include/eigen3/Eigen/src/Core/StlIterators.h +463 -0
  409. casadi/include/eigen3/Eigen/src/Core/Stride.h +116 -0
  410. casadi/include/eigen3/Eigen/src/Core/Swap.h +68 -0
  411. casadi/include/eigen3/Eigen/src/Core/Transpose.h +464 -0
  412. casadi/include/eigen3/Eigen/src/Core/Transpositions.h +386 -0
  413. casadi/include/eigen3/Eigen/src/Core/TriangularMatrix.h +1001 -0
  414. casadi/include/eigen3/Eigen/src/Core/VectorBlock.h +96 -0
  415. casadi/include/eigen3/Eigen/src/Core/VectorwiseOp.h +784 -0
  416. casadi/include/eigen3/Eigen/src/Core/Visitor.h +381 -0
  417. casadi/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h +372 -0
  418. casadi/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h +228 -0
  419. casadi/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h +1574 -0
  420. casadi/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h +115 -0
  421. casadi/include/eigen3/Eigen/src/Core/arch/AVX512/Complex.h +422 -0
  422. casadi/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h +362 -0
  423. casadi/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h +2303 -0
  424. casadi/include/eigen3/Eigen/src/Core/arch/AVX512/TypeCasting.h +89 -0
  425. casadi/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h +417 -0
  426. casadi/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h +90 -0
  427. casadi/include/eigen3/Eigen/src/Core/arch/AltiVec/MatrixProduct.h +2937 -0
  428. casadi/include/eigen3/Eigen/src/Core/arch/AltiVec/MatrixProductCommon.h +221 -0
  429. casadi/include/eigen3/Eigen/src/Core/arch/AltiVec/MatrixProductMMA.h +629 -0
  430. casadi/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h +2711 -0
  431. casadi/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h +258 -0
  432. casadi/include/eigen3/Eigen/src/Core/arch/Default/BFloat16.h +700 -0
  433. casadi/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h +117 -0
  434. casadi/include/eigen3/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h +1649 -0
  435. casadi/include/eigen3/Eigen/src/Core/arch/Default/GenericPacketMathFunctionsFwd.h +110 -0
  436. casadi/include/eigen3/Eigen/src/Core/arch/Default/Half.h +942 -0
  437. casadi/include/eigen3/Eigen/src/Core/arch/Default/Settings.h +49 -0
  438. casadi/include/eigen3/Eigen/src/Core/arch/Default/TypeCasting.h +120 -0
  439. casadi/include/eigen3/Eigen/src/Core/arch/GPU/MathFunctions.h +103 -0
  440. casadi/include/eigen3/Eigen/src/Core/arch/GPU/PacketMath.h +1685 -0
  441. casadi/include/eigen3/Eigen/src/Core/arch/GPU/TypeCasting.h +80 -0
  442. casadi/include/eigen3/Eigen/src/Core/arch/HIP/hcc/math_constants.h +23 -0
  443. casadi/include/eigen3/Eigen/src/Core/arch/MSA/Complex.h +648 -0
  444. casadi/include/eigen3/Eigen/src/Core/arch/MSA/MathFunctions.h +387 -0
  445. casadi/include/eigen3/Eigen/src/Core/arch/MSA/PacketMath.h +1233 -0
  446. casadi/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h +584 -0
  447. casadi/include/eigen3/Eigen/src/Core/arch/NEON/GeneralBlockPanelKernel.h +183 -0
  448. casadi/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h +75 -0
  449. casadi/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h +4587 -0
  450. casadi/include/eigen3/Eigen/src/Core/arch/NEON/TypeCasting.h +1419 -0
  451. casadi/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h +351 -0
  452. casadi/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h +199 -0
  453. casadi/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h +1505 -0
  454. casadi/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h +142 -0
  455. casadi/include/eigen3/Eigen/src/Core/arch/SVE/MathFunctions.h +44 -0
  456. casadi/include/eigen3/Eigen/src/Core/arch/SVE/PacketMath.h +752 -0
  457. casadi/include/eigen3/Eigen/src/Core/arch/SVE/TypeCasting.h +49 -0
  458. casadi/include/eigen3/Eigen/src/Core/arch/SYCL/InteropHeaders.h +232 -0
  459. casadi/include/eigen3/Eigen/src/Core/arch/SYCL/MathFunctions.h +301 -0
  460. casadi/include/eigen3/Eigen/src/Core/arch/SYCL/PacketMath.h +670 -0
  461. casadi/include/eigen3/Eigen/src/Core/arch/SYCL/SyclMemoryModel.h +694 -0
  462. casadi/include/eigen3/Eigen/src/Core/arch/SYCL/TypeCasting.h +85 -0
  463. casadi/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h +426 -0
  464. casadi/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h +233 -0
  465. casadi/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h +1060 -0
  466. casadi/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h +177 -0
  467. casadi/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h +541 -0
  468. casadi/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h +189 -0
  469. casadi/include/eigen3/Eigen/src/Core/functors/StlFunctors.h +166 -0
  470. casadi/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h +25 -0
  471. casadi/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h +1131 -0
  472. casadi/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h +2645 -0
  473. casadi/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h +517 -0
  474. casadi/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h +317 -0
  475. casadi/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h +145 -0
  476. casadi/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h +124 -0
  477. casadi/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h +518 -0
  478. casadi/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h +136 -0
  479. casadi/include/eigen3/Eigen/src/Core/products/Parallelizer.h +180 -0
  480. casadi/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h +544 -0
  481. casadi/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h +295 -0
  482. casadi/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h +262 -0
  483. casadi/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h +118 -0
  484. casadi/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h +133 -0
  485. casadi/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h +94 -0
  486. casadi/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h +472 -0
  487. casadi/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h +317 -0
  488. casadi/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h +350 -0
  489. casadi/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h +255 -0
  490. casadi/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h +337 -0
  491. casadi/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h +167 -0
  492. casadi/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h +148 -0
  493. casadi/include/eigen3/Eigen/src/Core/util/BlasUtil.h +583 -0
  494. casadi/include/eigen3/Eigen/src/Core/util/ConfigureVectorization.h +512 -0
  495. casadi/include/eigen3/Eigen/src/Core/util/Constants.h +563 -0
  496. casadi/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h +106 -0
  497. casadi/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h +322 -0
  498. casadi/include/eigen3/Eigen/src/Core/util/IndexedViewHelper.h +186 -0
  499. casadi/include/eigen3/Eigen/src/Core/util/IntegralConstant.h +272 -0
  500. casadi/include/eigen3/Eigen/src/Core/util/MKL_support.h +137 -0
  501. casadi/include/eigen3/Eigen/src/Core/util/Macros.h +1464 -0
  502. casadi/include/eigen3/Eigen/src/Core/util/Memory.h +1163 -0
  503. casadi/include/eigen3/Eigen/src/Core/util/Meta.h +812 -0
  504. casadi/include/eigen3/Eigen/src/Core/util/NonMPL2.h +3 -0
  505. casadi/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h +31 -0
  506. casadi/include/eigen3/Eigen/src/Core/util/ReshapedHelper.h +51 -0
  507. casadi/include/eigen3/Eigen/src/Core/util/StaticAssert.h +221 -0
  508. casadi/include/eigen3/Eigen/src/Core/util/SymbolicIndex.h +293 -0
  509. casadi/include/eigen3/Eigen/src/Core/util/XprHelper.h +856 -0
  510. casadi/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h +346 -0
  511. casadi/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h +462 -0
  512. casadi/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h +91 -0
  513. casadi/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h +622 -0
  514. casadi/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h +418 -0
  515. casadi/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h +226 -0
  516. casadi/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h +374 -0
  517. casadi/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h +158 -0
  518. casadi/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h +657 -0
  519. casadi/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h +558 -0
  520. casadi/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h +77 -0
  521. casadi/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +904 -0
  522. casadi/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h +87 -0
  523. casadi/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h +561 -0
  524. casadi/include/eigen3/Eigen/src/Geometry/AlignedBox.h +486 -0
  525. casadi/include/eigen3/Eigen/src/Geometry/AngleAxis.h +247 -0
  526. casadi/include/eigen3/Eigen/src/Geometry/EulerAngles.h +114 -0
  527. casadi/include/eigen3/Eigen/src/Geometry/Homogeneous.h +501 -0
  528. casadi/include/eigen3/Eigen/src/Geometry/Hyperplane.h +282 -0
  529. casadi/include/eigen3/Eigen/src/Geometry/OrthoMethods.h +235 -0
  530. casadi/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h +232 -0
  531. casadi/include/eigen3/Eigen/src/Geometry/Quaternion.h +870 -0
  532. casadi/include/eigen3/Eigen/src/Geometry/Rotation2D.h +199 -0
  533. casadi/include/eigen3/Eigen/src/Geometry/RotationBase.h +206 -0
  534. casadi/include/eigen3/Eigen/src/Geometry/Scaling.h +188 -0
  535. casadi/include/eigen3/Eigen/src/Geometry/Transform.h +1563 -0
  536. casadi/include/eigen3/Eigen/src/Geometry/Translation.h +202 -0
  537. casadi/include/eigen3/Eigen/src/Geometry/Umeyama.h +166 -0
  538. casadi/include/eigen3/Eigen/src/Geometry/arch/Geometry_SIMD.h +168 -0
  539. casadi/include/eigen3/Eigen/src/Householder/BlockHouseholder.h +110 -0
  540. casadi/include/eigen3/Eigen/src/Householder/Householder.h +176 -0
  541. casadi/include/eigen3/Eigen/src/Householder/HouseholderSequence.h +545 -0
  542. casadi/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h +226 -0
  543. casadi/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h +212 -0
  544. casadi/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h +229 -0
  545. casadi/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h +394 -0
  546. casadi/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h +453 -0
  547. casadi/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h +444 -0
  548. casadi/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h +198 -0
  549. casadi/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h +117 -0
  550. casadi/include/eigen3/Eigen/src/Jacobi/Jacobi.h +483 -0
  551. casadi/include/eigen3/Eigen/src/KLUSupport/KLUSupport.h +358 -0
  552. casadi/include/eigen3/Eigen/src/LU/Determinant.h +117 -0
  553. casadi/include/eigen3/Eigen/src/LU/FullPivLU.h +877 -0
  554. casadi/include/eigen3/Eigen/src/LU/InverseImpl.h +432 -0
  555. casadi/include/eigen3/Eigen/src/LU/PartialPivLU.h +624 -0
  556. casadi/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h +83 -0
  557. casadi/include/eigen3/Eigen/src/LU/arch/InverseSize4.h +351 -0
  558. casadi/include/eigen3/Eigen/src/MetisSupport/MetisSupport.h +137 -0
  559. casadi/include/eigen3/Eigen/src/OrderingMethods/Amd.h +435 -0
  560. casadi/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h +1863 -0
  561. casadi/include/eigen3/Eigen/src/OrderingMethods/Ordering.h +153 -0
  562. casadi/include/eigen3/Eigen/src/PaStiXSupport/PaStiXSupport.h +678 -0
  563. casadi/include/eigen3/Eigen/src/PardisoSupport/PardisoSupport.h +545 -0
  564. casadi/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h +674 -0
  565. casadi/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h +97 -0
  566. casadi/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h +635 -0
  567. casadi/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h +713 -0
  568. casadi/include/eigen3/Eigen/src/QR/HouseholderQR.h +434 -0
  569. casadi/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h +68 -0
  570. casadi/include/eigen3/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h +335 -0
  571. casadi/include/eigen3/Eigen/src/SVD/BDCSVD.h +1366 -0
  572. casadi/include/eigen3/Eigen/src/SVD/JacobiSVD.h +812 -0
  573. casadi/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h +91 -0
  574. casadi/include/eigen3/Eigen/src/SVD/SVDBase.h +376 -0
  575. casadi/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h +414 -0
  576. casadi/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h +697 -0
  577. casadi/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +174 -0
  578. casadi/include/eigen3/Eigen/src/SparseCore/AmbiVector.h +378 -0
  579. casadi/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h +274 -0
  580. casadi/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h +352 -0
  581. casadi/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h +67 -0
  582. casadi/include/eigen3/Eigen/src/SparseCore/SparseAssign.h +270 -0
  583. casadi/include/eigen3/Eigen/src/SparseCore/SparseBlock.h +571 -0
  584. casadi/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h +206 -0
  585. casadi/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h +370 -0
  586. casadi/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +722 -0
  587. casadi/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h +150 -0
  588. casadi/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h +342 -0
  589. casadi/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h +138 -0
  590. casadi/include/eigen3/Eigen/src/SparseCore/SparseDot.h +98 -0
  591. casadi/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h +29 -0
  592. casadi/include/eigen3/Eigen/src/SparseCore/SparseMap.h +305 -0
  593. casadi/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h +1518 -0
  594. casadi/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h +398 -0
  595. casadi/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h +178 -0
  596. casadi/include/eigen3/Eigen/src/SparseCore/SparseProduct.h +181 -0
  597. casadi/include/eigen3/Eigen/src/SparseCore/SparseRedux.h +49 -0
  598. casadi/include/eigen3/Eigen/src/SparseCore/SparseRef.h +397 -0
  599. casadi/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h +659 -0
  600. casadi/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h +124 -0
  601. casadi/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h +198 -0
  602. casadi/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h +92 -0
  603. casadi/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h +189 -0
  604. casadi/include/eigen3/Eigen/src/SparseCore/SparseUtil.h +186 -0
  605. casadi/include/eigen3/Eigen/src/SparseCore/SparseVector.h +478 -0
  606. casadi/include/eigen3/Eigen/src/SparseCore/SparseView.h +254 -0
  607. casadi/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h +315 -0
  608. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU.h +923 -0
  609. casadi/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h +66 -0
  610. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h +226 -0
  611. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h +110 -0
  612. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h +375 -0
  613. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h +80 -0
  614. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h +181 -0
  615. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h +179 -0
  616. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h +107 -0
  617. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h +280 -0
  618. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h +126 -0
  619. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h +130 -0
  620. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h +223 -0
  621. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h +258 -0
  622. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h +137 -0
  623. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h +136 -0
  624. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h +83 -0
  625. casadi/include/eigen3/Eigen/src/SparseQR/SparseQR.h +758 -0
  626. casadi/include/eigen3/Eigen/src/StlSupport/StdDeque.h +116 -0
  627. casadi/include/eigen3/Eigen/src/StlSupport/StdList.h +106 -0
  628. casadi/include/eigen3/Eigen/src/StlSupport/StdVector.h +131 -0
  629. casadi/include/eigen3/Eigen/src/StlSupport/details.h +84 -0
  630. casadi/include/eigen3/Eigen/src/SuperLUSupport/SuperLUSupport.h +1025 -0
  631. casadi/include/eigen3/Eigen/src/UmfPackSupport/UmfPackSupport.h +642 -0
  632. casadi/include/eigen3/Eigen/src/misc/Image.h +82 -0
  633. casadi/include/eigen3/Eigen/src/misc/Kernel.h +79 -0
  634. casadi/include/eigen3/Eigen/src/misc/RealSvd2x2.h +55 -0
  635. casadi/include/eigen3/Eigen/src/misc/blas.h +440 -0
  636. casadi/include/eigen3/Eigen/src/misc/lapack.h +152 -0
  637. casadi/include/eigen3/Eigen/src/misc/lapacke.h +16292 -0
  638. casadi/include/eigen3/Eigen/src/misc/lapacke_mangling.h +17 -0
  639. casadi/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h +358 -0
  640. casadi/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h +696 -0
  641. casadi/include/eigen3/Eigen/src/plugins/BlockMethods.h +1442 -0
  642. casadi/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h +115 -0
  643. casadi/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h +177 -0
  644. casadi/include/eigen3/Eigen/src/plugins/IndexedViewMethods.h +262 -0
  645. casadi/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h +152 -0
  646. casadi/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +95 -0
  647. casadi/include/eigen3/Eigen/src/plugins/ReshapedMethods.h +149 -0
  648. casadi/include/eigen3/signature_of_eigen3_matrix_library +1 -0
  649. casadi/include/eigen3/unsupported/Eigen/AdolcForward +159 -0
  650. casadi/include/eigen3/unsupported/Eigen/AlignedVector3 +234 -0
  651. casadi/include/eigen3/unsupported/Eigen/ArpackSupport +30 -0
  652. casadi/include/eigen3/unsupported/Eigen/AutoDiff +46 -0
  653. casadi/include/eigen3/unsupported/Eigen/BVH +95 -0
  654. casadi/include/eigen3/unsupported/Eigen/CXX11/Tensor +137 -0
  655. casadi/include/eigen3/unsupported/Eigen/CXX11/TensorSymmetry +42 -0
  656. casadi/include/eigen3/unsupported/Eigen/CXX11/ThreadPool +74 -0
  657. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/Tensor.h +554 -0
  658. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorArgMax.h +329 -0
  659. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorAssign.h +247 -0
  660. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorBase.h +1176 -0
  661. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorBlock.h +1559 -0
  662. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorBroadcasting.h +1093 -0
  663. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorChipping.h +518 -0
  664. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConcatenation.h +377 -0
  665. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContraction.h +1023 -0
  666. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionBlocking.h +73 -0
  667. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionCuda.h +6 -0
  668. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionGpu.h +1413 -0
  669. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionMapper.h +575 -0
  670. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionSycl.h +1650 -0
  671. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionThreadPool.h +1679 -0
  672. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConversion.h +456 -0
  673. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConvolution.h +1132 -0
  674. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConvolutionSycl.h +544 -0
  675. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorCostModel.h +214 -0
  676. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorCustomOp.h +347 -0
  677. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDevice.h +137 -0
  678. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceCuda.h +6 -0
  679. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceDefault.h +104 -0
  680. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceGpu.h +389 -0
  681. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceSycl.h +1048 -0
  682. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceThreadPool.h +409 -0
  683. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDimensionList.h +236 -0
  684. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDimensions.h +490 -0
  685. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorEvalTo.h +236 -0
  686. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorEvaluator.h +983 -0
  687. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorExecutor.h +703 -0
  688. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorExpr.h +388 -0
  689. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorFFT.h +669 -0
  690. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorFixedSize.h +379 -0
  691. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorForcedEval.h +237 -0
  692. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorForwardDeclarations.h +191 -0
  693. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorFunctors.h +488 -0
  694. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGenerator.h +302 -0
  695. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGlobalFunctions.h +33 -0
  696. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGpuHipCudaDefines.h +99 -0
  697. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGpuHipCudaUndefines.h +44 -0
  698. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorIO.h +79 -0
  699. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorImagePatch.h +603 -0
  700. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorIndexList.h +738 -0
  701. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorInflation.h +247 -0
  702. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorInitializer.h +82 -0
  703. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorIntDiv.h +263 -0
  704. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorLayoutSwap.h +216 -0
  705. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMacros.h +98 -0
  706. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMap.h +327 -0
  707. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMeta.h +311 -0
  708. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMorphing.h +1102 -0
  709. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorPadding.h +708 -0
  710. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorPatch.h +291 -0
  711. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorRandom.h +322 -0
  712. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReduction.h +998 -0
  713. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReductionCuda.h +6 -0
  714. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReductionGpu.h +966 -0
  715. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReductionSycl.h +582 -0
  716. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorRef.h +454 -0
  717. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReverse.h +465 -0
  718. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorScan.h +528 -0
  719. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorScanSycl.h +513 -0
  720. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorShuffling.h +471 -0
  721. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorStorage.h +161 -0
  722. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorStriding.h +346 -0
  723. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorTrace.h +303 -0
  724. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorTraits.h +264 -0
  725. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorUInt128.h +249 -0
  726. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorVolumePatch.h +629 -0
  727. casadi/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/DynamicSymmetry.h +293 -0
  728. casadi/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/StaticSymmetry.h +236 -0
  729. casadi/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/Symmetry.h +338 -0
  730. casadi/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/util/TemplateGroupTheory.h +669 -0
  731. casadi/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/Barrier.h +67 -0
  732. casadi/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/EventCount.h +249 -0
  733. casadi/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/NonBlockingThreadPool.h +486 -0
  734. casadi/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/RunQueue.h +236 -0
  735. casadi/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadCancel.h +23 -0
  736. casadi/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadEnvironment.h +40 -0
  737. casadi/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadLocal.h +301 -0
  738. casadi/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadPoolInterface.h +48 -0
  739. casadi/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadYield.h +20 -0
  740. casadi/include/eigen3/unsupported/Eigen/CXX11/src/util/CXX11Meta.h +537 -0
  741. casadi/include/eigen3/unsupported/Eigen/CXX11/src/util/CXX11Workarounds.h +88 -0
  742. casadi/include/eigen3/unsupported/Eigen/CXX11/src/util/EmulateArray.h +261 -0
  743. casadi/include/eigen3/unsupported/Eigen/CXX11/src/util/MaxSizeVector.h +158 -0
  744. casadi/include/eigen3/unsupported/Eigen/EulerAngles +43 -0
  745. casadi/include/eigen3/unsupported/Eigen/FFT +419 -0
  746. casadi/include/eigen3/unsupported/Eigen/IterativeSolvers +51 -0
  747. casadi/include/eigen3/unsupported/Eigen/KroneckerProduct +36 -0
  748. casadi/include/eigen3/unsupported/Eigen/LevenbergMarquardt +49 -0
  749. casadi/include/eigen3/unsupported/Eigen/MPRealSupport +213 -0
  750. casadi/include/eigen3/unsupported/Eigen/MatrixFunctions +504 -0
  751. casadi/include/eigen3/unsupported/Eigen/MoreVectorization +24 -0
  752. casadi/include/eigen3/unsupported/Eigen/NonLinearOptimization +140 -0
  753. casadi/include/eigen3/unsupported/Eigen/NumericalDiff +56 -0
  754. casadi/include/eigen3/unsupported/Eigen/OpenGLSupport +322 -0
  755. casadi/include/eigen3/unsupported/Eigen/Polynomials +137 -0
  756. casadi/include/eigen3/unsupported/Eigen/Skyline +39 -0
  757. casadi/include/eigen3/unsupported/Eigen/SparseExtra +54 -0
  758. casadi/include/eigen3/unsupported/Eigen/SpecialFunctions +103 -0
  759. casadi/include/eigen3/unsupported/Eigen/Splines +35 -0
  760. casadi/include/eigen3/unsupported/Eigen/src/AutoDiff/AutoDiffJacobian.h +108 -0
  761. casadi/include/eigen3/unsupported/Eigen/src/AutoDiff/AutoDiffScalar.h +730 -0
  762. casadi/include/eigen3/unsupported/Eigen/src/AutoDiff/AutoDiffVector.h +220 -0
  763. casadi/include/eigen3/unsupported/Eigen/src/BVH/BVAlgorithms.h +293 -0
  764. casadi/include/eigen3/unsupported/Eigen/src/BVH/KdBVH.h +223 -0
  765. casadi/include/eigen3/unsupported/Eigen/src/Eigenvalues/ArpackSelfAdjointEigenSolver.h +790 -0
  766. casadi/include/eigen3/unsupported/Eigen/src/EulerAngles/EulerAngles.h +355 -0
  767. casadi/include/eigen3/unsupported/Eigen/src/EulerAngles/EulerSystem.h +305 -0
  768. casadi/include/eigen3/unsupported/Eigen/src/FFT/ei_fftw_impl.h +261 -0
  769. casadi/include/eigen3/unsupported/Eigen/src/FFT/ei_kissfft_impl.h +449 -0
  770. casadi/include/eigen3/unsupported/Eigen/src/IterativeSolvers/ConstrainedConjGrad.h +187 -0
  771. casadi/include/eigen3/unsupported/Eigen/src/IterativeSolvers/DGMRES.h +511 -0
  772. casadi/include/eigen3/unsupported/Eigen/src/IterativeSolvers/GMRES.h +335 -0
  773. casadi/include/eigen3/unsupported/Eigen/src/IterativeSolvers/IDRS.h +436 -0
  774. casadi/include/eigen3/unsupported/Eigen/src/IterativeSolvers/IncompleteLU.h +90 -0
  775. casadi/include/eigen3/unsupported/Eigen/src/IterativeSolvers/IterationController.h +154 -0
  776. casadi/include/eigen3/unsupported/Eigen/src/IterativeSolvers/MINRES.h +267 -0
  777. casadi/include/eigen3/unsupported/Eigen/src/IterativeSolvers/Scaling.h +193 -0
  778. casadi/include/eigen3/unsupported/Eigen/src/KroneckerProduct/KroneckerTensorProduct.h +305 -0
  779. casadi/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMcovar.h +84 -0
  780. casadi/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMonestep.h +202 -0
  781. casadi/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMpar.h +160 -0
  782. casadi/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMqrsolv.h +188 -0
  783. casadi/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LevenbergMarquardt.h +396 -0
  784. casadi/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h +441 -0
  785. casadi/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixFunction.h +569 -0
  786. casadi/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixLogarithm.h +373 -0
  787. casadi/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixPower.h +705 -0
  788. casadi/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixSquareRoot.h +368 -0
  789. casadi/include/eigen3/unsupported/Eigen/src/MatrixFunctions/StemFunction.h +117 -0
  790. casadi/include/eigen3/unsupported/Eigen/src/MoreVectorization/MathFunctions.h +95 -0
  791. casadi/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/HybridNonLinearSolver.h +601 -0
  792. casadi/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/LevenbergMarquardt.h +657 -0
  793. casadi/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/chkder.h +66 -0
  794. casadi/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/covar.h +70 -0
  795. casadi/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/dogleg.h +107 -0
  796. casadi/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/fdjac1.h +79 -0
  797. casadi/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/lmpar.h +298 -0
  798. casadi/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/qrsolv.h +91 -0
  799. casadi/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/r1mpyq.h +30 -0
  800. casadi/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/r1updt.h +99 -0
  801. casadi/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/rwupdt.h +49 -0
  802. casadi/include/eigen3/unsupported/Eigen/src/NumericalDiff/NumericalDiff.h +130 -0
  803. casadi/include/eigen3/unsupported/Eigen/src/Polynomials/Companion.h +280 -0
  804. casadi/include/eigen3/unsupported/Eigen/src/Polynomials/PolynomialSolver.h +428 -0
  805. casadi/include/eigen3/unsupported/Eigen/src/Polynomials/PolynomialUtils.h +143 -0
  806. casadi/include/eigen3/unsupported/Eigen/src/Skyline/SkylineInplaceLU.h +352 -0
  807. casadi/include/eigen3/unsupported/Eigen/src/Skyline/SkylineMatrix.h +862 -0
  808. casadi/include/eigen3/unsupported/Eigen/src/Skyline/SkylineMatrixBase.h +212 -0
  809. casadi/include/eigen3/unsupported/Eigen/src/Skyline/SkylineProduct.h +295 -0
  810. casadi/include/eigen3/unsupported/Eigen/src/Skyline/SkylineStorage.h +259 -0
  811. casadi/include/eigen3/unsupported/Eigen/src/Skyline/SkylineUtil.h +89 -0
  812. casadi/include/eigen3/unsupported/Eigen/src/SparseExtra/BlockOfDynamicSparseMatrix.h +122 -0
  813. casadi/include/eigen3/unsupported/Eigen/src/SparseExtra/BlockSparseMatrix.h +1079 -0
  814. casadi/include/eigen3/unsupported/Eigen/src/SparseExtra/DynamicSparseMatrix.h +404 -0
  815. casadi/include/eigen3/unsupported/Eigen/src/SparseExtra/MarketIO.h +282 -0
  816. casadi/include/eigen3/unsupported/Eigen/src/SparseExtra/MatrixMarketIterator.h +247 -0
  817. casadi/include/eigen3/unsupported/Eigen/src/SparseExtra/RandomSetter.h +349 -0
  818. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsArrayAPI.h +286 -0
  819. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsBFloat16.h +68 -0
  820. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsFunctors.h +357 -0
  821. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsHalf.h +66 -0
  822. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsImpl.h +1959 -0
  823. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsPacketMath.h +118 -0
  824. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/HipVectorCompatibility.h +67 -0
  825. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsArrayAPI.h +167 -0
  826. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsBFloat16.h +58 -0
  827. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsFunctors.h +330 -0
  828. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsHalf.h +58 -0
  829. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsImpl.h +2045 -0
  830. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsPacketMath.h +79 -0
  831. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX/BesselFunctions.h +46 -0
  832. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX/SpecialFunctions.h +16 -0
  833. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX512/BesselFunctions.h +46 -0
  834. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX512/SpecialFunctions.h +16 -0
  835. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/GPU/SpecialFunctions.h +369 -0
  836. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/NEON/BesselFunctions.h +54 -0
  837. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/NEON/SpecialFunctions.h +34 -0
  838. casadi/include/eigen3/unsupported/Eigen/src/Splines/Spline.h +507 -0
  839. casadi/include/eigen3/unsupported/Eigen/src/Splines/SplineFitting.h +431 -0
  840. casadi/include/eigen3/unsupported/Eigen/src/Splines/SplineFwd.h +93 -0
  841. casadi/include/highs/HConfig.h +23 -0
  842. casadi/include/highs/Highs.h +1703 -0
  843. casadi/include/highs/filereaderlp/builder.hpp +25 -0
  844. casadi/include/highs/filereaderlp/def.hpp +19 -0
  845. casadi/include/highs/filereaderlp/model.hpp +68 -0
  846. casadi/include/highs/filereaderlp/reader.hpp +10 -0
  847. casadi/include/highs/interfaces/highs_c_api.h +2456 -0
  848. casadi/include/highs/io/Filereader.h +45 -0
  849. casadi/include/highs/io/FilereaderEms.h +30 -0
  850. casadi/include/highs/io/FilereaderLp.h +51 -0
  851. casadi/include/highs/io/FilereaderMps.h +27 -0
  852. casadi/include/highs/io/HMPSIO.h +78 -0
  853. casadi/include/highs/io/HMpsFF.h +238 -0
  854. casadi/include/highs/io/HighsIO.h +114 -0
  855. casadi/include/highs/io/LoadOptions.h +24 -0
  856. casadi/include/highs/ipm/IpxSolution.h +32 -0
  857. casadi/include/highs/ipm/IpxWrapper.h +70 -0
  858. casadi/include/highs/ipm/basiclu/basiclu.h +161 -0
  859. casadi/include/highs/ipm/basiclu/basiclu_factorize.h +247 -0
  860. casadi/include/highs/ipm/basiclu/basiclu_get_factors.h +108 -0
  861. casadi/include/highs/ipm/basiclu/basiclu_initialize.h +119 -0
  862. casadi/include/highs/ipm/basiclu/basiclu_obj_factorize.h +34 -0
  863. casadi/include/highs/ipm/basiclu/basiclu_obj_free.h +19 -0
  864. casadi/include/highs/ipm/basiclu/basiclu_obj_get_factors.h +34 -0
  865. casadi/include/highs/ipm/basiclu/basiclu_obj_initialize.h +46 -0
  866. casadi/include/highs/ipm/basiclu/basiclu_obj_solve_dense.h +29 -0
  867. casadi/include/highs/ipm/basiclu/basiclu_obj_solve_for_update.h +42 -0
  868. casadi/include/highs/ipm/basiclu/basiclu_obj_solve_sparse.h +32 -0
  869. casadi/include/highs/ipm/basiclu/basiclu_obj_update.h +31 -0
  870. casadi/include/highs/ipm/basiclu/basiclu_object.h +30 -0
  871. casadi/include/highs/ipm/basiclu/basiclu_solve_dense.h +75 -0
  872. casadi/include/highs/ipm/basiclu/basiclu_solve_for_update.h +169 -0
  873. casadi/include/highs/ipm/basiclu/basiclu_solve_sparse.h +112 -0
  874. casadi/include/highs/ipm/basiclu/basiclu_update.h +125 -0
  875. casadi/include/highs/ipm/basiclu/lu_def.h +39 -0
  876. casadi/include/highs/ipm/basiclu/lu_file.h +21 -0
  877. casadi/include/highs/ipm/basiclu/lu_internal.h +220 -0
  878. casadi/include/highs/ipm/basiclu/lu_list.h +168 -0
  879. casadi/include/highs/ipm/ipx/basiclu_kernel.h +20 -0
  880. casadi/include/highs/ipm/ipx/basiclu_wrapper.h +47 -0
  881. casadi/include/highs/ipm/ipx/basis.h +351 -0
  882. casadi/include/highs/ipm/ipx/conjugate_residuals.h +74 -0
  883. casadi/include/highs/ipm/ipx/control.h +164 -0
  884. casadi/include/highs/ipm/ipx/crossover.h +157 -0
  885. casadi/include/highs/ipm/ipx/diagonal_precond.h +45 -0
  886. casadi/include/highs/ipm/ipx/forrest_tomlin.h +102 -0
  887. casadi/include/highs/ipm/ipx/guess_basis.h +21 -0
  888. casadi/include/highs/ipm/ipx/indexed_vector.h +113 -0
  889. casadi/include/highs/ipm/ipx/info.h +27 -0
  890. casadi/include/highs/ipm/ipx/ipm.h +94 -0
  891. casadi/include/highs/ipm/ipx/ipx_c.h +47 -0
  892. casadi/include/highs/ipm/ipx/ipx_config.h +9 -0
  893. casadi/include/highs/ipm/ipx/ipx_info.h +111 -0
  894. casadi/include/highs/ipm/ipx/ipx_internal.h +88 -0
  895. casadi/include/highs/ipm/ipx/ipx_parameters.h +76 -0
  896. casadi/include/highs/ipm/ipx/ipx_status.h +57 -0
  897. casadi/include/highs/ipm/ipx/iterate.h +328 -0
  898. casadi/include/highs/ipm/ipx/kkt_solver.h +70 -0
  899. casadi/include/highs/ipm/ipx/kkt_solver_basis.h +66 -0
  900. casadi/include/highs/ipm/ipx/kkt_solver_diag.h +48 -0
  901. casadi/include/highs/ipm/ipx/linear_operator.h +26 -0
  902. casadi/include/highs/ipm/ipx/lp_solver.h +202 -0
  903. casadi/include/highs/ipm/ipx/lu_factorization.h +79 -0
  904. casadi/include/highs/ipm/ipx/lu_update.h +129 -0
  905. casadi/include/highs/ipm/ipx/maxvolume.h +54 -0
  906. casadi/include/highs/ipm/ipx/model.h +413 -0
  907. casadi/include/highs/ipm/ipx/multistream.h +52 -0
  908. casadi/include/highs/ipm/ipx/normal_matrix.h +44 -0
  909. casadi/include/highs/ipm/ipx/power_method.h +44 -0
  910. casadi/include/highs/ipm/ipx/sparse_matrix.h +195 -0
  911. casadi/include/highs/ipm/ipx/sparse_utils.h +58 -0
  912. casadi/include/highs/ipm/ipx/splitted_normal_matrix.h +63 -0
  913. casadi/include/highs/ipm/ipx/starting_basis.h +39 -0
  914. casadi/include/highs/ipm/ipx/symbolic_invert.h +29 -0
  915. casadi/include/highs/ipm/ipx/timer.h +24 -0
  916. casadi/include/highs/ipm/ipx/utils.h +39 -0
  917. casadi/include/highs/lp_data/HConst.h +320 -0
  918. casadi/include/highs/lp_data/HStruct.h +182 -0
  919. casadi/include/highs/lp_data/HighsAnalysis.h +23 -0
  920. casadi/include/highs/lp_data/HighsCallback.h +47 -0
  921. casadi/include/highs/lp_data/HighsCallbackStruct.h +62 -0
  922. casadi/include/highs/lp_data/HighsDebug.h +34 -0
  923. casadi/include/highs/lp_data/HighsIis.h +62 -0
  924. casadi/include/highs/lp_data/HighsInfo.h +329 -0
  925. casadi/include/highs/lp_data/HighsInfoDebug.h +27 -0
  926. casadi/include/highs/lp_data/HighsLp.h +100 -0
  927. casadi/include/highs/lp_data/HighsLpSolverObject.h +45 -0
  928. casadi/include/highs/lp_data/HighsLpUtils.h +298 -0
  929. casadi/include/highs/lp_data/HighsModelUtils.h +112 -0
  930. casadi/include/highs/lp_data/HighsOptions.h +1469 -0
  931. casadi/include/highs/lp_data/HighsRanging.h +43 -0
  932. casadi/include/highs/lp_data/HighsSolution.h +144 -0
  933. casadi/include/highs/lp_data/HighsSolutionDebug.h +87 -0
  934. casadi/include/highs/lp_data/HighsSolve.h +23 -0
  935. casadi/include/highs/lp_data/HighsStatus.h +29 -0
  936. casadi/include/highs/mip/HighsCliqueTable.h +318 -0
  937. casadi/include/highs/mip/HighsConflictPool.h +109 -0
  938. casadi/include/highs/mip/HighsCutGeneration.h +106 -0
  939. casadi/include/highs/mip/HighsCutPool.h +168 -0
  940. casadi/include/highs/mip/HighsDebugSol.h +132 -0
  941. casadi/include/highs/mip/HighsDomain.h +653 -0
  942. casadi/include/highs/mip/HighsDomainChange.h +48 -0
  943. casadi/include/highs/mip/HighsDynamicRowMatrix.h +104 -0
  944. casadi/include/highs/mip/HighsGFkSolve.h +438 -0
  945. casadi/include/highs/mip/HighsImplications.h +170 -0
  946. casadi/include/highs/mip/HighsLpAggregator.h +50 -0
  947. casadi/include/highs/mip/HighsLpRelaxation.h +357 -0
  948. casadi/include/highs/mip/HighsMipAnalysis.h +52 -0
  949. casadi/include/highs/mip/HighsMipSolver.h +112 -0
  950. casadi/include/highs/mip/HighsMipSolverData.h +297 -0
  951. casadi/include/highs/mip/HighsModkSeparator.h +60 -0
  952. casadi/include/highs/mip/HighsNodeQueue.h +311 -0
  953. casadi/include/highs/mip/HighsObjectiveFunction.h +71 -0
  954. casadi/include/highs/mip/HighsPathSeparator.h +39 -0
  955. casadi/include/highs/mip/HighsPrimalHeuristics.h +70 -0
  956. casadi/include/highs/mip/HighsPseudocost.h +360 -0
  957. casadi/include/highs/mip/HighsRedcostFixing.h +42 -0
  958. casadi/include/highs/mip/HighsSearch.h +241 -0
  959. casadi/include/highs/mip/HighsSeparation.h +41 -0
  960. casadi/include/highs/mip/HighsSeparator.h +52 -0
  961. casadi/include/highs/mip/HighsTableauSeparator.h +34 -0
  962. casadi/include/highs/mip/HighsTransformedLp.h +63 -0
  963. casadi/include/highs/mip/MipTimer.h +471 -0
  964. casadi/include/highs/model/HighsHessian.h +54 -0
  965. casadi/include/highs/model/HighsHessianUtils.h +49 -0
  966. casadi/include/highs/model/HighsModel.h +52 -0
  967. casadi/include/highs/parallel/HighsBinarySemaphore.h +113 -0
  968. casadi/include/highs/parallel/HighsCacheAlign.h +87 -0
  969. casadi/include/highs/parallel/HighsCombinable.h +121 -0
  970. casadi/include/highs/parallel/HighsMutex.h +129 -0
  971. casadi/include/highs/parallel/HighsParallel.h +133 -0
  972. casadi/include/highs/parallel/HighsRaceTimer.h +43 -0
  973. casadi/include/highs/parallel/HighsSchedulerConstants.h +24 -0
  974. casadi/include/highs/parallel/HighsSpinMutex.h +53 -0
  975. casadi/include/highs/parallel/HighsSplitDeque.h +583 -0
  976. casadi/include/highs/parallel/HighsTask.h +175 -0
  977. casadi/include/highs/parallel/HighsTaskExecutor.h +222 -0
  978. casadi/include/highs/pdlp/CupdlpWrapper.h +104 -0
  979. casadi/include/highs/pdlp/cupdlp/cupdlp_cs.h +40 -0
  980. casadi/include/highs/pdlp/cupdlp/cupdlp_defs.h +433 -0
  981. casadi/include/highs/pdlp/cupdlp/cupdlp_linalg.h +189 -0
  982. casadi/include/highs/pdlp/cupdlp/cupdlp_proj.h +19 -0
  983. casadi/include/highs/pdlp/cupdlp/cupdlp_restart.h +31 -0
  984. casadi/include/highs/pdlp/cupdlp/cupdlp_scaling.h +26 -0
  985. casadi/include/highs/pdlp/cupdlp/cupdlp_solver.h +98 -0
  986. casadi/include/highs/pdlp/cupdlp/cupdlp_step.h +37 -0
  987. casadi/include/highs/pdlp/cupdlp/cupdlp_utils.c +1807 -0
  988. casadi/include/highs/pdqsort/pdqsort.h +532 -0
  989. casadi/include/highs/presolve/HPresolve.h +405 -0
  990. casadi/include/highs/presolve/HPresolveAnalysis.h +51 -0
  991. casadi/include/highs/presolve/HighsPostsolveStack.h +940 -0
  992. casadi/include/highs/presolve/HighsSymmetry.h +281 -0
  993. casadi/include/highs/presolve/ICrash.h +124 -0
  994. casadi/include/highs/presolve/ICrashUtil.h +62 -0
  995. casadi/include/highs/presolve/ICrashX.h +23 -0
  996. casadi/include/highs/presolve/PresolveComponent.h +90 -0
  997. casadi/include/highs/qpsolver/a_asm.hpp +70 -0
  998. casadi/include/highs/qpsolver/a_quass.hpp +15 -0
  999. casadi/include/highs/qpsolver/basis.hpp +152 -0
  1000. casadi/include/highs/qpsolver/crashsolution.hpp +13 -0
  1001. casadi/include/highs/qpsolver/dantzigpricing.hpp +73 -0
  1002. casadi/include/highs/qpsolver/devexpricing.hpp +101 -0
  1003. casadi/include/highs/qpsolver/eventhandler.hpp +23 -0
  1004. casadi/include/highs/qpsolver/factor.hpp +401 -0
  1005. casadi/include/highs/qpsolver/feasibility_bounded.hpp +107 -0
  1006. casadi/include/highs/qpsolver/feasibility_highs.hpp +294 -0
  1007. casadi/include/highs/qpsolver/gradient.hpp +39 -0
  1008. casadi/include/highs/qpsolver/instance.hpp +63 -0
  1009. casadi/include/highs/qpsolver/matrix.hpp +335 -0
  1010. casadi/include/highs/qpsolver/perturbation.hpp +8 -0
  1011. casadi/include/highs/qpsolver/pricing.hpp +15 -0
  1012. casadi/include/highs/qpsolver/qpconst.hpp +27 -0
  1013. casadi/include/highs/qpsolver/qpvector.hpp +235 -0
  1014. casadi/include/highs/qpsolver/quass.hpp +20 -0
  1015. casadi/include/highs/qpsolver/ratiotest.hpp +19 -0
  1016. casadi/include/highs/qpsolver/runtime.hpp +38 -0
  1017. casadi/include/highs/qpsolver/scaling.hpp +8 -0
  1018. casadi/include/highs/qpsolver/settings.hpp +69 -0
  1019. casadi/include/highs/qpsolver/snippets.hpp +29 -0
  1020. casadi/include/highs/qpsolver/statistics.hpp +23 -0
  1021. casadi/include/highs/qpsolver/steepestedgepricing.hpp +166 -0
  1022. casadi/include/highs/simplex/HApp.h +476 -0
  1023. casadi/include/highs/simplex/HEkk.h +416 -0
  1024. casadi/include/highs/simplex/HEkkDual.h +513 -0
  1025. casadi/include/highs/simplex/HEkkDualRHS.h +134 -0
  1026. casadi/include/highs/simplex/HEkkDualRow.h +201 -0
  1027. casadi/include/highs/simplex/HEkkPrimal.h +191 -0
  1028. casadi/include/highs/simplex/HSimplex.h +42 -0
  1029. casadi/include/highs/simplex/HSimplexDebug.h +48 -0
  1030. casadi/include/highs/simplex/HSimplexNla.h +158 -0
  1031. casadi/include/highs/simplex/HSimplexReport.h +21 -0
  1032. casadi/include/highs/simplex/HighsSimplexAnalysis.h +500 -0
  1033. casadi/include/highs/simplex/SimplexConst.h +273 -0
  1034. casadi/include/highs/simplex/SimplexStruct.h +261 -0
  1035. casadi/include/highs/simplex/SimplexTimer.h +409 -0
  1036. casadi/include/highs/test/DevKkt.h +143 -0
  1037. casadi/include/highs/test/KktCh2.h +79 -0
  1038. casadi/include/highs/util/FactorTimer.h +199 -0
  1039. casadi/include/highs/util/HFactor.h +587 -0
  1040. casadi/include/highs/util/HFactorConst.h +81 -0
  1041. casadi/include/highs/util/HFactorDebug.h +55 -0
  1042. casadi/include/highs/util/HSet.h +89 -0
  1043. casadi/include/highs/util/HVector.h +22 -0
  1044. casadi/include/highs/util/HVectorBase.h +102 -0
  1045. casadi/include/highs/util/HighsCDouble.h +319 -0
  1046. casadi/include/highs/util/HighsComponent.h +53 -0
  1047. casadi/include/highs/util/HighsDataStack.h +83 -0
  1048. casadi/include/highs/util/HighsDisjointSets.h +107 -0
  1049. casadi/include/highs/util/HighsHash.h +1274 -0
  1050. casadi/include/highs/util/HighsHashTree.h +1447 -0
  1051. casadi/include/highs/util/HighsInt.h +36 -0
  1052. casadi/include/highs/util/HighsIntegers.h +212 -0
  1053. casadi/include/highs/util/HighsLinearSumBounds.h +157 -0
  1054. casadi/include/highs/util/HighsMatrixPic.h +37 -0
  1055. casadi/include/highs/util/HighsMatrixSlice.h +561 -0
  1056. casadi/include/highs/util/HighsMatrixUtils.h +54 -0
  1057. casadi/include/highs/util/HighsMemoryAllocation.h +63 -0
  1058. casadi/include/highs/util/HighsRandom.h +242 -0
  1059. casadi/include/highs/util/HighsRbTree.h +452 -0
  1060. casadi/include/highs/util/HighsSort.h +131 -0
  1061. casadi/include/highs/util/HighsSparseMatrix.h +150 -0
  1062. casadi/include/highs/util/HighsSparseVectorSum.h +95 -0
  1063. casadi/include/highs/util/HighsSplay.h +135 -0
  1064. casadi/include/highs/util/HighsTimer.h +381 -0
  1065. casadi/include/highs/util/HighsUtils.h +217 -0
  1066. casadi/include/highs/util/stringutil.h +46 -0
  1067. casadi/include/highs/zstr/strict_fstream.hpp +237 -0
  1068. casadi/include/highs/zstr/zstr.hpp +472 -0
  1069. casadi/include/licenses/FMI-Standard-2.0.2/LICENSE.txt +473 -0
  1070. casadi/include/licenses/FMI-Standard-3.0/LICENSE.txt +464 -0
  1071. casadi/include/licenses/alpaqa-external/LICENSE +165 -0
  1072. casadi/include/licenses/bonmin-external/Bonmin/LICENSE +87 -0
  1073. casadi/include/licenses/bonmin-external/LICENSE +3 -0
  1074. casadi/include/licenses/casadi/LICENSE/LICENSE.txt +165 -0
  1075. casadi/include/licenses/casadi-sundials/LICENSE +64 -0
  1076. casadi/include/licenses/casadi-sundials/cvodes/LICENSE +60 -0
  1077. casadi/include/licenses/casadi-sundials/idas/LICENSE +59 -0
  1078. casadi/include/licenses/casadi-sundials/kinsol/LICENSE +59 -0
  1079. casadi/include/licenses/casadi-sundials/sundials/LICENSE +67 -0
  1080. casadi/include/licenses/cbc-external/Cbc/LICENSE +239 -0
  1081. casadi/include/licenses/cbc-external/LICENSE +245 -0
  1082. casadi/include/licenses/cgl-external/Cgl/LICENSE +239 -0
  1083. casadi/include/licenses/cgl-external/LICENSE +245 -0
  1084. casadi/include/licenses/clp-external/Clp/LICENSE +239 -0
  1085. casadi/include/licenses/clp-external/LICENSE +245 -0
  1086. casadi/include/licenses/coinutils-external/CoinUtils/LICENSE +239 -0
  1087. casadi/include/licenses/coinutils-external/LICENSE +245 -0
  1088. casadi/include/licenses/daqp-external/LICENSE +21 -0
  1089. casadi/include/licenses/ghc-external/LICENSE +19 -0
  1090. casadi/include/licenses/highs-external/LICENSE.txt +21 -0
  1091. casadi/include/licenses/highs-external/extern/filereaderlp/LICENSE +19 -0
  1092. casadi/include/licenses/ipopt-external/LICENSE +260 -0
  1093. casadi/include/licenses/libz-external/LICENSE +22 -0
  1094. casadi/include/licenses/libz-external/contrib/dotzlib/LICENSE_1_0.txt +23 -0
  1095. casadi/include/licenses/libzip-external/LICENSE +31 -0
  1096. casadi/include/licenses/metis-external/LICENSE +87 -0
  1097. casadi/include/licenses/metis-external/metis-4.0/LICENSE +18 -0
  1098. casadi/include/licenses/mockups-external/LICENSE +21 -0
  1099. casadi/include/licenses/mumps-external/LICENSE +87 -0
  1100. casadi/include/licenses/mumps-external/MUMPS/LICENSE +50 -0
  1101. casadi/include/licenses/openblas-external/LICENSE +29 -0
  1102. casadi/include/licenses/openblas-external/ctest/LICENSE +23 -0
  1103. casadi/include/licenses/openblas-external/lapack-netlib/LAPACKE/LICENSE +26 -0
  1104. casadi/include/licenses/openblas-external/lapack-netlib/LICENSE +48 -0
  1105. casadi/include/licenses/openblas-external/reference/LICENSE +23 -0
  1106. casadi/include/licenses/openblas-external/relapack/LICENSE +22 -0
  1107. casadi/include/licenses/openblas-external/test/LICENSE +23 -0
  1108. casadi/include/licenses/osi-external/LICENSE +245 -0
  1109. casadi/include/licenses/osi-external/Osi/LICENSE +239 -0
  1110. casadi/include/licenses/osqp-external/LICENSE +201 -0
  1111. casadi/include/licenses/osqp-external/lin_sys/direct/qdldl/amd/LICENSE +36 -0
  1112. casadi/include/licenses/osqp-external/lin_sys/direct/qdldl/qdldl_sources/LICENSE +201 -0
  1113. casadi/include/licenses/proxqp-external/LICENSE +25 -0
  1114. casadi/include/licenses/proxqp-external/bindings/python/external/pybind11/LICENSE +29 -0
  1115. casadi/include/licenses/proxqp-external/cmake-module/LICENSE +4 -0
  1116. casadi/include/licenses/proxqp-external/cmake-module/doxygen/MathJax/LICENSE +202 -0
  1117. casadi/include/licenses/proxqp-external/external/cereal/LICENSE +24 -0
  1118. casadi/include/licenses/proxqp-external/external/cereal/include/cereal/external/LICENSE +21 -0
  1119. casadi/include/licenses/proxqp-external/external/cereal/include/cereal/external/rapidjson/LICENSE +13 -0
  1120. casadi/include/licenses/proxqp-external/external/cereal/include/cereal/external/rapidjson/msinttypes/LICENSE +29 -0
  1121. casadi/include/licenses/qpOASES/LICENSE.txt +503 -0
  1122. casadi/include/licenses/sleqp-external/LICENSE +165 -0
  1123. casadi/include/licenses/superscs-external/LICENSE.txt +24 -0
  1124. casadi/include/licenses/tinyxml2-9.0.0/LICENSE.txt +18 -0
  1125. casadi/include/licenses/trlib-external/LICENSE +21 -0
  1126. casadi/include/osqp/auxil.h +181 -0
  1127. casadi/include/osqp/constants.h +128 -0
  1128. casadi/include/osqp/cs.h +180 -0
  1129. casadi/include/osqp/ctrlc.h +56 -0
  1130. casadi/include/osqp/error.h +38 -0
  1131. casadi/include/osqp/glob_opts.h +167 -0
  1132. casadi/include/osqp/lin_alg.h +216 -0
  1133. casadi/include/osqp/lin_sys.h +54 -0
  1134. casadi/include/osqp/osqp.h +430 -0
  1135. casadi/include/osqp/osqp_configure.h +49 -0
  1136. casadi/include/osqp/polish.h +25 -0
  1137. casadi/include/osqp/proj.h +37 -0
  1138. casadi/include/osqp/scaling.h +44 -0
  1139. casadi/include/osqp/types.h +326 -0
  1140. casadi/include/osqp/util.h +222 -0
  1141. casadi/include/osqp/version.h +9 -0
  1142. casadi/include/proxsuite/config.hpp +68 -0
  1143. casadi/include/proxsuite/deprecated.hpp +56 -0
  1144. casadi/include/proxsuite/fwd.hpp +52 -0
  1145. casadi/include/proxsuite/helpers/common.hpp +70 -0
  1146. casadi/include/proxsuite/helpers/instruction-set.hpp +275 -0
  1147. casadi/include/proxsuite/helpers/optional.hpp +46 -0
  1148. casadi/include/proxsuite/helpers/tl-optional.hpp +2472 -0
  1149. casadi/include/proxsuite/helpers/version.hpp +39 -0
  1150. casadi/include/proxsuite/linalg/dense/core.hpp +863 -0
  1151. casadi/include/proxsuite/linalg/dense/factorize.hpp +375 -0
  1152. casadi/include/proxsuite/linalg/dense/ldlt.hpp +817 -0
  1153. casadi/include/proxsuite/linalg/dense/modify.hpp +333 -0
  1154. casadi/include/proxsuite/linalg/dense/solve.hpp +38 -0
  1155. casadi/include/proxsuite/linalg/dense/update.hpp +330 -0
  1156. casadi/include/proxsuite/linalg/sparse/core.hpp +531 -0
  1157. casadi/include/proxsuite/linalg/sparse/factorize.hpp +1303 -0
  1158. casadi/include/proxsuite/linalg/sparse/rowmod.hpp +443 -0
  1159. casadi/include/proxsuite/linalg/sparse/update.hpp +348 -0
  1160. casadi/include/proxsuite/linalg/veg/internal/assert_impl.hpp +20 -0
  1161. casadi/include/proxsuite/linalg/veg/internal/collection_algo.hpp +93 -0
  1162. casadi/include/proxsuite/linalg/veg/internal/dbg.hpp +15 -0
  1163. casadi/include/proxsuite/linalg/veg/internal/delete_special_members.hpp +77 -0
  1164. casadi/include/proxsuite/linalg/veg/internal/dyn_index.hpp +292 -0
  1165. casadi/include/proxsuite/linalg/veg/internal/epilogue.hpp +31 -0
  1166. casadi/include/proxsuite/linalg/veg/internal/external/hedley.ext.hpp +2074 -0
  1167. casadi/include/proxsuite/linalg/veg/internal/external/unhedley.ext.hpp +148 -0
  1168. casadi/include/proxsuite/linalg/veg/internal/fix_index.hpp +339 -0
  1169. casadi/include/proxsuite/linalg/veg/internal/has_asan.hpp +17 -0
  1170. casadi/include/proxsuite/linalg/veg/internal/integer_seq.hpp +248 -0
  1171. casadi/include/proxsuite/linalg/veg/internal/macros.hpp +1312 -0
  1172. casadi/include/proxsuite/linalg/veg/internal/narrow.hpp +46 -0
  1173. casadi/include/proxsuite/linalg/veg/internal/preprocessor.hpp +434 -0
  1174. casadi/include/proxsuite/linalg/veg/internal/prologue.hpp +157 -0
  1175. casadi/include/proxsuite/linalg/veg/internal/std.hpp +13 -0
  1176. casadi/include/proxsuite/linalg/veg/internal/terminate.hpp +22 -0
  1177. casadi/include/proxsuite/linalg/veg/internal/typedefs.hpp +58 -0
  1178. casadi/include/proxsuite/linalg/veg/memory/address.hpp +97 -0
  1179. casadi/include/proxsuite/linalg/veg/memory/alloc.hpp +352 -0
  1180. casadi/include/proxsuite/linalg/veg/memory/dynamic_stack.hpp +504 -0
  1181. casadi/include/proxsuite/linalg/veg/memory/placement.hpp +202 -0
  1182. casadi/include/proxsuite/linalg/veg/memory/stack_alloc.hpp +239 -0
  1183. casadi/include/proxsuite/linalg/veg/ref.hpp +148 -0
  1184. casadi/include/proxsuite/linalg/veg/slice.hpp +240 -0
  1185. casadi/include/proxsuite/linalg/veg/tuple.hpp +876 -0
  1186. casadi/include/proxsuite/linalg/veg/type_traits/alloc.hpp +169 -0
  1187. casadi/include/proxsuite/linalg/veg/type_traits/assignable.hpp +53 -0
  1188. casadi/include/proxsuite/linalg/veg/type_traits/constructible.hpp +217 -0
  1189. casadi/include/proxsuite/linalg/veg/type_traits/core.hpp +298 -0
  1190. casadi/include/proxsuite/linalg/veg/type_traits/invocable.hpp +47 -0
  1191. casadi/include/proxsuite/linalg/veg/type_traits/primitives.hpp +43 -0
  1192. casadi/include/proxsuite/linalg/veg/type_traits/tags.hpp +47 -0
  1193. casadi/include/proxsuite/linalg/veg/util/assert.hpp +48 -0
  1194. casadi/include/proxsuite/linalg/veg/util/dbg.hpp +6 -0
  1195. casadi/include/proxsuite/linalg/veg/util/defer.hpp +57 -0
  1196. casadi/include/proxsuite/linalg/veg/util/dynstack_alloc.hpp +19 -0
  1197. casadi/include/proxsuite/linalg/veg/util/get.hpp +153 -0
  1198. casadi/include/proxsuite/linalg/veg/util/index.hpp +6 -0
  1199. casadi/include/proxsuite/linalg/veg/util/unreachable.hpp +41 -0
  1200. casadi/include/proxsuite/linalg/veg/vec.hpp +1034 -0
  1201. casadi/include/proxsuite/proxqp/dense/dense.hpp +10 -0
  1202. casadi/include/proxsuite/proxqp/dense/fwd.hpp +55 -0
  1203. casadi/include/proxsuite/proxqp/dense/helpers.hpp +520 -0
  1204. casadi/include/proxsuite/proxqp/dense/linesearch.hpp +517 -0
  1205. casadi/include/proxsuite/proxqp/dense/model.hpp +147 -0
  1206. casadi/include/proxsuite/proxqp/dense/preconditioner/identity.hpp +113 -0
  1207. casadi/include/proxsuite/proxqp/dense/preconditioner/ruiz.hpp +571 -0
  1208. casadi/include/proxsuite/proxqp/dense/solver.hpp +1330 -0
  1209. casadi/include/proxsuite/proxqp/dense/utils.hpp +415 -0
  1210. casadi/include/proxsuite/proxqp/dense/views.hpp +1466 -0
  1211. casadi/include/proxsuite/proxqp/dense/workspace.hpp +264 -0
  1212. casadi/include/proxsuite/proxqp/dense/wrapper.hpp +491 -0
  1213. casadi/include/proxsuite/proxqp/results.hpp +212 -0
  1214. casadi/include/proxsuite/proxqp/settings.hpp +302 -0
  1215. casadi/include/proxsuite/proxqp/sparse/fwd.hpp +58 -0
  1216. casadi/include/proxsuite/proxqp/sparse/helpers.hpp +309 -0
  1217. casadi/include/proxsuite/proxqp/sparse/model.hpp +228 -0
  1218. casadi/include/proxsuite/proxqp/sparse/preconditioner/identity.hpp +64 -0
  1219. casadi/include/proxsuite/proxqp/sparse/preconditioner/ruiz.hpp +569 -0
  1220. casadi/include/proxsuite/proxqp/sparse/solver.hpp +1441 -0
  1221. casadi/include/proxsuite/proxqp/sparse/sparse.hpp +10 -0
  1222. casadi/include/proxsuite/proxqp/sparse/utils.hpp +815 -0
  1223. casadi/include/proxsuite/proxqp/sparse/views.hpp +63 -0
  1224. casadi/include/proxsuite/proxqp/sparse/workspace.hpp +790 -0
  1225. casadi/include/proxsuite/proxqp/sparse/wrapper.hpp +772 -0
  1226. casadi/include/proxsuite/proxqp/status.hpp +46 -0
  1227. casadi/include/proxsuite/proxqp/timings.hpp +101 -0
  1228. casadi/include/proxsuite/proxqp/utils/prints.hpp +47 -0
  1229. casadi/include/proxsuite/proxqp/utils/random_qp_problems.hpp +669 -0
  1230. casadi/include/proxsuite/serialization/archive.hpp +231 -0
  1231. casadi/include/proxsuite/serialization/eigen.hpp +107 -0
  1232. casadi/include/proxsuite/serialization/model.hpp +34 -0
  1233. casadi/include/proxsuite/serialization/results.hpp +74 -0
  1234. casadi/include/proxsuite/serialization/settings.hpp +60 -0
  1235. casadi/include/proxsuite/serialization/wrapper.hpp +24 -0
  1236. casadi/include/proxsuite/warning.hpp +35 -0
  1237. casadi/include/simde/arm/neon/aba.h +208 -0
  1238. casadi/include/simde/arm/neon/abd.h +384 -0
  1239. casadi/include/simde/arm/neon/abdl.h +147 -0
  1240. casadi/include/simde/arm/neon/abs.h +408 -0
  1241. casadi/include/simde/arm/neon/add.h +681 -0
  1242. casadi/include/simde/arm/neon/addl.h +127 -0
  1243. casadi/include/simde/arm/neon/addl_high.h +127 -0
  1244. casadi/include/simde/arm/neon/addlv.h +317 -0
  1245. casadi/include/simde/arm/neon/addv.h +447 -0
  1246. casadi/include/simde/arm/neon/addw.h +222 -0
  1247. casadi/include/simde/arm/neon/addw_high.h +193 -0
  1248. casadi/include/simde/arm/neon/and.h +552 -0
  1249. casadi/include/simde/arm/neon/bic.h +472 -0
  1250. casadi/include/simde/arm/neon/bsl.h +448 -0
  1251. casadi/include/simde/arm/neon/cagt.h +168 -0
  1252. casadi/include/simde/arm/neon/ceq.h +711 -0
  1253. casadi/include/simde/arm/neon/ceqz.h +335 -0
  1254. casadi/include/simde/arm/neon/cge.h +677 -0
  1255. casadi/include/simde/arm/neon/cgez.h +378 -0
  1256. casadi/include/simde/arm/neon/cgt.h +686 -0
  1257. casadi/include/simde/arm/neon/cgtz.h +380 -0
  1258. casadi/include/simde/arm/neon/cle.h +677 -0
  1259. casadi/include/simde/arm/neon/clez.h +378 -0
  1260. casadi/include/simde/arm/neon/cls.h +148 -0
  1261. casadi/include/simde/arm/neon/clt.h +679 -0
  1262. casadi/include/simde/arm/neon/cltz.h +263 -0
  1263. casadi/include/simde/arm/neon/clz.h +423 -0
  1264. casadi/include/simde/arm/neon/cnt.h +145 -0
  1265. casadi/include/simde/arm/neon/combine.h +343 -0
  1266. casadi/include/simde/arm/neon/create.h +186 -0
  1267. casadi/include/simde/arm/neon/cvt.h +492 -0
  1268. casadi/include/simde/arm/neon/dot.h +171 -0
  1269. casadi/include/simde/arm/neon/dot_lane.h +196 -0
  1270. casadi/include/simde/arm/neon/dup_lane.h +702 -0
  1271. casadi/include/simde/arm/neon/dup_n.h +534 -0
  1272. casadi/include/simde/arm/neon/eor.h +552 -0
  1273. casadi/include/simde/arm/neon/ext.h +887 -0
  1274. casadi/include/simde/arm/neon/get_high.h +260 -0
  1275. casadi/include/simde/arm/neon/get_lane.h +499 -0
  1276. casadi/include/simde/arm/neon/get_low.h +276 -0
  1277. casadi/include/simde/arm/neon/hadd.h +287 -0
  1278. casadi/include/simde/arm/neon/hsub.h +287 -0
  1279. casadi/include/simde/arm/neon/ld1.h +399 -0
  1280. casadi/include/simde/arm/neon/ld3.h +609 -0
  1281. casadi/include/simde/arm/neon/ld4.h +448 -0
  1282. casadi/include/simde/arm/neon/max.h +614 -0
  1283. casadi/include/simde/arm/neon/maxnm.h +215 -0
  1284. casadi/include/simde/arm/neon/maxv.h +400 -0
  1285. casadi/include/simde/arm/neon/min.h +660 -0
  1286. casadi/include/simde/arm/neon/minnm.h +215 -0
  1287. casadi/include/simde/arm/neon/minv.h +424 -0
  1288. casadi/include/simde/arm/neon/mla.h +530 -0
  1289. casadi/include/simde/arm/neon/mla_n.h +333 -0
  1290. casadi/include/simde/arm/neon/mlal.h +156 -0
  1291. casadi/include/simde/arm/neon/mlal_high.h +156 -0
  1292. casadi/include/simde/arm/neon/mlal_n.h +128 -0
  1293. casadi/include/simde/arm/neon/mls.h +264 -0
  1294. casadi/include/simde/arm/neon/mlsl.h +124 -0
  1295. casadi/include/simde/arm/neon/mlsl_high.h +124 -0
  1296. casadi/include/simde/arm/neon/mlsl_n.h +96 -0
  1297. casadi/include/simde/arm/neon/movl.h +208 -0
  1298. casadi/include/simde/arm/neon/movl_high.h +126 -0
  1299. casadi/include/simde/arm/neon/movn.h +195 -0
  1300. casadi/include/simde/arm/neon/movn_high.h +125 -0
  1301. casadi/include/simde/arm/neon/mul.h +594 -0
  1302. casadi/include/simde/arm/neon/mul_lane.h +472 -0
  1303. casadi/include/simde/arm/neon/mul_n.h +383 -0
  1304. casadi/include/simde/arm/neon/mull.h +236 -0
  1305. casadi/include/simde/arm/neon/mull_high.h +125 -0
  1306. casadi/include/simde/arm/neon/mull_n.h +158 -0
  1307. casadi/include/simde/arm/neon/mvn.h +426 -0
  1308. casadi/include/simde/arm/neon/neg.h +393 -0
  1309. casadi/include/simde/arm/neon/orn.h +505 -0
  1310. casadi/include/simde/arm/neon/orr.h +552 -0
  1311. casadi/include/simde/arm/neon/padal.h +211 -0
  1312. casadi/include/simde/arm/neon/padd.h +293 -0
  1313. casadi/include/simde/arm/neon/paddl.h +239 -0
  1314. casadi/include/simde/arm/neon/pmax.h +253 -0
  1315. casadi/include/simde/arm/neon/pmin.h +260 -0
  1316. casadi/include/simde/arm/neon/qabs.h +281 -0
  1317. casadi/include/simde/arm/neon/qadd.h +553 -0
  1318. casadi/include/simde/arm/neon/qdmulh.h +125 -0
  1319. casadi/include/simde/arm/neon/qdmull.h +125 -0
  1320. casadi/include/simde/arm/neon/qmovn.h +273 -0
  1321. casadi/include/simde/arm/neon/qmovn_high.h +127 -0
  1322. casadi/include/simde/arm/neon/qmovun.h +159 -0
  1323. casadi/include/simde/arm/neon/qneg.h +301 -0
  1324. casadi/include/simde/arm/neon/qrdmulh.h +165 -0
  1325. casadi/include/simde/arm/neon/qrdmulh_n.h +136 -0
  1326. casadi/include/simde/arm/neon/qshl.h +732 -0
  1327. casadi/include/simde/arm/neon/qsub.h +549 -0
  1328. casadi/include/simde/arm/neon/qtbl.h +455 -0
  1329. casadi/include/simde/arm/neon/qtbx.h +470 -0
  1330. casadi/include/simde/arm/neon/rbit.h +165 -0
  1331. casadi/include/simde/arm/neon/reinterpret.h +3101 -0
  1332. casadi/include/simde/arm/neon/rev16.h +137 -0
  1333. casadi/include/simde/arm/neon/rev32.h +235 -0
  1334. casadi/include/simde/arm/neon/rev64.h +358 -0
  1335. casadi/include/simde/arm/neon/rhadd.h +406 -0
  1336. casadi/include/simde/arm/neon/rnd.h +143 -0
  1337. casadi/include/simde/arm/neon/rndi.h +135 -0
  1338. casadi/include/simde/arm/neon/rndm.h +143 -0
  1339. casadi/include/simde/arm/neon/rndn.h +135 -0
  1340. casadi/include/simde/arm/neon/rndp.h +143 -0
  1341. casadi/include/simde/arm/neon/rshl.h +903 -0
  1342. casadi/include/simde/arm/neon/rshr_n.h +471 -0
  1343. casadi/include/simde/arm/neon/rsra_n.h +209 -0
  1344. casadi/include/simde/arm/neon/set_lane.h +422 -0
  1345. casadi/include/simde/arm/neon/shl.h +805 -0
  1346. casadi/include/simde/arm/neon/shl_n.h +560 -0
  1347. casadi/include/simde/arm/neon/shr_n.h +612 -0
  1348. casadi/include/simde/arm/neon/sra_n.h +202 -0
  1349. casadi/include/simde/arm/neon/st1.h +353 -0
  1350. casadi/include/simde/arm/neon/st1_lane.h +363 -0
  1351. casadi/include/simde/arm/neon/st3.h +426 -0
  1352. casadi/include/simde/arm/neon/st4.h +445 -0
  1353. casadi/include/simde/arm/neon/sub.h +659 -0
  1354. casadi/include/simde/arm/neon/subl.h +127 -0
  1355. casadi/include/simde/arm/neon/subw.h +221 -0
  1356. casadi/include/simde/arm/neon/subw_high.h +222 -0
  1357. casadi/include/simde/arm/neon/tbl.h +224 -0
  1358. casadi/include/simde/arm/neon/tbx.h +247 -0
  1359. casadi/include/simde/arm/neon/trn.h +252 -0
  1360. casadi/include/simde/arm/neon/trn1.h +500 -0
  1361. casadi/include/simde/arm/neon/trn2.h +499 -0
  1362. casadi/include/simde/arm/neon/tst.h +540 -0
  1363. casadi/include/simde/arm/neon/types.h +683 -0
  1364. casadi/include/simde/arm/neon/uqadd.h +325 -0
  1365. casadi/include/simde/arm/neon/uzp.h +252 -0
  1366. casadi/include/simde/arm/neon/uzp1.h +643 -0
  1367. casadi/include/simde/arm/neon/uzp2.h +647 -0
  1368. casadi/include/simde/arm/neon/zip.h +252 -0
  1369. casadi/include/simde/arm/neon/zip1.h +625 -0
  1370. casadi/include/simde/arm/neon/zip2.h +625 -0
  1371. casadi/include/simde/arm/neon.h +166 -0
  1372. casadi/include/simde/check.h +276 -0
  1373. casadi/include/simde/debug-trap.h +85 -0
  1374. casadi/include/simde/hedley.h +1971 -0
  1375. casadi/include/simde/simde-align.h +449 -0
  1376. casadi/include/simde/simde-arch.h +532 -0
  1377. casadi/include/simde/simde-common.h +890 -0
  1378. casadi/include/simde/simde-complex.h +148 -0
  1379. casadi/include/simde/simde-constify.h +397 -0
  1380. casadi/include/simde/simde-detect-clang.h +109 -0
  1381. casadi/include/simde/simde-diagnostic.h +428 -0
  1382. casadi/include/simde/simde-features.h +522 -0
  1383. casadi/include/simde/simde-math.h +1805 -0
  1384. casadi/include/simde/x86/avx.h +6193 -0
  1385. casadi/include/simde/x86/avx2.h +5660 -0
  1386. casadi/include/simde/x86/avx512/2intersect.h +250 -0
  1387. casadi/include/simde/x86/avx512/abs.h +562 -0
  1388. casadi/include/simde/x86/avx512/add.h +641 -0
  1389. casadi/include/simde/x86/avx512/adds.h +390 -0
  1390. casadi/include/simde/x86/avx512/and.h +305 -0
  1391. casadi/include/simde/x86/avx512/andnot.h +193 -0
  1392. casadi/include/simde/x86/avx512/avg.h +258 -0
  1393. casadi/include/simde/x86/avx512/blend.h +293 -0
  1394. casadi/include/simde/x86/avx512/broadcast.h +897 -0
  1395. casadi/include/simde/x86/avx512/cast.h +324 -0
  1396. casadi/include/simde/x86/avx512/cmp.h +587 -0
  1397. casadi/include/simde/x86/avx512/cmpeq.h +179 -0
  1398. casadi/include/simde/x86/avx512/cmpge.h +104 -0
  1399. casadi/include/simde/x86/avx512/cmpgt.h +189 -0
  1400. casadi/include/simde/x86/avx512/cmple.h +103 -0
  1401. casadi/include/simde/x86/avx512/cmplt.h +123 -0
  1402. casadi/include/simde/x86/avx512/copysign.h +86 -0
  1403. casadi/include/simde/x86/avx512/cvt.h +122 -0
  1404. casadi/include/simde/x86/avx512/cvts.h +723 -0
  1405. casadi/include/simde/x86/avx512/div.h +162 -0
  1406. casadi/include/simde/x86/avx512/extract.h +198 -0
  1407. casadi/include/simde/x86/avx512/fmadd.h +136 -0
  1408. casadi/include/simde/x86/avx512/fmsub.h +108 -0
  1409. casadi/include/simde/x86/avx512/fnmadd.h +108 -0
  1410. casadi/include/simde/x86/avx512/fnmsub.h +108 -0
  1411. casadi/include/simde/x86/avx512/insert.h +193 -0
  1412. casadi/include/simde/x86/avx512/kshift.h +152 -0
  1413. casadi/include/simde/x86/avx512/load.h +67 -0
  1414. casadi/include/simde/x86/avx512/loadu.h +113 -0
  1415. casadi/include/simde/x86/avx512/lzcnt.h +209 -0
  1416. casadi/include/simde/x86/avx512/madd.h +155 -0
  1417. casadi/include/simde/x86/avx512/maddubs.h +159 -0
  1418. casadi/include/simde/x86/avx512/max.h +587 -0
  1419. casadi/include/simde/x86/avx512/min.h +587 -0
  1420. casadi/include/simde/x86/avx512/mov.h +859 -0
  1421. casadi/include/simde/x86/avx512/mov_mask.h +372 -0
  1422. casadi/include/simde/x86/avx512/movm.h +460 -0
  1423. casadi/include/simde/x86/avx512/mul.h +279 -0
  1424. casadi/include/simde/x86/avx512/mulhi.h +65 -0
  1425. casadi/include/simde/x86/avx512/mulhrs.h +65 -0
  1426. casadi/include/simde/x86/avx512/mullo.h +117 -0
  1427. casadi/include/simde/x86/avx512/negate.h +88 -0
  1428. casadi/include/simde/x86/avx512/or.h +252 -0
  1429. casadi/include/simde/x86/avx512/packs.h +122 -0
  1430. casadi/include/simde/x86/avx512/packus.h +122 -0
  1431. casadi/include/simde/x86/avx512/permutex2var.h +1645 -0
  1432. casadi/include/simde/x86/avx512/permutexvar.h +1180 -0
  1433. casadi/include/simde/x86/avx512/sad.h +77 -0
  1434. casadi/include/simde/x86/avx512/set.h +477 -0
  1435. casadi/include/simde/x86/avx512/set1.h +331 -0
  1436. casadi/include/simde/x86/avx512/set4.h +140 -0
  1437. casadi/include/simde/x86/avx512/setone.h +66 -0
  1438. casadi/include/simde/x86/avx512/setr.h +144 -0
  1439. casadi/include/simde/x86/avx512/setr4.h +140 -0
  1440. casadi/include/simde/x86/avx512/setzero.h +90 -0
  1441. casadi/include/simde/x86/avx512/shuffle.h +176 -0
  1442. casadi/include/simde/x86/avx512/sll.h +247 -0
  1443. casadi/include/simde/x86/avx512/slli.h +179 -0
  1444. casadi/include/simde/x86/avx512/sllv.h +68 -0
  1445. casadi/include/simde/x86/avx512/sqrt.h +127 -0
  1446. casadi/include/simde/x86/avx512/sra.h +81 -0
  1447. casadi/include/simde/x86/avx512/srai.h +70 -0
  1448. casadi/include/simde/x86/avx512/srav.h +67 -0
  1449. casadi/include/simde/x86/avx512/srl.h +216 -0
  1450. casadi/include/simde/x86/avx512/srli.h +180 -0
  1451. casadi/include/simde/x86/avx512/srlv.h +282 -0
  1452. casadi/include/simde/x86/avx512/store.h +93 -0
  1453. casadi/include/simde/x86/avx512/storeu.h +93 -0
  1454. casadi/include/simde/x86/avx512/sub.h +351 -0
  1455. casadi/include/simde/x86/avx512/subs.h +222 -0
  1456. casadi/include/simde/x86/avx512/test.h +193 -0
  1457. casadi/include/simde/x86/avx512/types.h +380 -0
  1458. casadi/include/simde/x86/avx512/unpackhi.h +380 -0
  1459. casadi/include/simde/x86/avx512/unpacklo.h +104 -0
  1460. casadi/include/simde/x86/avx512/xor.h +263 -0
  1461. casadi/include/simde/x86/avx512/xorsign.h +72 -0
  1462. casadi/include/simde/x86/avx512.h +108 -0
  1463. casadi/include/simde/x86/clmul.h +414 -0
  1464. casadi/include/simde/x86/fma.h +724 -0
  1465. casadi/include/simde/x86/gfni.h +802 -0
  1466. casadi/include/simde/x86/mmx.h +2399 -0
  1467. casadi/include/simde/x86/sse.h +4471 -0
  1468. casadi/include/simde/x86/sse2.h +7389 -0
  1469. casadi/include/simde/x86/sse3.h +499 -0
  1470. casadi/include/simde/x86/sse4.1.h +2216 -0
  1471. casadi/include/simde/x86/sse4.2.h +347 -0
  1472. casadi/include/simde/x86/ssse3.h +1032 -0
  1473. casadi/include/simde/x86/svml.h +12139 -0
  1474. casadi/include/simde/x86/xop.h +3644 -0
  1475. casadi/include/superscs/cones.h +185 -0
  1476. casadi/include/superscs/constants.h +144 -0
  1477. casadi/include/superscs/cs.h +109 -0
  1478. casadi/include/superscs/ctrlc.h +77 -0
  1479. casadi/include/superscs/directions.h +125 -0
  1480. casadi/include/superscs/glbopts.h +240 -0
  1481. casadi/include/superscs/linAlg.h +437 -0
  1482. casadi/include/superscs/linSys.h +205 -0
  1483. casadi/include/superscs/linsys/amatrix.h +77 -0
  1484. casadi/include/superscs/linsys/common.h +49 -0
  1485. casadi/include/superscs/normalize.h +138 -0
  1486. casadi/include/superscs/scs.h +656 -0
  1487. casadi/include/superscs/scs_blas.h +79 -0
  1488. casadi/include/superscs/scs_parser.h +187 -0
  1489. casadi/include/superscs/unit_test_util.h +210 -0
  1490. casadi/include/superscs/util.h +354 -0
  1491. casadi/include/trlib/trlib_eigen_inverse.h +118 -0
  1492. casadi/include/trlib/trlib_krylov.h +493 -0
  1493. casadi/include/trlib/trlib_leftmost.h +181 -0
  1494. casadi/include/trlib/trlib_private.h +109 -0
  1495. casadi/include/trlib/trlib_quadratic_zero.h +57 -0
  1496. casadi/include/trlib/trlib_tri_factor.h +409 -0
  1497. casadi/include/trlib/trlib_types.h +36 -0
  1498. casadi/libCbc.la +35 -0
  1499. casadi/libCbc.so +0 -0
  1500. casadi/libCbc.so.3 +0 -0
  1501. casadi/libCbc.so.3.10.11 +0 -0
  1502. casadi/libCbcSolver.la +35 -0
  1503. casadi/libCbcSolver.so +0 -0
  1504. casadi/libCbcSolver.so.3 +0 -0
  1505. casadi/libCbcSolver.so.3.10.11 +0 -0
  1506. casadi/libCgl.la +35 -0
  1507. casadi/libCgl.so +0 -0
  1508. casadi/libCgl.so.1 +0 -0
  1509. casadi/libCgl.so.1.10.8 +0 -0
  1510. casadi/libClp.la +35 -0
  1511. casadi/libClp.so +0 -0
  1512. casadi/libClp.so.1 +0 -0
  1513. casadi/libClp.so.1.14.9 +0 -0
  1514. casadi/libClpSolver.la +35 -0
  1515. casadi/libClpSolver.so +0 -0
  1516. casadi/libClpSolver.so.1 +0 -0
  1517. casadi/libClpSolver.so.1.14.9 +0 -0
  1518. casadi/libCoinUtils.la +35 -0
  1519. casadi/libCoinUtils.so +0 -0
  1520. casadi/libCoinUtils.so.3 +0 -0
  1521. casadi/libCoinUtils.so.3.11.10 +0 -0
  1522. casadi/libOsi.la +35 -0
  1523. casadi/libOsi.so +0 -0
  1524. casadi/libOsi.so.1 +0 -0
  1525. casadi/libOsi.so.1.13.9 +0 -0
  1526. casadi/libOsiCbc.la +35 -0
  1527. casadi/libOsiCbc.so +0 -0
  1528. casadi/libOsiCbc.so.3 +0 -0
  1529. casadi/libOsiCbc.so.3.10.11 +0 -0
  1530. casadi/libOsiClp.la +35 -0
  1531. casadi/libOsiClp.so +0 -0
  1532. casadi/libOsiClp.so.1 +0 -0
  1533. casadi/libOsiClp.so.1.14.9 +0 -0
  1534. casadi/libOsiCommonTests.la +35 -0
  1535. casadi/libOsiCommonTests.so +0 -0
  1536. casadi/libOsiCommonTests.so.1 +0 -0
  1537. casadi/libOsiCommonTests.so.1.13.9 +0 -0
  1538. casadi/libalpaqa-dl-loader.so +0 -0
  1539. casadi/libalpaqa-dl-loader.so.1.0.0 +0 -0
  1540. casadi/libalpaqa.so +0 -0
  1541. casadi/libalpaqa.so.1.0.0 +0 -0
  1542. casadi/libbonmin.la +35 -0
  1543. casadi/libbonmin.so +0 -0
  1544. casadi/libbonmin.so.4 +0 -0
  1545. casadi/libbonmin.so.4.8.9 +0 -0
  1546. casadi/libcasadi-tp-openblas.so +0 -0
  1547. casadi/libcasadi-tp-openblas.so.0 +0 -0
  1548. casadi/libcasadi-tp-openblas.so.0.3 +0 -0
  1549. casadi/libcasadi.so +0 -0
  1550. casadi/libcasadi.so.3.7 +0 -0
  1551. casadi/libcasadi_archiver_libzip.so +0 -0
  1552. casadi/libcasadi_archiver_libzip.so.3.7 +0 -0
  1553. casadi/libcasadi_conic_cbc.so +0 -0
  1554. casadi/libcasadi_conic_cbc.so.3.7 +0 -0
  1555. casadi/libcasadi_conic_clp.so +0 -0
  1556. casadi/libcasadi_conic_clp.so.3.7 +0 -0
  1557. casadi/libcasadi_conic_daqp.so +0 -0
  1558. casadi/libcasadi_conic_daqp.so.3.7 +0 -0
  1559. casadi/libcasadi_conic_gurobi.so +0 -0
  1560. casadi/libcasadi_conic_gurobi.so.3.7 +0 -0
  1561. casadi/libcasadi_conic_highs.so +0 -0
  1562. casadi/libcasadi_conic_highs.so.3.7 +0 -0
  1563. casadi/libcasadi_conic_ipqp.so +0 -0
  1564. casadi/libcasadi_conic_ipqp.so.3.7 +0 -0
  1565. casadi/libcasadi_conic_nlpsol.so +0 -0
  1566. casadi/libcasadi_conic_nlpsol.so.3.7 +0 -0
  1567. casadi/libcasadi_conic_osqp.so +0 -0
  1568. casadi/libcasadi_conic_osqp.so.3.7 +0 -0
  1569. casadi/libcasadi_conic_proxqp.so +0 -0
  1570. casadi/libcasadi_conic_proxqp.so.3.7 +0 -0
  1571. casadi/libcasadi_conic_qpoases.so +0 -0
  1572. casadi/libcasadi_conic_qpoases.so.3.7 +0 -0
  1573. casadi/libcasadi_conic_qrqp.so +0 -0
  1574. casadi/libcasadi_conic_qrqp.so.3.7 +0 -0
  1575. casadi/libcasadi_conic_superscs.so +0 -0
  1576. casadi/libcasadi_conic_superscs.so.3.7 +0 -0
  1577. casadi/libcasadi_filesystem_ghc.so +0 -0
  1578. casadi/libcasadi_filesystem_ghc.so.3.7 +0 -0
  1579. casadi/libcasadi_importer_shell.so +0 -0
  1580. casadi/libcasadi_importer_shell.so.3.7 +0 -0
  1581. casadi/libcasadi_integrator_collocation.so +0 -0
  1582. casadi/libcasadi_integrator_collocation.so.3.7 +0 -0
  1583. casadi/libcasadi_integrator_cvodes.so +0 -0
  1584. casadi/libcasadi_integrator_cvodes.so.3.7 +0 -0
  1585. casadi/libcasadi_integrator_idas.so +0 -0
  1586. casadi/libcasadi_integrator_idas.so.3.7 +0 -0
  1587. casadi/libcasadi_integrator_rk.so +0 -0
  1588. casadi/libcasadi_integrator_rk.so.3.7 +0 -0
  1589. casadi/libcasadi_interpolant_bspline.so +0 -0
  1590. casadi/libcasadi_interpolant_bspline.so.3.7 +0 -0
  1591. casadi/libcasadi_interpolant_linear.so +0 -0
  1592. casadi/libcasadi_interpolant_linear.so.3.7 +0 -0
  1593. casadi/libcasadi_linsol_csparse.so +0 -0
  1594. casadi/libcasadi_linsol_csparse.so.3.7 +0 -0
  1595. casadi/libcasadi_linsol_csparsecholesky.so +0 -0
  1596. casadi/libcasadi_linsol_csparsecholesky.so.3.7 +0 -0
  1597. casadi/libcasadi_linsol_lapacklu.so +0 -0
  1598. casadi/libcasadi_linsol_lapacklu.so.3.7 +0 -0
  1599. casadi/libcasadi_linsol_lapackqr.so +0 -0
  1600. casadi/libcasadi_linsol_lapackqr.so.3.7 +0 -0
  1601. casadi/libcasadi_linsol_ldl.so +0 -0
  1602. casadi/libcasadi_linsol_ldl.so.3.7 +0 -0
  1603. casadi/libcasadi_linsol_lsqr.so +0 -0
  1604. casadi/libcasadi_linsol_lsqr.so.3.7 +0 -0
  1605. casadi/libcasadi_linsol_ma27.so +0 -0
  1606. casadi/libcasadi_linsol_ma27.so.3.7 +0 -0
  1607. casadi/libcasadi_linsol_mumps.so +0 -0
  1608. casadi/libcasadi_linsol_mumps.so.3.7 +0 -0
  1609. casadi/libcasadi_linsol_qr.so +0 -0
  1610. casadi/libcasadi_linsol_qr.so.3.7 +0 -0
  1611. casadi/libcasadi_linsol_symbolicqr.so +0 -0
  1612. casadi/libcasadi_linsol_symbolicqr.so.3.7 +0 -0
  1613. casadi/libcasadi_linsol_tridiag.so +0 -0
  1614. casadi/libcasadi_linsol_tridiag.so.3.7 +0 -0
  1615. casadi/libcasadi_nlpsol_alpaqa.so +0 -0
  1616. casadi/libcasadi_nlpsol_alpaqa.so.3.7 +0 -0
  1617. casadi/libcasadi_nlpsol_ampl.so +0 -0
  1618. casadi/libcasadi_nlpsol_ampl.so.3.7 +0 -0
  1619. casadi/libcasadi_nlpsol_blocksqp.so +0 -0
  1620. casadi/libcasadi_nlpsol_blocksqp.so.3.7 +0 -0
  1621. casadi/libcasadi_nlpsol_bonmin.so +0 -0
  1622. casadi/libcasadi_nlpsol_bonmin.so.3.7 +0 -0
  1623. casadi/libcasadi_nlpsol_feasiblesqpmethod.so +0 -0
  1624. casadi/libcasadi_nlpsol_feasiblesqpmethod.so.3.7 +0 -0
  1625. casadi/libcasadi_nlpsol_ipopt.so +0 -0
  1626. casadi/libcasadi_nlpsol_ipopt.so.3.7 +0 -0
  1627. casadi/libcasadi_nlpsol_knitro.so +0 -0
  1628. casadi/libcasadi_nlpsol_knitro.so.3.7 +0 -0
  1629. casadi/libcasadi_nlpsol_madnlp.so +0 -0
  1630. casadi/libcasadi_nlpsol_madnlp.so.3.7 +0 -0
  1631. casadi/libcasadi_nlpsol_qrsqp.so +0 -0
  1632. casadi/libcasadi_nlpsol_qrsqp.so.3.7 +0 -0
  1633. casadi/libcasadi_nlpsol_scpgen.so +0 -0
  1634. casadi/libcasadi_nlpsol_scpgen.so.3.7 +0 -0
  1635. casadi/libcasadi_nlpsol_sleqp.so +0 -0
  1636. casadi/libcasadi_nlpsol_sleqp.so.3.7 +0 -0
  1637. casadi/libcasadi_nlpsol_snopt.so +0 -0
  1638. casadi/libcasadi_nlpsol_snopt.so.3.7 +0 -0
  1639. casadi/libcasadi_nlpsol_sqpmethod.so +0 -0
  1640. casadi/libcasadi_nlpsol_sqpmethod.so.3.7 +0 -0
  1641. casadi/libcasadi_nlpsol_worhp.so +0 -0
  1642. casadi/libcasadi_nlpsol_worhp.so.3.7 +0 -0
  1643. casadi/libcasadi_rootfinder_fast_newton.so +0 -0
  1644. casadi/libcasadi_rootfinder_fast_newton.so.3.7 +0 -0
  1645. casadi/libcasadi_rootfinder_kinsol.so +0 -0
  1646. casadi/libcasadi_rootfinder_kinsol.so.3.7 +0 -0
  1647. casadi/libcasadi_rootfinder_newton.so +0 -0
  1648. casadi/libcasadi_rootfinder_newton.so.3.7 +0 -0
  1649. casadi/libcasadi_rootfinder_nlpsol.so +0 -0
  1650. casadi/libcasadi_rootfinder_nlpsol.so.3.7 +0 -0
  1651. casadi/libcasadi_sundials_common.so +0 -0
  1652. casadi/libcasadi_sundials_common.so.3.7 +0 -0
  1653. casadi/libcasadi_xmlfile_tinyxml.so +0 -0
  1654. casadi/libcasadi_xmlfile_tinyxml.so.3.7 +0 -0
  1655. casadi/libcoinmetis.la +41 -0
  1656. casadi/libcoinmetis.so +0 -0
  1657. casadi/libcoinmetis.so.2 +0 -0
  1658. casadi/libcoinmetis.so.2.0.0 +0 -0
  1659. casadi/libcoinmumps.la +41 -0
  1660. casadi/libcoinmumps.so +0 -0
  1661. casadi/libcoinmumps.so.3 +0 -0
  1662. casadi/libcoinmumps.so.3.0.1 +0 -0
  1663. casadi/libdaqp.so +0 -0
  1664. casadi/libdaqpstat.a +0 -0
  1665. casadi/libgfortran-a8535147.so.5.0.0 +0 -0
  1666. casadi/libgurobi_adaptor.so +0 -0
  1667. casadi/libhighs.so +0 -0
  1668. casadi/libhighs.so.1 +0 -0
  1669. casadi/libhighs.so.1.10.0 +0 -0
  1670. casadi/libindirect.a +0 -0
  1671. casadi/libipopt.la +41 -0
  1672. casadi/libipopt.so +0 -0
  1673. casadi/libipopt.so.3 +0 -0
  1674. casadi/libipopt.so.3.14.11 +0 -0
  1675. casadi/liblinsys.a +0 -0
  1676. casadi/libmatlab_ipc.so +0 -0
  1677. casadi/libosqp.a +0 -0
  1678. casadi/libosqp.so +0 -0
  1679. casadi/libqdldl.a +0 -0
  1680. casadi/libqdldl.so +0 -0
  1681. casadi/libquadmath-e2ac3af2.so.0.0.0 +0 -0
  1682. casadi/libsipopt.la +41 -0
  1683. casadi/libsipopt.so +0 -0
  1684. casadi/libsipopt.so.3 +0 -0
  1685. casadi/libsipopt.so.3.14.11 +0 -0
  1686. casadi/libsleqp.so +0 -0
  1687. casadi/libsleqp.so.1.0.1 +0 -0
  1688. casadi/libspral.a +0 -0
  1689. casadi/libsuperscs.a +0 -0
  1690. casadi/libtrlib.so +0 -0
  1691. casadi/libtrlib.so.0.4 +0 -0
  1692. casadi/libz.a +0 -0
  1693. casadi/libz.so +0 -0
  1694. casadi/libz.so.1 +0 -0
  1695. casadi/libz.so.1.3.1 +0 -0
  1696. casadi/libzip.a +0 -0
  1697. casadi/pkgconfig/blas.pc +11 -0
  1698. casadi/pkgconfig/bonmin.pc +12 -0
  1699. casadi/pkgconfig/casadi.pc +12 -0
  1700. casadi/pkgconfig/cbc.pc +12 -0
  1701. casadi/pkgconfig/cgl.pc +12 -0
  1702. casadi/pkgconfig/clp.pc +12 -0
  1703. casadi/pkgconfig/coinmetis.pc +13 -0
  1704. casadi/pkgconfig/coinmumps.pc +15 -0
  1705. casadi/pkgconfig/coinutils.pc +12 -0
  1706. casadi/pkgconfig/highs.pc +12 -0
  1707. casadi/pkgconfig/ipopt.pc +15 -0
  1708. casadi/pkgconfig/lapack.pc +11 -0
  1709. casadi/pkgconfig/libzip.pc +14 -0
  1710. casadi/pkgconfig/openblas.pc +11 -0
  1711. casadi/pkgconfig/osi-cbc.pc +12 -0
  1712. casadi/pkgconfig/osi-clp.pc +12 -0
  1713. casadi/pkgconfig/osi-unittests.pc +12 -0
  1714. casadi/pkgconfig/osi.pc +12 -0
  1715. casadi/pkgconfig/proxsuite.pc +22 -0
  1716. casadi/pkgconfig/sleqp.pc +10 -0
  1717. casadi/tools/__init__.py +54 -0
  1718. casadi/tools/bounds.py +107 -0
  1719. casadi/tools/graph/__init__.py +35 -0
  1720. casadi/tools/graph/graph.py +747 -0
  1721. casadi/tools/in_out.py +89 -0
  1722. casadi/tools/structure3.py +1441 -0
  1723. casadi-3.7.2.dist-info/METADATA +45 -0
  1724. casadi-3.7.2.dist-info/RECORD +1726 -0
  1725. casadi-3.7.2.dist-info/WHEEL +4 -0
  1726. dummy.txt +1 -0
@@ -0,0 +1,1645 @@
1
+ /* SPDX-License-Identifier: MIT
2
+ *
3
+ * Permission is hereby granted, free of charge, to any person
4
+ * obtaining a copy of this software and associated documentation
5
+ * files (the "Software"), to deal in the Software without
6
+ * restriction, including without limitation the rights to use, copy,
7
+ * modify, merge, publish, distribute, sublicense, and/or sell copies
8
+ * of the Software, and to permit persons to whom the Software is
9
+ * furnished to do so, subject to the following conditions:
10
+ *
11
+ * The above copyright notice and this permission notice shall be
12
+ * included in all copies or substantial portions of the Software.
13
+ *
14
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
18
+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
19
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ * SOFTWARE.
22
+ *
23
+ * Copyright:
24
+ * 2020 Evan Nemerson <evan@nemerson.com>
25
+ * 2020 Christopher Moore <moore@free.fr>
26
+ */
27
+
28
+ #if !defined(SIMDE_X86_AVX512_PERMUTEX2VAR_H)
29
+ #define SIMDE_X86_AVX512_PERMUTEX2VAR_H
30
+
31
+ #include "types.h"
32
+ #include "and.h"
33
+ #include "andnot.h"
34
+ #include "blend.h"
35
+ #include "mov.h"
36
+ #include "or.h"
37
+ #include "set1.h"
38
+ #include "slli.h"
39
+ #include "srli.h"
40
+ #include "test.h"
41
+
42
+ HEDLEY_DIAGNOSTIC_PUSH
43
+ SIMDE_DISABLE_UNWANTED_DIAGNOSTICS
44
+ SIMDE_BEGIN_DECLS_
45
+
46
+ /* The following generic code avoids many, nearly identical, repetitions of fairly complex code.
47
+ * If the compiler optimizes well, in particular extracting invariant code from loops
48
+ * and simplifying code involving constants passed as arguments, it should not be
49
+ * significantly slower than specific code.
50
+ * Note that when the original vector contains few elements, these implementations
51
+ * may not be faster than portable code.
52
+ */
53
+ #if defined(SIMDE_X86_SSSE3_NATIVE) || defined(SIMDE_ARM_NEON_A64V8_NATIVE) || defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) || defined(SIMDE_WASM_SIMD128_NATIVE)
54
+ #define SIMDE_X_PERMUTEX2VAR_USE_GENERIC
55
+ #endif
56
+
57
+ #if defined(SIMDE_X_PERMUTEX2VAR_USE_GENERIC)
58
+ SIMDE_FUNCTION_ATTRIBUTES
59
+ simde__m128i
60
+ simde_x_permutex2var128 (const simde__m128i *a, const simde__m128i idx, const simde__m128i *b, const unsigned int log2_index_size, const unsigned int log2_data_length) {
61
+ const int idx_mask = (1 << (5 - log2_index_size + log2_data_length)) - 1;
62
+
63
+ #if defined(SIMDE_X86_SSE3_NATIVE)
64
+ __m128i ra, rb, t, test, select, index;
65
+ const __m128i sixteen = _mm_set1_epi8(16);
66
+
67
+ /* Avoid the mullo intrinsics which have high latency (and the 32-bit one requires SSE4.1) */
68
+ switch (log2_index_size) {
69
+ default: /* Avoid uninitialized variable warning/error */
70
+ case 0:
71
+ index = _mm_and_si128(idx, _mm_set1_epi8(HEDLEY_STATIC_CAST(int8_t, idx_mask)));
72
+ break;
73
+ case 1:
74
+ index = _mm_and_si128(idx, _mm_set1_epi16(HEDLEY_STATIC_CAST(int16_t, idx_mask)));
75
+ index = _mm_slli_epi32(index, 1);
76
+ t = _mm_slli_epi32(index, 8);
77
+ index = _mm_or_si128(index, t);
78
+ index = _mm_add_epi16(index, _mm_set1_epi16(0x0100));
79
+ break;
80
+ case 2:
81
+ index = _mm_and_si128(idx, _mm_set1_epi32(HEDLEY_STATIC_CAST(int32_t, idx_mask)));
82
+ index = _mm_slli_epi32(index, 2);
83
+ t = _mm_slli_epi32(index, 8);
84
+ index = _mm_or_si128(index, t);
85
+ t = _mm_slli_epi32(index, 16);
86
+ index = _mm_or_si128(index, t);
87
+ index = _mm_add_epi32(index, _mm_set1_epi32(0x03020100));
88
+ break;
89
+ }
90
+
91
+ test = index;
92
+ index = _mm_and_si128(index, _mm_set1_epi8(HEDLEY_STATIC_CAST(int8_t, (1 << (4 + log2_data_length)) - 1)));
93
+ test = _mm_cmpgt_epi8(test, index);
94
+
95
+ ra = _mm_shuffle_epi8(a[0], index);
96
+ rb = _mm_shuffle_epi8(b[0], index);
97
+
98
+ #if defined(SIMDE_X86_SSE4_1_NATIVE)
99
+ SIMDE_VECTORIZE
100
+ for (int i = 1 ; i < (1 << log2_data_length) ; i++) {
101
+ select = _mm_cmplt_epi8(index, sixteen);
102
+ index = _mm_sub_epi8(index, sixteen);
103
+ ra = _mm_blendv_epi8(_mm_shuffle_epi8(a[i], index), ra, select);
104
+ rb = _mm_blendv_epi8(_mm_shuffle_epi8(b[i], index), rb, select);
105
+ }
106
+
107
+ return _mm_blendv_epi8(ra, rb, test);
108
+ #else
109
+ SIMDE_VECTORIZE
110
+ for (int i = 1 ; i < (1 << log2_data_length) ; i++) {
111
+ select = _mm_cmplt_epi8(index, sixteen);
112
+ index = _mm_sub_epi8(index, sixteen);
113
+ ra = _mm_or_si128(_mm_andnot_si128(select, _mm_shuffle_epi8(a[i], index)), _mm_and_si128(select, ra));
114
+ rb = _mm_or_si128(_mm_andnot_si128(select, _mm_shuffle_epi8(b[i], index)), _mm_and_si128(select, rb));
115
+ }
116
+
117
+ return _mm_or_si128(_mm_andnot_si128(test, ra), _mm_and_si128(test, rb));
118
+ #endif
119
+ #elif defined(SIMDE_ARM_NEON_A64V8_NATIVE)
120
+ uint8x16_t index, r;
121
+ uint16x8_t index16;
122
+ uint32x4_t index32;
123
+ uint8x16x2_t table2_a, table2_b;
124
+ uint8x16x4_t table4_a, table4_b;
125
+
126
+ switch (log2_index_size) {
127
+ case 0:
128
+ index = vandq_u8(simde__m128i_to_neon_u8(idx), vdupq_n_u8(HEDLEY_STATIC_CAST(uint8_t, idx_mask)));
129
+ break;
130
+ case 1:
131
+ index16 = vandq_u16(simde__m128i_to_neon_u16(idx), vdupq_n_u16(HEDLEY_STATIC_CAST(uint16_t, idx_mask)));
132
+ index16 = vmulq_n_u16(index16, 0x0202);
133
+ index16 = vaddq_u16(index16, vdupq_n_u16(0x0100));
134
+ index = vreinterpretq_u8_u16(index16);
135
+ break;
136
+ case 2:
137
+ index32 = vandq_u32(simde__m128i_to_neon_u32(idx), vdupq_n_u32(HEDLEY_STATIC_CAST(uint32_t, idx_mask)));
138
+ index32 = vmulq_n_u32(index32, 0x04040404);
139
+ index32 = vaddq_u32(index32, vdupq_n_u32(0x03020100));
140
+ index = vreinterpretq_u8_u32(index32);
141
+ break;
142
+ }
143
+
144
+ uint8x16_t mask = vdupq_n_u8(HEDLEY_STATIC_CAST(uint8_t, (1 << (4 + log2_data_length)) - 1));
145
+
146
+ switch (log2_data_length) {
147
+ case 0:
148
+ r = vqtbx1q_u8(vqtbl1q_u8(simde__m128i_to_neon_u8(b[0]), vandq_u8(index, mask)), simde__m128i_to_neon_u8(a[0]), index);
149
+ break;
150
+ case 1:
151
+ table2_a.val[0] = simde__m128i_to_neon_u8(a[0]);
152
+ table2_a.val[1] = simde__m128i_to_neon_u8(a[1]);
153
+ table2_b.val[0] = simde__m128i_to_neon_u8(b[0]);
154
+ table2_b.val[1] = simde__m128i_to_neon_u8(b[1]);
155
+ r = vqtbx2q_u8(vqtbl2q_u8(table2_b, vandq_u8(index, mask)), table2_a, index);
156
+ break;
157
+ case 2:
158
+ table4_a.val[0] = simde__m128i_to_neon_u8(a[0]);
159
+ table4_a.val[1] = simde__m128i_to_neon_u8(a[1]);
160
+ table4_a.val[2] = simde__m128i_to_neon_u8(a[2]);
161
+ table4_a.val[3] = simde__m128i_to_neon_u8(a[3]);
162
+ table4_b.val[0] = simde__m128i_to_neon_u8(b[0]);
163
+ table4_b.val[1] = simde__m128i_to_neon_u8(b[1]);
164
+ table4_b.val[2] = simde__m128i_to_neon_u8(b[2]);
165
+ table4_b.val[3] = simde__m128i_to_neon_u8(b[3]);
166
+ r = vqtbx4q_u8(vqtbl4q_u8(table4_b, vandq_u8(index, mask)), table4_a, index);
167
+ break;
168
+ }
169
+
170
+ return simde__m128i_from_neon_u8(r);
171
+ #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE)
172
+ SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) r, ra, rb, t, index, s, thirty_two = vec_splats(HEDLEY_STATIC_CAST(uint8_t, 32));
173
+ SIMDE_POWER_ALTIVEC_VECTOR(unsigned short) index16;
174
+ SIMDE_POWER_ALTIVEC_VECTOR(unsigned int) temp32, index32;
175
+ SIMDE_POWER_ALTIVEC_VECTOR(SIMDE_POWER_ALTIVEC_BOOL char) select, test;
176
+
177
+ switch (log2_index_size) {
178
+ default: /* Avoid uninitialized variable warning/error */
179
+ case 0:
180
+ index = vec_and(simde__m128i_to_altivec_u8(idx), vec_splats(HEDLEY_STATIC_CAST(uint8_t, idx_mask)));
181
+ break;
182
+ case 1:
183
+ index16 = simde__m128i_to_altivec_u16(idx);
184
+ index16 = vec_and(index16, vec_splats(HEDLEY_STATIC_CAST(uint16_t, idx_mask)));
185
+ index16 = vec_mladd(index16, vec_splats(HEDLEY_STATIC_CAST(unsigned short, 0x0202)), vec_splats(HEDLEY_STATIC_CAST(unsigned short, 0x0100)));
186
+ index = HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(unsigned char), index16);
187
+ break;
188
+ case 2:
189
+ index32 = simde__m128i_to_altivec_u32(idx);
190
+ index32 = vec_and(index32, vec_splats(HEDLEY_STATIC_CAST(uint32_t, idx_mask)));
191
+
192
+ /* Multiply index32 by 0x04040404; unfortunately vec_mul isn't available so (mis)use 16-bit vec_mladd */
193
+ temp32 = vec_sl(index32, vec_splats(HEDLEY_STATIC_CAST(unsigned int, 16)));
194
+ index32 = vec_add(index32, temp32);
195
+ index32 = HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(unsigned int),
196
+ vec_mladd(HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(unsigned short), index32),
197
+ vec_splats(HEDLEY_STATIC_CAST(unsigned short, 0x0404)),
198
+ vec_splat_u16(0)));
199
+
200
+ index32 = vec_add(index32, vec_splats(HEDLEY_STATIC_CAST(unsigned int, 0x03020100)));
201
+ index = HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(unsigned char), index32);
202
+ break;
203
+ }
204
+
205
+ if (log2_data_length == 0) {
206
+ r = vec_perm(simde__m128i_to_altivec_u8(a[0]), simde__m128i_to_altivec_u8(b[0]), HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(unsigned char), index));
207
+ }
208
+ else {
209
+ s = index;
210
+ index = vec_and(index, vec_splats(HEDLEY_STATIC_CAST(uint8_t, (1 << (4 + log2_data_length)) - 1)));
211
+ test = vec_cmpgt(s, index);
212
+
213
+ ra = vec_perm(simde__m128i_to_altivec_u8(a[0]), simde__m128i_to_altivec_u8(a[1]), index);
214
+ rb = vec_perm(simde__m128i_to_altivec_u8(b[0]), simde__m128i_to_altivec_u8(b[1]), index);
215
+
216
+ SIMDE_VECTORIZE
217
+ for (int i = 2 ; i < (1 << log2_data_length) ; i += 2) {
218
+ select = vec_cmplt(HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(signed char), index),
219
+ HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(signed char), thirty_two));
220
+ index = vec_sub(index, thirty_two);
221
+ t = vec_perm(simde__m128i_to_altivec_u8(a[i]), simde__m128i_to_altivec_u8(a[i + 1]), index);
222
+ ra = vec_sel(t, ra, select);
223
+ t = vec_perm(simde__m128i_to_altivec_u8(b[i]), simde__m128i_to_altivec_u8(b[i + 1]), index);
224
+ rb = vec_sel(t, rb, select);
225
+ }
226
+
227
+ r = vec_sel(ra, rb, test);
228
+ }
229
+
230
+ return simde__m128i_from_altivec_u8(r);
231
+ #elif defined(SIMDE_WASM_SIMD128_NATIVE)
232
+ const v128_t sixteen = wasm_i8x16_splat(16);
233
+
234
+ v128_t index = simde__m128i_to_wasm_v128(idx);
235
+
236
+ switch (log2_index_size) {
237
+ case 0:
238
+ index = wasm_v128_and(index, wasm_i8x16_splat(HEDLEY_STATIC_CAST(int8_t, idx_mask)));
239
+ break;
240
+ case 1:
241
+ index = wasm_v128_and(index, wasm_i16x8_splat(HEDLEY_STATIC_CAST(int16_t, idx_mask)));
242
+ index = wasm_i16x8_mul(index, wasm_i16x8_splat(0x0202));
243
+ index = wasm_i16x8_add(index, wasm_i16x8_splat(0x0100));
244
+ break;
245
+ case 2:
246
+ index = wasm_v128_and(index, wasm_i32x4_splat(HEDLEY_STATIC_CAST(int32_t, idx_mask)));
247
+ index = wasm_i32x4_mul(index, wasm_i32x4_splat(0x04040404));
248
+ index = wasm_i32x4_add(index, wasm_i32x4_splat(0x03020100));
249
+ break;
250
+ }
251
+
252
+ v128_t r = wasm_v8x16_swizzle(simde__m128i_to_wasm_v128(a[0]), index);
253
+
254
+ SIMDE_VECTORIZE
255
+ for (int i = 1 ; i < (1 << log2_data_length) ; i++) {
256
+ index = wasm_i8x16_sub(index, sixteen);
257
+ r = wasm_v128_or(r, wasm_v8x16_swizzle(simde__m128i_to_wasm_v128(a[i]), index));
258
+ }
259
+
260
+ SIMDE_VECTORIZE
261
+ for (int i = 0 ; i < (1 << log2_data_length) ; i++) {
262
+ index = wasm_i8x16_sub(index, sixteen);
263
+ r = wasm_v128_or(r, wasm_v8x16_swizzle(simde__m128i_to_wasm_v128(b[i]), index));
264
+ }
265
+
266
+ return simde__m128i_from_wasm_v128(r);
267
+ #endif
268
+ }
269
+
270
+ SIMDE_FUNCTION_ATTRIBUTES
271
+ void
272
+ simde_x_permutex2var (simde__m128i *r, const simde__m128i *a, const simde__m128i *idx, const simde__m128i *b, const unsigned int log2_index_size, const unsigned int log2_data_length) {
273
+ SIMDE_VECTORIZE
274
+ for (int i = 0 ; i < (1 << log2_data_length) ; i++) {
275
+ r[i] = simde_x_permutex2var128(a, idx[i], b, log2_index_size, log2_data_length);
276
+ }
277
+ }
278
+ #endif
279
+
280
+ SIMDE_FUNCTION_ATTRIBUTES
281
+ simde__m128i
282
+ simde_mm_permutex2var_epi16 (simde__m128i a, simde__m128i idx, simde__m128i b) {
283
+ #if defined(SIMDE_X86_AVX512BW_NATIVE) && defined(SIMDE_X86_AVX512VL_NATIVE)
284
+ return _mm_permutex2var_epi16(a, idx, b);
285
+ #elif defined(SIMDE_X_PERMUTEX2VAR_USE_GENERIC)
286
+ simde__m128i r;
287
+
288
+ simde_x_permutex2var(&r, &a, &idx, &b, 1, 0);
289
+
290
+ return r;
291
+ #else
292
+ simde__m128i_private
293
+ a_ = simde__m128i_to_private(a),
294
+ idx_ = simde__m128i_to_private(idx),
295
+ b_ = simde__m128i_to_private(b),
296
+ r_;
297
+
298
+ SIMDE_VECTORIZE
299
+ for (size_t i = 0 ; i < (sizeof(r_.i16) / sizeof(r_.i16[0])) ; i++) {
300
+ r_.i16[i] = ((idx_.i16[i] & 8) ? b_ : a_).i16[idx_.i16[i] & 7];
301
+ }
302
+
303
+ return simde__m128i_from_private(r_);
304
+ #endif
305
+ }
306
+ #if defined(SIMDE_X86_AVX512BW_ENABLE_NATIVE_ALIASES) || defined(SIMDE_X86_AVX512VL_ENABLE_NATIVE_ALIASES)
307
+ #undef _mm_permutex2var_epi16
308
+ #define _mm_permutex2var_epi16(a, idx, b) simde_mm_permutex2var_epi16(a, idx, b)
309
+ #endif
310
+
311
+ SIMDE_FUNCTION_ATTRIBUTES
312
+ simde__m128i
313
+ simde_mm_mask_permutex2var_epi16 (simde__m128i a, simde__mmask8 k, simde__m128i idx, simde__m128i b) {
314
+ #if defined(SIMDE_X86_AVX512BW_NATIVE) && defined(SIMDE_X86_AVX512VL_NATIVE)
315
+ return _mm_mask_permutex2var_epi16(a, k, idx, b);
316
+ #else
317
+ return simde_mm_mask_mov_epi16(a, k, simde_mm_permutex2var_epi16(a, idx, b));
318
+ #endif
319
+ }
320
+ #if defined(SIMDE_X86_AVX512BW_ENABLE_NATIVE_ALIASES) || defined(SIMDE_X86_AVX512VL_ENABLE_NATIVE_ALIASES)
321
+ #undef _mm_mask_permutex2var_epi16
322
+ #define _mm_mask_permutex2var_epi16(a, k, idx, b) simde_mm_mask_permutex2var_epi16(a, k, idx, b)
323
+ #endif
324
+
325
+ SIMDE_FUNCTION_ATTRIBUTES
326
+ simde__m128i
327
+ simde_mm_mask2_permutex2var_epi16 (simde__m128i a, simde__m128i idx, simde__mmask8 k, simde__m128i b) {
328
+ #if defined(SIMDE_X86_AVX512BW_NATIVE) && defined(SIMDE_X86_AVX512VL_NATIVE)
329
+ return _mm_mask2_permutex2var_epi16(a, idx, k, b);
330
+ #else
331
+ return simde_mm_mask_mov_epi16(idx, k, simde_mm_permutex2var_epi16(a, idx, b));
332
+ #endif
333
+ }
334
+ #if defined(SIMDE_X86_AVX512BW_ENABLE_NATIVE_ALIASES) || defined(SIMDE_X86_AVX512VL_ENABLE_NATIVE_ALIASES)
335
+ #undef _mm_mask2_permutex2var_epi16
336
+ #define _mm_mask2_permutex2var_epi16(a, idx, k, b) simde_mm_mask2_permutex2var_epi16(a, idx, k, b)
337
+ #endif
338
+
339
+ SIMDE_FUNCTION_ATTRIBUTES
340
+ simde__m128i
341
+ simde_mm_maskz_permutex2var_epi16 (simde__mmask8 k, simde__m128i a, simde__m128i idx, simde__m128i b) {
342
+ #if defined(SIMDE_X86_AVX512BW_NATIVE) && defined(SIMDE_X86_AVX512VL_NATIVE)
343
+ return _mm_maskz_permutex2var_epi16(k, a, idx, b);
344
+ #else
345
+ return simde_mm_maskz_mov_epi16(k, simde_mm_permutex2var_epi16(a, idx, b));
346
+ #endif
347
+ }
348
+ #if defined(SIMDE_X86_AVX512BW_ENABLE_NATIVE_ALIASES) || defined(SIMDE_X86_AVX512VL_ENABLE_NATIVE_ALIASES)
349
+ #undef _mm_maskz_permutex2var_epi16
350
+ #define _mm_maskz_permutex2var_epi16(k, a, idx, b) simde_mm_maskz_permutex2var_epi16(k, a, idx, b)
351
+ #endif
352
+
353
+ SIMDE_FUNCTION_ATTRIBUTES
354
+ simde__m128i
355
+ simde_mm_permutex2var_epi32 (simde__m128i a, simde__m128i idx, simde__m128i b) {
356
+ #if defined(SIMDE_X86_AVX512F_NATIVE) && defined(SIMDE_X86_AVX512VL_NATIVE)
357
+ return _mm_permutex2var_epi32(a, idx, b);
358
+ #elif defined(SIMDE_X_PERMUTEX2VAR_USE_GENERIC) /* This may not be faster than the portable version */
359
+ simde__m128i r;
360
+
361
+ simde_x_permutex2var(&r, &a, &idx, &b, 2, 0);
362
+
363
+ return r;
364
+ #else
365
+ simde__m128i_private
366
+ a_ = simde__m128i_to_private(a),
367
+ idx_ = simde__m128i_to_private(idx),
368
+ b_ = simde__m128i_to_private(b),
369
+ r_;
370
+
371
+ SIMDE_VECTORIZE
372
+ for (size_t i = 0 ; i < (sizeof(r_.i32) / sizeof(r_.i32[0])) ; i++) {
373
+ r_.i32[i] = ((idx_.i32[i] & 4) ? b_ : a_).i32[idx_.i32[i] & 3];
374
+ }
375
+
376
+ return simde__m128i_from_private(r_);
377
+ #endif
378
+ }
379
+ #if defined(SIMDE_X86_AVX512F_ENABLE_NATIVE_ALIASES) || defined(SIMDE_X86_AVX512VL_ENABLE_NATIVE_ALIASES)
380
+ #undef _mm_permutex2var_epi32
381
+ #define _mm_permutex2var_epi32(a, idx, b) simde_mm_permutex2var_epi32(a, idx, b)
382
+ #endif
383
+
384
+ SIMDE_FUNCTION_ATTRIBUTES
385
+ simde__m128i
386
+ simde_mm_mask_permutex2var_epi32 (simde__m128i a, simde__mmask8 k, simde__m128i idx, simde__m128i b) {
387
+ #if defined(SIMDE_X86_AVX512F_NATIVE) && defined(SIMDE_X86_AVX512VL_NATIVE)
388
+ return _mm_mask_permutex2var_epi32(a, k, idx, b);
389
+ #else
390
+ return simde_mm_mask_mov_epi32(a, k, simde_mm_permutex2var_epi32(a, idx, b));
391
+ #endif
392
+ }
393
+ #if defined(SIMDE_X86_AVX512F_ENABLE_NATIVE_ALIASES) || defined(SIMDE_X86_AVX512VL_ENABLE_NATIVE_ALIASES)
394
+ #undef _mm_mask_permutex2var_epi32
395
+ #define _mm_mask_permutex2var_epi32(a, k, idx, b) simde_mm_mask_permutex2var_epi32(a, k, idx, b)
396
+ #endif
397
+
398
+ SIMDE_FUNCTION_ATTRIBUTES
399
+ simde__m128i
400
+ simde_mm_mask2_permutex2var_epi32 (simde__m128i a, simde__m128i idx, simde__mmask8 k, simde__m128i b) {
401
+ #if defined(SIMDE_X86_AVX512F_NATIVE) && defined(SIMDE_X86_AVX512VL_NATIVE)
402
+ return _mm_mask2_permutex2var_epi32(a, idx, k, b);
403
+ #else
404
+ return simde_mm_mask_mov_epi32(idx, k, simde_mm_permutex2var_epi32(a, idx, b));
405
+ #endif
406
+ }
407
+ #if defined(SIMDE_X86_AVX512F_ENABLE_NATIVE_ALIASES) || defined(SIMDE_X86_AVX512VL_ENABLE_NATIVE_ALIASES)
408
+ #undef _mm_mask2_permutex2var_epi32
409
+ #define _mm_mask2_permutex2var_epi32(a, idx, k, b) simde_mm_mask2_permutex2var_epi32(a, idx, k, b)
410
+ #endif
411
+
412
+ SIMDE_FUNCTION_ATTRIBUTES
413
+ simde__m128i
414
+ simde_mm_maskz_permutex2var_epi32 (simde__mmask8 k, simde__m128i a, simde__m128i idx, simde__m128i b) {
415
+ #if defined(SIMDE_X86_AVX512F_NATIVE) && defined(SIMDE_X86_AVX512VL_NATIVE)
416
+ return _mm_maskz_permutex2var_epi32(k, a, idx, b);
417
+ #else
418
+ return simde_mm_maskz_mov_epi32(k, simde_mm_permutex2var_epi32(a, idx, b));
419
+ #endif
420
+ }
421
+ #if defined(SIMDE_X86_AVX512F_ENABLE_NATIVE_ALIASES) || defined(SIMDE_X86_AVX512VL_ENABLE_NATIVE_ALIASES)
422
+ #undef _mm_maskz_permutex2var_epi32
423
+ #define _mm_maskz_permutex2var_epi32(k, a, idx, b) simde_mm_maskz_permutex2var_epi32(k, a, idx, b)
424
+ #endif
425
+
426
+ SIMDE_FUNCTION_ATTRIBUTES
427
+ simde__m128i
428
+ simde_mm_permutex2var_epi64 (simde__m128i a, simde__m128i idx, simde__m128i b) {
429
+ #if defined(SIMDE_X86_AVX512F_NATIVE) && defined(SIMDE_X86_AVX512VL_NATIVE)
430
+ return _mm_permutex2var_epi64(a, idx, b);
431
+ #else
432
+ simde__m128i_private
433
+ a_ = simde__m128i_to_private(a),
434
+ idx_ = simde__m128i_to_private(idx),
435
+ b_ = simde__m128i_to_private(b),
436
+ r_;
437
+
438
+ SIMDE_VECTORIZE
439
+ for (size_t i = 0 ; i < (sizeof(r_.i64) / sizeof(r_.i64[0])) ; i++) {
440
+ r_.i64[i] = ((idx_.i64[i] & 2) ? b_ : a_).i64[idx_.i64[i] & 1];
441
+ }
442
+
443
+ return simde__m128i_from_private(r_);
444
+ #endif
445
+ }
446
+ #if defined(SIMDE_X86_AVX512F_ENABLE_NATIVE_ALIASES) || defined(SIMDE_X86_AVX512VL_ENABLE_NATIVE_ALIASES)
447
+ #undef _mm_permutex2var_epi64
448
+ #define _mm_permutex2var_epi64(a, idx, b) simde_mm_permutex2var_epi64(a, idx, b)
449
+ #endif
450
+
451
+ SIMDE_FUNCTION_ATTRIBUTES
452
+ simde__m128i
453
+ simde_mm_mask_permutex2var_epi64 (simde__m128i a, simde__mmask8 k, simde__m128i idx, simde__m128i b) {
454
+ #if defined(SIMDE_X86_AVX512F_NATIVE) && defined(SIMDE_X86_AVX512VL_NATIVE)
455
+ return _mm_mask_permutex2var_epi64(a, k, idx, b);
456
+ #else
457
+ return simde_mm_mask_mov_epi64(a, k, simde_mm_permutex2var_epi64(a, idx, b));
458
+ #endif
459
+ }
460
+ #if defined(SIMDE_X86_AVX512F_ENABLE_NATIVE_ALIASES) || defined(SIMDE_X86_AVX512VL_ENABLE_NATIVE_ALIASES)
461
+ #undef _mm_mask_permutex2var_epi64
462
+ #define _mm_mask_permutex2var_epi64(a, k, idx, b) simde_mm_mask_permutex2var_epi64(a, k, idx, b)
463
+ #endif
464
+
465
+ SIMDE_FUNCTION_ATTRIBUTES
466
+ simde__m128i
467
+ simde_mm_mask2_permutex2var_epi64 (simde__m128i a, simde__m128i idx, simde__mmask8 k, simde__m128i b) {
468
+ #if defined(SIMDE_X86_AVX512F_NATIVE) && defined(SIMDE_X86_AVX512VL_NATIVE)
469
+ return _mm_mask2_permutex2var_epi64(a, idx, k, b);
470
+ #else
471
+ return simde_mm_mask_mov_epi64(idx, k, simde_mm_permutex2var_epi64(a, idx, b));
472
+ #endif
473
+ }
474
+ #if defined(SIMDE_X86_AVX512F_ENABLE_NATIVE_ALIASES) || defined(SIMDE_X86_AVX512VL_ENABLE_NATIVE_ALIASES)
475
+ #undef _mm_mask2_permutex2var_epi64
476
+ #define _mm_mask2_permutex2var_epi64(a, idx, k, b) simde_mm_mask2_permutex2var_epi64(a, idx, k, b)
477
+ #endif
478
+
479
+ SIMDE_FUNCTION_ATTRIBUTES
480
+ simde__m128i
481
+ simde_mm_maskz_permutex2var_epi64 (simde__mmask8 k, simde__m128i a, simde__m128i idx, simde__m128i b) {
482
+ #if defined(SIMDE_X86_AVX512F_NATIVE) && defined(SIMDE_X86_AVX512VL_NATIVE)
483
+ return _mm_maskz_permutex2var_epi64(k, a, idx, b);
484
+ #else
485
+ return simde_mm_maskz_mov_epi64(k, simde_mm_permutex2var_epi64(a, idx, b));
486
+ #endif
487
+ }
488
+ #if defined(SIMDE_X86_AVX512F_ENABLE_NATIVE_ALIASES) || defined(SIMDE_X86_AVX512VL_ENABLE_NATIVE_ALIASES)
489
+ #undef _mm_maskz_permutex2var_epi64
490
+ #define _mm_maskz_permutex2var_epi64(k, a, idx, b) simde_mm_maskz_permutex2var_epi64(k, a, idx, b)
491
+ #endif
492
+
493
+ SIMDE_FUNCTION_ATTRIBUTES
494
+ simde__m128i
495
+ simde_mm_permutex2var_epi8 (simde__m128i a, simde__m128i idx, simde__m128i b) {
496
+ #if defined(SIMDE_X86_AVX512VBMI_NATIVE) && defined(SIMDE_X86_AVX512VL_NATIVE)
497
+ return _mm_permutex2var_epi8(a, idx, b);
498
+ #elif defined(SIMDE_X86_AVX512F_NATIVE)
499
+ return _mm512_cvtepi32_epi8(_mm512_permutex2var_epi32(_mm512_cvtepu8_epi32(a), _mm512_cvtepu8_epi32(idx), _mm512_cvtepu8_epi32(b)));
500
+ #elif defined(SIMDE_X_PERMUTEX2VAR_USE_GENERIC)
501
+ simde__m128i r;
502
+
503
+ simde_x_permutex2var(&r, &a, &idx, &b, 0, 0);
504
+
505
+ return r;
506
+ #else
507
+ simde__m128i_private
508
+ a_ = simde__m128i_to_private(a),
509
+ idx_ = simde__m128i_to_private(idx),
510
+ b_ = simde__m128i_to_private(b),
511
+ r_;
512
+
513
+ SIMDE_VECTORIZE
514
+ for (size_t i = 0 ; i < (sizeof(r_.i8) / sizeof(r_.i8[0])) ; i++) {
515
+ r_.i8[i] = ((idx_.i8[i] & 0x10) ? b_ : a_).i8[idx_.i8[i] & 0x0F];
516
+ }
517
+
518
+ return simde__m128i_from_private(r_);
519
+ #endif
520
+ }
521
+ #if defined(SIMDE_X86_AVX512VBMI_ENABLE_NATIVE_ALIASES) || defined(SIMDE_X86_AVX512VL_ENABLE_NATIVE_ALIASES)
522
+ #undef _mm_permutex2var_epi8
523
+ #define _mm_permutex2var_epi8(a, idx, b) simde_mm_permutex2var_epi8(a, idx, b)
524
+ #endif
525
+
526
+ SIMDE_FUNCTION_ATTRIBUTES
527
+ simde__m128i
528
+ simde_mm_mask_permutex2var_epi8 (simde__m128i a, simde__mmask16 k, simde__m128i idx, simde__m128i b) {
529
+ #if defined(SIMDE_X86_AVX512VBMI_NATIVE) && defined(SIMDE_X86_AVX512VL_NATIVE)
530
+ return _mm_mask_permutex2var_epi8(a, k, idx, b);
531
+ #else
532
+ return simde_mm_mask_mov_epi8(a, k, simde_mm_permutex2var_epi8(a, idx, b));
533
+ #endif
534
+ }
535
+ #if defined(SIMDE_X86_AVX512VBMI_ENABLE_NATIVE_ALIASES) || defined(SIMDE_X86_AVX512VL_ENABLE_NATIVE_ALIASES)
536
+ #undef _mm_mask_permutex2var_epi8
537
+ #define _mm_mask_permutex2var_epi8(a, k, idx, b) simde_mm_mask_permutex2var_epi8(a, k, idx, b)
538
+ #endif
539
+
540
+ SIMDE_FUNCTION_ATTRIBUTES
541
+ simde__m128i
542
+ simde_mm_mask2_permutex2var_epi8 (simde__m128i a, simde__m128i idx, simde__mmask16 k, simde__m128i b) {
543
+ #if defined(SIMDE_X86_AVX512VBMI_NATIVE) && defined(SIMDE_X86_AVX512VL_NATIVE)
544
+ return _mm_mask2_permutex2var_epi8(a, idx, k, b);
545
+ #else
546
+ return simde_mm_mask_mov_epi8(idx, k, simde_mm_permutex2var_epi8(a, idx, b));
547
+ #endif
548
+ }
549
+ #if defined(SIMDE_X86_AVX512VBMI_ENABLE_NATIVE_ALIASES) || defined(SIMDE_X86_AVX512VL_ENABLE_NATIVE_ALIASES)
550
+ #undef _mm_mask2_permutex2var_epi8
551
+ #define _mm_mask2_permutex2var_epi8(a, idx, k, b) simde_mm_mask2_permutex2var_epi8(a, idx, k, b)
552
+ #endif
553
+
554
+ SIMDE_FUNCTION_ATTRIBUTES
555
+ simde__m128i
556
+ simde_mm_maskz_permutex2var_epi8 (simde__mmask16 k, simde__m128i a, simde__m128i idx, simde__m128i b) {
557
+ #if defined(SIMDE_X86_AVX512VBMI_NATIVE) && defined(SIMDE_X86_AVX512VL_NATIVE)
558
+ return _mm_maskz_permutex2var_epi8(k, a, idx, b);
559
+ #else
560
+ return simde_mm_maskz_mov_epi8(k, simde_mm_permutex2var_epi8(a, idx, b));
561
+ #endif
562
+ }
563
+ #if defined(SIMDE_X86_AVX512VBMI_ENABLE_NATIVE_ALIASES) || defined(SIMDE_X86_AVX512VL_ENABLE_NATIVE_ALIASES)
564
+ #undef _mm_maskz_permutex2var_epi8
565
+ #define _mm_maskz_permutex2var_epi8(k, a, idx, b) simde_mm_maskz_permutex2var_epi8(k, a, idx, b)
566
+ #endif
567
+
568
+ SIMDE_FUNCTION_ATTRIBUTES
569
+ simde__m128d
570
+ simde_mm_permutex2var_pd (simde__m128d a, simde__m128i idx, simde__m128d b) {
571
+ #if defined(SIMDE_X86_AVX512BW_NATIVE) && defined(SIMDE_X86_AVX512VL_NATIVE)
572
+ return _mm_permutex2var_pd(a, idx, b);
573
+ #else
574
+ return simde_mm_castsi128_pd(simde_mm_permutex2var_epi64(simde_mm_castpd_si128(a), idx, simde_mm_castpd_si128(b)));
575
+ #endif
576
+ }
577
+ #if defined(SIMDE_X86_AVX512BW_ENABLE_NATIVE_ALIASES) || defined(SIMDE_X86_AVX512VL_ENABLE_NATIVE_ALIASES)
578
+ #undef _mm_permutex2var_pd
579
+ #define _mm_permutex2var_pd(a, idx, b) simde_mm_permutex2var_pd(a, idx, b)
580
+ #endif
581
+
582
+ SIMDE_FUNCTION_ATTRIBUTES
583
+ simde__m128d
584
+ simde_mm_mask_permutex2var_pd (simde__m128d a, simde__mmask8 k, simde__m128i idx, simde__m128d b) {
585
+ #if defined(SIMDE_X86_AVX512F_NATIVE) && defined(SIMDE_X86_AVX512VL_NATIVE)
586
+ return _mm_mask_permutex2var_pd(a, k, idx, b);
587
+ #else
588
+ return simde_mm_mask_mov_pd(a, k, simde_mm_permutex2var_pd(a, idx, b));
589
+ #endif
590
+ }
591
+ #if defined(SIMDE_X86_AVX512F_ENABLE_NATIVE_ALIASES) || defined(SIMDE_X86_AVX512VL_ENABLE_NATIVE_ALIASES)
592
+ #undef _mm_mask_permutex2var_pd
593
+ #define _mm_mask_permutex2var_pd(a, k, idx, b) simde_mm_mask_permutex2var_pd(a, k, idx, b)
594
+ #endif
595
+
596
+ SIMDE_FUNCTION_ATTRIBUTES
597
+ simde__m128d
598
+ simde_mm_mask2_permutex2var_pd (simde__m128d a, simde__m128i idx, simde__mmask8 k, simde__m128d b) {
599
+ #if defined(SIMDE_X86_AVX512F_NATIVE) && defined(SIMDE_X86_AVX512VL_NATIVE)
600
+ return _mm_mask2_permutex2var_pd(a, idx, k, b);
601
+ #else
602
+ return simde_mm_mask_mov_pd(simde_mm_castsi128_pd(idx), k, simde_mm_permutex2var_pd(a, idx, b));
603
+ #endif
604
+ }
605
+ #if defined(SIMDE_X86_AVX512F_ENABLE_NATIVE_ALIASES) || defined(SIMDE_X86_AVX512VL_ENABLE_NATIVE_ALIASES)
606
+ #undef _mm_mask2_permutex2var_pd
607
+ #define _mm_mask2_permutex2var_pd(a, idx, k, b) simde_mm_mask2_permutex2var_pd(a, idx, k, b)
608
+ #endif
609
+
610
+ SIMDE_FUNCTION_ATTRIBUTES
611
+ simde__m128d
612
+ simde_mm_maskz_permutex2var_pd (simde__mmask8 k, simde__m128d a, simde__m128i idx, simde__m128d b) {
613
+ #if defined(SIMDE_X86_AVX512F_NATIVE) && defined(SIMDE_X86_AVX512VL_NATIVE)
614
+ return _mm_maskz_permutex2var_pd(k, a, idx, b);
615
+ #else
616
+ return simde_mm_maskz_mov_pd(k, simde_mm_permutex2var_pd(a, idx, b));
617
+ #endif
618
+ }
619
+ #if defined(SIMDE_X86_AVX512F_ENABLE_NATIVE_ALIASES) || defined(SIMDE_X86_AVX512VL_ENABLE_NATIVE_ALIASES)
620
+ #undef _mm_maskz_permutex2var_pd
621
+ #define _mm_maskz_permutex2var_pd(k, a, idx, b) simde_mm_maskz_permutex2var_pd(k, a, idx, b)
622
+ #endif
623
+
624
+ SIMDE_FUNCTION_ATTRIBUTES
625
+ simde__m128
626
+ simde_mm_permutex2var_ps (simde__m128 a, simde__m128i idx, simde__m128 b) {
627
+ #if defined(SIMDE_X86_AVX512F_NATIVE) && defined(SIMDE_X86_AVX512VL_NATIVE)
628
+ return _mm_permutex2var_ps(a, idx, b);
629
+ #else
630
+ return simde_mm_castsi128_ps(simde_mm_permutex2var_epi32(simde_mm_castps_si128(a), idx, simde_mm_castps_si128(b)));
631
+ #endif
632
+ }
633
+ #if defined(SIMDE_X86_AVX512F_ENABLE_NATIVE_ALIASES) || defined(SIMDE_X86_AVX512VL_ENABLE_NATIVE_ALIASES)
634
+ #undef _mm_permutex2var_ps
635
+ #define _mm_permutex2var_ps(a, idx, b) simde_mm_permutex2var_ps(a, idx, b)
636
+ #endif
637
+
638
+ SIMDE_FUNCTION_ATTRIBUTES
639
+ simde__m128
640
+ simde_mm_mask_permutex2var_ps (simde__m128 a, simde__mmask8 k, simde__m128i idx, simde__m128 b) {
641
+ #if defined(SIMDE_X86_AVX512F_NATIVE) && defined(SIMDE_X86_AVX512VL_NATIVE)
642
+ return _mm_mask_permutex2var_ps(a, k, idx, b);
643
+ #else
644
+ return simde_mm_mask_mov_ps(a, k, simde_mm_permutex2var_ps(a, idx, b));
645
+ #endif
646
+ }
647
+ #if defined(SIMDE_X86_AVX512F_ENABLE_NATIVE_ALIASES) || defined(SIMDE_X86_AVX512VL_ENABLE_NATIVE_ALIASES)
648
+ #undef _mm_mask_permutex2var_ps
649
+ #define _mm_mask_permutex2var_ps(a, k, idx, b) simde_mm_mask_permutex2var_ps(a, k, idx, b)
650
+ #endif
651
+
652
+ SIMDE_FUNCTION_ATTRIBUTES
653
+ simde__m128
654
+ simde_mm_mask2_permutex2var_ps (simde__m128 a, simde__m128i idx, simde__mmask8 k, simde__m128 b) {
655
+ #if defined(SIMDE_X86_AVX512F_NATIVE) && defined(SIMDE_X86_AVX512VL_NATIVE)
656
+ return _mm_mask2_permutex2var_ps(a, idx, k, b);
657
+ #else
658
+ return simde_mm_mask_mov_ps(simde_mm_castsi128_ps(idx), k, simde_mm_permutex2var_ps(a, idx, b));
659
+ #endif
660
+ }
661
+ #if defined(SIMDE_X86_AVX512F_ENABLE_NATIVE_ALIASES) || defined(SIMDE_X86_AVX512VL_ENABLE_NATIVE_ALIASES)
662
+ #undef _mm_mask2_permutex2var_ps
663
+ #define _mm_mask2_permutex2var_ps(a, idx, k, b) simde_mm_mask2_permutex2var_ps(a, idx, k, b)
664
+ #endif
665
+
666
+ SIMDE_FUNCTION_ATTRIBUTES
667
+ simde__m128
668
+ simde_mm_maskz_permutex2var_ps (simde__mmask8 k, simde__m128 a, simde__m128i idx, simde__m128 b) {
669
+ #if defined(SIMDE_X86_AVX512F_NATIVE) && defined(SIMDE_X86_AVX512VL_NATIVE)
670
+ return _mm_maskz_permutex2var_ps(k, a, idx, b);
671
+ #else
672
+ return simde_mm_maskz_mov_ps(k, simde_mm_permutex2var_ps(a, idx, b));
673
+ #endif
674
+ }
675
+ #if defined(SIMDE_X86_AVX512F_ENABLE_NATIVE_ALIASES) || defined(SIMDE_X86_AVX512VL_ENABLE_NATIVE_ALIASES)
676
+ #undef _mm_maskz_permutex2var_ps
677
+ #define _mm_maskz_permutex2var_ps(k, a, idx, b) simde_mm_maskz_permutex2var_ps(k, a, idx, b)
678
+ #endif
679
+
680
+ SIMDE_FUNCTION_ATTRIBUTES
681
+ simde__m256i
682
+ simde_mm256_permutex2var_epi16 (simde__m256i a, simde__m256i idx, simde__m256i b) {
683
+ #if defined(SIMDE_X86_AVX512BW_NATIVE) && defined(SIMDE_X86_AVX512VL_NATIVE)
684
+ return _mm256_permutex2var_epi16(a, idx, b);
685
+ #elif defined(SIMDE_X86_AVX2_NATIVE)
686
+ __m256i hilo, hilo2, hi, lo, idx2, ta, tb, select;
687
+ const __m256i ones = _mm256_set1_epi16(1);
688
+
689
+ idx2 = _mm256_srli_epi32(idx, 1);
690
+
691
+ ta = _mm256_permutevar8x32_epi32(a, idx2);
692
+ tb = _mm256_permutevar8x32_epi32(b, idx2);
693
+ select = _mm256_slli_epi32(idx2, 28);
694
+ hilo = _mm256_castps_si256(_mm256_blendv_ps(_mm256_castsi256_ps(ta),
695
+ _mm256_castsi256_ps(tb),
696
+ _mm256_castsi256_ps(select)));
697
+ idx2 = _mm256_srli_epi32(idx2, 16);
698
+
699
+ ta = _mm256_permutevar8x32_epi32(a, idx2);
700
+ tb = _mm256_permutevar8x32_epi32(b, idx2);
701
+ select = _mm256_slli_epi32(idx2, 28);
702
+ hilo2 = _mm256_castps_si256(_mm256_blendv_ps(_mm256_castsi256_ps(ta),
703
+ _mm256_castsi256_ps(tb),
704
+ _mm256_castsi256_ps(select)));
705
+
706
+ lo = _mm256_blend_epi16(_mm256_slli_epi32(hilo2, 16), hilo, 0x55);
707
+ hi = _mm256_blend_epi16(hilo2, _mm256_srli_epi32(hilo, 16), 0x55);
708
+
709
+ select = _mm256_cmpeq_epi16(_mm256_and_si256(idx, ones), ones);
710
+ return _mm256_blendv_epi8(lo, hi, select);
711
+ #else
712
+ simde__m256i_private
713
+ a_ = simde__m256i_to_private(a),
714
+ idx_ = simde__m256i_to_private(idx),
715
+ b_ = simde__m256i_to_private(b),
716
+ r_;
717
+
718
+ #if defined(SIMDE_X_PERMUTEX2VAR_USE_GENERIC)
719
+ simde_x_permutex2var(r_.m128i, a_.m128i, idx_.m128i, b_.m128i, 1, 1);
720
+ #else
721
+ SIMDE_VECTORIZE
722
+ for (size_t i = 0 ; i < (sizeof(r_.i16) / sizeof(r_.i16[0])) ; i++) {
723
+ r_.i16[i] = ((idx_.i16[i] & 0x10) ? b_ : a_).i16[idx_.i16[i] & 0x0F];
724
+ }
725
+ #endif
726
+
727
+ return simde__m256i_from_private(r_);
728
+ #endif
729
+ }
730
+ #if defined(SIMDE_X86_AVX512BW_ENABLE_NATIVE_ALIASES) || defined(SIMDE_X86_AVX512VL_ENABLE_NATIVE_ALIASES)
731
+ #undef _mm256_permutex2var_epi16
732
+ #define _mm256_permutex2var_epi16(a, idx, b) simde_mm256_permutex2var_epi16(a, idx, b)
733
+ #endif
734
+
735
+ SIMDE_FUNCTION_ATTRIBUTES
736
+ simde__m256i
737
+ simde_mm256_mask_permutex2var_epi16 (simde__m256i a, simde__mmask16 k, simde__m256i idx, simde__m256i b) {
738
+ #if defined(SIMDE_X86_AVX512BW_NATIVE) && defined(SIMDE_X86_AVX512VL_NATIVE)
739
+ return _mm256_mask_permutex2var_epi16(a, k, idx, b);
740
+ #else
741
+ return simde_mm256_mask_mov_epi16(a, k, simde_mm256_permutex2var_epi16(a, idx, b));
742
+ #endif
743
+ }
744
+ #if defined(SIMDE_X86_AVX512BW_ENABLE_NATIVE_ALIASES) || defined(SIMDE_X86_AVX512VL_ENABLE_NATIVE_ALIASES)
745
+ #undef _mm256_mask_permutex2var_epi16
746
+ #define _mm256_mask_permutex2var_epi16(a, k, idx, b) simde_mm256_mask_permutex2var_epi16(a, k, idx, b)
747
+ #endif
748
+
749
+ SIMDE_FUNCTION_ATTRIBUTES
750
+ simde__m256i
751
+ simde_mm256_mask2_permutex2var_epi16 (simde__m256i a, simde__m256i idx, simde__mmask16 k, simde__m256i b) {
752
+ #if defined(SIMDE_X86_AVX512BW_NATIVE) && defined(SIMDE_X86_AVX512VL_NATIVE)
753
+ return _mm256_mask2_permutex2var_epi16(a, idx, k, b);
754
+ #else
755
+ return simde_mm256_mask_mov_epi16(idx, k, simde_mm256_permutex2var_epi16(a, idx, b));
756
+ #endif
757
+ }
758
+ #if defined(SIMDE_X86_AVX512BW_ENABLE_NATIVE_ALIASES) || defined(SIMDE_X86_AVX512VL_ENABLE_NATIVE_ALIASES)
759
+ #undef _mm256_mask2_permutex2var_epi16
760
+ #define _mm256_mask2_permutex2var_epi16(a, idx, k, b) simde_mm256_mask2_permutex2var_epi16(a, idx, k, b)
761
+ #endif
762
+
763
+ SIMDE_FUNCTION_ATTRIBUTES
764
+ simde__m256i
765
+ simde_mm256_maskz_permutex2var_epi16 (simde__mmask16 k, simde__m256i a, simde__m256i idx, simde__m256i b) {
766
+ #if defined(SIMDE_X86_AVX512BW_NATIVE) && defined(SIMDE_X86_AVX512VL_NATIVE)
767
+ return _mm256_maskz_permutex2var_epi16(k, a, idx, b);
768
+ #else
769
+ return simde_mm256_maskz_mov_epi16(k, simde_mm256_permutex2var_epi16(a, idx, b));
770
+ #endif
771
+ }
772
+ #if defined(SIMDE_X86_AVX512BW_ENABLE_NATIVE_ALIASES) || defined(SIMDE_X86_AVX512VL_ENABLE_NATIVE_ALIASES)
773
+ #undef _mm256_maskz_permutex2var_epi16
774
+ #define _mm256_maskz_permutex2var_epi16(k, a, idx, b) simde_mm256_maskz_permutex2var_epi16(k, a, idx, b)
775
+ #endif
776
+
777
+ SIMDE_FUNCTION_ATTRIBUTES
778
+ simde__m256i
779
+ simde_mm256_permutex2var_epi32 (simde__m256i a, simde__m256i idx, simde__m256i b) {
780
+ #if defined(SIMDE_X86_AVX512F_NATIVE) && defined(SIMDE_X86_AVX512VL_NATIVE)
781
+ return _mm256_permutex2var_epi32(a, idx, b);
782
+ #elif defined(SIMDE_X86_AVX2_NATIVE)
783
+ __m256i ta, tb, select;
784
+ ta = _mm256_permutevar8x32_epi32(a, idx);
785
+ tb = _mm256_permutevar8x32_epi32(b, idx);
786
+ select = _mm256_slli_epi32(idx, 28);
787
+ return _mm256_castps_si256(_mm256_blendv_ps(_mm256_castsi256_ps(ta),
788
+ _mm256_castsi256_ps(tb),
789
+ _mm256_castsi256_ps(select)));
790
+ #else
791
+ simde__m256i_private
792
+ a_ = simde__m256i_to_private(a),
793
+ idx_ = simde__m256i_to_private(idx),
794
+ b_ = simde__m256i_to_private(b),
795
+ r_;
796
+
797
+ #if defined(SIMDE_X_PERMUTEX2VAR_USE_GENERIC)
798
+ simde_x_permutex2var(r_.m128i, a_.m128i, idx_.m128i, b_.m128i, 2, 1);
799
+ #else
800
+ SIMDE_VECTORIZE
801
+ for (size_t i = 0 ; i < (sizeof(r_.i32) / sizeof(r_.i32[0])) ; i++) {
802
+ r_.i32[i] = ((idx_.i32[i] & 8) ? b_ : a_).i32[idx_.i32[i] & 7];
803
+ }
804
+ #endif
805
+
806
+ return simde__m256i_from_private(r_);
807
+ #endif
808
+ }
809
+ #if defined(SIMDE_X86_AVX512F_ENABLE_NATIVE_ALIASES) || defined(SIMDE_X86_AVX512VL_ENABLE_NATIVE_ALIASES)
810
+ #undef _mm256_permutex2var_epi32
811
+ #define _mm256_permutex2var_epi32(a, idx, b) simde_mm256_permutex2var_epi32(a, idx, b)
812
+ #endif
813
+
814
+ SIMDE_FUNCTION_ATTRIBUTES
815
+ simde__m256i
816
+ simde_mm256_mask_permutex2var_epi32 (simde__m256i a, simde__mmask8 k, simde__m256i idx, simde__m256i b) {
817
+ #if defined(SIMDE_X86_AVX512F_NATIVE) && defined(SIMDE_X86_AVX512VL_NATIVE)
818
+ return _mm256_mask_permutex2var_epi32(a, k, idx, b);
819
+ #else
820
+ return simde_mm256_mask_mov_epi32(a, k, simde_mm256_permutex2var_epi32(a, idx, b));
821
+ #endif
822
+ }
823
+ #if defined(SIMDE_X86_AVX512F_ENABLE_NATIVE_ALIASES) || defined(SIMDE_X86_AVX512VL_ENABLE_NATIVE_ALIASES)
824
+ #undef _mm256_mask_permutex2var_epi32
825
+ #define _mm256_mask_permutex2var_epi32(a, k, idx, b) simde_mm256_mask_permutex2var_epi32(a, k, idx, b)
826
+ #endif
827
+
828
+ SIMDE_FUNCTION_ATTRIBUTES
829
+ simde__m256i
830
+ simde_mm256_mask2_permutex2var_epi32 (simde__m256i a, simde__m256i idx, simde__mmask8 k, simde__m256i b) {
831
+ #if defined(SIMDE_X86_AVX512F_NATIVE) && defined(SIMDE_X86_AVX512VL_NATIVE)
832
+ return _mm256_mask2_permutex2var_epi32(a, idx, k, b);
833
+ #else
834
+ return simde_mm256_mask_mov_epi32(idx, k, simde_mm256_permutex2var_epi32(a, idx, b));
835
+ #endif
836
+ }
837
+ #if defined(SIMDE_X86_AVX512F_ENABLE_NATIVE_ALIASES) || defined(SIMDE_X86_AVX512VL_ENABLE_NATIVE_ALIASES)
838
+ #undef _mm256_mask2_permutex2var_epi32
839
+ #define _mm256_mask2_permutex2var_epi32(a, idx, k, b) simde_mm256_mask2_permutex2var_epi32(a, idx, k, b)
840
+ #endif
841
+
842
+ SIMDE_FUNCTION_ATTRIBUTES
843
+ simde__m256i
844
+ simde_mm256_maskz_permutex2var_epi32 (simde__mmask8 k, simde__m256i a, simde__m256i idx, simde__m256i b) {
845
+ #if defined(SIMDE_X86_AVX512F_NATIVE) && defined(SIMDE_X86_AVX512VL_NATIVE)
846
+ return _mm256_maskz_permutex2var_epi32(k, a, idx, b);
847
+ #else
848
+ return simde_mm256_maskz_mov_epi32(k, simde_mm256_permutex2var_epi32(a, idx, b));
849
+ #endif
850
+ }
851
+ #if defined(SIMDE_X86_AVX512F_ENABLE_NATIVE_ALIASES) || defined(SIMDE_X86_AVX512VL_ENABLE_NATIVE_ALIASES)
852
+ #undef _mm256_maskz_permutex2var_epi32
853
+ #define _mm256_maskz_permutex2var_epi32(k, a, idx, b) simde_mm256_maskz_permutex2var_epi32(k, a, idx, b)
854
+ #endif
855
+
856
+ SIMDE_FUNCTION_ATTRIBUTES
857
+ simde__m256i
858
+ simde_mm256_permutex2var_epi64 (simde__m256i a, simde__m256i idx, simde__m256i b) {
859
+ #if defined(SIMDE_X86_AVX512F_NATIVE) && defined(SIMDE_X86_AVX512VL_NATIVE)
860
+ return _mm256_permutex2var_epi64(a, idx, b);
861
+ #else
862
+ simde__m256i_private
863
+ a_ = simde__m256i_to_private(a),
864
+ idx_ = simde__m256i_to_private(idx),
865
+ b_ = simde__m256i_to_private(b),
866
+ r_;
867
+
868
+ SIMDE_VECTORIZE
869
+ for (size_t i = 0 ; i < (sizeof(r_.i64) / sizeof(r_.i64[0])) ; i++) {
870
+ r_.i64[i] = ((idx_.i64[i] & 4) ? b_ : a_).i64[idx_.i64[i] & 3];
871
+ }
872
+
873
+ return simde__m256i_from_private(r_);
874
+ #endif
875
+ }
876
+ #if defined(SIMDE_X86_AVX512F_ENABLE_NATIVE_ALIASES) || defined(SIMDE_X86_AVX512VL_ENABLE_NATIVE_ALIASES)
877
+ #undef _mm256_permutex2var_epi64
878
+ #define _mm256_permutex2var_epi64(a, idx, b) simde_mm256_permutex2var_epi64(a, idx, b)
879
+ #endif
880
+
881
+ SIMDE_FUNCTION_ATTRIBUTES
882
+ simde__m256i
883
+ simde_mm256_mask_permutex2var_epi64 (simde__m256i a, simde__mmask8 k, simde__m256i idx, simde__m256i b) {
884
+ #if defined(SIMDE_X86_AVX512F_NATIVE) && defined(SIMDE_X86_AVX512VL_NATIVE)
885
+ return _mm256_mask_permutex2var_epi64(a, k, idx, b);
886
+ #else
887
+ return simde_mm256_mask_mov_epi64(a, k, simde_mm256_permutex2var_epi64(a, idx, b));
888
+ #endif
889
+ }
890
+ #if defined(SIMDE_X86_AVX512F_ENABLE_NATIVE_ALIASES) || defined(SIMDE_X86_AVX512VL_ENABLE_NATIVE_ALIASES)
891
+ #undef _mm256_mask_permutex2var_epi64
892
+ #define _mm256_mask_permutex2var_epi64(a, k, idx, b) simde_mm256_mask_permutex2var_epi64(a, k, idx, b)
893
+ #endif
894
+
895
+ SIMDE_FUNCTION_ATTRIBUTES
896
+ simde__m256i
897
+ simde_mm256_mask2_permutex2var_epi64 (simde__m256i a, simde__m256i idx, simde__mmask8 k, simde__m256i b) {
898
+ #if defined(SIMDE_X86_AVX512F_NATIVE) && defined(SIMDE_X86_AVX512VL_NATIVE)
899
+ return _mm256_mask2_permutex2var_epi64(a, idx, k, b);
900
+ #else
901
+ return simde_mm256_mask_mov_epi64(idx, k, simde_mm256_permutex2var_epi64(a, idx, b));
902
+ #endif
903
+ }
904
+ #if defined(SIMDE_X86_AVX512F_ENABLE_NATIVE_ALIASES) || defined(SIMDE_X86_AVX512VL_ENABLE_NATIVE_ALIASES)
905
+ #undef _mm256_mask2_permutex2var_epi64
906
+ #define _mm256_mask2_permutex2var_epi64(a, idx, k, b) simde_mm256_mask2_permutex2var_epi64(a, idx, k, b)
907
+ #endif
908
+
909
+ SIMDE_FUNCTION_ATTRIBUTES
910
+ simde__m256i
911
+ simde_mm256_maskz_permutex2var_epi64 (simde__mmask8 k, simde__m256i a, simde__m256i idx, simde__m256i b) {
912
+ #if defined(SIMDE_X86_AVX512F_NATIVE) && defined(SIMDE_X86_AVX512VL_NATIVE)
913
+ return _mm256_maskz_permutex2var_epi64(k, a, idx, b);
914
+ #else
915
+ return simde_mm256_maskz_mov_epi64(k, simde_mm256_permutex2var_epi64(a, idx, b));
916
+ #endif
917
+ }
918
+ #if defined(SIMDE_X86_AVX512F_ENABLE_NATIVE_ALIASES) || defined(SIMDE_X86_AVX512VL_ENABLE_NATIVE_ALIASES)
919
+ #undef _mm256_maskz_permutex2var_epi64
920
+ #define _mm256_maskz_permutex2var_epi64(k, a, idx, b) simde_mm256_maskz_permutex2var_epi64(k, a, idx, b)
921
+ #endif
922
+
923
+ SIMDE_FUNCTION_ATTRIBUTES
924
+ simde__m256i
925
+ simde_mm256_permutex2var_epi8 (simde__m256i a, simde__m256i idx, simde__m256i b) {
926
+ #if defined(SIMDE_X86_AVX512VBMI_NATIVE) && defined(SIMDE_X86_AVX512VL_NATIVE)
927
+ return _mm256_permutex2var_epi8(a, idx, b);
928
+ #elif defined(SIMDE_X86_AVX512BW_NATIVE)
929
+ return _mm512_cvtepi16_epi8(_mm512_permutex2var_epi16(_mm512_cvtepu8_epi16(a), _mm512_cvtepu8_epi16(idx), _mm512_cvtepu8_epi16(b)));
930
+ #elif defined(SIMDE_X86_AVX2_NATIVE)
931
+ __m256i t0, t1, index, select0x10, select0x20, a01, b01;
932
+ const __m256i mask = _mm256_set1_epi8(0x3F);
933
+ const __m256i a0 = _mm256_permute4x64_epi64(a, (1 << 6) + (0 << 4) + (1 << 2) + (0 << 0));
934
+ const __m256i a1 = _mm256_permute4x64_epi64(a, (3 << 6) + (2 << 4) + (3 << 2) + (2 << 0));
935
+ const __m256i b0 = _mm256_permute4x64_epi64(b, (1 << 6) + (0 << 4) + (1 << 2) + (0 << 0));
936
+ const __m256i b1 = _mm256_permute4x64_epi64(b, (3 << 6) + (2 << 4) + (3 << 2) + (2 << 0));
937
+
938
+ index = _mm256_and_si256(idx, mask);
939
+ t0 = _mm256_shuffle_epi8(a0, index);
940
+ t1 = _mm256_shuffle_epi8(a1, index);
941
+ select0x10 = _mm256_slli_epi64(index, 3);
942
+ a01 = _mm256_blendv_epi8(t0, t1, select0x10);
943
+ t0 = _mm256_shuffle_epi8(b0, index);
944
+ t1 = _mm256_shuffle_epi8(b1, index);
945
+ b01 = _mm256_blendv_epi8(t0, t1, select0x10);
946
+ select0x20 = _mm256_slli_epi64(index, 2);
947
+ return _mm256_blendv_epi8(a01, b01, select0x20);
948
+ #else
949
+ simde__m256i_private
950
+ a_ = simde__m256i_to_private(a),
951
+ idx_ = simde__m256i_to_private(idx),
952
+ b_ = simde__m256i_to_private(b),
953
+ r_;
954
+
955
+ #if defined(SIMDE_X_PERMUTEX2VAR_USE_GENERIC)
956
+ simde_x_permutex2var(r_.m128i, a_.m128i, idx_.m128i, b_.m128i, 0, 1);
957
+ #else
958
+ SIMDE_VECTORIZE
959
+ for (size_t i = 0 ; i < (sizeof(r_.i8) / sizeof(r_.i8[0])) ; i++) {
960
+ r_.i8[i] = ((idx_.i8[i] & 0x20) ? b_ : a_).i8[idx_.i8[i] & 0x1F];
961
+ }
962
+ #endif
963
+
964
+ return simde__m256i_from_private(r_);
965
+ #endif
966
+ }
967
+ #if defined(SIMDE_X86_AVX512VBMI_ENABLE_NATIVE_ALIASES) || defined(SIMDE_X86_AVX512VL_ENABLE_NATIVE_ALIASES)
968
+ #undef _mm256_permutex2var_epi8
969
+ #define _mm256_permutex2var_epi8(a, idx, b) simde_mm256_permutex2var_epi8(a, idx, b)
970
+ #endif
971
+
972
+ SIMDE_FUNCTION_ATTRIBUTES
973
+ simde__m256i
974
+ simde_mm256_mask_permutex2var_epi8 (simde__m256i a, simde__mmask32 k, simde__m256i idx, simde__m256i b) {
975
+ #if defined(SIMDE_X86_AVX512VBMI_NATIVE) && defined(SIMDE_X86_AVX512VL_NATIVE)
976
+ return _mm256_mask_permutex2var_epi8(a, k, idx, b);
977
+ #else
978
+ return simde_mm256_mask_mov_epi8(a, k, simde_mm256_permutex2var_epi8(a, idx, b));
979
+ #endif
980
+ }
981
+ #if defined(SIMDE_X86_AVX512VBMI_ENABLE_NATIVE_ALIASES) || defined(SIMDE_X86_AVX512VL_ENABLE_NATIVE_ALIASES)
982
+ #undef _mm256_mask_permutex2var_epi8
983
+ #define _mm256_mask_permutex2var_epi8(a, k, idx, b) simde_mm256_mask_permutex2var_epi8(a, k, idx, b)
984
+ #endif
985
+
986
+ SIMDE_FUNCTION_ATTRIBUTES
987
+ simde__m256i
988
+ simde_mm256_mask2_permutex2var_epi8 (simde__m256i a, simde__m256i idx, simde__mmask32 k, simde__m256i b) {
989
+ #if defined(SIMDE_X86_AVX512VBMI_NATIVE) && defined(SIMDE_X86_AVX512VL_NATIVE)
990
+ return _mm256_mask2_permutex2var_epi8(a, idx, k, b);
991
+ #else
992
+ return simde_mm256_mask_mov_epi8(idx, k, simde_mm256_permutex2var_epi8(a, idx, b));
993
+ #endif
994
+ }
995
+ #if defined(SIMDE_X86_AVX512VBMI_ENABLE_NATIVE_ALIASES) || defined(SIMDE_X86_AVX512VL_ENABLE_NATIVE_ALIASES)
996
+ #undef _mm256_mask2_permutex2var_epi8
997
+ #define _mm256_mask2_permutex2var_epi8(a, idx, k, b) simde_mm256_mask2_permutex2var_epi8(a, idx, k, b)
998
+ #endif
999
+
1000
+ SIMDE_FUNCTION_ATTRIBUTES
1001
+ simde__m256i
1002
+ simde_mm256_maskz_permutex2var_epi8 (simde__mmask32 k, simde__m256i a, simde__m256i idx, simde__m256i b) {
1003
+ #if defined(SIMDE_X86_AVX512VBMI_NATIVE) && defined(SIMDE_X86_AVX512VL_NATIVE)
1004
+ return _mm256_maskz_permutex2var_epi8(k, a, idx, b);
1005
+ #else
1006
+ return simde_mm256_maskz_mov_epi8(k, simde_mm256_permutex2var_epi8(a, idx, b));
1007
+ #endif
1008
+ }
1009
+ #if defined(SIMDE_X86_AVX512VBMI_ENABLE_NATIVE_ALIASES) || defined(SIMDE_X86_AVX512VL_ENABLE_NATIVE_ALIASES)
1010
+ #undef _mm256_maskz_permutex2var_epi8
1011
+ #define _mm256_maskz_permutex2var_epi8(k, a, idx, b) simde_mm256_maskz_permutex2var_epi8(k, a, idx, b)
1012
+ #endif
1013
+
1014
+ SIMDE_FUNCTION_ATTRIBUTES
1015
+ simde__m256d
1016
+ simde_mm256_permutex2var_pd (simde__m256d a, simde__m256i idx, simde__m256d b) {
1017
+ #if defined(SIMDE_X86_AVX512BW_NATIVE) && defined(SIMDE_X86_AVX512VL_NATIVE)
1018
+ return _mm256_permutex2var_pd(a, idx, b);
1019
+ #else
1020
+ return simde_mm256_castsi256_pd(simde_mm256_permutex2var_epi64(simde_mm256_castpd_si256(a), idx, simde_mm256_castpd_si256(b)));
1021
+ #endif
1022
+ }
1023
+ #if defined(SIMDE_X86_AVX512BW_ENABLE_NATIVE_ALIASES) || defined(SIMDE_X86_AVX512VL_ENABLE_NATIVE_ALIASES)
1024
+ #undef _mm256_permutex2var_pd
1025
+ #define _mm256_permutex2var_pd(a, idx, b) simde_mm256_permutex2var_pd(a, idx, b)
1026
+ #endif
1027
+
1028
+ SIMDE_FUNCTION_ATTRIBUTES
1029
+ simde__m256d
1030
+ simde_mm256_mask_permutex2var_pd (simde__m256d a, simde__mmask8 k, simde__m256i idx, simde__m256d b) {
1031
+ #if defined(SIMDE_X86_AVX512F_NATIVE) && defined(SIMDE_X86_AVX512VL_NATIVE)
1032
+ return _mm256_mask_permutex2var_pd(a, k, idx, b);
1033
+ #else
1034
+ return simde_mm256_mask_mov_pd(a, k, simde_mm256_permutex2var_pd(a, idx, b));
1035
+ #endif
1036
+ }
1037
+ #if defined(SIMDE_X86_AVX512F_ENABLE_NATIVE_ALIASES) || defined(SIMDE_X86_AVX512VL_ENABLE_NATIVE_ALIASES)
1038
+ #undef _mm256_mask_permutex2var_pd
1039
+ #define _mm256_mask_permutex2var_pd(a, k, idx, b) simde_mm256_mask_permutex2var_pd(a, k, idx, b)
1040
+ #endif
1041
+
1042
+ SIMDE_FUNCTION_ATTRIBUTES
1043
+ simde__m256d
1044
+ simde_mm256_mask2_permutex2var_pd (simde__m256d a, simde__m256i idx, simde__mmask8 k, simde__m256d b) {
1045
+ #if defined(SIMDE_X86_AVX512F_NATIVE) && defined(SIMDE_X86_AVX512VL_NATIVE)
1046
+ return _mm256_mask2_permutex2var_pd(a, idx, k, b);
1047
+ #else
1048
+ return simde_mm256_mask_mov_pd(simde_mm256_castsi256_pd(idx), k, simde_mm256_permutex2var_pd(a, idx, b));
1049
+ #endif
1050
+ }
1051
+ #if defined(SIMDE_X86_AVX512F_ENABLE_NATIVE_ALIASES) || defined(SIMDE_X86_AVX512VL_ENABLE_NATIVE_ALIASES)
1052
+ #undef _mm256_mask2_permutex2var_pd
1053
+ #define _mm256_mask2_permutex2var_pd(a, idx, k, b) simde_mm256_mask2_permutex2var_pd(a, idx, k, b)
1054
+ #endif
1055
+
1056
+ SIMDE_FUNCTION_ATTRIBUTES
1057
+ simde__m256d
1058
+ simde_mm256_maskz_permutex2var_pd (simde__mmask8 k, simde__m256d a, simde__m256i idx, simde__m256d b) {
1059
+ #if defined(SIMDE_X86_AVX512F_NATIVE) && defined(SIMDE_X86_AVX512VL_NATIVE)
1060
+ return _mm256_maskz_permutex2var_pd(k, a, idx, b);
1061
+ #else
1062
+ return simde_mm256_maskz_mov_pd(k, simde_mm256_permutex2var_pd(a, idx, b));
1063
+ #endif
1064
+ }
1065
+ #if defined(SIMDE_X86_AVX512F_ENABLE_NATIVE_ALIASES) || defined(SIMDE_X86_AVX512VL_ENABLE_NATIVE_ALIASES)
1066
+ #undef _mm256_maskz_permutex2var_pd
1067
+ #define _mm256_maskz_permutex2var_pd(k, a, idx, b) simde_mm256_maskz_permutex2var_pd(k, a, idx, b)
1068
+ #endif
1069
+
1070
+ SIMDE_FUNCTION_ATTRIBUTES
1071
+ simde__m256
1072
+ simde_mm256_permutex2var_ps (simde__m256 a, simde__m256i idx, simde__m256 b) {
1073
+ #if defined(SIMDE_X86_AVX512F_NATIVE) && defined(SIMDE_X86_AVX512VL_NATIVE)
1074
+ return _mm256_permutex2var_ps(a, idx, b);
1075
+ #else
1076
+ return simde_mm256_castsi256_ps(simde_mm256_permutex2var_epi32(simde_mm256_castps_si256(a), idx, simde_mm256_castps_si256(b)));
1077
+ #endif
1078
+ }
1079
+ #if defined(SIMDE_X86_AVX512F_ENABLE_NATIVE_ALIASES) || defined(SIMDE_X86_AVX512VL_ENABLE_NATIVE_ALIASES)
1080
+ #undef _mm256_permutex2var_ps
1081
+ #define _mm256_permutex2var_ps(a, idx, b) simde_mm256_permutex2var_ps(a, idx, b)
1082
+ #endif
1083
+
1084
+ SIMDE_FUNCTION_ATTRIBUTES
1085
+ simde__m256
1086
+ simde_mm256_mask_permutex2var_ps (simde__m256 a, simde__mmask8 k, simde__m256i idx, simde__m256 b) {
1087
+ #if defined(SIMDE_X86_AVX512F_NATIVE) && defined(SIMDE_X86_AVX512VL_NATIVE)
1088
+ return _mm256_mask_permutex2var_ps(a, k, idx, b);
1089
+ #else
1090
+ return simde_mm256_mask_mov_ps(a, k, simde_mm256_permutex2var_ps(a, idx, b));
1091
+ #endif
1092
+ }
1093
+ #if defined(SIMDE_X86_AVX512F_ENABLE_NATIVE_ALIASES) || defined(SIMDE_X86_AVX512VL_ENABLE_NATIVE_ALIASES)
1094
+ #undef _mm256_mask_permutex2var_ps
1095
+ #define _mm256_mask_permutex2var_ps(a, k, idx, b) simde_mm256_mask_permutex2var_ps(a, k, idx, b)
1096
+ #endif
1097
+
1098
+ SIMDE_FUNCTION_ATTRIBUTES
1099
+ simde__m256
1100
+ simde_mm256_mask2_permutex2var_ps (simde__m256 a, simde__m256i idx, simde__mmask8 k, simde__m256 b) {
1101
+ #if defined(SIMDE_X86_AVX512F_NATIVE) && defined(SIMDE_X86_AVX512VL_NATIVE)
1102
+ return _mm256_mask2_permutex2var_ps(a, idx, k, b);
1103
+ #else
1104
+ return simde_mm256_mask_mov_ps(simde_mm256_castsi256_ps(idx), k, simde_mm256_permutex2var_ps(a, idx, b));
1105
+ #endif
1106
+ }
1107
+ #if defined(SIMDE_X86_AVX512F_ENABLE_NATIVE_ALIASES) || defined(SIMDE_X86_AVX512VL_ENABLE_NATIVE_ALIASES)
1108
+ #undef _mm256_mask2_permutex2var_ps
1109
+ #define _mm256_mask2_permutex2var_ps(a, idx, k, b) simde_mm256_mask2_permutex2var_ps(a, idx, k, b)
1110
+ #endif
1111
+
1112
+ SIMDE_FUNCTION_ATTRIBUTES
1113
+ simde__m256
1114
+ simde_mm256_maskz_permutex2var_ps (simde__mmask8 k, simde__m256 a, simde__m256i idx, simde__m256 b) {
1115
+ #if defined(SIMDE_X86_AVX512F_NATIVE) && defined(SIMDE_X86_AVX512VL_NATIVE)
1116
+ return _mm256_maskz_permutex2var_ps(k, a, idx, b);
1117
+ #else
1118
+ return simde_mm256_maskz_mov_ps(k, simde_mm256_permutex2var_ps(a, idx, b));
1119
+ #endif
1120
+ }
1121
+ #if defined(SIMDE_X86_AVX512F_ENABLE_NATIVE_ALIASES) || defined(SIMDE_X86_AVX512VL_ENABLE_NATIVE_ALIASES)
1122
+ #undef _mm256_maskz_permutex2var_ps
1123
+ #define _mm256_maskz_permutex2var_ps(k, a, idx, b) simde_mm256_maskz_permutex2var_ps(k, a, idx, b)
1124
+ #endif
1125
+
1126
+ SIMDE_FUNCTION_ATTRIBUTES
1127
+ simde__m512i
1128
+ simde_mm512_permutex2var_epi16 (simde__m512i a, simde__m512i idx, simde__m512i b) {
1129
+ #if defined(SIMDE_X86_AVX512BW_NATIVE)
1130
+ return _mm512_permutex2var_epi16(a, idx, b);
1131
+ #else
1132
+ simde__m512i_private
1133
+ a_ = simde__m512i_to_private(a),
1134
+ idx_ = simde__m512i_to_private(idx),
1135
+ b_ = simde__m512i_to_private(b),
1136
+ r_;
1137
+
1138
+ #if defined(SIMDE_X86_AVX2_NATIVE)
1139
+ __m256i hilo, hilo1, hilo2, hi, lo, idx1, idx2, ta, tb, select;
1140
+ const __m256i ones = _mm256_set1_epi16(1);
1141
+
1142
+ SIMDE_VECTORIZE
1143
+ for (size_t i = 0 ; i < (sizeof(r_.m256i_private) / sizeof(r_.m256i_private[0])) ; i++) {
1144
+ idx1 = idx_.m256i[i];
1145
+ idx2 = _mm256_srli_epi32(idx1, 1);
1146
+
1147
+ select = _mm256_slli_epi32(idx2, 27);
1148
+ ta = _mm256_permutevar8x32_epi32(a_.m256i[0], idx2);
1149
+ tb = _mm256_permutevar8x32_epi32(b_.m256i[0], idx2);
1150
+ hilo = _mm256_castps_si256(_mm256_blendv_ps(_mm256_castsi256_ps(ta),
1151
+ _mm256_castsi256_ps(tb),
1152
+ _mm256_castsi256_ps(select)));
1153
+ ta = _mm256_permutevar8x32_epi32(a_.m256i[1], idx2);
1154
+ tb = _mm256_permutevar8x32_epi32(b_.m256i[1], idx2);
1155
+ hilo1 = _mm256_castps_si256(_mm256_blendv_ps(_mm256_castsi256_ps(ta),
1156
+ _mm256_castsi256_ps(tb),
1157
+ _mm256_castsi256_ps(select)));
1158
+ select = _mm256_add_epi32(select, select);
1159
+ hilo1 = _mm256_castps_si256(_mm256_blendv_ps(_mm256_castsi256_ps(hilo),
1160
+ _mm256_castsi256_ps(hilo1),
1161
+ _mm256_castsi256_ps(select)));
1162
+
1163
+ idx2 = _mm256_srli_epi32(idx2, 16);
1164
+
1165
+ select = _mm256_slli_epi32(idx2, 27);
1166
+ ta = _mm256_permutevar8x32_epi32(a_.m256i[0], idx2);
1167
+ tb = _mm256_permutevar8x32_epi32(b_.m256i[0], idx2);
1168
+ hilo = _mm256_castps_si256(_mm256_blendv_ps(_mm256_castsi256_ps(ta),
1169
+ _mm256_castsi256_ps(tb),
1170
+ _mm256_castsi256_ps(select)));
1171
+ ta = _mm256_permutevar8x32_epi32(a_.m256i[1], idx2);
1172
+ tb = _mm256_permutevar8x32_epi32(b_.m256i[1], idx2);
1173
+ hilo2 = _mm256_castps_si256(_mm256_blendv_ps(_mm256_castsi256_ps(ta),
1174
+ _mm256_castsi256_ps(tb),
1175
+ _mm256_castsi256_ps(select)));
1176
+ select = _mm256_add_epi32(select, select);
1177
+ hilo2 = _mm256_castps_si256(_mm256_blendv_ps(_mm256_castsi256_ps(hilo),
1178
+ _mm256_castsi256_ps(hilo2),
1179
+ _mm256_castsi256_ps(select)));
1180
+
1181
+ lo = _mm256_blend_epi16(_mm256_slli_epi32(hilo2, 16), hilo1, 0x55);
1182
+ hi = _mm256_blend_epi16(hilo2, _mm256_srli_epi32(hilo1, 16), 0x55);
1183
+
1184
+ select = _mm256_cmpeq_epi16(_mm256_and_si256(idx1, ones), ones);
1185
+ r_.m256i[i] = _mm256_blendv_epi8(lo, hi, select);
1186
+ }
1187
+ #elif defined(SIMDE_X_PERMUTEX2VAR_USE_GENERIC)
1188
+ simde_x_permutex2var(r_.m128i, a_.m128i, idx_.m128i, b_.m128i, 1, 2);
1189
+ #else
1190
+ SIMDE_VECTORIZE
1191
+ for (size_t i = 0 ; i < (sizeof(r_.i16) / sizeof(r_.i16[0])) ; i++) {
1192
+ r_.i16[i] = ((idx_.i16[i] & 0x20) ? b_ : a_).i16[idx_.i16[i] & 0x1F];
1193
+ }
1194
+ #endif
1195
+
1196
+ return simde__m512i_from_private(r_);
1197
+ #endif
1198
+ }
1199
+ #if defined(SIMDE_X86_AVX512BW_ENABLE_NATIVE_ALIASES) || defined(SIMDE_X86_AVX512VL_ENABLE_NATIVE_ALIASES)
1200
+ #undef _mm512_permutex2var_epi16
1201
+ #define _mm512_permutex2var_epi16(a, idx, b) simde_mm512_permutex2var_epi16(a, idx, b)
1202
+ #endif
1203
+
1204
+ SIMDE_FUNCTION_ATTRIBUTES
1205
+ simde__m512i
1206
+ simde_mm512_mask_permutex2var_epi16 (simde__m512i a, simde__mmask32 k, simde__m512i idx, simde__m512i b) {
1207
+ #if defined(SIMDE_X86_AVX512BW_NATIVE)
1208
+ return _mm512_mask_permutex2var_epi16(a, k, idx, b);
1209
+ #else
1210
+ return simde_mm512_mask_mov_epi16(a, k, simde_mm512_permutex2var_epi16(a, idx, b));
1211
+ #endif
1212
+ }
1213
+ #if defined(SIMDE_X86_AVX512BW_ENABLE_NATIVE_ALIASES)
1214
+ #undef _mm512_mask_permutex2var_epi16
1215
+ #define _mm512_mask_permutex2var_epi16(a, k, idx, b) simde_mm512_mask_permutex2var_epi16(a, k, idx, b)
1216
+ #endif
1217
+
1218
+ SIMDE_FUNCTION_ATTRIBUTES
1219
+ simde__m512i
1220
+ simde_mm512_mask2_permutex2var_epi16 (simde__m512i a, simde__m512i idx, simde__mmask32 k, simde__m512i b) {
1221
+ #if defined(SIMDE_X86_AVX512BW_NATIVE)
1222
+ return _mm512_mask2_permutex2var_epi16(a, idx, k, b);
1223
+ #else
1224
+ return simde_mm512_mask_mov_epi16(idx, k, simde_mm512_permutex2var_epi16(a, idx, b));
1225
+ #endif
1226
+ }
1227
+ #if defined(SIMDE_X86_AVX512BW_ENABLE_NATIVE_ALIASES)
1228
+ #undef _mm512_mask2_permutex2var_epi16
1229
+ #define _mm512_mask2_permutex2var_epi16(a, idx, k, b) simde_mm512_mask2_permutex2var_epi16(a, idx, k, b)
1230
+ #endif
1231
+
1232
+ SIMDE_FUNCTION_ATTRIBUTES
1233
+ simde__m512i
1234
+ simde_mm512_maskz_permutex2var_epi16 (simde__mmask32 k, simde__m512i a, simde__m512i idx, simde__m512i b) {
1235
+ #if defined(SIMDE_X86_AVX512BW_NATIVE)
1236
+ return _mm512_maskz_permutex2var_epi16(k, a, idx, b);
1237
+ #else
1238
+ return simde_mm512_maskz_mov_epi16(k, simde_mm512_permutex2var_epi16(a, idx, b));
1239
+ #endif
1240
+ }
1241
+ #if defined(SIMDE_X86_AVX512BW_ENABLE_NATIVE_ALIASES)
1242
+ #undef _mm512_maskz_permutex2var_epi16
1243
+ #define _mm512_maskz_permutex2var_epi16(k, a, idx, b) simde_mm512_maskz_permutex2var_epi16(k, a, idx, b)
1244
+ #endif
1245
+
1246
+ SIMDE_FUNCTION_ATTRIBUTES
1247
+ simde__m512i
1248
+ simde_mm512_permutex2var_epi32 (simde__m512i a, simde__m512i idx, simde__m512i b) {
1249
+ #if defined(SIMDE_X86_AVX512F_NATIVE)
1250
+ return _mm512_permutex2var_epi32(a, idx, b);
1251
+ #else
1252
+ simde__m512i_private
1253
+ a_ = simde__m512i_to_private(a),
1254
+ idx_ = simde__m512i_to_private(idx),
1255
+ b_ = simde__m512i_to_private(b),
1256
+ r_;
1257
+
1258
+ #if defined(SIMDE_X86_AVX2_NATIVE)
1259
+ __m256i index, t0, t1, a01, b01, select;
1260
+ SIMDE_VECTORIZE
1261
+ for (size_t i = 0 ; i < (sizeof(r_.m256i_private) / sizeof(r_.m256i_private[0])) ; i++) {
1262
+ index = idx_.m256i[i];
1263
+ t0 = _mm256_permutevar8x32_epi32(a_.m256i[0], index);
1264
+ t1 = _mm256_permutevar8x32_epi32(a_.m256i[1], index);
1265
+ select = _mm256_slli_epi32(index, 28);
1266
+ a01 = _mm256_castps_si256(_mm256_blendv_ps(_mm256_castsi256_ps(t0),
1267
+ _mm256_castsi256_ps(t1),
1268
+ _mm256_castsi256_ps(select)));
1269
+ t0 = _mm256_permutevar8x32_epi32(b_.m256i[0], index);
1270
+ t1 = _mm256_permutevar8x32_epi32(b_.m256i[1], index);
1271
+ b01 = _mm256_castps_si256(_mm256_blendv_ps(_mm256_castsi256_ps(t0),
1272
+ _mm256_castsi256_ps(t1),
1273
+ _mm256_castsi256_ps(select)));
1274
+ select = _mm256_slli_epi32(index, 27);
1275
+ r_.m256i[i] = _mm256_castps_si256(_mm256_blendv_ps(_mm256_castsi256_ps(a01),
1276
+ _mm256_castsi256_ps(b01),
1277
+ _mm256_castsi256_ps(select)));
1278
+ }
1279
+ #elif defined(SIMDE_X_PERMUTEX2VAR_USE_GENERIC)
1280
+ simde_x_permutex2var(r_.m128i, a_.m128i, idx_.m128i, b_.m128i, 2, 2);
1281
+ #else
1282
+ SIMDE_VECTORIZE
1283
+ for (size_t i = 0 ; i < (sizeof(r_.i32) / sizeof(r_.i32[0])) ; i++) {
1284
+ r_.i32[i] = ((idx_.i32[i] & 0x10) ? b_ : a_).i32[idx_.i32[i] & 0x0F];
1285
+ }
1286
+ #endif
1287
+
1288
+ return simde__m512i_from_private(r_);
1289
+ #endif
1290
+ }
1291
+ #if defined(SIMDE_X86_AVX512F_ENABLE_NATIVE_ALIASES)
1292
+ #undef _mm512_permutex2var_epi32
1293
+ #define _mm512_permutex2var_epi32(a, idx, b) simde_mm512_permutex2var_epi32(a, idx, b)
1294
+ #endif
1295
+
1296
+ SIMDE_FUNCTION_ATTRIBUTES
1297
+ simde__m512i
1298
+ simde_mm512_mask_permutex2var_epi32 (simde__m512i a, simde__mmask16 k, simde__m512i idx, simde__m512i b) {
1299
+ #if defined(SIMDE_X86_AVX512F_NATIVE)
1300
+ return _mm512_mask_permutex2var_epi32(a, k, idx, b);
1301
+ #else
1302
+ return simde_mm512_mask_mov_epi32(a, k, simde_mm512_permutex2var_epi32(a, idx, b));
1303
+ #endif
1304
+ }
1305
+ #if defined(SIMDE_X86_AVX512F_ENABLE_NATIVE_ALIASES)
1306
+ #undef _mm512_mask_permutex2var_epi32
1307
+ #define _mm512_mask_permutex2var_epi32(a, k, idx, b) simde_mm512_mask_permutex2var_epi32(a, k, idx, b)
1308
+ #endif
1309
+
1310
+ SIMDE_FUNCTION_ATTRIBUTES
1311
+ simde__m512i
1312
+ simde_mm512_mask2_permutex2var_epi32 (simde__m512i a, simde__m512i idx, simde__mmask16 k, simde__m512i b) {
1313
+ #if defined(SIMDE_X86_AVX512F_NATIVE)
1314
+ return _mm512_mask2_permutex2var_epi32(a, idx, k, b);
1315
+ #else
1316
+ return simde_mm512_mask_mov_epi32(idx, k, simde_mm512_permutex2var_epi32(a, idx, b));
1317
+ #endif
1318
+ }
1319
+ #if defined(SIMDE_X86_AVX512F_ENABLE_NATIVE_ALIASES)
1320
+ #undef _mm512_mask2_permutex2var_epi32
1321
+ #define _mm512_mask2_permutex2var_epi32(a, idx, k, b) simde_mm512_mask2_permutex2var_epi32(a, idx, k, b)
1322
+ #endif
1323
+
1324
+ SIMDE_FUNCTION_ATTRIBUTES
1325
+ simde__m512i
1326
+ simde_mm512_maskz_permutex2var_epi32 (simde__mmask16 k, simde__m512i a, simde__m512i idx, simde__m512i b) {
1327
+ #if defined(SIMDE_X86_AVX512F_NATIVE)
1328
+ return _mm512_maskz_permutex2var_epi32(k, a, idx, b);
1329
+ #else
1330
+ return simde_mm512_maskz_mov_epi32(k, simde_mm512_permutex2var_epi32(a, idx, b));
1331
+ #endif
1332
+ }
1333
+ #if defined(SIMDE_X86_AVX512F_ENABLE_NATIVE_ALIASES)
1334
+ #undef _mm512_maskz_permutex2var_epi32
1335
+ #define _mm512_maskz_permutex2var_epi32(k, a, idx, b) simde_mm512_maskz_permutex2var_epi32(k, a, idx, b)
1336
+ #endif
1337
+
1338
+ SIMDE_FUNCTION_ATTRIBUTES
1339
+ simde__m512i
1340
+ simde_mm512_permutex2var_epi64 (simde__m512i a, simde__m512i idx, simde__m512i b) {
1341
+ #if defined(SIMDE_X86_AVX512F_NATIVE)
1342
+ return _mm512_permutex2var_epi64(a, idx, b);
1343
+ #else
1344
+ simde__m512i_private
1345
+ a_ = simde__m512i_to_private(a),
1346
+ idx_ = simde__m512i_to_private(idx),
1347
+ b_ = simde__m512i_to_private(b),
1348
+ r_;
1349
+
1350
+ SIMDE_VECTORIZE
1351
+ for (size_t i = 0 ; i < (sizeof(r_.i64) / sizeof(r_.i64[0])) ; i++) {
1352
+ r_.i64[i] = ((idx_.i64[i] & 8) ? b_ : a_).i64[idx_.i64[i] & 7];
1353
+ }
1354
+
1355
+ return simde__m512i_from_private(r_);
1356
+ #endif
1357
+ }
1358
+ #if defined(SIMDE_X86_AVX512F_ENABLE_NATIVE_ALIASES)
1359
+ #undef _mm512_permutex2var_epi64
1360
+ #define _mm512_permutex2var_epi64(a, idx, b) simde_mm512_permutex2var_epi64(a, idx, b)
1361
+ #endif
1362
+
1363
+ SIMDE_FUNCTION_ATTRIBUTES
1364
+ simde__m512i
1365
+ simde_mm512_mask_permutex2var_epi64 (simde__m512i a, simde__mmask8 k, simde__m512i idx, simde__m512i b) {
1366
+ #if defined(SIMDE_X86_AVX512F_NATIVE)
1367
+ return _mm512_mask_permutex2var_epi64(a, k, idx, b);
1368
+ #else
1369
+ return simde_mm512_mask_mov_epi64(a, k, simde_mm512_permutex2var_epi64(a, idx, b));
1370
+ #endif
1371
+ }
1372
+ #if defined(SIMDE_X86_AVX512F_ENABLE_NATIVE_ALIASES)
1373
+ #undef _mm512_mask_permutex2var_epi64
1374
+ #define _mm512_mask_permutex2var_epi64(a, k, idx, b) simde_mm512_mask_permutex2var_epi64(a, k, idx, b)
1375
+ #endif
1376
+
1377
+ SIMDE_FUNCTION_ATTRIBUTES
1378
+ simde__m512i
1379
+ simde_mm512_mask2_permutex2var_epi64 (simde__m512i a, simde__m512i idx, simde__mmask8 k, simde__m512i b) {
1380
+ #if defined(SIMDE_X86_AVX512F_NATIVE)
1381
+ return _mm512_mask2_permutex2var_epi64(a, idx, k, b);
1382
+ #else
1383
+ return simde_mm512_mask_mov_epi64(idx, k, simde_mm512_permutex2var_epi64(a, idx, b));
1384
+ #endif
1385
+ }
1386
+ #if defined(SIMDE_X86_AVX512F_ENABLE_NATIVE_ALIASES)
1387
+ #undef _mm512_mask2_permutex2var_epi64
1388
+ #define _mm512_mask2_permutex2var_epi64(a, idx, k, b) simde_mm512_mask2_permutex2var_epi64(a, idx, k, b)
1389
+ #endif
1390
+
1391
+ SIMDE_FUNCTION_ATTRIBUTES
1392
+ simde__m512i
1393
+ simde_mm512_maskz_permutex2var_epi64 (simde__mmask8 k, simde__m512i a, simde__m512i idx, simde__m512i b) {
1394
+ #if defined(SIMDE_X86_AVX512F_NATIVE)
1395
+ return _mm512_maskz_permutex2var_epi64(k, a, idx, b);
1396
+ #else
1397
+ return simde_mm512_maskz_mov_epi64(k, simde_mm512_permutex2var_epi64(a, idx, b));
1398
+ #endif
1399
+ }
1400
+ #if defined(SIMDE_X86_AVX512F_ENABLE_NATIVE_ALIASES)
1401
+ #undef _mm512_maskz_permutex2var_epi64
1402
+ #define _mm512_maskz_permutex2var_epi64(k, a, idx, b) simde_mm512_maskz_permutex2var_epi64(k, a, idx, b)
1403
+ #endif
1404
+
1405
+ SIMDE_FUNCTION_ATTRIBUTES
1406
+ simde__m512i
1407
+ simde_mm512_permutex2var_epi8 (simde__m512i a, simde__m512i idx, simde__m512i b) {
1408
+ #if defined(SIMDE_X86_AVX512VBMI_NATIVE)
1409
+ return _mm512_permutex2var_epi8(a, idx, b);
1410
+ #elif defined(SIMDE_X86_AVX512BW_NATIVE) && defined(SIMDE_X86_AVX512VL_NATIVE)
1411
+ __m512i hilo, hi, lo, hi2, lo2, idx2;
1412
+ const __m512i ones = _mm512_set1_epi8(1);
1413
+ const __m512i low_bytes = _mm512_set1_epi16(0x00FF);
1414
+
1415
+ idx2 = _mm512_srli_epi16(idx, 1);
1416
+ hilo = _mm512_permutex2var_epi16(a, idx2, b);
1417
+ __mmask64 mask = _mm512_test_epi8_mask(idx, ones);
1418
+ lo = _mm512_and_si512(hilo, low_bytes);
1419
+ hi = _mm512_srli_epi16(hilo, 8);
1420
+
1421
+ idx2 = _mm512_srli_epi16(idx, 9);
1422
+ hilo = _mm512_permutex2var_epi16(a, idx2, b);
1423
+ lo2 = _mm512_slli_epi16(hilo, 8);
1424
+ hi2 = _mm512_andnot_si512(low_bytes, hilo);
1425
+
1426
+ lo = _mm512_or_si512(lo, lo2);
1427
+ hi = _mm512_or_si512(hi, hi2);
1428
+
1429
+ return _mm512_mask_blend_epi8(mask, lo, hi);
1430
+ #else
1431
+ simde__m512i_private
1432
+ a_ = simde__m512i_to_private(a),
1433
+ idx_ = simde__m512i_to_private(idx),
1434
+ b_ = simde__m512i_to_private(b),
1435
+ r_;
1436
+
1437
+ #if defined(SIMDE_X86_AVX2_NATIVE)
1438
+ __m256i t0, t1, index, select0x10, select0x20, select0x40, t01, t23, a0123, b0123;
1439
+ const __m256i mask = _mm256_set1_epi8(0x7F);
1440
+ const __m256i a0 = _mm256_permute4x64_epi64(a_.m256i[0], (1 << 6) + (0 << 4) + (1 << 2) + (0 << 0));
1441
+ const __m256i a1 = _mm256_permute4x64_epi64(a_.m256i[0], (3 << 6) + (2 << 4) + (3 << 2) + (2 << 0));
1442
+ const __m256i a2 = _mm256_permute4x64_epi64(a_.m256i[1], (1 << 6) + (0 << 4) + (1 << 2) + (0 << 0));
1443
+ const __m256i a3 = _mm256_permute4x64_epi64(a_.m256i[1], (3 << 6) + (2 << 4) + (3 << 2) + (2 << 0));
1444
+ const __m256i b0 = _mm256_permute4x64_epi64(b_.m256i[0], (1 << 6) + (0 << 4) + (1 << 2) + (0 << 0));
1445
+ const __m256i b1 = _mm256_permute4x64_epi64(b_.m256i[0], (3 << 6) + (2 << 4) + (3 << 2) + (2 << 0));
1446
+ const __m256i b2 = _mm256_permute4x64_epi64(b_.m256i[1], (1 << 6) + (0 << 4) + (1 << 2) + (0 << 0));
1447
+ const __m256i b3 = _mm256_permute4x64_epi64(b_.m256i[1], (3 << 6) + (2 << 4) + (3 << 2) + (2 << 0));
1448
+
1449
+ SIMDE_VECTORIZE
1450
+ for (size_t i = 0 ; i < (sizeof(r_.m256i_private) / sizeof(r_.m256i_private[0])) ; i++) {
1451
+ index = _mm256_and_si256(idx_.m256i[i], mask);
1452
+ t0 = _mm256_shuffle_epi8(a0, index);
1453
+ t1 = _mm256_shuffle_epi8(a1, index);
1454
+ select0x10 = _mm256_slli_epi64(index, 3);
1455
+ t01 = _mm256_blendv_epi8(t0, t1, select0x10);
1456
+ t0 = _mm256_shuffle_epi8(a2, index);
1457
+ t1 = _mm256_shuffle_epi8(a3, index);
1458
+ t23 = _mm256_blendv_epi8(t0, t1, select0x10);
1459
+ select0x20 = _mm256_slli_epi64(index, 2);
1460
+ a0123 = _mm256_blendv_epi8(t01, t23, select0x20);
1461
+ t0 = _mm256_shuffle_epi8(b0, index);
1462
+ t1 = _mm256_shuffle_epi8(b1, index);
1463
+ t01 = _mm256_blendv_epi8(t0, t1, select0x10);
1464
+ t0 = _mm256_shuffle_epi8(b2, index);
1465
+ t1 = _mm256_shuffle_epi8(b3, index);
1466
+ t23 = _mm256_blendv_epi8(t0, t1, select0x10);
1467
+ b0123 = _mm256_blendv_epi8(t01, t23, select0x20);
1468
+ select0x40 = _mm256_slli_epi64(index, 1);
1469
+ r_.m256i[i] = _mm256_blendv_epi8(a0123, b0123, select0x40);
1470
+ }
1471
+ #elif defined(SIMDE_X_PERMUTEX2VAR_USE_GENERIC)
1472
+ simde_x_permutex2var(r_.m128i, a_.m128i, idx_.m128i, b_.m128i, 0, 2);
1473
+ #else
1474
+ SIMDE_VECTORIZE
1475
+ for (size_t i = 0 ; i < (sizeof(r_.i8) / sizeof(r_.i8[0])) ; i++) {
1476
+ r_.i8[i] = ((idx_.i8[i] & 0x40) ? b_ : a_).i8[idx_.i8[i] & 0x3F];
1477
+ }
1478
+ #endif
1479
+
1480
+ return simde__m512i_from_private(r_);
1481
+ #endif
1482
+ }
1483
+ #if defined(SIMDE_X86_AVX512VBMI_ENABLE_NATIVE_ALIASES)
1484
+ #undef _mm512_permutex2var_epi8
1485
+ #define _mm512_permutex2var_epi8(a, idx, b) simde_mm512_permutex2var_epi8(a, idx, b)
1486
+ #endif
1487
+
1488
+ SIMDE_FUNCTION_ATTRIBUTES
1489
+ simde__m512i
1490
+ simde_mm512_mask_permutex2var_epi8 (simde__m512i a, simde__mmask64 k, simde__m512i idx, simde__m512i b) {
1491
+ #if defined(SIMDE_X86_AVX512VBMI_NATIVE)
1492
+ return _mm512_mask_permutex2var_epi8(a, k, idx, b);
1493
+ #else
1494
+ return simde_mm512_mask_mov_epi8(a, k, simde_mm512_permutex2var_epi8(a, idx, b));
1495
+ #endif
1496
+ }
1497
+ #if defined(SIMDE_X86_AVX512VBMI_ENABLE_NATIVE_ALIASES)
1498
+ #undef _mm512_mask_permutex2var_epi8
1499
+ #define _mm512_mask_permutex2var_epi8(a, k, idx, b) simde_mm512_mask_permutex2var_epi8(a, k, idx, b)
1500
+ #endif
1501
+
1502
+ SIMDE_FUNCTION_ATTRIBUTES
1503
+ simde__m512i
1504
+ simde_mm512_mask2_permutex2var_epi8 (simde__m512i a, simde__m512i idx, simde__mmask64 k, simde__m512i b) {
1505
+ #if defined(SIMDE_X86_AVX512VBMI_NATIVE)
1506
+ return _mm512_mask2_permutex2var_epi8(a, idx, k, b);
1507
+ #else
1508
+ return simde_mm512_mask_mov_epi8(idx, k, simde_mm512_permutex2var_epi8(a, idx, b));
1509
+ #endif
1510
+ }
1511
+ #if defined(SIMDE_X86_AVX512VBMI_ENABLE_NATIVE_ALIASES)
1512
+ #undef _mm512_mask2_permutex2var_epi8
1513
+ #define _mm512_mask2_permutex2var_epi8(a, idx, k, b) simde_mm512_mask2_permutex2var_epi8(a, idx, k, b)
1514
+ #endif
1515
+
1516
+ SIMDE_FUNCTION_ATTRIBUTES
1517
+ simde__m512i
1518
+ simde_mm512_maskz_permutex2var_epi8 (simde__mmask64 k, simde__m512i a, simde__m512i idx, simde__m512i b) {
1519
+ #if defined(SIMDE_X86_AVX512VBMI_NATIVE)
1520
+ return _mm512_maskz_permutex2var_epi8(k, a, idx, b);
1521
+ #else
1522
+ return simde_mm512_maskz_mov_epi8(k, simde_mm512_permutex2var_epi8(a, idx, b));
1523
+ #endif
1524
+ }
1525
+ #if defined(SIMDE_X86_AVX512VBMI_ENABLE_NATIVE_ALIASES)
1526
+ #undef _mm512_maskz_permutex2var_epi8
1527
+ #define _mm512_maskz_permutex2var_epi8(k, a, idx, b) simde_mm512_maskz_permutex2var_epi8(k, a, idx, b)
1528
+ #endif
1529
+
1530
+ SIMDE_FUNCTION_ATTRIBUTES
1531
+ simde__m512d
1532
+ simde_mm512_permutex2var_pd (simde__m512d a, simde__m512i idx, simde__m512d b) {
1533
+ #if defined(SIMDE_X86_AVX512BW_NATIVE)
1534
+ return _mm512_permutex2var_pd(a, idx, b);
1535
+ #else
1536
+ return simde_mm512_castsi512_pd(simde_mm512_permutex2var_epi64(simde_mm512_castpd_si512(a), idx, simde_mm512_castpd_si512(b)));
1537
+ #endif
1538
+ }
1539
+ #if defined(SIMDE_X86_AVX512BW_ENABLE_NATIVE_ALIASES)
1540
+ #undef _mm512_permutex2var_pd
1541
+ #define _mm512_permutex2var_pd(a, idx, b) simde_mm512_permutex2var_pd(a, idx, b)
1542
+ #endif
1543
+
1544
+ SIMDE_FUNCTION_ATTRIBUTES
1545
+ simde__m512d
1546
+ simde_mm512_mask_permutex2var_pd (simde__m512d a, simde__mmask8 k, simde__m512i idx, simde__m512d b) {
1547
+ #if defined(SIMDE_X86_AVX512F_NATIVE)
1548
+ return _mm512_mask_permutex2var_pd(a, k, idx, b);
1549
+ #else
1550
+ return simde_mm512_mask_mov_pd(a, k, simde_mm512_permutex2var_pd(a, idx, b));
1551
+ #endif
1552
+ }
1553
+ #if defined(SIMDE_X86_AVX512F_ENABLE_NATIVE_ALIASES)
1554
+ #undef _mm512_mask_permutex2var_pd
1555
+ #define _mm512_mask_permutex2var_pd(a, k, idx, b) simde_mm512_mask_permutex2var_pd(a, k, idx, b)
1556
+ #endif
1557
+
1558
+ SIMDE_FUNCTION_ATTRIBUTES
1559
+ simde__m512d
1560
+ simde_mm512_mask2_permutex2var_pd (simde__m512d a, simde__m512i idx, simde__mmask8 k, simde__m512d b) {
1561
+ #if defined(SIMDE_X86_AVX512F_NATIVE)
1562
+ return _mm512_mask2_permutex2var_pd(a, idx, k, b);
1563
+ #else
1564
+ return simde_mm512_mask_mov_pd(simde_mm512_castsi512_pd(idx), k, simde_mm512_permutex2var_pd(a, idx, b));
1565
+ #endif
1566
+ }
1567
+ #if defined(SIMDE_X86_AVX512F_ENABLE_NATIVE_ALIASES)
1568
+ #undef _mm512_mask2_permutex2var_pd
1569
+ #define _mm512_mask2_permutex2var_pd(a, idx, k, b) simde_mm512_mask2_permutex2var_pd(a, idx, k, b)
1570
+ #endif
1571
+
1572
+ SIMDE_FUNCTION_ATTRIBUTES
1573
+ simde__m512d
1574
+ simde_mm512_maskz_permutex2var_pd (simde__mmask8 k, simde__m512d a, simde__m512i idx, simde__m512d b) {
1575
+ #if defined(SIMDE_X86_AVX512F_NATIVE)
1576
+ return _mm512_maskz_permutex2var_pd(k, a, idx, b);
1577
+ #else
1578
+ return simde_mm512_maskz_mov_pd(k, simde_mm512_permutex2var_pd(a, idx, b));
1579
+ #endif
1580
+ }
1581
+ #if defined(SIMDE_X86_AVX512F_ENABLE_NATIVE_ALIASES)
1582
+ #undef _mm512_maskz_permutex2var_pd
1583
+ #define _mm512_maskz_permutex2var_pd(k, a, idx, b) simde_mm512_maskz_permutex2var_pd(k, a, idx, b)
1584
+ #endif
1585
+
1586
+ SIMDE_FUNCTION_ATTRIBUTES
1587
+ simde__m512
1588
+ simde_mm512_permutex2var_ps (simde__m512 a, simde__m512i idx, simde__m512 b) {
1589
+ #if defined(SIMDE_X86_AVX512F_NATIVE)
1590
+ return _mm512_permutex2var_ps(a, idx, b);
1591
+ #else
1592
+ return simde_mm512_castsi512_ps(simde_mm512_permutex2var_epi32(simde_mm512_castps_si512(a), idx, simde_mm512_castps_si512(b)));
1593
+ #endif
1594
+ }
1595
+ #if defined(SIMDE_X86_AVX512F_ENABLE_NATIVE_ALIASES)
1596
+ #undef _mm512_permutex2var_ps
1597
+ #define _mm512_permutex2var_ps(a, idx, b) simde_mm512_permutex2var_ps(a, idx, b)
1598
+ #endif
1599
+
1600
+ SIMDE_FUNCTION_ATTRIBUTES
1601
+ simde__m512
1602
+ simde_mm512_mask_permutex2var_ps (simde__m512 a, simde__mmask16 k, simde__m512i idx, simde__m512 b) {
1603
+ #if defined(SIMDE_X86_AVX512F_NATIVE)
1604
+ return _mm512_mask_permutex2var_ps(a, k, idx, b);
1605
+ #else
1606
+ return simde_mm512_mask_mov_ps(a, k, simde_mm512_permutex2var_ps(a, idx, b));
1607
+ #endif
1608
+ }
1609
+ #if defined(SIMDE_X86_AVX512F_ENABLE_NATIVE_ALIASES)
1610
+ #undef _mm512_mask_permutex2var_ps
1611
+ #define _mm512_mask_permutex2var_ps(a, k, idx, b) simde_mm512_mask_permutex2var_ps(a, k, idx, b)
1612
+ #endif
1613
+
1614
+ SIMDE_FUNCTION_ATTRIBUTES
1615
+ simde__m512
1616
+ simde_mm512_mask2_permutex2var_ps (simde__m512 a, simde__m512i idx, simde__mmask16 k, simde__m512 b) {
1617
+ #if defined(SIMDE_X86_AVX512F_NATIVE)
1618
+ return _mm512_mask2_permutex2var_ps(a, idx, k, b);
1619
+ #else
1620
+ return simde_mm512_mask_mov_ps(simde_mm512_castsi512_ps(idx), k, simde_mm512_permutex2var_ps(a, idx, b));
1621
+ #endif
1622
+ }
1623
+ #if defined(SIMDE_X86_AVX512F_ENABLE_NATIVE_ALIASES)
1624
+ #undef _mm512_mask2_permutex2var_ps
1625
+ #define _mm512_mask2_permutex2var_ps(a, idx, k, b) simde_mm512_mask2_permutex2var_ps(a, idx, k, b)
1626
+ #endif
1627
+
1628
+ SIMDE_FUNCTION_ATTRIBUTES
1629
+ simde__m512
1630
+ simde_mm512_maskz_permutex2var_ps (simde__mmask16 k, simde__m512 a, simde__m512i idx, simde__m512 b) {
1631
+ #if defined(SIMDE_X86_AVX512F_NATIVE)
1632
+ return _mm512_maskz_permutex2var_ps(k, a, idx, b);
1633
+ #else
1634
+ return simde_mm512_maskz_mov_ps(k, simde_mm512_permutex2var_ps(a, idx, b));
1635
+ #endif
1636
+ }
1637
+ #if defined(SIMDE_X86_AVX512F_ENABLE_NATIVE_ALIASES)
1638
+ #undef _mm512_maskz_permutex2var_ps
1639
+ #define _mm512_maskz_permutex2var_ps(k, a, idx, b) simde_mm512_maskz_permutex2var_ps(k, a, idx, b)
1640
+ #endif
1641
+
1642
+ SIMDE_END_DECLS_
1643
+ HEDLEY_DIAGNOSTIC_POP
1644
+
1645
+ #endif /* !defined(SIMDE_X86_AVX512_PERMUTEX2VAR_H) */