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,1959 @@
1
+ // This file is part of Eigen, a lightweight C++ template library
2
+ // for linear algebra.
3
+ //
4
+ // Copyright (C) 2015 Eugene Brevdo <ebrevdo@gmail.com>
5
+ //
6
+ // This Source Code Form is subject to the terms of the Mozilla
7
+ // Public License v. 2.0. If a copy of the MPL was not distributed
8
+ // with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
9
+
10
+ #ifndef EIGEN_BESSEL_FUNCTIONS_H
11
+ #define EIGEN_BESSEL_FUNCTIONS_H
12
+
13
+ namespace Eigen {
14
+ namespace internal {
15
+
16
+ // Parts of this code are based on the Cephes Math Library.
17
+ //
18
+ // Cephes Math Library Release 2.8: June, 2000
19
+ // Copyright 1984, 1987, 1992, 2000 by Stephen L. Moshier
20
+ //
21
+ // Permission has been kindly provided by the original author
22
+ // to incorporate the Cephes software into the Eigen codebase:
23
+ //
24
+ // From: Stephen Moshier
25
+ // To: Eugene Brevdo
26
+ // Subject: Re: Permission to wrap several cephes functions in Eigen
27
+ //
28
+ // Hello Eugene,
29
+ //
30
+ // Thank you for writing.
31
+ //
32
+ // If your licensing is similar to BSD, the formal way that has been
33
+ // handled is simply to add a statement to the effect that you are incorporating
34
+ // the Cephes software by permission of the author.
35
+ //
36
+ // Good luck with your project,
37
+ // Steve
38
+
39
+
40
+ /****************************************************************************
41
+ * Implementation of Bessel function, based on Cephes *
42
+ ****************************************************************************/
43
+
44
+ template <typename Scalar>
45
+ struct bessel_i0e_retval {
46
+ typedef Scalar type;
47
+ };
48
+
49
+ template <typename T, typename ScalarType = typename unpacket_traits<T>::type>
50
+ struct generic_i0e {
51
+ EIGEN_DEVICE_FUNC
52
+ static EIGEN_STRONG_INLINE T run(const T&) {
53
+ EIGEN_STATIC_ASSERT((internal::is_same<T, T>::value == false),
54
+ THIS_TYPE_IS_NOT_SUPPORTED);
55
+ return ScalarType(0);
56
+ }
57
+ };
58
+
59
+ template <typename T>
60
+ struct generic_i0e<T, float> {
61
+ EIGEN_DEVICE_FUNC
62
+ static EIGEN_STRONG_INLINE T run(const T& x) {
63
+ /* i0ef.c
64
+ *
65
+ * Modified Bessel function of order zero,
66
+ * exponentially scaled
67
+ *
68
+ *
69
+ *
70
+ * SYNOPSIS:
71
+ *
72
+ * float x, y, i0ef();
73
+ *
74
+ * y = i0ef( x );
75
+ *
76
+ *
77
+ *
78
+ * DESCRIPTION:
79
+ *
80
+ * Returns exponentially scaled modified Bessel function
81
+ * of order zero of the argument.
82
+ *
83
+ * The function is defined as i0e(x) = exp(-|x|) j0( ix ).
84
+ *
85
+ *
86
+ *
87
+ * ACCURACY:
88
+ *
89
+ * Relative error:
90
+ * arithmetic domain # trials peak rms
91
+ * IEEE 0,30 100000 3.7e-7 7.0e-8
92
+ * See i0f().
93
+ *
94
+ */
95
+
96
+ const float A[] = {-1.30002500998624804212E-8f, 6.04699502254191894932E-8f,
97
+ -2.67079385394061173391E-7f, 1.11738753912010371815E-6f,
98
+ -4.41673835845875056359E-6f, 1.64484480707288970893E-5f,
99
+ -5.75419501008210370398E-5f, 1.88502885095841655729E-4f,
100
+ -5.76375574538582365885E-4f, 1.63947561694133579842E-3f,
101
+ -4.32430999505057594430E-3f, 1.05464603945949983183E-2f,
102
+ -2.37374148058994688156E-2f, 4.93052842396707084878E-2f,
103
+ -9.49010970480476444210E-2f, 1.71620901522208775349E-1f,
104
+ -3.04682672343198398683E-1f, 6.76795274409476084995E-1f};
105
+
106
+ const float B[] = {3.39623202570838634515E-9f, 2.26666899049817806459E-8f,
107
+ 2.04891858946906374183E-7f, 2.89137052083475648297E-6f,
108
+ 6.88975834691682398426E-5f, 3.36911647825569408990E-3f,
109
+ 8.04490411014108831608E-1f};
110
+ T y = pabs(x);
111
+ T y_le_eight = internal::pchebevl<T, 18>::run(
112
+ pmadd(pset1<T>(0.5f), y, pset1<T>(-2.0f)), A);
113
+ T y_gt_eight = pmul(
114
+ internal::pchebevl<T, 7>::run(
115
+ psub(pdiv(pset1<T>(32.0f), y), pset1<T>(2.0f)), B),
116
+ prsqrt(y));
117
+ // TODO: Perhaps instead check whether all packet elements are in
118
+ // [-8, 8] and evaluate a branch based off of that. It's possible
119
+ // in practice most elements are in this region.
120
+ return pselect(pcmp_le(y, pset1<T>(8.0f)), y_le_eight, y_gt_eight);
121
+ }
122
+ };
123
+
124
+ template <typename T>
125
+ struct generic_i0e<T, double> {
126
+ EIGEN_DEVICE_FUNC
127
+ static EIGEN_STRONG_INLINE T run(const T& x) {
128
+ /* i0e.c
129
+ *
130
+ * Modified Bessel function of order zero,
131
+ * exponentially scaled
132
+ *
133
+ *
134
+ *
135
+ * SYNOPSIS:
136
+ *
137
+ * double x, y, i0e();
138
+ *
139
+ * y = i0e( x );
140
+ *
141
+ *
142
+ *
143
+ * DESCRIPTION:
144
+ *
145
+ * Returns exponentially scaled modified Bessel function
146
+ * of order zero of the argument.
147
+ *
148
+ * The function is defined as i0e(x) = exp(-|x|) j0( ix ).
149
+ *
150
+ *
151
+ *
152
+ * ACCURACY:
153
+ *
154
+ * Relative error:
155
+ * arithmetic domain # trials peak rms
156
+ * IEEE 0,30 30000 5.4e-16 1.2e-16
157
+ * See i0().
158
+ *
159
+ */
160
+
161
+ const double A[] = {-4.41534164647933937950E-18, 3.33079451882223809783E-17,
162
+ -2.43127984654795469359E-16, 1.71539128555513303061E-15,
163
+ -1.16853328779934516808E-14, 7.67618549860493561688E-14,
164
+ -4.85644678311192946090E-13, 2.95505266312963983461E-12,
165
+ -1.72682629144155570723E-11, 9.67580903537323691224E-11,
166
+ -5.18979560163526290666E-10, 2.65982372468238665035E-9,
167
+ -1.30002500998624804212E-8, 6.04699502254191894932E-8,
168
+ -2.67079385394061173391E-7, 1.11738753912010371815E-6,
169
+ -4.41673835845875056359E-6, 1.64484480707288970893E-5,
170
+ -5.75419501008210370398E-5, 1.88502885095841655729E-4,
171
+ -5.76375574538582365885E-4, 1.63947561694133579842E-3,
172
+ -4.32430999505057594430E-3, 1.05464603945949983183E-2,
173
+ -2.37374148058994688156E-2, 4.93052842396707084878E-2,
174
+ -9.49010970480476444210E-2, 1.71620901522208775349E-1,
175
+ -3.04682672343198398683E-1, 6.76795274409476084995E-1};
176
+ const double B[] = {
177
+ -7.23318048787475395456E-18, -4.83050448594418207126E-18,
178
+ 4.46562142029675999901E-17, 3.46122286769746109310E-17,
179
+ -2.82762398051658348494E-16, -3.42548561967721913462E-16,
180
+ 1.77256013305652638360E-15, 3.81168066935262242075E-15,
181
+ -9.55484669882830764870E-15, -4.15056934728722208663E-14,
182
+ 1.54008621752140982691E-14, 3.85277838274214270114E-13,
183
+ 7.18012445138366623367E-13, -1.79417853150680611778E-12,
184
+ -1.32158118404477131188E-11, -3.14991652796324136454E-11,
185
+ 1.18891471078464383424E-11, 4.94060238822496958910E-10,
186
+ 3.39623202570838634515E-9, 2.26666899049817806459E-8,
187
+ 2.04891858946906374183E-7, 2.89137052083475648297E-6,
188
+ 6.88975834691682398426E-5, 3.36911647825569408990E-3,
189
+ 8.04490411014108831608E-1};
190
+ T y = pabs(x);
191
+ T y_le_eight = internal::pchebevl<T, 30>::run(
192
+ pmadd(pset1<T>(0.5), y, pset1<T>(-2.0)), A);
193
+ T y_gt_eight = pmul(
194
+ internal::pchebevl<T, 25>::run(
195
+ psub(pdiv(pset1<T>(32.0), y), pset1<T>(2.0)), B),
196
+ prsqrt(y));
197
+ // TODO: Perhaps instead check whether all packet elements are in
198
+ // [-8, 8] and evaluate a branch based off of that. It's possible
199
+ // in practice most elements are in this region.
200
+ return pselect(pcmp_le(y, pset1<T>(8.0)), y_le_eight, y_gt_eight);
201
+ }
202
+ };
203
+
204
+ template <typename T>
205
+ struct bessel_i0e_impl {
206
+ EIGEN_DEVICE_FUNC
207
+ static EIGEN_STRONG_INLINE T run(const T x) {
208
+ return generic_i0e<T>::run(x);
209
+ }
210
+ };
211
+
212
+ template <typename Scalar>
213
+ struct bessel_i0_retval {
214
+ typedef Scalar type;
215
+ };
216
+
217
+ template <typename T, typename ScalarType = typename unpacket_traits<T>::type>
218
+ struct generic_i0 {
219
+ EIGEN_DEVICE_FUNC
220
+ static EIGEN_STRONG_INLINE T run(const T& x) {
221
+ return pmul(
222
+ pexp(pabs(x)),
223
+ generic_i0e<T, ScalarType>::run(x));
224
+ }
225
+ };
226
+
227
+ template <typename T>
228
+ struct bessel_i0_impl {
229
+ EIGEN_DEVICE_FUNC
230
+ static EIGEN_STRONG_INLINE T run(const T x) {
231
+ return generic_i0<T>::run(x);
232
+ }
233
+ };
234
+
235
+ template <typename Scalar>
236
+ struct bessel_i1e_retval {
237
+ typedef Scalar type;
238
+ };
239
+
240
+ template <typename T, typename ScalarType = typename unpacket_traits<T>::type >
241
+ struct generic_i1e {
242
+ EIGEN_DEVICE_FUNC
243
+ static EIGEN_STRONG_INLINE T run(const T&) {
244
+ EIGEN_STATIC_ASSERT((internal::is_same<T, T>::value == false),
245
+ THIS_TYPE_IS_NOT_SUPPORTED);
246
+ return ScalarType(0);
247
+ }
248
+ };
249
+
250
+ template <typename T>
251
+ struct generic_i1e<T, float> {
252
+ EIGEN_DEVICE_FUNC
253
+ static EIGEN_STRONG_INLINE T run(const T& x) {
254
+ /* i1ef.c
255
+ *
256
+ * Modified Bessel function of order one,
257
+ * exponentially scaled
258
+ *
259
+ *
260
+ *
261
+ * SYNOPSIS:
262
+ *
263
+ * float x, y, i1ef();
264
+ *
265
+ * y = i1ef( x );
266
+ *
267
+ *
268
+ *
269
+ * DESCRIPTION:
270
+ *
271
+ * Returns exponentially scaled modified Bessel function
272
+ * of order one of the argument.
273
+ *
274
+ * The function is defined as i1(x) = -i exp(-|x|) j1( ix ).
275
+ *
276
+ *
277
+ *
278
+ * ACCURACY:
279
+ *
280
+ * Relative error:
281
+ * arithmetic domain # trials peak rms
282
+ * IEEE 0, 30 30000 1.5e-6 1.5e-7
283
+ * See i1().
284
+ *
285
+ */
286
+ const float A[] = {9.38153738649577178388E-9f, -4.44505912879632808065E-8f,
287
+ 2.00329475355213526229E-7f, -8.56872026469545474066E-7f,
288
+ 3.47025130813767847674E-6f, -1.32731636560394358279E-5f,
289
+ 4.78156510755005422638E-5f, -1.61760815825896745588E-4f,
290
+ 5.12285956168575772895E-4f, -1.51357245063125314899E-3f,
291
+ 4.15642294431288815669E-3f, -1.05640848946261981558E-2f,
292
+ 2.47264490306265168283E-2f, -5.29459812080949914269E-2f,
293
+ 1.02643658689847095384E-1f, -1.76416518357834055153E-1f,
294
+ 2.52587186443633654823E-1f};
295
+
296
+ const float B[] = {-3.83538038596423702205E-9f, -2.63146884688951950684E-8f,
297
+ -2.51223623787020892529E-7f, -3.88256480887769039346E-6f,
298
+ -1.10588938762623716291E-4f, -9.76109749136146840777E-3f,
299
+ 7.78576235018280120474E-1f};
300
+
301
+
302
+ T y = pabs(x);
303
+ T y_le_eight = pmul(y, internal::pchebevl<T, 17>::run(
304
+ pmadd(pset1<T>(0.5f), y, pset1<T>(-2.0f)), A));
305
+ T y_gt_eight = pmul(
306
+ internal::pchebevl<T, 7>::run(
307
+ psub(pdiv(pset1<T>(32.0f), y),
308
+ pset1<T>(2.0f)), B),
309
+ prsqrt(y));
310
+ // TODO: Perhaps instead check whether all packet elements are in
311
+ // [-8, 8] and evaluate a branch based off of that. It's possible
312
+ // in practice most elements are in this region.
313
+ y = pselect(pcmp_le(y, pset1<T>(8.0f)), y_le_eight, y_gt_eight);
314
+ return pselect(pcmp_lt(x, pset1<T>(0.0f)), pnegate(y), y);
315
+ }
316
+ };
317
+
318
+ template <typename T>
319
+ struct generic_i1e<T, double> {
320
+ EIGEN_DEVICE_FUNC
321
+ static EIGEN_STRONG_INLINE T run(const T& x) {
322
+ /* i1e.c
323
+ *
324
+ * Modified Bessel function of order one,
325
+ * exponentially scaled
326
+ *
327
+ *
328
+ *
329
+ * SYNOPSIS:
330
+ *
331
+ * double x, y, i1e();
332
+ *
333
+ * y = i1e( x );
334
+ *
335
+ *
336
+ *
337
+ * DESCRIPTION:
338
+ *
339
+ * Returns exponentially scaled modified Bessel function
340
+ * of order one of the argument.
341
+ *
342
+ * The function is defined as i1(x) = -i exp(-|x|) j1( ix ).
343
+ *
344
+ *
345
+ *
346
+ * ACCURACY:
347
+ *
348
+ * Relative error:
349
+ * arithmetic domain # trials peak rms
350
+ * IEEE 0, 30 30000 2.0e-15 2.0e-16
351
+ * See i1().
352
+ *
353
+ */
354
+ const double A[] = {2.77791411276104639959E-18, -2.11142121435816608115E-17,
355
+ 1.55363195773620046921E-16, -1.10559694773538630805E-15,
356
+ 7.60068429473540693410E-15, -5.04218550472791168711E-14,
357
+ 3.22379336594557470981E-13, -1.98397439776494371520E-12,
358
+ 1.17361862988909016308E-11, -6.66348972350202774223E-11,
359
+ 3.62559028155211703701E-10, -1.88724975172282928790E-9,
360
+ 9.38153738649577178388E-9, -4.44505912879632808065E-8,
361
+ 2.00329475355213526229E-7, -8.56872026469545474066E-7,
362
+ 3.47025130813767847674E-6, -1.32731636560394358279E-5,
363
+ 4.78156510755005422638E-5, -1.61760815825896745588E-4,
364
+ 5.12285956168575772895E-4, -1.51357245063125314899E-3,
365
+ 4.15642294431288815669E-3, -1.05640848946261981558E-2,
366
+ 2.47264490306265168283E-2, -5.29459812080949914269E-2,
367
+ 1.02643658689847095384E-1, -1.76416518357834055153E-1,
368
+ 2.52587186443633654823E-1};
369
+ const double B[] = {
370
+ 7.51729631084210481353E-18, 4.41434832307170791151E-18,
371
+ -4.65030536848935832153E-17, -3.20952592199342395980E-17,
372
+ 2.96262899764595013876E-16, 3.30820231092092828324E-16,
373
+ -1.88035477551078244854E-15, -3.81440307243700780478E-15,
374
+ 1.04202769841288027642E-14, 4.27244001671195135429E-14,
375
+ -2.10154184277266431302E-14, -4.08355111109219731823E-13,
376
+ -7.19855177624590851209E-13, 2.03562854414708950722E-12,
377
+ 1.41258074366137813316E-11, 3.25260358301548823856E-11,
378
+ -1.89749581235054123450E-11, -5.58974346219658380687E-10,
379
+ -3.83538038596423702205E-9, -2.63146884688951950684E-8,
380
+ -2.51223623787020892529E-7, -3.88256480887769039346E-6,
381
+ -1.10588938762623716291E-4, -9.76109749136146840777E-3,
382
+ 7.78576235018280120474E-1};
383
+ T y = pabs(x);
384
+ T y_le_eight = pmul(y, internal::pchebevl<T, 29>::run(
385
+ pmadd(pset1<T>(0.5), y, pset1<T>(-2.0)), A));
386
+ T y_gt_eight = pmul(
387
+ internal::pchebevl<T, 25>::run(
388
+ psub(pdiv(pset1<T>(32.0), y),
389
+ pset1<T>(2.0)), B),
390
+ prsqrt(y));
391
+ // TODO: Perhaps instead check whether all packet elements are in
392
+ // [-8, 8] and evaluate a branch based off of that. It's possible
393
+ // in practice most elements are in this region.
394
+ y = pselect(pcmp_le(y, pset1<T>(8.0)), y_le_eight, y_gt_eight);
395
+ return pselect(pcmp_lt(x, pset1<T>(0.0)), pnegate(y), y);
396
+ }
397
+ };
398
+
399
+ template <typename T>
400
+ struct bessel_i1e_impl {
401
+ EIGEN_DEVICE_FUNC
402
+ static EIGEN_STRONG_INLINE T run(const T x) {
403
+ return generic_i1e<T>::run(x);
404
+ }
405
+ };
406
+
407
+ template <typename T>
408
+ struct bessel_i1_retval {
409
+ typedef T type;
410
+ };
411
+
412
+ template <typename T, typename ScalarType = typename unpacket_traits<T>::type>
413
+ struct generic_i1 {
414
+ EIGEN_DEVICE_FUNC
415
+ static EIGEN_STRONG_INLINE T run(const T& x) {
416
+ return pmul(
417
+ pexp(pabs(x)),
418
+ generic_i1e<T, ScalarType>::run(x));
419
+ }
420
+ };
421
+
422
+ template <typename T>
423
+ struct bessel_i1_impl {
424
+ EIGEN_DEVICE_FUNC
425
+ static EIGEN_STRONG_INLINE T run(const T x) {
426
+ return generic_i1<T>::run(x);
427
+ }
428
+ };
429
+
430
+ template <typename T>
431
+ struct bessel_k0e_retval {
432
+ typedef T type;
433
+ };
434
+
435
+ template <typename T, typename ScalarType = typename unpacket_traits<T>::type>
436
+ struct generic_k0e {
437
+ EIGEN_DEVICE_FUNC
438
+ static EIGEN_STRONG_INLINE T run(const T&) {
439
+ EIGEN_STATIC_ASSERT((internal::is_same<T, T>::value == false),
440
+ THIS_TYPE_IS_NOT_SUPPORTED);
441
+ return ScalarType(0);
442
+ }
443
+ };
444
+
445
+ template <typename T>
446
+ struct generic_k0e<T, float> {
447
+ EIGEN_DEVICE_FUNC
448
+ static EIGEN_STRONG_INLINE T run(const T& x) {
449
+ /* k0ef.c
450
+ * Modified Bessel function, third kind, order zero,
451
+ * exponentially scaled
452
+ *
453
+ *
454
+ *
455
+ * SYNOPSIS:
456
+ *
457
+ * float x, y, k0ef();
458
+ *
459
+ * y = k0ef( x );
460
+ *
461
+ *
462
+ *
463
+ * DESCRIPTION:
464
+ *
465
+ * Returns exponentially scaled modified Bessel function
466
+ * of the third kind of order zero of the argument.
467
+ *
468
+ *
469
+ *
470
+ * ACCURACY:
471
+ *
472
+ * Relative error:
473
+ * arithmetic domain # trials peak rms
474
+ * IEEE 0, 30 30000 8.1e-7 7.8e-8
475
+ * See k0().
476
+ *
477
+ */
478
+
479
+ const float A[] = {1.90451637722020886025E-9f, 2.53479107902614945675E-7f,
480
+ 2.28621210311945178607E-5f, 1.26461541144692592338E-3f,
481
+ 3.59799365153615016266E-2f, 3.44289899924628486886E-1f,
482
+ -5.35327393233902768720E-1f};
483
+
484
+ const float B[] = {-1.69753450938905987466E-9f, 8.57403401741422608519E-9f,
485
+ -4.66048989768794782956E-8f, 2.76681363944501510342E-7f,
486
+ -1.83175552271911948767E-6f, 1.39498137188764993662E-5f,
487
+ -1.28495495816278026384E-4f, 1.56988388573005337491E-3f,
488
+ -3.14481013119645005427E-2f, 2.44030308206595545468E0f};
489
+ const T MAXNUM = pset1<T>(NumTraits<float>::infinity());
490
+ const T two = pset1<T>(2.0);
491
+ T x_le_two = internal::pchebevl<T, 7>::run(
492
+ pmadd(x, x, pset1<T>(-2.0)), A);
493
+ x_le_two = pmadd(
494
+ generic_i0<T, float>::run(x), pnegate(
495
+ plog(pmul(pset1<T>(0.5), x))), x_le_two);
496
+ x_le_two = pmul(pexp(x), x_le_two);
497
+ T x_gt_two = pmul(
498
+ internal::pchebevl<T, 10>::run(
499
+ psub(pdiv(pset1<T>(8.0), x), two), B),
500
+ prsqrt(x));
501
+ return pselect(
502
+ pcmp_le(x, pset1<T>(0.0)),
503
+ MAXNUM,
504
+ pselect(pcmp_le(x, two), x_le_two, x_gt_two));
505
+ }
506
+ };
507
+
508
+ template <typename T>
509
+ struct generic_k0e<T, double> {
510
+ EIGEN_DEVICE_FUNC
511
+ static EIGEN_STRONG_INLINE T run(const T& x) {
512
+ /* k0e.c
513
+ * Modified Bessel function, third kind, order zero,
514
+ * exponentially scaled
515
+ *
516
+ *
517
+ *
518
+ * SYNOPSIS:
519
+ *
520
+ * double x, y, k0e();
521
+ *
522
+ * y = k0e( x );
523
+ *
524
+ *
525
+ *
526
+ * DESCRIPTION:
527
+ *
528
+ * Returns exponentially scaled modified Bessel function
529
+ * of the third kind of order zero of the argument.
530
+ *
531
+ *
532
+ *
533
+ * ACCURACY:
534
+ *
535
+ * Relative error:
536
+ * arithmetic domain # trials peak rms
537
+ * IEEE 0, 30 30000 1.4e-15 1.4e-16
538
+ * See k0().
539
+ *
540
+ */
541
+
542
+ const double A[] = {
543
+ 1.37446543561352307156E-16,
544
+ 4.25981614279661018399E-14,
545
+ 1.03496952576338420167E-11,
546
+ 1.90451637722020886025E-9,
547
+ 2.53479107902614945675E-7,
548
+ 2.28621210311945178607E-5,
549
+ 1.26461541144692592338E-3,
550
+ 3.59799365153615016266E-2,
551
+ 3.44289899924628486886E-1,
552
+ -5.35327393233902768720E-1};
553
+ const double B[] = {
554
+ 5.30043377268626276149E-18, -1.64758043015242134646E-17,
555
+ 5.21039150503902756861E-17, -1.67823109680541210385E-16,
556
+ 5.51205597852431940784E-16, -1.84859337734377901440E-15,
557
+ 6.34007647740507060557E-15, -2.22751332699166985548E-14,
558
+ 8.03289077536357521100E-14, -2.98009692317273043925E-13,
559
+ 1.14034058820847496303E-12, -4.51459788337394416547E-12,
560
+ 1.85594911495471785253E-11, -7.95748924447710747776E-11,
561
+ 3.57739728140030116597E-10, -1.69753450938905987466E-9,
562
+ 8.57403401741422608519E-9, -4.66048989768794782956E-8,
563
+ 2.76681363944501510342E-7, -1.83175552271911948767E-6,
564
+ 1.39498137188764993662E-5, -1.28495495816278026384E-4,
565
+ 1.56988388573005337491E-3, -3.14481013119645005427E-2,
566
+ 2.44030308206595545468E0
567
+ };
568
+ const T MAXNUM = pset1<T>(NumTraits<double>::infinity());
569
+ const T two = pset1<T>(2.0);
570
+ T x_le_two = internal::pchebevl<T, 10>::run(
571
+ pmadd(x, x, pset1<T>(-2.0)), A);
572
+ x_le_two = pmadd(
573
+ generic_i0<T, double>::run(x), pmul(
574
+ pset1<T>(-1.0), plog(pmul(pset1<T>(0.5), x))), x_le_two);
575
+ x_le_two = pmul(pexp(x), x_le_two);
576
+ x_le_two = pselect(pcmp_le(x, pset1<T>(0.0)), MAXNUM, x_le_two);
577
+ T x_gt_two = pmul(
578
+ internal::pchebevl<T, 25>::run(
579
+ psub(pdiv(pset1<T>(8.0), x), two), B),
580
+ prsqrt(x));
581
+ return pselect(pcmp_le(x, two), x_le_two, x_gt_two);
582
+ }
583
+ };
584
+
585
+ template <typename T>
586
+ struct bessel_k0e_impl {
587
+ EIGEN_DEVICE_FUNC
588
+ static EIGEN_STRONG_INLINE T run(const T x) {
589
+ return generic_k0e<T>::run(x);
590
+ }
591
+ };
592
+
593
+ template <typename T>
594
+ struct bessel_k0_retval {
595
+ typedef T type;
596
+ };
597
+
598
+ template <typename T, typename ScalarType = typename unpacket_traits<T>::type>
599
+ struct generic_k0 {
600
+ EIGEN_DEVICE_FUNC
601
+ static EIGEN_STRONG_INLINE T run(const T&) {
602
+ EIGEN_STATIC_ASSERT((internal::is_same<T, T>::value == false),
603
+ THIS_TYPE_IS_NOT_SUPPORTED);
604
+ return ScalarType(0);
605
+ }
606
+ };
607
+
608
+ template <typename T>
609
+ struct generic_k0<T, float> {
610
+ EIGEN_DEVICE_FUNC
611
+ static EIGEN_STRONG_INLINE T run(const T& x) {
612
+ /* k0f.c
613
+ * Modified Bessel function, third kind, order zero
614
+ *
615
+ *
616
+ *
617
+ * SYNOPSIS:
618
+ *
619
+ * float x, y, k0f();
620
+ *
621
+ * y = k0f( x );
622
+ *
623
+ *
624
+ *
625
+ * DESCRIPTION:
626
+ *
627
+ * Returns modified Bessel function of the third kind
628
+ * of order zero of the argument.
629
+ *
630
+ * The range is partitioned into the two intervals [0,8] and
631
+ * (8, infinity). Chebyshev polynomial expansions are employed
632
+ * in each interval.
633
+ *
634
+ *
635
+ *
636
+ * ACCURACY:
637
+ *
638
+ * Tested at 2000 random points between 0 and 8. Peak absolute
639
+ * error (relative when K0 > 1) was 1.46e-14; rms, 4.26e-15.
640
+ * Relative error:
641
+ * arithmetic domain # trials peak rms
642
+ * IEEE 0, 30 30000 7.8e-7 8.5e-8
643
+ *
644
+ * ERROR MESSAGES:
645
+ *
646
+ * message condition value returned
647
+ * K0 domain x <= 0 MAXNUM
648
+ *
649
+ */
650
+
651
+ const float A[] = {1.90451637722020886025E-9f, 2.53479107902614945675E-7f,
652
+ 2.28621210311945178607E-5f, 1.26461541144692592338E-3f,
653
+ 3.59799365153615016266E-2f, 3.44289899924628486886E-1f,
654
+ -5.35327393233902768720E-1f};
655
+
656
+ const float B[] = {-1.69753450938905987466E-9f, 8.57403401741422608519E-9f,
657
+ -4.66048989768794782956E-8f, 2.76681363944501510342E-7f,
658
+ -1.83175552271911948767E-6f, 1.39498137188764993662E-5f,
659
+ -1.28495495816278026384E-4f, 1.56988388573005337491E-3f,
660
+ -3.14481013119645005427E-2f, 2.44030308206595545468E0f};
661
+ const T MAXNUM = pset1<T>(NumTraits<float>::infinity());
662
+ const T two = pset1<T>(2.0);
663
+ T x_le_two = internal::pchebevl<T, 7>::run(
664
+ pmadd(x, x, pset1<T>(-2.0)), A);
665
+ x_le_two = pmadd(
666
+ generic_i0<T, float>::run(x), pnegate(
667
+ plog(pmul(pset1<T>(0.5), x))), x_le_two);
668
+ x_le_two = pselect(pcmp_le(x, pset1<T>(0.0)), MAXNUM, x_le_two);
669
+ T x_gt_two = pmul(
670
+ pmul(
671
+ pexp(pnegate(x)),
672
+ internal::pchebevl<T, 10>::run(
673
+ psub(pdiv(pset1<T>(8.0), x), two), B)),
674
+ prsqrt(x));
675
+ return pselect(pcmp_le(x, two), x_le_two, x_gt_two);
676
+ }
677
+ };
678
+
679
+ template <typename T>
680
+ struct generic_k0<T, double> {
681
+ EIGEN_DEVICE_FUNC
682
+ static EIGEN_STRONG_INLINE T run(const T& x) {
683
+ /*
684
+ *
685
+ * Modified Bessel function, third kind, order zero,
686
+ * exponentially scaled
687
+ *
688
+ *
689
+ *
690
+ * SYNOPSIS:
691
+ *
692
+ * double x, y, k0();
693
+ *
694
+ * y = k0( x );
695
+ *
696
+ *
697
+ *
698
+ * DESCRIPTION:
699
+ *
700
+ * Returns exponentially scaled modified Bessel function
701
+ * of the third kind of order zero of the argument.
702
+ *
703
+ *
704
+ *
705
+ * ACCURACY:
706
+ *
707
+ * Relative error:
708
+ * arithmetic domain # trials peak rms
709
+ * IEEE 0, 30 30000 1.4e-15 1.4e-16
710
+ * See k0().
711
+ *
712
+ */
713
+ const double A[] = {
714
+ 1.37446543561352307156E-16,
715
+ 4.25981614279661018399E-14,
716
+ 1.03496952576338420167E-11,
717
+ 1.90451637722020886025E-9,
718
+ 2.53479107902614945675E-7,
719
+ 2.28621210311945178607E-5,
720
+ 1.26461541144692592338E-3,
721
+ 3.59799365153615016266E-2,
722
+ 3.44289899924628486886E-1,
723
+ -5.35327393233902768720E-1};
724
+ const double B[] = {
725
+ 5.30043377268626276149E-18, -1.64758043015242134646E-17,
726
+ 5.21039150503902756861E-17, -1.67823109680541210385E-16,
727
+ 5.51205597852431940784E-16, -1.84859337734377901440E-15,
728
+ 6.34007647740507060557E-15, -2.22751332699166985548E-14,
729
+ 8.03289077536357521100E-14, -2.98009692317273043925E-13,
730
+ 1.14034058820847496303E-12, -4.51459788337394416547E-12,
731
+ 1.85594911495471785253E-11, -7.95748924447710747776E-11,
732
+ 3.57739728140030116597E-10, -1.69753450938905987466E-9,
733
+ 8.57403401741422608519E-9, -4.66048989768794782956E-8,
734
+ 2.76681363944501510342E-7, -1.83175552271911948767E-6,
735
+ 1.39498137188764993662E-5, -1.28495495816278026384E-4,
736
+ 1.56988388573005337491E-3, -3.14481013119645005427E-2,
737
+ 2.44030308206595545468E0
738
+ };
739
+ const T MAXNUM = pset1<T>(NumTraits<double>::infinity());
740
+ const T two = pset1<T>(2.0);
741
+ T x_le_two = internal::pchebevl<T, 10>::run(
742
+ pmadd(x, x, pset1<T>(-2.0)), A);
743
+ x_le_two = pmadd(
744
+ generic_i0<T, double>::run(x), pnegate(
745
+ plog(pmul(pset1<T>(0.5), x))), x_le_two);
746
+ x_le_two = pselect(pcmp_le(x, pset1<T>(0.0)), MAXNUM, x_le_two);
747
+ T x_gt_two = pmul(
748
+ pmul(
749
+ pexp(-x),
750
+ internal::pchebevl<T, 25>::run(
751
+ psub(pdiv(pset1<T>(8.0), x), two), B)),
752
+ prsqrt(x));
753
+ return pselect(pcmp_le(x, two), x_le_two, x_gt_two);
754
+ }
755
+ };
756
+
757
+ template <typename T>
758
+ struct bessel_k0_impl {
759
+ EIGEN_DEVICE_FUNC
760
+ static EIGEN_STRONG_INLINE T run(const T x) {
761
+ return generic_k0<T>::run(x);
762
+ }
763
+ };
764
+
765
+ template <typename T>
766
+ struct bessel_k1e_retval {
767
+ typedef T type;
768
+ };
769
+
770
+ template <typename T, typename ScalarType = typename unpacket_traits<T>::type>
771
+ struct generic_k1e {
772
+ EIGEN_DEVICE_FUNC
773
+ static EIGEN_STRONG_INLINE T run(const T&) {
774
+ EIGEN_STATIC_ASSERT((internal::is_same<T, T>::value == false),
775
+ THIS_TYPE_IS_NOT_SUPPORTED);
776
+ return ScalarType(0);
777
+ }
778
+ };
779
+
780
+ template <typename T>
781
+ struct generic_k1e<T, float> {
782
+ EIGEN_DEVICE_FUNC
783
+ static EIGEN_STRONG_INLINE T run(const T& x) {
784
+ /* k1ef.c
785
+ *
786
+ * Modified Bessel function, third kind, order one,
787
+ * exponentially scaled
788
+ *
789
+ *
790
+ *
791
+ * SYNOPSIS:
792
+ *
793
+ * float x, y, k1ef();
794
+ *
795
+ * y = k1ef( x );
796
+ *
797
+ *
798
+ *
799
+ * DESCRIPTION:
800
+ *
801
+ * Returns exponentially scaled modified Bessel function
802
+ * of the third kind of order one of the argument:
803
+ *
804
+ * k1e(x) = exp(x) * k1(x).
805
+ *
806
+ *
807
+ *
808
+ * ACCURACY:
809
+ *
810
+ * Relative error:
811
+ * arithmetic domain # trials peak rms
812
+ * IEEE 0, 30 30000 4.9e-7 6.7e-8
813
+ * See k1().
814
+ *
815
+ */
816
+
817
+ const float A[] = {-2.21338763073472585583E-8f, -2.43340614156596823496E-6f,
818
+ -1.73028895751305206302E-4f, -6.97572385963986435018E-3f,
819
+ -1.22611180822657148235E-1f, -3.53155960776544875667E-1f,
820
+ 1.52530022733894777053E0f};
821
+ const float B[] = {2.01504975519703286596E-9f, -1.03457624656780970260E-8f,
822
+ 5.74108412545004946722E-8f, -3.50196060308781257119E-7f,
823
+ 2.40648494783721712015E-6f, -1.93619797416608296024E-5f,
824
+ 1.95215518471351631108E-4f, -2.85781685962277938680E-3f,
825
+ 1.03923736576817238437E-1f, 2.72062619048444266945E0f};
826
+ const T MAXNUM = pset1<T>(NumTraits<float>::infinity());
827
+ const T two = pset1<T>(2.0);
828
+ T x_le_two = pdiv(internal::pchebevl<T, 7>::run(
829
+ pmadd(x, x, pset1<T>(-2.0)), A), x);
830
+ x_le_two = pmadd(
831
+ generic_i1<T, float>::run(x), plog(pmul(pset1<T>(0.5), x)), x_le_two);
832
+ x_le_two = pmul(x_le_two, pexp(x));
833
+ x_le_two = pselect(pcmp_le(x, pset1<T>(0.0)), MAXNUM, x_le_two);
834
+ T x_gt_two = pmul(
835
+ internal::pchebevl<T, 10>::run(
836
+ psub(pdiv(pset1<T>(8.0), x), two), B),
837
+ prsqrt(x));
838
+ return pselect(pcmp_le(x, two), x_le_two, x_gt_two);
839
+ }
840
+ };
841
+
842
+ template <typename T>
843
+ struct generic_k1e<T, double> {
844
+ EIGEN_DEVICE_FUNC
845
+ static EIGEN_STRONG_INLINE T run(const T& x) {
846
+ /* k1e.c
847
+ *
848
+ * Modified Bessel function, third kind, order one,
849
+ * exponentially scaled
850
+ *
851
+ *
852
+ *
853
+ * SYNOPSIS:
854
+ *
855
+ * double x, y, k1e();
856
+ *
857
+ * y = k1e( x );
858
+ *
859
+ *
860
+ *
861
+ * DESCRIPTION:
862
+ *
863
+ * Returns exponentially scaled modified Bessel function
864
+ * of the third kind of order one of the argument:
865
+ *
866
+ * k1e(x) = exp(x) * k1(x).
867
+ *
868
+ *
869
+ *
870
+ * ACCURACY:
871
+ *
872
+ * Relative error:
873
+ * arithmetic domain # trials peak rms
874
+ * IEEE 0, 30 30000 7.8e-16 1.2e-16
875
+ * See k1().
876
+ *
877
+ */
878
+ const double A[] = {-7.02386347938628759343E-18, -2.42744985051936593393E-15,
879
+ -6.66690169419932900609E-13, -1.41148839263352776110E-10,
880
+ -2.21338763073472585583E-8, -2.43340614156596823496E-6,
881
+ -1.73028895751305206302E-4, -6.97572385963986435018E-3,
882
+ -1.22611180822657148235E-1, -3.53155960776544875667E-1,
883
+ 1.52530022733894777053E0};
884
+ const double B[] = {-5.75674448366501715755E-18, 1.79405087314755922667E-17,
885
+ -5.68946255844285935196E-17, 1.83809354436663880070E-16,
886
+ -6.05704724837331885336E-16, 2.03870316562433424052E-15,
887
+ -7.01983709041831346144E-15, 2.47715442448130437068E-14,
888
+ -8.97670518232499435011E-14, 3.34841966607842919884E-13,
889
+ -1.28917396095102890680E-12, 5.13963967348173025100E-12,
890
+ -2.12996783842756842877E-11, 9.21831518760500529508E-11,
891
+ -4.19035475934189648750E-10, 2.01504975519703286596E-9,
892
+ -1.03457624656780970260E-8, 5.74108412545004946722E-8,
893
+ -3.50196060308781257119E-7, 2.40648494783721712015E-6,
894
+ -1.93619797416608296024E-5, 1.95215518471351631108E-4,
895
+ -2.85781685962277938680E-3, 1.03923736576817238437E-1,
896
+ 2.72062619048444266945E0};
897
+ const T MAXNUM = pset1<T>(NumTraits<double>::infinity());
898
+ const T two = pset1<T>(2.0);
899
+ T x_le_two = pdiv(internal::pchebevl<T, 11>::run(
900
+ pmadd(x, x, pset1<T>(-2.0)), A), x);
901
+ x_le_two = pmadd(
902
+ generic_i1<T, double>::run(x), plog(pmul(pset1<T>(0.5), x)), x_le_two);
903
+ x_le_two = pmul(x_le_two, pexp(x));
904
+ x_le_two = pselect(pcmp_le(x, pset1<T>(0.0)), MAXNUM, x_le_two);
905
+ T x_gt_two = pmul(
906
+ internal::pchebevl<T, 25>::run(
907
+ psub(pdiv(pset1<T>(8.0), x), two), B),
908
+ prsqrt(x));
909
+ return pselect(pcmp_le(x, two), x_le_two, x_gt_two);
910
+ }
911
+ };
912
+
913
+ template <typename T>
914
+ struct bessel_k1e_impl {
915
+ EIGEN_DEVICE_FUNC
916
+ static EIGEN_STRONG_INLINE T run(const T x) {
917
+ return generic_k1e<T>::run(x);
918
+ }
919
+ };
920
+
921
+ template <typename T>
922
+ struct bessel_k1_retval {
923
+ typedef T type;
924
+ };
925
+
926
+ template <typename T, typename ScalarType = typename unpacket_traits<T>::type>
927
+ struct generic_k1 {
928
+ EIGEN_DEVICE_FUNC
929
+ static EIGEN_STRONG_INLINE T run(const T&) {
930
+ EIGEN_STATIC_ASSERT((internal::is_same<T, T>::value == false),
931
+ THIS_TYPE_IS_NOT_SUPPORTED);
932
+ return ScalarType(0);
933
+ }
934
+ };
935
+
936
+ template <typename T>
937
+ struct generic_k1<T, float> {
938
+ EIGEN_DEVICE_FUNC
939
+ static EIGEN_STRONG_INLINE T run(const T& x) {
940
+ /* k1f.c
941
+ * Modified Bessel function, third kind, order one
942
+ *
943
+ *
944
+ *
945
+ * SYNOPSIS:
946
+ *
947
+ * float x, y, k1f();
948
+ *
949
+ * y = k1f( x );
950
+ *
951
+ *
952
+ *
953
+ * DESCRIPTION:
954
+ *
955
+ * Computes the modified Bessel function of the third kind
956
+ * of order one of the argument.
957
+ *
958
+ * The range is partitioned into the two intervals [0,2] and
959
+ * (2, infinity). Chebyshev polynomial expansions are employed
960
+ * in each interval.
961
+ *
962
+ *
963
+ *
964
+ * ACCURACY:
965
+ *
966
+ * Relative error:
967
+ * arithmetic domain # trials peak rms
968
+ * IEEE 0, 30 30000 4.6e-7 7.6e-8
969
+ *
970
+ * ERROR MESSAGES:
971
+ *
972
+ * message condition value returned
973
+ * k1 domain x <= 0 MAXNUM
974
+ *
975
+ */
976
+
977
+ const float A[] = {-2.21338763073472585583E-8f, -2.43340614156596823496E-6f,
978
+ -1.73028895751305206302E-4f, -6.97572385963986435018E-3f,
979
+ -1.22611180822657148235E-1f, -3.53155960776544875667E-1f,
980
+ 1.52530022733894777053E0f};
981
+ const float B[] = {2.01504975519703286596E-9f, -1.03457624656780970260E-8f,
982
+ 5.74108412545004946722E-8f, -3.50196060308781257119E-7f,
983
+ 2.40648494783721712015E-6f, -1.93619797416608296024E-5f,
984
+ 1.95215518471351631108E-4f, -2.85781685962277938680E-3f,
985
+ 1.03923736576817238437E-1f, 2.72062619048444266945E0f};
986
+ const T MAXNUM = pset1<T>(NumTraits<float>::infinity());
987
+ const T two = pset1<T>(2.0);
988
+ T x_le_two = pdiv(internal::pchebevl<T, 7>::run(
989
+ pmadd(x, x, pset1<T>(-2.0)), A), x);
990
+ x_le_two = pmadd(
991
+ generic_i1<T, float>::run(x), plog(pmul(pset1<T>(0.5), x)), x_le_two);
992
+ x_le_two = pselect(pcmp_le(x, pset1<T>(0.0)), MAXNUM, x_le_two);
993
+ T x_gt_two = pmul(
994
+ pexp(pnegate(x)),
995
+ pmul(
996
+ internal::pchebevl<T, 10>::run(
997
+ psub(pdiv(pset1<T>(8.0), x), two), B),
998
+ prsqrt(x)));
999
+ return pselect(pcmp_le(x, two), x_le_two, x_gt_two);
1000
+ }
1001
+ };
1002
+
1003
+ template <typename T>
1004
+ struct generic_k1<T, double> {
1005
+ EIGEN_DEVICE_FUNC
1006
+ static EIGEN_STRONG_INLINE T run(const T& x) {
1007
+ /* k1.c
1008
+ * Modified Bessel function, third kind, order one
1009
+ *
1010
+ *
1011
+ *
1012
+ * SYNOPSIS:
1013
+ *
1014
+ * float x, y, k1f();
1015
+ *
1016
+ * y = k1f( x );
1017
+ *
1018
+ *
1019
+ *
1020
+ * DESCRIPTION:
1021
+ *
1022
+ * Computes the modified Bessel function of the third kind
1023
+ * of order one of the argument.
1024
+ *
1025
+ * The range is partitioned into the two intervals [0,2] and
1026
+ * (2, infinity). Chebyshev polynomial expansions are employed
1027
+ * in each interval.
1028
+ *
1029
+ *
1030
+ *
1031
+ * ACCURACY:
1032
+ *
1033
+ * Relative error:
1034
+ * arithmetic domain # trials peak rms
1035
+ * IEEE 0, 30 30000 4.6e-7 7.6e-8
1036
+ *
1037
+ * ERROR MESSAGES:
1038
+ *
1039
+ * message condition value returned
1040
+ * k1 domain x <= 0 MAXNUM
1041
+ *
1042
+ */
1043
+ const double A[] = {-7.02386347938628759343E-18, -2.42744985051936593393E-15,
1044
+ -6.66690169419932900609E-13, -1.41148839263352776110E-10,
1045
+ -2.21338763073472585583E-8, -2.43340614156596823496E-6,
1046
+ -1.73028895751305206302E-4, -6.97572385963986435018E-3,
1047
+ -1.22611180822657148235E-1, -3.53155960776544875667E-1,
1048
+ 1.52530022733894777053E0};
1049
+ const double B[] = {-5.75674448366501715755E-18, 1.79405087314755922667E-17,
1050
+ -5.68946255844285935196E-17, 1.83809354436663880070E-16,
1051
+ -6.05704724837331885336E-16, 2.03870316562433424052E-15,
1052
+ -7.01983709041831346144E-15, 2.47715442448130437068E-14,
1053
+ -8.97670518232499435011E-14, 3.34841966607842919884E-13,
1054
+ -1.28917396095102890680E-12, 5.13963967348173025100E-12,
1055
+ -2.12996783842756842877E-11, 9.21831518760500529508E-11,
1056
+ -4.19035475934189648750E-10, 2.01504975519703286596E-9,
1057
+ -1.03457624656780970260E-8, 5.74108412545004946722E-8,
1058
+ -3.50196060308781257119E-7, 2.40648494783721712015E-6,
1059
+ -1.93619797416608296024E-5, 1.95215518471351631108E-4,
1060
+ -2.85781685962277938680E-3, 1.03923736576817238437E-1,
1061
+ 2.72062619048444266945E0};
1062
+ const T MAXNUM = pset1<T>(NumTraits<double>::infinity());
1063
+ const T two = pset1<T>(2.0);
1064
+ T x_le_two = pdiv(internal::pchebevl<T, 11>::run(
1065
+ pmadd(x, x, pset1<T>(-2.0)), A), x);
1066
+ x_le_two = pmadd(
1067
+ generic_i1<T, double>::run(x), plog(pmul(pset1<T>(0.5), x)), x_le_two);
1068
+ x_le_two = pselect(pcmp_le(x, pset1<T>(0.0)), MAXNUM, x_le_two);
1069
+ T x_gt_two = pmul(
1070
+ pexp(-x),
1071
+ pmul(
1072
+ internal::pchebevl<T, 25>::run(
1073
+ psub(pdiv(pset1<T>(8.0), x), two), B),
1074
+ prsqrt(x)));
1075
+ return pselect(pcmp_le(x, two), x_le_two, x_gt_two);
1076
+ }
1077
+ };
1078
+
1079
+ template <typename T>
1080
+ struct bessel_k1_impl {
1081
+ EIGEN_DEVICE_FUNC
1082
+ static EIGEN_STRONG_INLINE T run(const T x) {
1083
+ return generic_k1<T>::run(x);
1084
+ }
1085
+ };
1086
+
1087
+ template <typename T>
1088
+ struct bessel_j0_retval {
1089
+ typedef T type;
1090
+ };
1091
+
1092
+ template <typename T, typename ScalarType = typename unpacket_traits<T>::type>
1093
+ struct generic_j0 {
1094
+ EIGEN_DEVICE_FUNC
1095
+ static EIGEN_STRONG_INLINE T run(const T&) {
1096
+ EIGEN_STATIC_ASSERT((internal::is_same<T, T>::value == false),
1097
+ THIS_TYPE_IS_NOT_SUPPORTED);
1098
+ return ScalarType(0);
1099
+ }
1100
+ };
1101
+
1102
+ template <typename T>
1103
+ struct generic_j0<T, float> {
1104
+ EIGEN_DEVICE_FUNC
1105
+ static EIGEN_STRONG_INLINE T run(const T& x) {
1106
+ /* j0f.c
1107
+ * Bessel function of order zero
1108
+ *
1109
+ *
1110
+ *
1111
+ * SYNOPSIS:
1112
+ *
1113
+ * float x, y, j0f();
1114
+ *
1115
+ * y = j0f( x );
1116
+ *
1117
+ *
1118
+ *
1119
+ * DESCRIPTION:
1120
+ *
1121
+ * Returns Bessel function of order zero of the argument.
1122
+ *
1123
+ * The domain is divided into the intervals [0, 2] and
1124
+ * (2, infinity). In the first interval the following polynomial
1125
+ * approximation is used:
1126
+ *
1127
+ *
1128
+ * 2 2 2
1129
+ * (w - r ) (w - r ) (w - r ) P(w)
1130
+ * 1 2 3
1131
+ *
1132
+ * 2
1133
+ * where w = x and the three r's are zeros of the function.
1134
+ *
1135
+ * In the second interval, the modulus and phase are approximated
1136
+ * by polynomials of the form Modulus(x) = sqrt(1/x) Q(1/x)
1137
+ * and Phase(x) = x + 1/x R(1/x^2) - pi/4. The function is
1138
+ *
1139
+ * j0(x) = Modulus(x) cos( Phase(x) ).
1140
+ *
1141
+ *
1142
+ *
1143
+ * ACCURACY:
1144
+ *
1145
+ * Absolute error:
1146
+ * arithmetic domain # trials peak rms
1147
+ * IEEE 0, 2 100000 1.3e-7 3.6e-8
1148
+ * IEEE 2, 32 100000 1.9e-7 5.4e-8
1149
+ *
1150
+ */
1151
+
1152
+ const float JP[] = {-6.068350350393235E-008f, 6.388945720783375E-006f,
1153
+ -3.969646342510940E-004f, 1.332913422519003E-002f,
1154
+ -1.729150680240724E-001f};
1155
+ const float MO[] = {-6.838999669318810E-002f, 1.864949361379502E-001f,
1156
+ -2.145007480346739E-001f, 1.197549369473540E-001f,
1157
+ -3.560281861530129E-003f, -4.969382655296620E-002f,
1158
+ -3.355424622293709E-006f, 7.978845717621440E-001f};
1159
+ const float PH[] = {3.242077816988247E+001f, -3.630592630518434E+001f,
1160
+ 1.756221482109099E+001f, -4.974978466280903E+000f,
1161
+ 1.001973420681837E+000f, -1.939906941791308E-001f,
1162
+ 6.490598792654666E-002f, -1.249992184872738E-001f};
1163
+ const T DR1 = pset1<T>(5.78318596294678452118f);
1164
+ const T NEG_PIO4F = pset1<T>(-0.7853981633974483096f); /* -pi / 4 */
1165
+ T y = pabs(x);
1166
+ T z = pmul(y, y);
1167
+ T y_le_two = pselect(
1168
+ pcmp_lt(y, pset1<T>(1.0e-3f)),
1169
+ pmadd(z, pset1<T>(-0.25f), pset1<T>(1.0f)),
1170
+ pmul(psub(z, DR1), internal::ppolevl<T, 4>::run(z, JP)));
1171
+ T q = pdiv(pset1<T>(1.0f), y);
1172
+ T w = prsqrt(y);
1173
+ T p = pmul(w, internal::ppolevl<T, 7>::run(q, MO));
1174
+ w = pmul(q, q);
1175
+ T yn = pmadd(q, internal::ppolevl<T, 7>::run(w, PH), NEG_PIO4F);
1176
+ T y_gt_two = pmul(p, pcos(padd(yn, y)));
1177
+ return pselect(pcmp_le(y, pset1<T>(2.0)), y_le_two, y_gt_two);
1178
+ }
1179
+ };
1180
+
1181
+ template <typename T>
1182
+ struct generic_j0<T, double> {
1183
+ EIGEN_DEVICE_FUNC
1184
+ static EIGEN_STRONG_INLINE T run(const T& x) {
1185
+ /* j0.c
1186
+ * Bessel function of order zero
1187
+ *
1188
+ *
1189
+ *
1190
+ * SYNOPSIS:
1191
+ *
1192
+ * double x, y, j0();
1193
+ *
1194
+ * y = j0( x );
1195
+ *
1196
+ *
1197
+ *
1198
+ * DESCRIPTION:
1199
+ *
1200
+ * Returns Bessel function of order zero of the argument.
1201
+ *
1202
+ * The domain is divided into the intervals [0, 5] and
1203
+ * (5, infinity). In the first interval the following rational
1204
+ * approximation is used:
1205
+ *
1206
+ *
1207
+ * 2 2
1208
+ * (w - r ) (w - r ) P (w) / Q (w)
1209
+ * 1 2 3 8
1210
+ *
1211
+ * 2
1212
+ * where w = x and the two r's are zeros of the function.
1213
+ *
1214
+ * In the second interval, the Hankel asymptotic expansion
1215
+ * is employed with two rational functions of degree 6/6
1216
+ * and 7/7.
1217
+ *
1218
+ *
1219
+ *
1220
+ * ACCURACY:
1221
+ *
1222
+ * Absolute error:
1223
+ * arithmetic domain # trials peak rms
1224
+ * DEC 0, 30 10000 4.4e-17 6.3e-18
1225
+ * IEEE 0, 30 60000 4.2e-16 1.1e-16
1226
+ *
1227
+ */
1228
+ const double PP[] = {7.96936729297347051624E-4, 8.28352392107440799803E-2,
1229
+ 1.23953371646414299388E0, 5.44725003058768775090E0,
1230
+ 8.74716500199817011941E0, 5.30324038235394892183E0,
1231
+ 9.99999999999999997821E-1};
1232
+ const double PQ[] = {9.24408810558863637013E-4, 8.56288474354474431428E-2,
1233
+ 1.25352743901058953537E0, 5.47097740330417105182E0,
1234
+ 8.76190883237069594232E0, 5.30605288235394617618E0,
1235
+ 1.00000000000000000218E0};
1236
+ const double QP[] = {-1.13663838898469149931E-2, -1.28252718670509318512E0,
1237
+ -1.95539544257735972385E1, -9.32060152123768231369E1,
1238
+ -1.77681167980488050595E2, -1.47077505154951170175E2,
1239
+ -5.14105326766599330220E1, -6.05014350600728481186E0};
1240
+ const double QQ[] = {1.00000000000000000000E0, 6.43178256118178023184E1,
1241
+ 8.56430025976980587198E2, 3.88240183605401609683E3,
1242
+ 7.24046774195652478189E3, 5.93072701187316984827E3,
1243
+ 2.06209331660327847417E3, 2.42005740240291393179E2};
1244
+ const double RP[] = {-4.79443220978201773821E9, 1.95617491946556577543E12,
1245
+ -2.49248344360967716204E14, 9.70862251047306323952E15};
1246
+ const double RQ[] = {1.00000000000000000000E0, 4.99563147152651017219E2,
1247
+ 1.73785401676374683123E5, 4.84409658339962045305E7,
1248
+ 1.11855537045356834862E10, 2.11277520115489217587E12,
1249
+ 3.10518229857422583814E14, 3.18121955943204943306E16,
1250
+ 1.71086294081043136091E18};
1251
+ const T DR1 = pset1<T>(5.78318596294678452118E0);
1252
+ const T DR2 = pset1<T>(3.04712623436620863991E1);
1253
+ const T SQ2OPI = pset1<T>(7.9788456080286535587989E-1); /* sqrt(2 / pi) */
1254
+ const T NEG_PIO4 = pset1<T>(-0.7853981633974483096); /* pi / 4 */
1255
+
1256
+ T y = pabs(x);
1257
+ T z = pmul(y, y);
1258
+ T y_le_five = pselect(
1259
+ pcmp_lt(y, pset1<T>(1.0e-5)),
1260
+ pmadd(z, pset1<T>(-0.25), pset1<T>(1.0)),
1261
+ pmul(pmul(psub(z, DR1), psub(z, DR2)),
1262
+ pdiv(internal::ppolevl<T, 3>::run(z, RP),
1263
+ internal::ppolevl<T, 8>::run(z, RQ))));
1264
+ T s = pdiv(pset1<T>(25.0), z);
1265
+ T p = pdiv(
1266
+ internal::ppolevl<T, 6>::run(s, PP),
1267
+ internal::ppolevl<T, 6>::run(s, PQ));
1268
+ T q = pdiv(
1269
+ internal::ppolevl<T, 7>::run(s, QP),
1270
+ internal::ppolevl<T, 7>::run(s, QQ));
1271
+ T yn = padd(y, NEG_PIO4);
1272
+ T w = pdiv(pset1<T>(-5.0), y);
1273
+ p = pmadd(p, pcos(yn), pmul(w, pmul(q, psin(yn))));
1274
+ T y_gt_five = pmul(p, pmul(SQ2OPI, prsqrt(y)));
1275
+ return pselect(pcmp_le(y, pset1<T>(5.0)), y_le_five, y_gt_five);
1276
+ }
1277
+ };
1278
+
1279
+ template <typename T>
1280
+ struct bessel_j0_impl {
1281
+ EIGEN_DEVICE_FUNC
1282
+ static EIGEN_STRONG_INLINE T run(const T x) {
1283
+ return generic_j0<T>::run(x);
1284
+ }
1285
+ };
1286
+
1287
+ template <typename T>
1288
+ struct bessel_y0_retval {
1289
+ typedef T type;
1290
+ };
1291
+
1292
+ template <typename T, typename ScalarType = typename unpacket_traits<T>::type>
1293
+ struct generic_y0 {
1294
+ EIGEN_DEVICE_FUNC
1295
+ static EIGEN_STRONG_INLINE T run(const T&) {
1296
+ EIGEN_STATIC_ASSERT((internal::is_same<T, T>::value == false),
1297
+ THIS_TYPE_IS_NOT_SUPPORTED);
1298
+ return ScalarType(0);
1299
+ }
1300
+ };
1301
+
1302
+ template <typename T>
1303
+ struct generic_y0<T, float> {
1304
+ EIGEN_DEVICE_FUNC
1305
+ static EIGEN_STRONG_INLINE T run(const T& x) {
1306
+ /* j0f.c
1307
+ * Bessel function of the second kind, order zero
1308
+ *
1309
+ *
1310
+ *
1311
+ * SYNOPSIS:
1312
+ *
1313
+ * float x, y, y0f();
1314
+ *
1315
+ * y = y0f( x );
1316
+ *
1317
+ *
1318
+ *
1319
+ * DESCRIPTION:
1320
+ *
1321
+ * Returns Bessel function of the second kind, of order
1322
+ * zero, of the argument.
1323
+ *
1324
+ * The domain is divided into the intervals [0, 2] and
1325
+ * (2, infinity). In the first interval a rational approximation
1326
+ * R(x) is employed to compute
1327
+ *
1328
+ * 2 2 2
1329
+ * y0(x) = (w - r ) (w - r ) (w - r ) R(x) + 2/pi ln(x) j0(x).
1330
+ * 1 2 3
1331
+ *
1332
+ * Thus a call to j0() is required. The three zeros are removed
1333
+ * from R(x) to improve its numerical stability.
1334
+ *
1335
+ * In the second interval, the modulus and phase are approximated
1336
+ * by polynomials of the form Modulus(x) = sqrt(1/x) Q(1/x)
1337
+ * and Phase(x) = x + 1/x S(1/x^2) - pi/4. Then the function is
1338
+ *
1339
+ * y0(x) = Modulus(x) sin( Phase(x) ).
1340
+ *
1341
+ *
1342
+ *
1343
+ *
1344
+ * ACCURACY:
1345
+ *
1346
+ * Absolute error, when y0(x) < 1; else relative error:
1347
+ *
1348
+ * arithmetic domain # trials peak rms
1349
+ * IEEE 0, 2 100000 2.4e-7 3.4e-8
1350
+ * IEEE 2, 32 100000 1.8e-7 5.3e-8
1351
+ *
1352
+ */
1353
+
1354
+ const float YP[] = {9.454583683980369E-008f, -9.413212653797057E-006f,
1355
+ 5.344486707214273E-004f, -1.584289289821316E-002f,
1356
+ 1.707584643733568E-001f};
1357
+ const float MO[] = {-6.838999669318810E-002f, 1.864949361379502E-001f,
1358
+ -2.145007480346739E-001f, 1.197549369473540E-001f,
1359
+ -3.560281861530129E-003f, -4.969382655296620E-002f,
1360
+ -3.355424622293709E-006f, 7.978845717621440E-001f};
1361
+ const float PH[] = {3.242077816988247E+001f, -3.630592630518434E+001f,
1362
+ 1.756221482109099E+001f, -4.974978466280903E+000f,
1363
+ 1.001973420681837E+000f, -1.939906941791308E-001f,
1364
+ 6.490598792654666E-002f, -1.249992184872738E-001f};
1365
+ const T YZ1 = pset1<T>(0.43221455686510834878f);
1366
+ const T TWOOPI = pset1<T>(0.636619772367581343075535f); /* 2 / pi */
1367
+ const T NEG_PIO4F = pset1<T>(-0.7853981633974483096f); /* -pi / 4 */
1368
+ const T NEG_MAXNUM = pset1<T>(-NumTraits<float>::infinity());
1369
+ T z = pmul(x, x);
1370
+ T x_le_two = pmul(TWOOPI, pmul(plog(x), generic_j0<T, float>::run(x)));
1371
+ x_le_two = pmadd(
1372
+ psub(z, YZ1), internal::ppolevl<T, 4>::run(z, YP), x_le_two);
1373
+ x_le_two = pselect(pcmp_le(x, pset1<T>(0.0)), NEG_MAXNUM, x_le_two);
1374
+ T q = pdiv(pset1<T>(1.0), x);
1375
+ T w = prsqrt(x);
1376
+ T p = pmul(w, internal::ppolevl<T, 7>::run(q, MO));
1377
+ T u = pmul(q, q);
1378
+ T xn = pmadd(q, internal::ppolevl<T, 7>::run(u, PH), NEG_PIO4F);
1379
+ T x_gt_two = pmul(p, psin(padd(xn, x)));
1380
+ return pselect(pcmp_le(x, pset1<T>(2.0)), x_le_two, x_gt_two);
1381
+ }
1382
+ };
1383
+
1384
+ template <typename T>
1385
+ struct generic_y0<T, double> {
1386
+ EIGEN_DEVICE_FUNC
1387
+ static EIGEN_STRONG_INLINE T run(const T& x) {
1388
+ /* j0.c
1389
+ * Bessel function of the second kind, order zero
1390
+ *
1391
+ *
1392
+ *
1393
+ * SYNOPSIS:
1394
+ *
1395
+ * double x, y, y0();
1396
+ *
1397
+ * y = y0( x );
1398
+ *
1399
+ *
1400
+ *
1401
+ * DESCRIPTION:
1402
+ *
1403
+ * Returns Bessel function of the second kind, of order
1404
+ * zero, of the argument.
1405
+ *
1406
+ * The domain is divided into the intervals [0, 5] and
1407
+ * (5, infinity). In the first interval a rational approximation
1408
+ * R(x) is employed to compute
1409
+ * y0(x) = R(x) + 2 * log(x) * j0(x) / PI.
1410
+ * Thus a call to j0() is required.
1411
+ *
1412
+ * In the second interval, the Hankel asymptotic expansion
1413
+ * is employed with two rational functions of degree 6/6
1414
+ * and 7/7.
1415
+ *
1416
+ *
1417
+ *
1418
+ * ACCURACY:
1419
+ *
1420
+ * Absolute error, when y0(x) < 1; else relative error:
1421
+ *
1422
+ * arithmetic domain # trials peak rms
1423
+ * DEC 0, 30 9400 7.0e-17 7.9e-18
1424
+ * IEEE 0, 30 30000 1.3e-15 1.6e-16
1425
+ *
1426
+ */
1427
+ const double PP[] = {7.96936729297347051624E-4, 8.28352392107440799803E-2,
1428
+ 1.23953371646414299388E0, 5.44725003058768775090E0,
1429
+ 8.74716500199817011941E0, 5.30324038235394892183E0,
1430
+ 9.99999999999999997821E-1};
1431
+ const double PQ[] = {9.24408810558863637013E-4, 8.56288474354474431428E-2,
1432
+ 1.25352743901058953537E0, 5.47097740330417105182E0,
1433
+ 8.76190883237069594232E0, 5.30605288235394617618E0,
1434
+ 1.00000000000000000218E0};
1435
+ const double QP[] = {-1.13663838898469149931E-2, -1.28252718670509318512E0,
1436
+ -1.95539544257735972385E1, -9.32060152123768231369E1,
1437
+ -1.77681167980488050595E2, -1.47077505154951170175E2,
1438
+ -5.14105326766599330220E1, -6.05014350600728481186E0};
1439
+ const double QQ[] = {1.00000000000000000000E0, 6.43178256118178023184E1,
1440
+ 8.56430025976980587198E2, 3.88240183605401609683E3,
1441
+ 7.24046774195652478189E3, 5.93072701187316984827E3,
1442
+ 2.06209331660327847417E3, 2.42005740240291393179E2};
1443
+ const double YP[] = {1.55924367855235737965E4, -1.46639295903971606143E7,
1444
+ 5.43526477051876500413E9, -9.82136065717911466409E11,
1445
+ 8.75906394395366999549E13, -3.46628303384729719441E15,
1446
+ 4.42733268572569800351E16, -1.84950800436986690637E16};
1447
+ const double YQ[] = {1.00000000000000000000E0, 1.04128353664259848412E3,
1448
+ 6.26107330137134956842E5, 2.68919633393814121987E8,
1449
+ 8.64002487103935000337E10, 2.02979612750105546709E13,
1450
+ 3.17157752842975028269E15, 2.50596256172653059228E17};
1451
+ const T SQ2OPI = pset1<T>(7.9788456080286535587989E-1); /* sqrt(2 / pi) */
1452
+ const T TWOOPI = pset1<T>(0.636619772367581343075535); /* 2 / pi */
1453
+ const T NEG_PIO4 = pset1<T>(-0.7853981633974483096); /* -pi / 4 */
1454
+ const T NEG_MAXNUM = pset1<T>(-NumTraits<double>::infinity());
1455
+
1456
+ T z = pmul(x, x);
1457
+ T x_le_five = pdiv(internal::ppolevl<T, 7>::run(z, YP),
1458
+ internal::ppolevl<T, 7>::run(z, YQ));
1459
+ x_le_five = pmadd(
1460
+ pmul(TWOOPI, plog(x)), generic_j0<T, double>::run(x), x_le_five);
1461
+ x_le_five = pselect(pcmp_le(x, pset1<T>(0.0)), NEG_MAXNUM, x_le_five);
1462
+ T s = pdiv(pset1<T>(25.0), z);
1463
+ T p = pdiv(
1464
+ internal::ppolevl<T, 6>::run(s, PP),
1465
+ internal::ppolevl<T, 6>::run(s, PQ));
1466
+ T q = pdiv(
1467
+ internal::ppolevl<T, 7>::run(s, QP),
1468
+ internal::ppolevl<T, 7>::run(s, QQ));
1469
+ T xn = padd(x, NEG_PIO4);
1470
+ T w = pdiv(pset1<T>(5.0), x);
1471
+ p = pmadd(p, psin(xn), pmul(w, pmul(q, pcos(xn))));
1472
+ T x_gt_five = pmul(p, pmul(SQ2OPI, prsqrt(x)));
1473
+ return pselect(pcmp_le(x, pset1<T>(5.0)), x_le_five, x_gt_five);
1474
+ }
1475
+ };
1476
+
1477
+ template <typename T>
1478
+ struct bessel_y0_impl {
1479
+ EIGEN_DEVICE_FUNC
1480
+ static EIGEN_STRONG_INLINE T run(const T x) {
1481
+ return generic_y0<T>::run(x);
1482
+ }
1483
+ };
1484
+
1485
+ template <typename T>
1486
+ struct bessel_j1_retval {
1487
+ typedef T type;
1488
+ };
1489
+
1490
+ template <typename T, typename ScalarType = typename unpacket_traits<T>::type>
1491
+ struct generic_j1 {
1492
+ EIGEN_DEVICE_FUNC
1493
+ static EIGEN_STRONG_INLINE T run(const T&) {
1494
+ EIGEN_STATIC_ASSERT((internal::is_same<T, T>::value == false),
1495
+ THIS_TYPE_IS_NOT_SUPPORTED);
1496
+ return ScalarType(0);
1497
+ }
1498
+ };
1499
+
1500
+ template <typename T>
1501
+ struct generic_j1<T, float> {
1502
+ EIGEN_DEVICE_FUNC
1503
+ static EIGEN_STRONG_INLINE T run(const T& x) {
1504
+ /* j1f.c
1505
+ * Bessel function of order one
1506
+ *
1507
+ *
1508
+ *
1509
+ * SYNOPSIS:
1510
+ *
1511
+ * float x, y, j1f();
1512
+ *
1513
+ * y = j1f( x );
1514
+ *
1515
+ *
1516
+ *
1517
+ * DESCRIPTION:
1518
+ *
1519
+ * Returns Bessel function of order one of the argument.
1520
+ *
1521
+ * The domain is divided into the intervals [0, 2] and
1522
+ * (2, infinity). In the first interval a polynomial approximation
1523
+ * 2
1524
+ * (w - r ) x P(w)
1525
+ * 1
1526
+ * 2
1527
+ * is used, where w = x and r is the first zero of the function.
1528
+ *
1529
+ * In the second interval, the modulus and phase are approximated
1530
+ * by polynomials of the form Modulus(x) = sqrt(1/x) Q(1/x)
1531
+ * and Phase(x) = x + 1/x R(1/x^2) - 3pi/4. The function is
1532
+ *
1533
+ * j0(x) = Modulus(x) cos( Phase(x) ).
1534
+ *
1535
+ *
1536
+ *
1537
+ * ACCURACY:
1538
+ *
1539
+ * Absolute error:
1540
+ * arithmetic domain # trials peak rms
1541
+ * IEEE 0, 2 100000 1.2e-7 2.5e-8
1542
+ * IEEE 2, 32 100000 2.0e-7 5.3e-8
1543
+ *
1544
+ *
1545
+ */
1546
+
1547
+ const float JP[] = {-4.878788132172128E-009f, 6.009061827883699E-007f,
1548
+ -4.541343896997497E-005f, 1.937383947804541E-003f,
1549
+ -3.405537384615824E-002f};
1550
+ const float MO1[] = {6.913942741265801E-002f, -2.284801500053359E-001f,
1551
+ 3.138238455499697E-001f, -2.102302420403875E-001f,
1552
+ 5.435364690523026E-003f, 1.493389585089498E-001f,
1553
+ 4.976029650847191E-006f, 7.978845453073848E-001f};
1554
+ const float PH1[] = {-4.497014141919556E+001f, 5.073465654089319E+001f,
1555
+ -2.485774108720340E+001f, 7.222973196770240E+000f,
1556
+ -1.544842782180211E+000f, 3.503787691653334E-001f,
1557
+ -1.637986776941202E-001f, 3.749989509080821E-001f};
1558
+ const T Z1 = pset1<T>(1.46819706421238932572E1f);
1559
+ const T NEG_THPIO4F = pset1<T>(-2.35619449019234492885f); /* -3*pi/4 */
1560
+
1561
+ T y = pabs(x);
1562
+ T z = pmul(y, y);
1563
+ T y_le_two = pmul(
1564
+ psub(z, Z1),
1565
+ pmul(x, internal::ppolevl<T, 4>::run(z, JP)));
1566
+ T q = pdiv(pset1<T>(1.0f), y);
1567
+ T w = prsqrt(y);
1568
+ T p = pmul(w, internal::ppolevl<T, 7>::run(q, MO1));
1569
+ w = pmul(q, q);
1570
+ T yn = pmadd(q, internal::ppolevl<T, 7>::run(w, PH1), NEG_THPIO4F);
1571
+ T y_gt_two = pmul(p, pcos(padd(yn, y)));
1572
+ // j1 is an odd function. This implementation differs from cephes to
1573
+ // take this fact in to account. Cephes returns -j1(x) for y > 2 range.
1574
+ y_gt_two = pselect(
1575
+ pcmp_lt(x, pset1<T>(0.0f)), pnegate(y_gt_two), y_gt_two);
1576
+ return pselect(pcmp_le(y, pset1<T>(2.0f)), y_le_two, y_gt_two);
1577
+ }
1578
+ };
1579
+
1580
+ template <typename T>
1581
+ struct generic_j1<T, double> {
1582
+ EIGEN_DEVICE_FUNC
1583
+ static EIGEN_STRONG_INLINE T run(const T& x) {
1584
+ /* j1.c
1585
+ * Bessel function of order one
1586
+ *
1587
+ *
1588
+ *
1589
+ * SYNOPSIS:
1590
+ *
1591
+ * double x, y, j1();
1592
+ *
1593
+ * y = j1( x );
1594
+ *
1595
+ *
1596
+ *
1597
+ * DESCRIPTION:
1598
+ *
1599
+ * Returns Bessel function of order one of the argument.
1600
+ *
1601
+ * The domain is divided into the intervals [0, 8] and
1602
+ * (8, infinity). In the first interval a 24 term Chebyshev
1603
+ * expansion is used. In the second, the asymptotic
1604
+ * trigonometric representation is employed using two
1605
+ * rational functions of degree 5/5.
1606
+ *
1607
+ *
1608
+ *
1609
+ * ACCURACY:
1610
+ *
1611
+ * Absolute error:
1612
+ * arithmetic domain # trials peak rms
1613
+ * DEC 0, 30 10000 4.0e-17 1.1e-17
1614
+ * IEEE 0, 30 30000 2.6e-16 1.1e-16
1615
+ *
1616
+ */
1617
+ const double PP[] = {7.62125616208173112003E-4, 7.31397056940917570436E-2,
1618
+ 1.12719608129684925192E0, 5.11207951146807644818E0,
1619
+ 8.42404590141772420927E0, 5.21451598682361504063E0,
1620
+ 1.00000000000000000254E0};
1621
+ const double PQ[] = {5.71323128072548699714E-4, 6.88455908754495404082E-2,
1622
+ 1.10514232634061696926E0, 5.07386386128601488557E0,
1623
+ 8.39985554327604159757E0, 5.20982848682361821619E0,
1624
+ 9.99999999999999997461E-1};
1625
+ const double QP[] = {5.10862594750176621635E-2, 4.98213872951233449420E0,
1626
+ 7.58238284132545283818E1, 3.66779609360150777800E2,
1627
+ 7.10856304998926107277E2, 5.97489612400613639965E2,
1628
+ 2.11688757100572135698E2, 2.52070205858023719784E1};
1629
+ const double QQ[] = {1.00000000000000000000E0, 7.42373277035675149943E1,
1630
+ 1.05644886038262816351E3, 4.98641058337653607651E3,
1631
+ 9.56231892404756170795E3, 7.99704160447350683650E3,
1632
+ 2.82619278517639096600E3, 3.36093607810698293419E2};
1633
+ const double RP[] = {-8.99971225705559398224E8, 4.52228297998194034323E11,
1634
+ -7.27494245221818276015E13, 3.68295732863852883286E15};
1635
+ const double RQ[] = {1.00000000000000000000E0, 6.20836478118054335476E2,
1636
+ 2.56987256757748830383E5, 8.35146791431949253037E7,
1637
+ 2.21511595479792499675E10, 4.74914122079991414898E12,
1638
+ 7.84369607876235854894E14, 8.95222336184627338078E16,
1639
+ 5.32278620332680085395E18};
1640
+ const T Z1 = pset1<T>(1.46819706421238932572E1);
1641
+ const T Z2 = pset1<T>(4.92184563216946036703E1);
1642
+ const T NEG_THPIO4 = pset1<T>(-2.35619449019234492885); /* -3*pi/4 */
1643
+ const T SQ2OPI = pset1<T>(7.9788456080286535587989E-1); /* sqrt(2 / pi) */
1644
+ T y = pabs(x);
1645
+ T z = pmul(y, y);
1646
+ T y_le_five = pdiv(internal::ppolevl<T, 3>::run(z, RP),
1647
+ internal::ppolevl<T, 8>::run(z, RQ));
1648
+ y_le_five = pmul(pmul(pmul(y_le_five, x), psub(z, Z1)), psub(z, Z2));
1649
+ T s = pdiv(pset1<T>(25.0), z);
1650
+ T p = pdiv(
1651
+ internal::ppolevl<T, 6>::run(s, PP),
1652
+ internal::ppolevl<T, 6>::run(s, PQ));
1653
+ T q = pdiv(
1654
+ internal::ppolevl<T, 7>::run(s, QP),
1655
+ internal::ppolevl<T, 7>::run(s, QQ));
1656
+ T yn = padd(y, NEG_THPIO4);
1657
+ T w = pdiv(pset1<T>(-5.0), y);
1658
+ p = pmadd(p, pcos(yn), pmul(w, pmul(q, psin(yn))));
1659
+ T y_gt_five = pmul(p, pmul(SQ2OPI, prsqrt(y)));
1660
+ // j1 is an odd function. This implementation differs from cephes to
1661
+ // take this fact in to account. Cephes returns -j1(x) for y > 5 range.
1662
+ y_gt_five = pselect(
1663
+ pcmp_lt(x, pset1<T>(0.0)), pnegate(y_gt_five), y_gt_five);
1664
+ return pselect(pcmp_le(y, pset1<T>(5.0)), y_le_five, y_gt_five);
1665
+ }
1666
+ };
1667
+
1668
+ template <typename T>
1669
+ struct bessel_j1_impl {
1670
+ EIGEN_DEVICE_FUNC
1671
+ static EIGEN_STRONG_INLINE T run(const T x) {
1672
+ return generic_j1<T>::run(x);
1673
+ }
1674
+ };
1675
+
1676
+ template <typename T>
1677
+ struct bessel_y1_retval {
1678
+ typedef T type;
1679
+ };
1680
+
1681
+ template <typename T, typename ScalarType = typename unpacket_traits<T>::type>
1682
+ struct generic_y1 {
1683
+ EIGEN_DEVICE_FUNC
1684
+ static EIGEN_STRONG_INLINE T run(const T&) {
1685
+ EIGEN_STATIC_ASSERT((internal::is_same<T, T>::value == false),
1686
+ THIS_TYPE_IS_NOT_SUPPORTED);
1687
+ return ScalarType(0);
1688
+ }
1689
+ };
1690
+
1691
+ template <typename T>
1692
+ struct generic_y1<T, float> {
1693
+ EIGEN_DEVICE_FUNC
1694
+ static EIGEN_STRONG_INLINE T run(const T& x) {
1695
+ /* j1f.c
1696
+ * Bessel function of second kind of order one
1697
+ *
1698
+ *
1699
+ *
1700
+ * SYNOPSIS:
1701
+ *
1702
+ * double x, y, y1();
1703
+ *
1704
+ * y = y1( x );
1705
+ *
1706
+ *
1707
+ *
1708
+ * DESCRIPTION:
1709
+ *
1710
+ * Returns Bessel function of the second kind of order one
1711
+ * of the argument.
1712
+ *
1713
+ * The domain is divided into the intervals [0, 2] and
1714
+ * (2, infinity). In the first interval a rational approximation
1715
+ * R(x) is employed to compute
1716
+ *
1717
+ * 2
1718
+ * y0(x) = (w - r ) x R(x^2) + 2/pi (ln(x) j1(x) - 1/x) .
1719
+ * 1
1720
+ *
1721
+ * Thus a call to j1() is required.
1722
+ *
1723
+ * In the second interval, the modulus and phase are approximated
1724
+ * by polynomials of the form Modulus(x) = sqrt(1/x) Q(1/x)
1725
+ * and Phase(x) = x + 1/x S(1/x^2) - 3pi/4. Then the function is
1726
+ *
1727
+ * y0(x) = Modulus(x) sin( Phase(x) ).
1728
+ *
1729
+ *
1730
+ *
1731
+ *
1732
+ * ACCURACY:
1733
+ *
1734
+ * Absolute error:
1735
+ * arithmetic domain # trials peak rms
1736
+ * IEEE 0, 2 100000 2.2e-7 4.6e-8
1737
+ * IEEE 2, 32 100000 1.9e-7 5.3e-8
1738
+ *
1739
+ * (error criterion relative when |y1| > 1).
1740
+ *
1741
+ */
1742
+
1743
+ const float YP[] = {8.061978323326852E-009f, -9.496460629917016E-007f,
1744
+ 6.719543806674249E-005f, -2.641785726447862E-003f,
1745
+ 4.202369946500099E-002f};
1746
+ const float MO1[] = {6.913942741265801E-002f, -2.284801500053359E-001f,
1747
+ 3.138238455499697E-001f, -2.102302420403875E-001f,
1748
+ 5.435364690523026E-003f, 1.493389585089498E-001f,
1749
+ 4.976029650847191E-006f, 7.978845453073848E-001f};
1750
+ const float PH1[] = {-4.497014141919556E+001f, 5.073465654089319E+001f,
1751
+ -2.485774108720340E+001f, 7.222973196770240E+000f,
1752
+ -1.544842782180211E+000f, 3.503787691653334E-001f,
1753
+ -1.637986776941202E-001f, 3.749989509080821E-001f};
1754
+ const T YO1 = pset1<T>(4.66539330185668857532f);
1755
+ const T NEG_THPIO4F = pset1<T>(-2.35619449019234492885f); /* -3*pi/4 */
1756
+ const T TWOOPI = pset1<T>(0.636619772367581343075535f); /* 2/pi */
1757
+ const T NEG_MAXNUM = pset1<T>(-NumTraits<float>::infinity());
1758
+
1759
+ T z = pmul(x, x);
1760
+ T x_le_two = pmul(psub(z, YO1), internal::ppolevl<T, 4>::run(z, YP));
1761
+ x_le_two = pmadd(
1762
+ x_le_two, x,
1763
+ pmul(TWOOPI, pmadd(
1764
+ generic_j1<T, float>::run(x), plog(x),
1765
+ pdiv(pset1<T>(-1.0f), x))));
1766
+ x_le_two = pselect(pcmp_lt(x, pset1<T>(0.0f)), NEG_MAXNUM, x_le_two);
1767
+
1768
+ T q = pdiv(pset1<T>(1.0), x);
1769
+ T w = prsqrt(x);
1770
+ T p = pmul(w, internal::ppolevl<T, 7>::run(q, MO1));
1771
+ w = pmul(q, q);
1772
+ T xn = pmadd(q, internal::ppolevl<T, 7>::run(w, PH1), NEG_THPIO4F);
1773
+ T x_gt_two = pmul(p, psin(padd(xn, x)));
1774
+ return pselect(pcmp_le(x, pset1<T>(2.0)), x_le_two, x_gt_two);
1775
+ }
1776
+ };
1777
+
1778
+ template <typename T>
1779
+ struct generic_y1<T, double> {
1780
+ EIGEN_DEVICE_FUNC
1781
+ static EIGEN_STRONG_INLINE T run(const T& x) {
1782
+ /* j1.c
1783
+ * Bessel function of second kind of order one
1784
+ *
1785
+ *
1786
+ *
1787
+ * SYNOPSIS:
1788
+ *
1789
+ * double x, y, y1();
1790
+ *
1791
+ * y = y1( x );
1792
+ *
1793
+ *
1794
+ *
1795
+ * DESCRIPTION:
1796
+ *
1797
+ * Returns Bessel function of the second kind of order one
1798
+ * of the argument.
1799
+ *
1800
+ * The domain is divided into the intervals [0, 8] and
1801
+ * (8, infinity). In the first interval a 25 term Chebyshev
1802
+ * expansion is used, and a call to j1() is required.
1803
+ * In the second, the asymptotic trigonometric representation
1804
+ * is employed using two rational functions of degree 5/5.
1805
+ *
1806
+ *
1807
+ *
1808
+ * ACCURACY:
1809
+ *
1810
+ * Absolute error:
1811
+ * arithmetic domain # trials peak rms
1812
+ * DEC 0, 30 10000 8.6e-17 1.3e-17
1813
+ * IEEE 0, 30 30000 1.0e-15 1.3e-16
1814
+ *
1815
+ * (error criterion relative when |y1| > 1).
1816
+ *
1817
+ */
1818
+ const double PP[] = {7.62125616208173112003E-4, 7.31397056940917570436E-2,
1819
+ 1.12719608129684925192E0, 5.11207951146807644818E0,
1820
+ 8.42404590141772420927E0, 5.21451598682361504063E0,
1821
+ 1.00000000000000000254E0};
1822
+ const double PQ[] = {5.71323128072548699714E-4, 6.88455908754495404082E-2,
1823
+ 1.10514232634061696926E0, 5.07386386128601488557E0,
1824
+ 8.39985554327604159757E0, 5.20982848682361821619E0,
1825
+ 9.99999999999999997461E-1};
1826
+ const double QP[] = {5.10862594750176621635E-2, 4.98213872951233449420E0,
1827
+ 7.58238284132545283818E1, 3.66779609360150777800E2,
1828
+ 7.10856304998926107277E2, 5.97489612400613639965E2,
1829
+ 2.11688757100572135698E2, 2.52070205858023719784E1};
1830
+ const double QQ[] = {1.00000000000000000000E0, 7.42373277035675149943E1,
1831
+ 1.05644886038262816351E3, 4.98641058337653607651E3,
1832
+ 9.56231892404756170795E3, 7.99704160447350683650E3,
1833
+ 2.82619278517639096600E3, 3.36093607810698293419E2};
1834
+ const double YP[] = {1.26320474790178026440E9, -6.47355876379160291031E11,
1835
+ 1.14509511541823727583E14, -8.12770255501325109621E15,
1836
+ 2.02439475713594898196E17, -7.78877196265950026825E17};
1837
+ const double YQ[] = {1.00000000000000000000E0, 5.94301592346128195359E2,
1838
+ 2.35564092943068577943E5, 7.34811944459721705660E7,
1839
+ 1.87601316108706159478E10, 3.88231277496238566008E12,
1840
+ 6.20557727146953693363E14, 6.87141087355300489866E16,
1841
+ 3.97270608116560655612E18};
1842
+ const T SQ2OPI = pset1<T>(.79788456080286535588);
1843
+ const T NEG_THPIO4 = pset1<T>(-2.35619449019234492885); /* -3*pi/4 */
1844
+ const T TWOOPI = pset1<T>(0.636619772367581343075535); /* 2/pi */
1845
+ const T NEG_MAXNUM = pset1<T>(-NumTraits<double>::infinity());
1846
+
1847
+ T z = pmul(x, x);
1848
+ T x_le_five = pdiv(internal::ppolevl<T, 5>::run(z, YP),
1849
+ internal::ppolevl<T, 8>::run(z, YQ));
1850
+ x_le_five = pmadd(
1851
+ x_le_five, x, pmul(
1852
+ TWOOPI, pmadd(generic_j1<T, double>::run(x), plog(x),
1853
+ pdiv(pset1<T>(-1.0), x))));
1854
+
1855
+ x_le_five = pselect(pcmp_le(x, pset1<T>(0.0)), NEG_MAXNUM, x_le_five);
1856
+ T s = pdiv(pset1<T>(25.0), z);
1857
+ T p = pdiv(
1858
+ internal::ppolevl<T, 6>::run(s, PP),
1859
+ internal::ppolevl<T, 6>::run(s, PQ));
1860
+ T q = pdiv(
1861
+ internal::ppolevl<T, 7>::run(s, QP),
1862
+ internal::ppolevl<T, 7>::run(s, QQ));
1863
+ T xn = padd(x, NEG_THPIO4);
1864
+ T w = pdiv(pset1<T>(5.0), x);
1865
+ p = pmadd(p, psin(xn), pmul(w, pmul(q, pcos(xn))));
1866
+ T x_gt_five = pmul(p, pmul(SQ2OPI, prsqrt(x)));
1867
+ return pselect(pcmp_le(x, pset1<T>(5.0)), x_le_five, x_gt_five);
1868
+ }
1869
+ };
1870
+
1871
+ template <typename T>
1872
+ struct bessel_y1_impl {
1873
+ EIGEN_DEVICE_FUNC
1874
+ static EIGEN_STRONG_INLINE T run(const T x) {
1875
+ return generic_y1<T>::run(x);
1876
+ }
1877
+ };
1878
+
1879
+ } // end namespace internal
1880
+
1881
+ namespace numext {
1882
+
1883
+ template <typename Scalar>
1884
+ EIGEN_DEVICE_FUNC inline EIGEN_MATHFUNC_RETVAL(bessel_i0, Scalar)
1885
+ bessel_i0(const Scalar& x) {
1886
+ return EIGEN_MATHFUNC_IMPL(bessel_i0, Scalar)::run(x);
1887
+ }
1888
+
1889
+ template <typename Scalar>
1890
+ EIGEN_DEVICE_FUNC inline EIGEN_MATHFUNC_RETVAL(bessel_i0e, Scalar)
1891
+ bessel_i0e(const Scalar& x) {
1892
+ return EIGEN_MATHFUNC_IMPL(bessel_i0e, Scalar)::run(x);
1893
+ }
1894
+
1895
+ template <typename Scalar>
1896
+ EIGEN_DEVICE_FUNC inline EIGEN_MATHFUNC_RETVAL(bessel_i1, Scalar)
1897
+ bessel_i1(const Scalar& x) {
1898
+ return EIGEN_MATHFUNC_IMPL(bessel_i1, Scalar)::run(x);
1899
+ }
1900
+
1901
+ template <typename Scalar>
1902
+ EIGEN_DEVICE_FUNC inline EIGEN_MATHFUNC_RETVAL(bessel_i1e, Scalar)
1903
+ bessel_i1e(const Scalar& x) {
1904
+ return EIGEN_MATHFUNC_IMPL(bessel_i1e, Scalar)::run(x);
1905
+ }
1906
+
1907
+ template <typename Scalar>
1908
+ EIGEN_DEVICE_FUNC inline EIGEN_MATHFUNC_RETVAL(bessel_k0, Scalar)
1909
+ bessel_k0(const Scalar& x) {
1910
+ return EIGEN_MATHFUNC_IMPL(bessel_k0, Scalar)::run(x);
1911
+ }
1912
+
1913
+ template <typename Scalar>
1914
+ EIGEN_DEVICE_FUNC inline EIGEN_MATHFUNC_RETVAL(bessel_k0e, Scalar)
1915
+ bessel_k0e(const Scalar& x) {
1916
+ return EIGEN_MATHFUNC_IMPL(bessel_k0e, Scalar)::run(x);
1917
+ }
1918
+
1919
+ template <typename Scalar>
1920
+ EIGEN_DEVICE_FUNC inline EIGEN_MATHFUNC_RETVAL(bessel_k1, Scalar)
1921
+ bessel_k1(const Scalar& x) {
1922
+ return EIGEN_MATHFUNC_IMPL(bessel_k1, Scalar)::run(x);
1923
+ }
1924
+
1925
+ template <typename Scalar>
1926
+ EIGEN_DEVICE_FUNC inline EIGEN_MATHFUNC_RETVAL(bessel_k1e, Scalar)
1927
+ bessel_k1e(const Scalar& x) {
1928
+ return EIGEN_MATHFUNC_IMPL(bessel_k1e, Scalar)::run(x);
1929
+ }
1930
+
1931
+ template <typename Scalar>
1932
+ EIGEN_DEVICE_FUNC inline EIGEN_MATHFUNC_RETVAL(bessel_j0, Scalar)
1933
+ bessel_j0(const Scalar& x) {
1934
+ return EIGEN_MATHFUNC_IMPL(bessel_j0, Scalar)::run(x);
1935
+ }
1936
+
1937
+ template <typename Scalar>
1938
+ EIGEN_DEVICE_FUNC inline EIGEN_MATHFUNC_RETVAL(bessel_y0, Scalar)
1939
+ bessel_y0(const Scalar& x) {
1940
+ return EIGEN_MATHFUNC_IMPL(bessel_y0, Scalar)::run(x);
1941
+ }
1942
+
1943
+ template <typename Scalar>
1944
+ EIGEN_DEVICE_FUNC inline EIGEN_MATHFUNC_RETVAL(bessel_j1, Scalar)
1945
+ bessel_j1(const Scalar& x) {
1946
+ return EIGEN_MATHFUNC_IMPL(bessel_j1, Scalar)::run(x);
1947
+ }
1948
+
1949
+ template <typename Scalar>
1950
+ EIGEN_DEVICE_FUNC inline EIGEN_MATHFUNC_RETVAL(bessel_y1, Scalar)
1951
+ bessel_y1(const Scalar& x) {
1952
+ return EIGEN_MATHFUNC_IMPL(bessel_y1, Scalar)::run(x);
1953
+ }
1954
+
1955
+ } // end namespace numext
1956
+
1957
+ } // end namespace Eigen
1958
+
1959
+ #endif // EIGEN_BESSEL_FUNCTIONS_H