fftw3_mkl_f77.h 51 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739
  1. /*******************************************************************************
  2. * Copyright 2006-2022 Intel Corporation.
  3. *
  4. * This software and the related documents are Intel copyrighted materials, and
  5. * your use of them is governed by the express license under which they were
  6. * provided to you (License). Unless the License provides otherwise, you may not
  7. * use, modify, copy, publish, distribute, disclose or transmit this software or
  8. * the related documents without Intel's prior written permission.
  9. *
  10. * This software and the related documents are provided as is, with no express
  11. * or implied warranties, other than those that are expressly stated in the
  12. * License.
  13. *******************************************************************************/
  14. /*
  15. *
  16. * Fortran 77 declarations for FFTW3 wrappers to Intel(R) oneAPI Math Kernel Library
  17. * (Intel(R) oneMKL).
  18. *
  19. ******************************************************************************
  20. */
  21. #ifndef FFTW3_MKL_F77_H
  22. #define FFTW3_MKL_F77_H
  23. /* We rely on C interface of FFTW3 wrappers to oneMKL */
  24. #include "fftw3_mkl.h"
  25. /* Fortran type names */
  26. #define INTEGER MKL_INT
  27. #define INTEGER4 int
  28. #define INTEGER8 MKL_INT64
  29. #define COMPLEX8 fftwf_complex
  30. #define COMPLEX16 fftw_complex
  31. #define REAL4 float
  32. #define REAL8 double
  33. /* Dummy type names for empty lfftw_* wrappers */
  34. #define COMPLEX32 fftwl_complex
  35. #define REAL16 long double
  36. /* Plan shall be stored in INTEGER*8 variable */
  37. #define PLAN INTEGER8
  38. #if defined(_FNAME_UPPERCASE)
  39. #define dfftw_cleanup DFFTW_CLEANUP
  40. #define dfftw_cleanup_threads DFFTW_CLEANUP_THREADS
  41. #define dfftw_destroy_plan DFFTW_DESTROY_PLAN
  42. #define dfftw_execute DFFTW_EXECUTE
  43. #define dfftw_execute_dft DFFTW_EXECUTE_DFT
  44. #define dfftw_execute_dft_c2r DFFTW_EXECUTE_DFT_C2R
  45. #define dfftw_execute_dft_r2c DFFTW_EXECUTE_DFT_R2C
  46. #define dfftw_execute_r2r DFFTW_EXECUTE_R2R
  47. #define dfftw_execute_split_dft DFFTW_EXECUTE_SPLIT_DFT
  48. #define dfftw_execute_split_dft_c2r DFFTW_EXECUTE_SPLIT_DFT_C2R
  49. #define dfftw_execute_split_dft_r2c DFFTW_EXECUTE_SPLIT_DFT_R2C
  50. #define dfftw_export_wisdom DFFTW_EXPORT_WISDOM
  51. #define dfftw_flops DFFTW_FLOPS
  52. #define dfftw_forget_wisdom DFFTW_FORGET_WISDOM
  53. #define dfftw_import_system_wisdom DFFTW_IMPORT_SYSTEM_WISDOM
  54. #define dfftw_import_wisdom DFFTW_IMPORT_WISDOM
  55. #define dfftw_init_threads DFFTW_INIT_THREADS
  56. #define dfftw_plan_dft DFFTW_PLAN_DFT
  57. #define dfftw_plan_dft_1d DFFTW_PLAN_DFT_1D
  58. #define dfftw_plan_dft_2d DFFTW_PLAN_DFT_2D
  59. #define dfftw_plan_dft_3d DFFTW_PLAN_DFT_3D
  60. #define dfftw_plan_dft_c2r DFFTW_PLAN_DFT_C2R
  61. #define dfftw_plan_dft_c2r_1d DFFTW_PLAN_DFT_C2R_1D
  62. #define dfftw_plan_dft_c2r_2d DFFTW_PLAN_DFT_C2R_2D
  63. #define dfftw_plan_dft_c2r_3d DFFTW_PLAN_DFT_C2R_3D
  64. #define dfftw_plan_dft_r2c DFFTW_PLAN_DFT_R2C
  65. #define dfftw_plan_dft_r2c_1d DFFTW_PLAN_DFT_R2C_1D
  66. #define dfftw_plan_dft_r2c_2d DFFTW_PLAN_DFT_R2C_2D
  67. #define dfftw_plan_dft_r2c_3d DFFTW_PLAN_DFT_R2C_3D
  68. #define dfftw_plan_guru_dft DFFTW_PLAN_GURU_DFT
  69. #define dfftw_plan_guru_dft_c2r DFFTW_PLAN_GURU_DFT_C2R
  70. #define dfftw_plan_guru_dft_r2c DFFTW_PLAN_GURU_DFT_R2C
  71. #define dfftw_plan_guru_r2r DFFTW_PLAN_GURU_R2R
  72. #define dfftw_plan_guru_split_dft DFFTW_PLAN_GURU_SPLIT_DFT
  73. #define dfftw_plan_guru_split_dft_c2r DFFTW_PLAN_GURU_SPLIT_DFT_C2R
  74. #define dfftw_plan_guru_split_dft_r2c DFFTW_PLAN_GURU_SPLIT_DFT_R2C
  75. #define dfftw_plan_many_dft DFFTW_PLAN_MANY_DFT
  76. #define dfftw_plan_many_dft_c2r DFFTW_PLAN_MANY_DFT_C2R
  77. #define dfftw_plan_many_dft_r2c DFFTW_PLAN_MANY_DFT_R2C
  78. #define dfftw_plan_many_r2r DFFTW_PLAN_MANY_R2R
  79. #define dfftw_plan_r2r DFFTW_PLAN_R2R
  80. #define dfftw_plan_r2r_1d DFFTW_PLAN_R2R_1D
  81. #define dfftw_plan_r2r_2d DFFTW_PLAN_R2R_2D
  82. #define dfftw_plan_r2r_3d DFFTW_PLAN_R2R_3D
  83. #define dfftw_plan_with_nthreads DFFTW_PLAN_WITH_NTHREADS
  84. #define dfftw_print_plan DFFTW_PRINT_PLAN
  85. #define sfftw_cleanup SFFTW_CLEANUP
  86. #define sfftw_cleanup_threads SFFTW_CLEANUP_THREADS
  87. #define sfftw_destroy_plan SFFTW_DESTROY_PLAN
  88. #define sfftw_execute SFFTW_EXECUTE
  89. #define sfftw_execute_dft SFFTW_EXECUTE_DFT
  90. #define sfftw_execute_dft_c2r SFFTW_EXECUTE_DFT_C2R
  91. #define sfftw_execute_dft_r2c SFFTW_EXECUTE_DFT_R2C
  92. #define sfftw_execute_r2r SFFTW_EXECUTE_R2R
  93. #define sfftw_execute_split_dft SFFTW_EXECUTE_SPLIT_DFT
  94. #define sfftw_execute_split_dft_c2r SFFTW_EXECUTE_SPLIT_DFT_C2R
  95. #define sfftw_execute_split_dft_r2c SFFTW_EXECUTE_SPLIT_DFT_R2C
  96. #define sfftw_export_wisdom SFFTW_EXPORT_WISDOM
  97. #define sfftw_flops SFFTW_FLOPS
  98. #define sfftw_forget_wisdom SFFTW_FORGET_WISDOM
  99. #define sfftw_import_system_wisdom SFFTW_IMPORT_SYSTEM_WISDOM
  100. #define sfftw_import_wisdom SFFTW_IMPORT_WISDOM
  101. #define sfftw_init_threads SFFTW_INIT_THREADS
  102. #define sfftw_plan_dft SFFTW_PLAN_DFT
  103. #define sfftw_plan_dft_1d SFFTW_PLAN_DFT_1D
  104. #define sfftw_plan_dft_2d SFFTW_PLAN_DFT_2D
  105. #define sfftw_plan_dft_3d SFFTW_PLAN_DFT_3D
  106. #define sfftw_plan_dft_c2r SFFTW_PLAN_DFT_C2R
  107. #define sfftw_plan_dft_c2r_1d SFFTW_PLAN_DFT_C2R_1D
  108. #define sfftw_plan_dft_c2r_2d SFFTW_PLAN_DFT_C2R_2D
  109. #define sfftw_plan_dft_c2r_3d SFFTW_PLAN_DFT_C2R_3D
  110. #define sfftw_plan_dft_r2c SFFTW_PLAN_DFT_R2C
  111. #define sfftw_plan_dft_r2c_1d SFFTW_PLAN_DFT_R2C_1D
  112. #define sfftw_plan_dft_r2c_2d SFFTW_PLAN_DFT_R2C_2D
  113. #define sfftw_plan_dft_r2c_3d SFFTW_PLAN_DFT_R2C_3D
  114. #define sfftw_plan_guru_dft SFFTW_PLAN_GURU_DFT
  115. #define sfftw_plan_guru_dft_c2r SFFTW_PLAN_GURU_DFT_C2R
  116. #define sfftw_plan_guru_dft_r2c SFFTW_PLAN_GURU_DFT_R2C
  117. #define sfftw_plan_guru_r2r SFFTW_PLAN_GURU_R2R
  118. #define sfftw_plan_guru_split_dft SFFTW_PLAN_GURU_SPLIT_DFT
  119. #define sfftw_plan_guru_split_dft_c2r SFFTW_PLAN_GURU_SPLIT_DFT_C2R
  120. #define sfftw_plan_guru_split_dft_r2c SFFTW_PLAN_GURU_SPLIT_DFT_R2C
  121. #define sfftw_plan_many_dft SFFTW_PLAN_MANY_DFT
  122. #define sfftw_plan_many_dft_c2r SFFTW_PLAN_MANY_DFT_C2R
  123. #define sfftw_plan_many_dft_r2c SFFTW_PLAN_MANY_DFT_R2C
  124. #define sfftw_plan_many_r2r SFFTW_PLAN_MANY_R2R
  125. #define sfftw_plan_r2r SFFTW_PLAN_R2R
  126. #define sfftw_plan_r2r_1d SFFTW_PLAN_R2R_1D
  127. #define sfftw_plan_r2r_2d SFFTW_PLAN_R2R_2D
  128. #define sfftw_plan_r2r_3d SFFTW_PLAN_R2R_3D
  129. #define sfftw_plan_with_nthreads SFFTW_PLAN_WITH_NTHREADS
  130. #define sfftw_print_plan SFFTW_PRINT_PLAN
  131. // offload
  132. #ifdef MKL_ILP64
  133. #define dfftw_plan_dft_omp_offload DFFTW_PLAN_DFT_OMP_OFFLOAD_ILP64
  134. #define dfftw_plan_dft_1d_omp_offload DFFTW_PLAN_DFT_1D_OMP_OFFLOAD_ILP64
  135. #define dfftw_plan_dft_2d_omp_offload DFFTW_PLAN_DFT_2D_OMP_OFFLOAD_ILP64
  136. #define dfftw_plan_dft_3d_omp_offload DFFTW_PLAN_DFT_3D_OMP_OFFLOAD_ILP64
  137. #define dfftw_plan_dft_c2r_omp_offload DFFTW_PLAN_DFT_C2R_OMP_OFFLOAD_ILP64
  138. #define dfftw_plan_dft_r2c_omp_offload DFFTW_PLAN_DFT_R2C_OMP_OFFLOAD_ILP64
  139. #define dfftw_plan_dft_c2r_1d_omp_offload DFFTW_PLAN_DFT_C2R_1D_OMP_OFFLOAD_ILP64
  140. #define dfftw_plan_dft_r2c_1d_omp_offload DFFTW_PLAN_DFT_R2C_1D_OMP_OFFLOAD_ILP64
  141. #define dfftw_plan_dft_c2r_2d_omp_offload DFFTW_PLAN_DFT_C2R_2D_OMP_OFFLOAD_ILP64
  142. #define dfftw_plan_dft_r2c_2d_omp_offload DFFTW_PLAN_DFT_R2C_2D_OMP_OFFLOAD_ILP64
  143. #define dfftw_plan_dft_c2r_3d_omp_offload DFFTW_PLAN_DFT_C2R_3D_OMP_OFFLOAD_ILP64
  144. #define dfftw_plan_dft_r2c_3d_omp_offload DFFTW_PLAN_DFT_R2C_3D_OMP_OFFLOAD_ILP64
  145. #define dfftw_plan_guru_dft_omp_offload DFFTW_PLAN_GURU_DFT_OMP_OFFLOAD_ILP64
  146. #define dfftw_plan_guru_dft_c2r_omp_offload DFFTW_PLAN_GURU_DFT_C2R_OMP_OFFLOAD_ILP64
  147. #define dfftw_plan_guru_dft_r2c_omp_offload DFFTW_PLAN_GURU_DFT_R2C_OMP_OFFLOAD_ILP64
  148. #define dfftw_plan_many_dft_omp_offload DFFTW_PLAN_MANY_DFT_OMP_OFFLOAD_ILP64
  149. #define dfftw_plan_many_dft_c2r_omp_offload DFFTW_PLAN_MANY_DFT_C2R_OMP_OFFLOAD_ILP64
  150. #define dfftw_plan_many_dft_r2c_omp_offload DFFTW_PLAN_MANY_DFT_R2C_OMP_OFFLOAD_ILP64
  151. #define dfftw_execute_omp_offload DFFTW_EXECUTE_OMP_OFFLOAD // No extension required as this is the entry point irrespective of lp64/ilp64
  152. #define dfftw_execute_dft_omp_offload DFFTW_EXECUTE_DFT_OMP_OFFLOAD // No extension required as this is the entry point irrespective of lp64/ilp64
  153. #define dfftw_execute_dft_c2r_omp_offload DFFTW_EXECUTE_DFT_C2R_OMP_OFFLOAD // No extension required as this is the entry point irrespective of lp64/ilp64
  154. #define dfftw_execute_dft_r2c_omp_offload DFFTW_EXECUTE_DFT_R2C_OMP_OFFLOAD // No extension required as this is the entry point irrespective of lp64/ilp64
  155. #define sfftw_plan_dft_omp_offload SFFTW_PLAN_DFT_OMP_OFFLOAD_ILP64
  156. #define sfftw_plan_dft_1d_omp_offload SFFTW_PLAN_DFT_1D_OMP_OFFLOAD_ILP64
  157. #define sfftw_plan_dft_2d_omp_offload SFFTW_PLAN_DFT_2D_OMP_OFFLOAD_ILP64
  158. #define sfftw_plan_dft_3d_omp_offload SFFTW_PLAN_DFT_3D_OMP_OFFLOAD_ILP64
  159. #define sfftw_plan_dft_c2r_omp_offload SFFTW_PLAN_DFT_C2R_OMP_OFFLOAD_ILP64
  160. #define sfftw_plan_dft_r2c_omp_offload SFFTW_PLAN_DFT_R2C_OMP_OFFLOAD_ILP64
  161. #define sfftw_plan_dft_c2r_1d_omp_offload SFFTW_PLAN_DFT_C2R_1D_OMP_OFFLOAD_ILP64
  162. #define sfftw_plan_dft_r2c_1d_omp_offload SFFTW_PLAN_DFT_R2C_1D_OMP_OFFLOAD_ILP64
  163. #define sfftw_plan_dft_c2r_2d_omp_offload SFFTW_PLAN_DFT_C2R_2D_OMP_OFFLOAD_ILP64
  164. #define sfftw_plan_dft_r2c_2d_omp_offload SFFTW_PLAN_DFT_R2C_2D_OMP_OFFLOAD_ILP64
  165. #define sfftw_plan_dft_c2r_3d_omp_offload SFFTW_PLAN_DFT_C2R_3D_OMP_OFFLOAD_ILP64
  166. #define sfftw_plan_dft_r2c_3d_omp_offload SFFTW_PLAN_DFT_R2C_3D_OMP_OFFLOAD_ILP64
  167. #define sfftw_plan_guru_dft_omp_offload SFFTW_PLAN_GURU_DFT_OMP_OFFLOAD_ILP64
  168. #define sfftw_plan_guru_dft_c2r_omp_offload SFFTW_PLAN_GURU_DFT_C2R_OMP_OFFLOAD_ILP64
  169. #define sfftw_plan_guru_dft_r2c_omp_offload SFFTW_PLAN_GURU_DFT_R2C_OMP_OFFLOAD_ILP64
  170. #define sfftw_plan_many_dft_omp_offload SFFTW_PLAN_MANY_DFT_OMP_OFFLOAD_ILP64
  171. #define sfftw_plan_many_dft_c2r_omp_offload SFFTW_PLAN_MANY_DFT_C2R_OMP_OFFLOAD_ILP64
  172. #define sfftw_plan_many_dft_r2c_omp_offload SFFTW_PLAN_MANY_DFT_R2C_OMP_OFFLOAD_ILP64
  173. #define sfftw_execute_omp_offload SFFTW_EXECUTE_OMP_OFFLOAD // No extension required as this is the entry point irrespective of lp64/ilp64
  174. #define sfftw_execute_dft_omp_offload SFFTW_EXECUTE_DFT_OMP_OFFLOAD // No extension required as this is the entry point irrespective of lp64/ilp64
  175. #define sfftw_execute_dft_c2r_omp_offload SFFTW_EXECUTE_DFT_C2R_OMP_OFFLOAD // No extension required as this is the entry point irrespective of lp64/ilp64
  176. #define sfftw_execute_dft_r2c_omp_offload SFFTW_EXECUTE_DFT_R2C_OMP_OFFLOAD // No extension required as this is the entry point irrespective of lp64/ilp64
  177. #define dfftw_plan_dft_cpu DFFTW_PLAN_DFT_CPU_ILP64
  178. #define dfftw_plan_dft_1d_cpu DFFTW_PLAN_DFT_1D_CPU_ILP64
  179. #define dfftw_plan_dft_2d_cpu DFFTW_PLAN_DFT_2D_CPU_ILP64
  180. #define dfftw_plan_dft_3d_cpu DFFTW_PLAN_DFT_3D_CPU_ILP64
  181. #define dfftw_plan_dft_c2r_cpu DFFTW_PLAN_DFT_C2R_CPU_ILP64
  182. #define dfftw_plan_dft_r2c_cpu DFFTW_PLAN_DFT_R2C_CPU_ILP64
  183. #define dfftw_plan_dft_c2r_1d_cpu DFFTW_PLAN_DFT_C2R_1D_CPU_ILP64
  184. #define dfftw_plan_dft_r2c_1d_cpu DFFTW_PLAN_DFT_R2C_1D_CPU_ILP64
  185. #define dfftw_plan_dft_c2r_2d_cpu DFFTW_PLAN_DFT_C2R_2D_CPU_ILP64
  186. #define dfftw_plan_dft_r2c_2d_cpu DFFTW_PLAN_DFT_R2C_2D_CPU_ILP64
  187. #define dfftw_plan_dft_c2r_3d_cpu DFFTW_PLAN_DFT_C2R_3D_CPU_ILP64
  188. #define dfftw_plan_dft_r2c_3d_cpu DFFTW_PLAN_DFT_R2C_3D_CPU_ILP64
  189. #define dfftw_plan_guru_dft_cpu DFFTW_PLAN_GURU_DFT_CPU_ILP64
  190. #define dfftw_plan_guru_dft_c2r_cpu DFFTW_PLAN_GURU_DFT_C2R_CPU_ILP64
  191. #define dfftw_plan_guru_dft_r2c_cpu DFFTW_PLAN_GURU_DFT_R2C_CPU_ILP64
  192. #define dfftw_plan_many_dft_cpu DFFTW_PLAN_MANY_DFT_CPU_ILP64
  193. #define dfftw_plan_many_dft_c2r_cpu DFFTW_PLAN_MANY_DFT_C2R_CPU_ILP64
  194. #define dfftw_plan_many_dft_r2c_cpu DFFTW_PLAN_MANY_DFT_R2C_CPU_ILP64
  195. #define dfftw_execute_dft_cpu DFFTW_EXECUTE_DFT_CPU
  196. #define dfftw_execute_dft_c2r_cpu DFFTW_EXECUTE_DFT_C2R_CPU
  197. #define dfftw_execute_dft_r2c_cpu DFFTW_EXECUTE_DFT_R2C_CPU
  198. #define sfftw_plan_dft_cpu SFFTW_PLAN_DFT_CPU_ILP64
  199. #define sfftw_plan_dft_1d_cpu SFFTW_PLAN_DFT_1D_CPU_ILP64
  200. #define sfftw_plan_dft_2d_cpu SFFTW_PLAN_DFT_2D_CPU_ILP64
  201. #define sfftw_plan_dft_3d_cpu SFFTW_PLAN_DFT_3D_CPU_ILP64
  202. #define sfftw_plan_dft_c2r_cpu SFFTW_PLAN_DFT_C2R_CPU_ILP64
  203. #define sfftw_plan_dft_r2c_cpu SFFTW_PLAN_DFT_R2C_CPU_ILP64
  204. #define sfftw_plan_dft_c2r_1d_cpu SFFTW_PLAN_DFT_C2R_1D_CPU_ILP64
  205. #define sfftw_plan_dft_r2c_1d_cpu SFFTW_PLAN_DFT_R2C_1D_CPU_ILP64
  206. #define sfftw_plan_dft_c2r_2d_cpu SFFTW_PLAN_DFT_C2R_2D_CPU_ILP64
  207. #define sfftw_plan_dft_r2c_2d_cpu SFFTW_PLAN_DFT_R2C_2D_CPU_ILP64
  208. #define sfftw_plan_dft_c2r_3d_cpu SFFTW_PLAN_DFT_C2R_3D_CPU_ILP64
  209. #define sfftw_plan_dft_r2c_3d_cpu SFFTW_PLAN_DFT_R2C_3D_CPU_ILP64
  210. #define sfftw_plan_guru_dft_cpu SFFTW_PLAN_GURU_DFT_CPU_ILP64
  211. #define sfftw_plan_guru_dft_c2r_cpu SFFTW_PLAN_GURU_DFT_C2R_CPU_ILP64
  212. #define sfftw_plan_guru_dft_r2c_cpu SFFTW_PLAN_GURU_DFT_R2C_CPU_ILP64
  213. #define sfftw_plan_many_dft_cpu SFFTW_PLAN_MANY_DFT_CPU_ILP64
  214. #define sfftw_plan_many_dft_c2r_cpu SFFTW_PLAN_MANY_DFT_C2R_CPU_ILP64
  215. #define sfftw_plan_many_dft_r2c_cpu SFFTW_PLAN_MANY_DFT_R2C_CPU_ILP64
  216. #define sfftw_execute_dft_cpu SFFTW_EXECUTE_DFT_CPU
  217. #define sfftw_execute_dft_c2r_cpu SFFTW_EXECUTE_DFT_C2R_CPU
  218. #define sfftw_execute_dft_r2c_cpu SFFTW_EXECUTE_DFT_R2C_CPU
  219. #define dfftw_plan_dft_omp_offload_impl dfftw_plan_dft_omp_offload_impl_ilp64
  220. #define dfftw_plan_dft_c2r_omp_offload_impl dfftw_plan_dft_c2r_omp_offload_impl_ilp64
  221. #define dfftw_plan_dft_r2c_omp_offload_impl dfftw_plan_dft_r2c_omp_offload_impl_ilp64
  222. #define sfftw_plan_dft_omp_offload_impl sfftw_plan_dft_omp_offload_impl_ilp64
  223. #define sfftw_plan_dft_c2r_omp_offload_impl sfftw_plan_dft_c2r_omp_offload_impl_ilp64
  224. #define sfftw_plan_dft_r2c_omp_offload_impl sfftw_plan_dft_r2c_omp_offload_impl_ilp64
  225. #define dfftw_plan_guru_dft_omp_offload_impl dfftw_plan_guru_dft_omp_offload_impl_ilp64
  226. #define sfftw_plan_guru_dft_omp_offload_impl sfftw_plan_guru_dft_omp_offload_impl_ilp64
  227. #define dfftw_plan_guru_dft_c2r_omp_offload_impl dfftw_plan_guru_dft_c2r_omp_offload_impl_ilp64
  228. #define sfftw_plan_guru_dft_c2r_omp_offload_impl sfftw_plan_guru_dft_c2r_omp_offload_impl_ilp64
  229. #define dfftw_plan_guru_dft_r2c_omp_offload_impl dfftw_plan_guru_dft_r2c_omp_offload_impl_ilp64
  230. #define sfftw_plan_guru_dft_r2c_omp_offload_impl sfftw_plan_guru_dft_r2c_omp_offload_impl_ilp64
  231. #else
  232. #define dfftw_plan_dft_omp_offload DFFTW_PLAN_DFT_OMP_OFFLOAD_LP64
  233. #define dfftw_plan_dft_1d_omp_offload DFFTW_PLAN_DFT_1D_OMP_OFFLOAD_LP64
  234. #define dfftw_plan_dft_2d_omp_offload DFFTW_PLAN_DFT_2D_OMP_OFFLOAD_LP64
  235. #define dfftw_plan_dft_3d_omp_offload DFFTW_PLAN_DFT_3D_OMP_OFFLOAD_LP64
  236. #define dfftw_plan_dft_c2r_omp_offload DFFTW_PLAN_DFT_C2R_OMP_OFFLOAD_LP64
  237. #define dfftw_plan_dft_r2c_omp_offload DFFTW_PLAN_DFT_R2C_OMP_OFFLOAD_LP64
  238. #define dfftw_plan_dft_c2r_1d_omp_offload DFFTW_PLAN_DFT_C2R_1D_OMP_OFFLOAD_LP64
  239. #define dfftw_plan_dft_r2c_1d_omp_offload DFFTW_PLAN_DFT_R2C_1D_OMP_OFFLOAD_LP64
  240. #define dfftw_plan_dft_c2r_2d_omp_offload DFFTW_PLAN_DFT_C2R_2D_OMP_OFFLOAD_LP64
  241. #define dfftw_plan_dft_r2c_2d_omp_offload DFFTW_PLAN_DFT_R2C_2D_OMP_OFFLOAD_LP64
  242. #define dfftw_plan_dft_c2r_3d_omp_offload DFFTW_PLAN_DFT_C2R_3D_OMP_OFFLOAD_LP64
  243. #define dfftw_plan_dft_r2c_3d_omp_offload DFFTW_PLAN_DFT_R2C_3D_OMP_OFFLOAD_LP64
  244. #define dfftw_plan_guru_dft_omp_offload DFFTW_PLAN_GURU_DFT_OMP_OFFLOAD_LP64
  245. #define dfftw_plan_guru_dft_c2r_omp_offload DFFTW_PLAN_GURU_DFT_C2R_OMP_OFFLOAD_LP64
  246. #define dfftw_plan_guru_dft_r2c_omp_offload DFFTW_PLAN_GURU_DFT_R2C_OMP_OFFLOAD_LP64
  247. #define dfftw_plan_many_dft_omp_offload DFFTW_PLAN_MANY_DFT_OMP_OFFLOAD_LP64
  248. #define dfftw_plan_many_dft_c2r_omp_offload DFFTW_PLAN_MANY_DFT_C2R_OMP_OFFLOAD_LP64
  249. #define dfftw_plan_many_dft_r2c_omp_offload DFFTW_PLAN_MANY_DFT_R2C_OMP_OFFLOAD_LP64
  250. #define sfftw_plan_dft_omp_offload SFFTW_PLAN_DFT_OMP_OFFLOAD_LP64
  251. #define sfftw_plan_dft_1d_omp_offload SFFTW_PLAN_DFT_1D_OMP_OFFLOAD_LP64
  252. #define sfftw_plan_dft_2d_omp_offload SFFTW_PLAN_DFT_2D_OMP_OFFLOAD_LP64
  253. #define sfftw_plan_dft_3d_omp_offload SFFTW_PLAN_DFT_3D_OMP_OFFLOAD_LP64
  254. #define sfftw_plan_dft_c2r_omp_offload SFFTW_PLAN_DFT_C2R_OMP_OFFLOAD_LP64
  255. #define sfftw_plan_dft_r2c_omp_offload SFFTW_PLAN_DFT_R2C_OMP_OFFLOAD_LP64
  256. #define sfftw_plan_dft_c2r_1d_omp_offload SFFTW_PLAN_DFT_C2R_1D_OMP_OFFLOAD_LP64
  257. #define sfftw_plan_dft_r2c_1d_omp_offload SFFTW_PLAN_DFT_R2C_1D_OMP_OFFLOAD_LP64
  258. #define sfftw_plan_dft_c2r_2d_omp_offload SFFTW_PLAN_DFT_C2R_2D_OMP_OFFLOAD_LP64
  259. #define sfftw_plan_dft_r2c_2d_omp_offload SFFTW_PLAN_DFT_R2C_2D_OMP_OFFLOAD_LP64
  260. #define sfftw_plan_dft_c2r_3d_omp_offload SFFTW_PLAN_DFT_C2R_3D_OMP_OFFLOAD_LP64
  261. #define sfftw_plan_dft_r2c_3d_omp_offload SFFTW_PLAN_DFT_R2C_3D_OMP_OFFLOAD_LP64
  262. #define sfftw_plan_guru_dft_omp_offload SFFTW_PLAN_GURU_DFT_OMP_OFFLOAD_LP64
  263. #define sfftw_plan_guru_dft_c2r_omp_offload SFFTW_PLAN_GURU_DFT_C2R_OMP_OFFLOAD_LP64
  264. #define sfftw_plan_guru_dft_r2c_omp_offload SFFTW_PLAN_GURU_DFT_R2C_OMP_OFFLOAD_LP64
  265. #define sfftw_plan_many_dft_omp_offload SFFTW_PLAN_MANY_DFT_OMP_OFFLOAD_LP64
  266. #define sfftw_plan_many_dft_c2r_omp_offload SFFTW_PLAN_MANY_DFT_C2R_OMP_OFFLOAD_LP64
  267. #define sfftw_plan_many_dft_r2c_omp_offload SFFTW_PLAN_MANY_DFT_R2C_OMP_OFFLOAD_LP64
  268. #define dfftw_plan_dft_cpu DFFTW_PLAN_DFT_CPU_LP64
  269. #define dfftw_plan_dft_1d_cpu DFFTW_PLAN_DFT_1D_CPU_LP64
  270. #define dfftw_plan_dft_2d_cpu DFFTW_PLAN_DFT_2D_CPU_LP64
  271. #define dfftw_plan_dft_3d_cpu DFFTW_PLAN_DFT_3D_CPU_LP64
  272. #define dfftw_plan_dft_c2r_cpu DFFTW_PLAN_DFT_C2R_CPU_LP64
  273. #define dfftw_plan_dft_r2c_cpu DFFTW_PLAN_DFT_R2C_CPU_LP64
  274. #define dfftw_plan_dft_c2r_1d_cpu DFFTW_PLAN_DFT_C2R_1D_CPU_LP64
  275. #define dfftw_plan_dft_r2c_1d_cpu DFFTW_PLAN_DFT_R2C_1D_CPU_LP64
  276. #define dfftw_plan_dft_c2r_2d_cpu DFFTW_PLAN_DFT_C2R_2D_CPU_LP64
  277. #define dfftw_plan_dft_r2c_2d_cpu DFFTW_PLAN_DFT_R2C_2D_CPU_LP64
  278. #define dfftw_plan_dft_c2r_3d_cpu DFFTW_PLAN_DFT_C2R_3D_CPU_LP64
  279. #define dfftw_plan_dft_r2c_3d_cpu DFFTW_PLAN_DFT_R2C_3D_CPU_LP64
  280. #define dfftw_plan_guru_dft_cpu DFFTW_PLAN_GURU_DFT_CPU_LP64
  281. #define dfftw_plan_guru_dft_c2r_cpu DFFTW_PLAN_GURU_DFT_C2R_CPU_LP64
  282. #define dfftw_plan_guru_dft_r2c_cpu DFFTW_PLAN_GURU_DFT_R2C_CPU_LP64
  283. #define dfftw_plan_many_dft_cpu DFFTW_PLAN_MANY_DFT_CPU_LP64
  284. #define dfftw_plan_many_dft_c2r_cpu DFFTW_PLAN_MANY_DFT_C2R_CPU_LP64
  285. #define dfftw_plan_many_dft_r2c_cpu DFFTW_PLAN_MANY_DFT_R2C_CPU_LP64
  286. #define sfftw_plan_dft_cpu SFFTW_PLAN_DFT_CPU_LP64
  287. #define sfftw_plan_dft_1d_cpu SFFTW_PLAN_DFT_1D_CPU_LP64
  288. #define sfftw_plan_dft_2d_cpu SFFTW_PLAN_DFT_2D_CPU_LP64
  289. #define sfftw_plan_dft_3d_cpu SFFTW_PLAN_DFT_3D_CPU_LP64
  290. #define sfftw_plan_dft_c2r_cpu SFFTW_PLAN_DFT_C2R_CPU_LP64
  291. #define sfftw_plan_dft_r2c_cpu SFFTW_PLAN_DFT_R2C_CPU_LP64
  292. #define sfftw_plan_dft_c2r_1d_cpu SFFTW_PLAN_DFT_C2R_1D_CPU_LP64
  293. #define sfftw_plan_dft_r2c_1d_cpu SFFTW_PLAN_DFT_R2C_1D_CPU_LP64
  294. #define sfftw_plan_dft_c2r_2d_cpu SFFTW_PLAN_DFT_C2R_2D_CPU_LP64
  295. #define sfftw_plan_dft_r2c_2d_cpu SFFTW_PLAN_DFT_R2C_2D_CPU_LP64
  296. #define sfftw_plan_dft_c2r_3d_cpu SFFTW_PLAN_DFT_C2R_3D_CPU_LP64
  297. #define sfftw_plan_dft_r2c_3d_cpu SFFTW_PLAN_DFT_R2C_3D_CPU_LP64
  298. #define sfftw_plan_guru_dft_cpu SFFTW_PLAN_GURU_DFT_CPU_LP64
  299. #define sfftw_plan_guru_dft_c2r_cpu SFFTW_PLAN_GURU_DFT_C2R_CPU_LP64
  300. #define sfftw_plan_guru_dft_r2c_cpu SFFTW_PLAN_GURU_DFT_R2C_CPU_LP64
  301. #define sfftw_plan_many_dft_cpu SFFTW_PLAN_MANY_DFT_CPU_LP64
  302. #define sfftw_plan_many_dft_c2r_cpu SFFTW_PLAN_MANY_DFT_C2R_CPU_LP64
  303. #define sfftw_plan_many_dft_r2c_cpu SFFTW_PLAN_MANY_DFT_R2C_CPU_LP64
  304. #define dfftw_plan_dft_omp_offload_impl dfftw_plan_dft_omp_offload_impl_lp64
  305. #define dfftw_plan_dft_c2r_omp_offload_impl dfftw_plan_dft_c2r_omp_offload_impl_lp64
  306. #define dfftw_plan_dft_r2c_omp_offload_impl dfftw_plan_dft_r2c_omp_offload_impl_lp64
  307. #define sfftw_plan_dft_omp_offload_impl sfftw_plan_dft_omp_offload_impl_lp64
  308. #define sfftw_plan_dft_c2r_omp_offload_impl sfftw_plan_dft_c2r_omp_offload_impl_lp64
  309. #define sfftw_plan_dft_r2c_omp_offload_impl sfftw_plan_dft_r2c_omp_offload_impl_lp64
  310. #define dfftw_plan_guru_dft_omp_offload_impl dfftw_plan_guru_dft_omp_offload_impl_lp64
  311. #define sfftw_plan_guru_dft_omp_offload_impl sfftw_plan_guru_dft_omp_offload_impl_lp64
  312. #define dfftw_plan_guru_dft_c2r_omp_offload_impl dfftw_plan_guru_dft_c2r_omp_offload_impl_lp64
  313. #define sfftw_plan_guru_dft_c2r_omp_offload_impl sfftw_plan_guru_dft_c2r_omp_offload_impl_lp64
  314. #define dfftw_plan_guru_dft_r2c_omp_offload_impl dfftw_plan_guru_dft_r2c_omp_offload_impl_lp64
  315. #define sfftw_plan_guru_dft_r2c_omp_offload_impl sfftw_plan_guru_dft_r2c_omp_offload_impl_lp64
  316. #endif
  317. #else /* i.e. lowercase */
  318. #if defined(_FNAME_SECOND_UNDERSCORE)
  319. #define N(n) n##__
  320. #elif defined(_FNAME_NOUNDERSCORE)
  321. #define N(n) n
  322. #else
  323. #define N(n) n##_
  324. #endif
  325. #define dfftw_cleanup N(dfftw_cleanup)
  326. #define dfftw_cleanup_threads N(dfftw_cleanup_threads)
  327. #define dfftw_destroy_plan N(dfftw_destroy_plan)
  328. #define dfftw_execute N(dfftw_execute)
  329. #define dfftw_execute_dft N(dfftw_execute_dft)
  330. #define dfftw_execute_dft_c2r N(dfftw_execute_dft_c2r)
  331. #define dfftw_execute_dft_r2c N(dfftw_execute_dft_r2c)
  332. #define dfftw_execute_r2r N(dfftw_execute_r2r)
  333. #define dfftw_execute_split_dft N(dfftw_execute_split_dft)
  334. #define dfftw_execute_split_dft_c2r N(dfftw_execute_split_dft_c2r)
  335. #define dfftw_execute_split_dft_r2c N(dfftw_execute_split_dft_r2c)
  336. #define dfftw_export_wisdom N(dfftw_export_wisdom)
  337. #define dfftw_flops N(dfftw_flops)
  338. #define dfftw_forget_wisdom N(dfftw_forget_wisdom)
  339. #define dfftw_import_system_wisdom N(dfftw_import_system_wisdom)
  340. #define dfftw_import_wisdom N(dfftw_import_wisdom)
  341. #define dfftw_init_threads N(dfftw_init_threads)
  342. #define dfftw_plan_dft N(dfftw_plan_dft)
  343. #define dfftw_plan_dft_1d N(dfftw_plan_dft_1d)
  344. #define dfftw_plan_dft_2d N(dfftw_plan_dft_2d)
  345. #define dfftw_plan_dft_3d N(dfftw_plan_dft_3d)
  346. #define dfftw_plan_dft_c2r N(dfftw_plan_dft_c2r)
  347. #define dfftw_plan_dft_c2r_1d N(dfftw_plan_dft_c2r_1d)
  348. #define dfftw_plan_dft_c2r_2d N(dfftw_plan_dft_c2r_2d)
  349. #define dfftw_plan_dft_c2r_3d N(dfftw_plan_dft_c2r_3d)
  350. #define dfftw_plan_dft_r2c N(dfftw_plan_dft_r2c)
  351. #define dfftw_plan_dft_r2c_1d N(dfftw_plan_dft_r2c_1d)
  352. #define dfftw_plan_dft_r2c_2d N(dfftw_plan_dft_r2c_2d)
  353. #define dfftw_plan_dft_r2c_3d N(dfftw_plan_dft_r2c_3d)
  354. #define dfftw_plan_guru_dft N(dfftw_plan_guru_dft)
  355. #define dfftw_plan_guru_dft_c2r N(dfftw_plan_guru_dft_c2r)
  356. #define dfftw_plan_guru_dft_r2c N(dfftw_plan_guru_dft_r2c)
  357. #define dfftw_plan_guru_r2r N(dfftw_plan_guru_r2r)
  358. #define dfftw_plan_guru_split_dft N(dfftw_plan_guru_split_dft)
  359. #define dfftw_plan_guru_split_dft_c2r N(dfftw_plan_guru_split_dft_c2r)
  360. #define dfftw_plan_guru_split_dft_r2c N(dfftw_plan_guru_split_dft_r2c)
  361. #define dfftw_plan_many_dft N(dfftw_plan_many_dft)
  362. #define dfftw_plan_many_dft_c2r N(dfftw_plan_many_dft_c2r)
  363. #define dfftw_plan_many_dft_r2c N(dfftw_plan_many_dft_r2c)
  364. #define dfftw_plan_many_r2r N(dfftw_plan_many_r2r)
  365. #define dfftw_plan_r2r N(dfftw_plan_r2r)
  366. #define dfftw_plan_r2r_1d N(dfftw_plan_r2r_1d)
  367. #define dfftw_plan_r2r_2d N(dfftw_plan_r2r_2d)
  368. #define dfftw_plan_r2r_3d N(dfftw_plan_r2r_3d)
  369. #define dfftw_plan_with_nthreads N(dfftw_plan_with_nthreads)
  370. #define dfftw_print_plan N(dfftw_print_plan)
  371. #define sfftw_cleanup N(sfftw_cleanup)
  372. #define sfftw_cleanup_threads N(sfftw_cleanup_threads)
  373. #define sfftw_destroy_plan N(sfftw_destroy_plan)
  374. #define sfftw_execute N(sfftw_execute)
  375. #define sfftw_execute_dft N(sfftw_execute_dft)
  376. #define sfftw_execute_dft_c2r N(sfftw_execute_dft_c2r)
  377. #define sfftw_execute_dft_r2c N(sfftw_execute_dft_r2c)
  378. #define sfftw_execute_r2r N(sfftw_execute_r2r)
  379. #define sfftw_execute_split_dft N(sfftw_execute_split_dft)
  380. #define sfftw_execute_split_dft_c2r N(sfftw_execute_split_dft_c2r)
  381. #define sfftw_execute_split_dft_r2c N(sfftw_execute_split_dft_r2c)
  382. #define sfftw_export_wisdom N(sfftw_export_wisdom)
  383. #define sfftw_flops N(sfftw_flops)
  384. #define sfftw_forget_wisdom N(sfftw_forget_wisdom)
  385. #define sfftw_import_system_wisdom N(sfftw_import_system_wisdom)
  386. #define sfftw_import_wisdom N(sfftw_import_wisdom)
  387. #define sfftw_init_threads N(sfftw_init_threads)
  388. #define sfftw_plan_dft N(sfftw_plan_dft)
  389. #define sfftw_plan_dft_1d N(sfftw_plan_dft_1d)
  390. #define sfftw_plan_dft_2d N(sfftw_plan_dft_2d)
  391. #define sfftw_plan_dft_3d N(sfftw_plan_dft_3d)
  392. #define sfftw_plan_dft_c2r N(sfftw_plan_dft_c2r)
  393. #define sfftw_plan_dft_c2r_1d N(sfftw_plan_dft_c2r_1d)
  394. #define sfftw_plan_dft_c2r_2d N(sfftw_plan_dft_c2r_2d)
  395. #define sfftw_plan_dft_c2r_3d N(sfftw_plan_dft_c2r_3d)
  396. #define sfftw_plan_dft_r2c N(sfftw_plan_dft_r2c)
  397. #define sfftw_plan_dft_r2c_1d N(sfftw_plan_dft_r2c_1d)
  398. #define sfftw_plan_dft_r2c_2d N(sfftw_plan_dft_r2c_2d)
  399. #define sfftw_plan_dft_r2c_3d N(sfftw_plan_dft_r2c_3d)
  400. #define sfftw_plan_guru_dft N(sfftw_plan_guru_dft)
  401. #define sfftw_plan_guru_dft_c2r N(sfftw_plan_guru_dft_c2r)
  402. #define sfftw_plan_guru_dft_r2c N(sfftw_plan_guru_dft_r2c)
  403. #define sfftw_plan_guru_r2r N(sfftw_plan_guru_r2r)
  404. #define sfftw_plan_guru_split_dft N(sfftw_plan_guru_split_dft)
  405. #define sfftw_plan_guru_split_dft_c2r N(sfftw_plan_guru_split_dft_c2r)
  406. #define sfftw_plan_guru_split_dft_r2c N(sfftw_plan_guru_split_dft_r2c)
  407. #define sfftw_plan_many_dft N(sfftw_plan_many_dft)
  408. #define sfftw_plan_many_dft_c2r N(sfftw_plan_many_dft_c2r)
  409. #define sfftw_plan_many_dft_r2c N(sfftw_plan_many_dft_r2c)
  410. #define sfftw_plan_many_r2r N(sfftw_plan_many_r2r)
  411. #define sfftw_plan_r2r N(sfftw_plan_r2r)
  412. #define sfftw_plan_r2r_1d N(sfftw_plan_r2r_1d)
  413. #define sfftw_plan_r2r_2d N(sfftw_plan_r2r_2d)
  414. #define sfftw_plan_r2r_3d N(sfftw_plan_r2r_3d)
  415. #define sfftw_plan_with_nthreads N(sfftw_plan_with_nthreads)
  416. #define sfftw_print_plan N(sfftw_print_plan)
  417. // offload
  418. #ifdef MKL_ILP64
  419. #define dfftw_plan_dft_omp_offload N(dfftw_plan_dft_omp_offload_ilp64)
  420. #define dfftw_plan_dft_1d_omp_offload N(dfftw_plan_dft_1d_omp_offload_ilp64)
  421. #define dfftw_plan_dft_2d_omp_offload N(dfftw_plan_dft_2d_omp_offload_ilp64)
  422. #define dfftw_plan_dft_3d_omp_offload N(dfftw_plan_dft_3d_omp_offload_ilp64)
  423. #define dfftw_plan_dft_c2r_omp_offload N(dfftw_plan_dft_c2r_omp_offload_ilp64)
  424. #define dfftw_plan_dft_r2c_omp_offload N(dfftw_plan_dft_r2c_omp_offload_ilp64)
  425. #define dfftw_plan_dft_c2r_1d_omp_offload N(dfftw_plan_dft_c2r_1d_omp_offload_ilp64)
  426. #define dfftw_plan_dft_r2c_1d_omp_offload N(dfftw_plan_dft_r2c_1d_omp_offload_ilp64)
  427. #define dfftw_plan_dft_c2r_2d_omp_offload N(dfftw_plan_dft_c2r_2d_omp_offload_ilp64)
  428. #define dfftw_plan_dft_r2c_2d_omp_offload N(dfftw_plan_dft_r2c_2d_omp_offload_ilp64)
  429. #define dfftw_plan_dft_c2r_3d_omp_offload N(dfftw_plan_dft_c2r_3d_omp_offload_ilp64)
  430. #define dfftw_plan_dft_r2c_3d_omp_offload N(dfftw_plan_dft_r2c_3d_omp_offload_ilp64)
  431. #define dfftw_plan_guru_dft_omp_offload N(dfftw_plan_guru_dft_omp_offload_ilp64)
  432. #define dfftw_plan_guru_dft_c2r_omp_offload N(dfftw_plan_guru_dft_c2r_omp_offload_ilp64)
  433. #define dfftw_plan_guru_dft_r2c_omp_offload N(dfftw_plan_guru_dft_r2c_omp_offload_ilp64)
  434. #define dfftw_plan_many_dft_omp_offload N(dfftw_plan_many_dft_omp_offload_ilp64)
  435. #define dfftw_plan_many_dft_c2r_omp_offload N(dfftw_plan_many_dft_c2r_omp_offload_ilp64)
  436. #define dfftw_plan_many_dft_r2c_omp_offload N(dfftw_plan_many_dft_r2c_omp_offload_ilp64)
  437. #define dfftw_execute_omp_offload N(dfftw_execute_omp_offload)
  438. #define dfftw_execute_dft_omp_offload N(dfftw_execute_dft_omp_offload)
  439. #define dfftw_execute_dft_c2r_omp_offload N(dfftw_execute_dft_c2r_omp_offload)
  440. #define dfftw_execute_dft_r2c_omp_offload N(dfftw_execute_dft_r2c_omp_offload)
  441. #define sfftw_plan_dft_omp_offload N(sfftw_plan_dft_omp_offload_ilp64)
  442. #define sfftw_plan_dft_1d_omp_offload N(sfftw_plan_dft_1d_omp_offload_ilp64)
  443. #define sfftw_plan_dft_2d_omp_offload N(sfftw_plan_dft_2d_omp_offload_ilp64)
  444. #define sfftw_plan_dft_3d_omp_offload N(sfftw_plan_dft_3d_omp_offload_ilp64)
  445. #define sfftw_plan_dft_c2r_omp_offload N(sfftw_plan_dft_c2r_omp_offload_ilp64)
  446. #define sfftw_plan_dft_r2c_omp_offload N(sfftw_plan_dft_r2c_omp_offload_ilp64)
  447. #define sfftw_plan_dft_c2r_1d_omp_offload N(sfftw_plan_dft_c2r_1d_omp_offload_ilp64)
  448. #define sfftw_plan_dft_r2c_1d_omp_offload N(sfftw_plan_dft_r2c_1d_omp_offload_ilp64)
  449. #define sfftw_plan_dft_c2r_2d_omp_offload N(sfftw_plan_dft_c2r_2d_omp_offload_ilp64)
  450. #define sfftw_plan_dft_r2c_2d_omp_offload N(sfftw_plan_dft_r2c_2d_omp_offload_ilp64)
  451. #define sfftw_plan_dft_c2r_3d_omp_offload N(sfftw_plan_dft_c2r_3d_omp_offload_ilp64)
  452. #define sfftw_plan_dft_r2c_3d_omp_offload N(sfftw_plan_dft_r2c_3d_omp_offload_ilp64)
  453. #define sfftw_plan_guru_dft_omp_offload N(sfftw_plan_guru_dft_omp_offload_ilp64)
  454. #define sfftw_plan_guru_dft_c2r_omp_offload N(sfftw_plan_guru_dft_c2r_omp_offload_ilp64)
  455. #define sfftw_plan_guru_dft_r2c_omp_offload N(sfftw_plan_guru_dft_r2c_omp_offload_ilp64)
  456. #define sfftw_plan_many_dft_omp_offload N(sfftw_plan_many_dft_omp_offload_ilp64)
  457. #define sfftw_plan_many_dft_c2r_omp_offload N(sfftw_plan_many_dft_c2r_omp_offload_ilp64)
  458. #define sfftw_plan_many_dft_r2c_omp_offload N(sfftw_plan_many_dft_r2c_omp_offload_ilp64)
  459. #define sfftw_execute_omp_offload N(sfftw_execute_omp_offload)
  460. #define sfftw_execute_dft_omp_offload N(sfftw_execute_dft_omp_offload)
  461. #define sfftw_execute_dft_c2r_omp_offload N(sfftw_execute_dft_c2r_omp_offload)
  462. #define sfftw_execute_dft_r2c_omp_offload N(sfftw_execute_dft_r2c_omp_offload)
  463. #define dfftw_plan_dft_cpu N(dfftw_plan_dft_cpu_ilp64)
  464. #define dfftw_plan_dft_1d_cpu N(dfftw_plan_dft_1d_cpu_ilp64)
  465. #define dfftw_plan_dft_2d_cpu N(dfftw_plan_dft_2d_cpu_ilp64)
  466. #define dfftw_plan_dft_3d_cpu N(dfftw_plan_dft_3d_cpu_ilp64)
  467. #define dfftw_plan_dft_c2r_cpu N(dfftw_plan_dft_c2r_cpu_ilp64)
  468. #define dfftw_plan_dft_r2c_cpu N(dfftw_plan_dft_r2c_cpu_ilp64)
  469. #define dfftw_plan_dft_c2r_1d_cpu N(dfftw_plan_dft_c2r_1d_cpu_ilp64)
  470. #define dfftw_plan_dft_r2c_1d_cpu N(dfftw_plan_dft_r2c_1d_cpu_ilp64)
  471. #define dfftw_plan_dft_c2r_2d_cpu N(dfftw_plan_dft_c2r_2d_cpu_ilp64)
  472. #define dfftw_plan_dft_r2c_2d_cpu N(dfftw_plan_dft_r2c_2d_cpu_ilp64)
  473. #define dfftw_plan_dft_c2r_3d_cpu N(dfftw_plan_dft_c2r_3d_cpu_ilp64)
  474. #define dfftw_plan_dft_r2c_3d_cpu N(dfftw_plan_dft_r2c_3d_cpu_ilp64)
  475. #define dfftw_plan_guru_dft_cpu N(dfftw_plan_guru_dft_cpu_ilp64)
  476. #define dfftw_plan_guru_dft_c2r_cpu N(dfftw_plan_guru_dft_c2r_cpu_ilp64)
  477. #define dfftw_plan_guru_dft_r2c_cpu N(dfftw_plan_guru_dft_r2c_cpu_ilp64)
  478. #define dfftw_plan_many_dft_cpu N(dfftw_plan_many_dft_cpu_ilp64)
  479. #define dfftw_plan_many_dft_c2r_cpu N(dfftw_plan_many_dft_c2r_cpu_ilp64)
  480. #define dfftw_plan_many_dft_r2c_cpu N(dfftw_plan_many_dft_r2c_cpu_ilp64)
  481. #define dfftw_execute_dft_cpu N(dfftw_execute_dft_cpu)
  482. #define dfftw_execute_dft_c2r_cpu N(dfftw_execute_dft_c2r_cpu)
  483. #define dfftw_execute_dft_r2c_cpu N(dfftw_execute_dft_r2c_cpu)
  484. #define sfftw_plan_dft_cpu N(sfftw_plan_dft_cpu_ilp64)
  485. #define sfftw_plan_dft_1d_cpu N(sfftw_plan_dft_1d_cpu_ilp64)
  486. #define sfftw_plan_dft_2d_cpu N(sfftw_plan_dft_2d_cpu_ilp64)
  487. #define sfftw_plan_dft_3d_cpu N(sfftw_plan_dft_3d_cpu_ilp64)
  488. #define sfftw_plan_dft_c2r_cpu N(sfftw_plan_dft_c2r_cpu_ilp64)
  489. #define sfftw_plan_dft_r2c_cpu N(sfftw_plan_dft_r2c_cpu_ilp64)
  490. #define sfftw_plan_dft_c2r_1d_cpu N(sfftw_plan_dft_c2r_1d_cpu_ilp64)
  491. #define sfftw_plan_dft_r2c_1d_cpu N(sfftw_plan_dft_r2c_1d_cpu_ilp64)
  492. #define sfftw_plan_dft_c2r_2d_cpu N(sfftw_plan_dft_c2r_2d_cpu_ilp64)
  493. #define sfftw_plan_dft_r2c_2d_cpu N(sfftw_plan_dft_r2c_2d_cpu_ilp64)
  494. #define sfftw_plan_dft_c2r_3d_cpu N(sfftw_plan_dft_c2r_3d_cpu_ilp64)
  495. #define sfftw_plan_dft_r2c_3d_cpu N(sfftw_plan_dft_r2c_3d_cpu_ilp64)
  496. #define sfftw_plan_guru_dft_cpu N(sfftw_plan_guru_dft_cpu_ilp64)
  497. #define sfftw_plan_guru_dft_c2r_cpu N(sfftw_plan_guru_dft_c2r_cpu_ilp64)
  498. #define sfftw_plan_guru_dft_r2c_cpu N(sfftw_plan_guru_dft_r2c_cpu_ilp64)
  499. #define sfftw_plan_many_dft_cpu N(sfftw_plan_many_dft_cpu_ilp64)
  500. #define sfftw_plan_many_dft_c2r_cpu N(sfftw_plan_many_dft_c2r_cpu_ilp64)
  501. #define sfftw_plan_many_dft_r2c_cpu N(sfftw_plan_many_dft_r2c_cpu_ilp64)
  502. #define sfftw_execute_dft_cpu N(sfftw_execute_dft_cpu)
  503. #define sfftw_execute_dft_c2r_cpu N(sfftw_execute_dft_c2r_cpu)
  504. #define sfftw_execute_dft_r2c_cpu N(sfftw_execute_dft_r2c_cpu)
  505. #define dfftw_plan_dft_omp_offload_impl N(dfftw_plan_dft_omp_offload_impl_ilp64)
  506. #define dfftw_plan_dft_c2r_omp_offload_impl N(dfftw_plan_dft_c2r_omp_offload_impl_ilp64)
  507. #define dfftw_plan_dft_r2c_omp_offload_impl N(dfftw_plan_dft_r2c_omp_offload_impl_ilp64)
  508. #define sfftw_plan_dft_omp_offload_impl N(sfftw_plan_dft_omp_offload_impl_ilp64)
  509. #define sfftw_plan_dft_c2r_omp_offload_impl N(sfftw_plan_dft_c2r_omp_offload_impl_ilp64)
  510. #define sfftw_plan_dft_r2c_omp_offload_impl N(sfftw_plan_dft_r2c_omp_offload_impl_ilp64)
  511. #define dfftw_plan_guru_dft_omp_offload_impl N(dfftw_plan_guru_dft_omp_offload_impl_ilp64)
  512. #define sfftw_plan_guru_dft_omp_offload_impl N(sfftw_plan_guru_dft_omp_offload_impl_ilp64)
  513. #define dfftw_plan_guru_dft_c2r_omp_offload_impl N(dfftw_plan_guru_dft_c2r_omp_offload_impl_ilp64)
  514. #define sfftw_plan_guru_dft_c2r_omp_offload_impl N(sfftw_plan_guru_dft_c2r_omp_offload_impl_ilp64)
  515. #define dfftw_plan_guru_dft_r2c_omp_offload_impl N(dfftw_plan_guru_dft_r2c_omp_offload_impl_ilp64)
  516. #define sfftw_plan_guru_dft_r2c_omp_offload_impl N(sfftw_plan_guru_dft_r2c_omp_offload_impl_ilp64)
  517. #else // MKL_LP64
  518. #define dfftw_plan_dft_omp_offload N(dfftw_plan_dft_omp_offload_lp64)
  519. #define dfftw_plan_dft_1d_omp_offload N(dfftw_plan_dft_1d_omp_offload_lp64)
  520. #define dfftw_plan_dft_2d_omp_offload N(dfftw_plan_dft_2d_omp_offload_lp64)
  521. #define dfftw_plan_dft_3d_omp_offload N(dfftw_plan_dft_3d_omp_offload_lp64)
  522. #define dfftw_plan_dft_c2r_omp_offload N(dfftw_plan_dft_c2r_omp_offload_lp64)
  523. #define dfftw_plan_dft_r2c_omp_offload N(dfftw_plan_dft_r2c_omp_offload_lp64)
  524. #define dfftw_plan_dft_c2r_1d_omp_offload N(dfftw_plan_dft_c2r_1d_omp_offload_lp64)
  525. #define dfftw_plan_dft_r2c_1d_omp_offload N(dfftw_plan_dft_r2c_1d_omp_offload_lp64)
  526. #define dfftw_plan_dft_c2r_2d_omp_offload N(dfftw_plan_dft_c2r_2d_omp_offload_lp64)
  527. #define dfftw_plan_dft_r2c_2d_omp_offload N(dfftw_plan_dft_r2c_2d_omp_offload_lp64)
  528. #define dfftw_plan_dft_c2r_3d_omp_offload N(dfftw_plan_dft_c2r_3d_omp_offload_lp64)
  529. #define dfftw_plan_dft_r2c_3d_omp_offload N(dfftw_plan_dft_r2c_3d_omp_offload_lp64)
  530. #define dfftw_plan_guru_dft_omp_offload N(dfftw_plan_guru_dft_omp_offload_lp64)
  531. #define dfftw_plan_guru_dft_c2r_omp_offload N(dfftw_plan_guru_dft_c2r_omp_offload_lp64)
  532. #define dfftw_plan_guru_dft_r2c_omp_offload N(dfftw_plan_guru_dft_r2c_omp_offload_lp64)
  533. #define dfftw_plan_many_dft_omp_offload N(dfftw_plan_many_dft_omp_offload_lp64)
  534. #define dfftw_plan_many_dft_c2r_omp_offload N(dfftw_plan_many_dft_c2r_omp_offload_lp64)
  535. #define dfftw_plan_many_dft_r2c_omp_offload N(dfftw_plan_many_dft_r2c_omp_offload_lp64)
  536. #define sfftw_plan_dft_omp_offload N(sfftw_plan_dft_omp_offload_lp64)
  537. #define sfftw_plan_dft_1d_omp_offload N(sfftw_plan_dft_1d_omp_offload_lp64)
  538. #define sfftw_plan_dft_2d_omp_offload N(sfftw_plan_dft_2d_omp_offload_lp64)
  539. #define sfftw_plan_dft_3d_omp_offload N(sfftw_plan_dft_3d_omp_offload_lp64)
  540. #define sfftw_plan_dft_c2r_omp_offload N(sfftw_plan_dft_c2r_omp_offload_lp64)
  541. #define sfftw_plan_dft_r2c_omp_offload N(sfftw_plan_dft_r2c_omp_offload_lp64)
  542. #define sfftw_plan_dft_c2r_1d_omp_offload N(sfftw_plan_dft_c2r_1d_omp_offload_lp64)
  543. #define sfftw_plan_dft_r2c_1d_omp_offload N(sfftw_plan_dft_r2c_1d_omp_offload_lp64)
  544. #define sfftw_plan_dft_c2r_2d_omp_offload N(sfftw_plan_dft_c2r_2d_omp_offload_lp64)
  545. #define sfftw_plan_dft_r2c_2d_omp_offload N(sfftw_plan_dft_r2c_2d_omp_offload_lp64)
  546. #define sfftw_plan_dft_c2r_3d_omp_offload N(sfftw_plan_dft_c2r_3d_omp_offload_lp64)
  547. #define sfftw_plan_dft_r2c_3d_omp_offload N(sfftw_plan_dft_r2c_3d_omp_offload_lp64)
  548. #define sfftw_plan_guru_dft_omp_offload N(sfftw_plan_guru_dft_omp_offload_lp64)
  549. #define sfftw_plan_guru_dft_c2r_omp_offload N(sfftw_plan_guru_dft_c2r_omp_offload_lp64)
  550. #define sfftw_plan_guru_dft_r2c_omp_offload N(sfftw_plan_guru_dft_r2c_omp_offload_lp64)
  551. #define sfftw_plan_many_dft_omp_offload N(sfftw_plan_many_dft_omp_offload_lp64)
  552. #define sfftw_plan_many_dft_c2r_omp_offload N(sfftw_plan_many_dft_c2r_omp_offload_lp64)
  553. #define sfftw_plan_many_dft_r2c_omp_offload N(sfftw_plan_many_dft_r2c_omp_offload_lp64)
  554. #define dfftw_plan_dft_cpu N(dfftw_plan_dft_cpu_lp64)
  555. #define dfftw_plan_dft_1d_cpu N(dfftw_plan_dft_1d_cpu_lp64)
  556. #define dfftw_plan_dft_2d_cpu N(dfftw_plan_dft_2d_cpu_lp64)
  557. #define dfftw_plan_dft_3d_cpu N(dfftw_plan_dft_3d_cpu_lp64)
  558. #define dfftw_plan_dft_c2r_cpu N(dfftw_plan_dft_c2r_cpu_lp64)
  559. #define dfftw_plan_dft_r2c_cpu N(dfftw_plan_dft_r2c_cpu_lp64)
  560. #define dfftw_plan_dft_c2r_1d_cpu N(dfftw_plan_dft_c2r_1d_cpu_lp64)
  561. #define dfftw_plan_dft_r2c_1d_cpu N(dfftw_plan_dft_r2c_1d_cpu_lp64)
  562. #define dfftw_plan_dft_c2r_2d_cpu N(dfftw_plan_dft_c2r_2d_cpu_lp64)
  563. #define dfftw_plan_dft_r2c_2d_cpu N(dfftw_plan_dft_r2c_2d_cpu_lp64)
  564. #define dfftw_plan_dft_c2r_3d_cpu N(dfftw_plan_dft_c2r_3d_cpu_lp64)
  565. #define dfftw_plan_dft_r2c_3d_cpu N(dfftw_plan_dft_r2c_3d_cpu_lp64)
  566. #define dfftw_plan_guru_dft_cpu N(dfftw_plan_guru_dft_cpu_lp64)
  567. #define dfftw_plan_guru_dft_c2r_cpu N(dfftw_plan_guru_dft_c2r_cpu_lp64)
  568. #define dfftw_plan_guru_dft_r2c_cpu N(dfftw_plan_guru_dft_r2c_cpu_lp64)
  569. #define dfftw_plan_many_dft_cpu N(dfftw_plan_many_dft_cpu_lp64)
  570. #define dfftw_plan_many_dft_c2r_cpu N(dfftw_plan_many_dft_c2r_cpu_lp64)
  571. #define dfftw_plan_many_dft_r2c_cpu N(dfftw_plan_many_dft_r2c_cpu_lp64)
  572. #define sfftw_plan_dft_cpu N(sfftw_plan_dft_cpu_lp64)
  573. #define sfftw_plan_dft_1d_cpu N(sfftw_plan_dft_1d_cpu_lp64)
  574. #define sfftw_plan_dft_2d_cpu N(sfftw_plan_dft_2d_cpu_lp64)
  575. #define sfftw_plan_dft_3d_cpu N(sfftw_plan_dft_3d_cpu_lp64)
  576. #define sfftw_plan_dft_c2r_cpu N(sfftw_plan_dft_c2r_cpu_lp64)
  577. #define sfftw_plan_dft_r2c_cpu N(sfftw_plan_dft_r2c_cpu_lp64)
  578. #define sfftw_plan_dft_c2r_1d_cpu N(sfftw_plan_dft_c2r_1d_cpu_lp64)
  579. #define sfftw_plan_dft_r2c_1d_cpu N(sfftw_plan_dft_r2c_1d_cpu_lp64)
  580. #define sfftw_plan_dft_c2r_2d_cpu N(sfftw_plan_dft_c2r_2d_cpu_lp64)
  581. #define sfftw_plan_dft_r2c_2d_cpu N(sfftw_plan_dft_r2c_2d_cpu_lp64)
  582. #define sfftw_plan_dft_c2r_3d_cpu N(sfftw_plan_dft_c2r_3d_cpu_lp64)
  583. #define sfftw_plan_dft_r2c_3d_cpu N(sfftw_plan_dft_r2c_3d_cpu_lp64)
  584. #define sfftw_plan_guru_dft_cpu N(sfftw_plan_guru_dft_cpu_lp64)
  585. #define sfftw_plan_guru_dft_c2r_cpu N(sfftw_plan_guru_dft_c2r_cpu_lp64)
  586. #define sfftw_plan_guru_dft_r2c_cpu N(sfftw_plan_guru_dft_r2c_cpu_lp64)
  587. #define sfftw_plan_many_dft_cpu N(sfftw_plan_many_dft_cpu_lp64)
  588. #define sfftw_plan_many_dft_c2r_cpu N(sfftw_plan_many_dft_c2r_cpu_lp64)
  589. #define sfftw_plan_many_dft_r2c_cpu N(sfftw_plan_many_dft_r2c_cpu_lp64)
  590. #define dfftw_plan_dft_omp_offload_impl N(dfftw_plan_dft_omp_offload_impl_lp64)
  591. #define dfftw_plan_dft_c2r_omp_offload_impl N(dfftw_plan_dft_c2r_omp_offload_impl_lp64)
  592. #define dfftw_plan_dft_r2c_omp_offload_impl N(dfftw_plan_dft_r2c_omp_offload_impl_lp64)
  593. #define sfftw_plan_dft_omp_offload_impl N(sfftw_plan_dft_omp_offload_impl_lp64)
  594. #define sfftw_plan_dft_c2r_omp_offload_impl N(sfftw_plan_dft_c2r_omp_offload_impl_lp64)
  595. #define sfftw_plan_dft_r2c_omp_offload_impl N(sfftw_plan_dft_r2c_omp_offload_impl_lp64)
  596. #define dfftw_plan_guru_dft_omp_offload_impl N(dfftw_plan_guru_dft_omp_offload_impl_lp64)
  597. #define sfftw_plan_guru_dft_omp_offload_impl N(sfftw_plan_guru_dft_omp_offload_impl_lp64)
  598. #define dfftw_plan_guru_dft_c2r_omp_offload_impl N(dfftw_plan_guru_dft_c2r_omp_offload_impl_lp64)
  599. #define sfftw_plan_guru_dft_c2r_omp_offload_impl N(sfftw_plan_guru_dft_c2r_omp_offload_impl_lp64)
  600. #define dfftw_plan_guru_dft_r2c_omp_offload_impl N(dfftw_plan_guru_dft_r2c_omp_offload_impl_lp64)
  601. #define sfftw_plan_guru_dft_r2c_omp_offload_impl N(sfftw_plan_guru_dft_r2c_omp_offload_impl_lp64)
  602. #endif
  603. #endif
  604. FFTW_EXTERN void dfftw_cleanup(void);
  605. FFTW_EXTERN void dfftw_cleanup_threads(void);
  606. FFTW_EXTERN void dfftw_destroy_plan(PLAN*);
  607. FFTW_EXTERN void dfftw_execute(PLAN*);
  608. FFTW_EXTERN void dfftw_execute_dft(PLAN*,COMPLEX16*,COMPLEX16*);
  609. FFTW_EXTERN void dfftw_execute_dft_c2r(PLAN*,COMPLEX16*,REAL8*);
  610. FFTW_EXTERN void dfftw_execute_dft_r2c(PLAN*,REAL8*,COMPLEX16*);
  611. FFTW_EXTERN void dfftw_execute_r2r(PLAN*,REAL8*,REAL8*);
  612. FFTW_EXTERN void dfftw_execute_split_dft(PLAN*,REAL8*,REAL8*,REAL8*,REAL8*);
  613. FFTW_EXTERN void dfftw_execute_split_dft_c2r(PLAN*,REAL8*,REAL8*,REAL8*);
  614. FFTW_EXTERN void dfftw_execute_split_dft_r2c(PLAN*,REAL8*,REAL8*,REAL8*);
  615. FFTW_EXTERN void dfftw_export_wisdom(void*,void*);
  616. FFTW_EXTERN void dfftw_flops(PLAN*,double*,double*,double*);
  617. FFTW_EXTERN void dfftw_forget_wisdom(void);
  618. FFTW_EXTERN void dfftw_import_system_wisdom(INTEGER*);
  619. FFTW_EXTERN void dfftw_import_wisdom(INTEGER*,void*,void*);
  620. FFTW_EXTERN void dfftw_init_threads(INTEGER*);
  621. FFTW_EXTERN void dfftw_plan_dft(PLAN*,INTEGER*,INTEGER*,COMPLEX16*,COMPLEX16*,INTEGER*,INTEGER*);
  622. FFTW_EXTERN void dfftw_plan_dft_1d(PLAN*,INTEGER*,COMPLEX16*,COMPLEX16*,INTEGER*,INTEGER*);
  623. FFTW_EXTERN void dfftw_plan_dft_2d(PLAN*,INTEGER*,INTEGER*,COMPLEX16*,COMPLEX16*,INTEGER*,INTEGER*);
  624. FFTW_EXTERN void dfftw_plan_dft_3d(PLAN*,INTEGER*,INTEGER*,INTEGER*,COMPLEX16*,COMPLEX16*,INTEGER*,INTEGER*);
  625. FFTW_EXTERN void dfftw_plan_dft_c2r(PLAN*,INTEGER*,INTEGER*,COMPLEX16*,REAL8*,INTEGER*);
  626. FFTW_EXTERN void dfftw_plan_dft_c2r_1d(PLAN*,INTEGER*,COMPLEX16*,REAL8*,INTEGER*);
  627. FFTW_EXTERN void dfftw_plan_dft_c2r_2d(PLAN*,INTEGER*,INTEGER*,COMPLEX16*,REAL8*,INTEGER*);
  628. FFTW_EXTERN void dfftw_plan_dft_c2r_3d(PLAN*,INTEGER*,INTEGER*,INTEGER*,COMPLEX16*,REAL8*,INTEGER*);
  629. FFTW_EXTERN void dfftw_plan_dft_r2c(PLAN*,INTEGER*,INTEGER*,REAL8*,COMPLEX16*,INTEGER*);
  630. FFTW_EXTERN void dfftw_plan_dft_r2c_1d(PLAN*,INTEGER*,REAL8*,COMPLEX16*,INTEGER*);
  631. FFTW_EXTERN void dfftw_plan_dft_r2c_2d(PLAN*,INTEGER*,INTEGER*,REAL8*,COMPLEX16*,INTEGER*);
  632. FFTW_EXTERN void dfftw_plan_dft_r2c_3d(PLAN*,INTEGER*,INTEGER*,INTEGER*,REAL8*,COMPLEX16*,INTEGER*);
  633. FFTW_EXTERN void dfftw_plan_guru_dft(PLAN*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,COMPLEX16*,COMPLEX16*,INTEGER*,INTEGER*);
  634. FFTW_EXTERN void dfftw_plan_guru_dft_c2r(PLAN*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,COMPLEX16*,REAL8*,INTEGER*);
  635. FFTW_EXTERN void dfftw_plan_guru_dft_r2c(PLAN*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,REAL8*,COMPLEX16*,INTEGER*);
  636. FFTW_EXTERN void dfftw_plan_guru_r2r(PLAN*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,REAL8*,REAL8*,INTEGER*,INTEGER*);
  637. FFTW_EXTERN void dfftw_plan_guru_split_dft(PLAN*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,REAL8*,REAL8*,REAL8*,REAL8*,INTEGER*);
  638. FFTW_EXTERN void dfftw_plan_guru_split_dft_c2r(PLAN*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,REAL8*,REAL8*,REAL8*,INTEGER*);
  639. FFTW_EXTERN void dfftw_plan_guru_split_dft_r2c(PLAN*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,REAL8*,REAL8*,REAL8*,INTEGER*);
  640. FFTW_EXTERN void dfftw_plan_many_dft(PLAN*,INTEGER*,INTEGER*,INTEGER*,COMPLEX16*,INTEGER*,INTEGER*,INTEGER*,COMPLEX16*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,INTEGER*);
  641. FFTW_EXTERN void dfftw_plan_many_dft_c2r(PLAN*,INTEGER*,INTEGER*,INTEGER*,COMPLEX16*,INTEGER*,INTEGER*,INTEGER*,REAL8*,INTEGER*,INTEGER*,INTEGER*,INTEGER*);
  642. FFTW_EXTERN void dfftw_plan_many_dft_r2c(PLAN*,INTEGER*,INTEGER*,INTEGER*,REAL8*,INTEGER*,INTEGER*,INTEGER*,COMPLEX16*,INTEGER*,INTEGER*,INTEGER*,INTEGER*);
  643. FFTW_EXTERN void dfftw_plan_many_r2r(PLAN*,INTEGER*,INTEGER*,INTEGER*,REAL8*,INTEGER*,INTEGER*,INTEGER*,REAL8*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,INTEGER*);
  644. FFTW_EXTERN void dfftw_plan_r2r(PLAN*,INTEGER*,INTEGER*,REAL8*,REAL8*,INTEGER*,INTEGER*);
  645. FFTW_EXTERN void dfftw_plan_r2r_1d(PLAN*,INTEGER*,REAL8*,REAL8*,INTEGER*,INTEGER*);
  646. FFTW_EXTERN void dfftw_plan_r2r_2d(PLAN*,INTEGER*,INTEGER*,REAL8*,REAL8*,INTEGER*,INTEGER*,INTEGER*);
  647. FFTW_EXTERN void dfftw_plan_r2r_3d(PLAN*,INTEGER*,INTEGER*,INTEGER*,REAL8*,REAL8*,INTEGER*,INTEGER*,INTEGER*,INTEGER*);
  648. FFTW_EXTERN void dfftw_plan_with_nthreads(INTEGER*);
  649. FFTW_EXTERN void dfftw_print_plan(PLAN*);
  650. FFTW_EXTERN void sfftw_cleanup(void);
  651. FFTW_EXTERN void sfftw_cleanup_threads(void);
  652. FFTW_EXTERN void sfftw_destroy_plan(PLAN*);
  653. FFTW_EXTERN void sfftw_execute(PLAN*);
  654. FFTW_EXTERN void sfftw_execute_dft(PLAN*,COMPLEX8*,COMPLEX8*);
  655. FFTW_EXTERN void sfftw_execute_dft_c2r(PLAN*,COMPLEX8*,REAL4*);
  656. FFTW_EXTERN void sfftw_execute_dft_r2c(PLAN*,REAL4*,COMPLEX8*);
  657. FFTW_EXTERN void sfftw_execute_r2r(PLAN*,REAL4*,REAL4*);
  658. FFTW_EXTERN void sfftw_execute_split_dft(PLAN*,REAL4*,REAL4*,REAL4*,REAL4*);
  659. FFTW_EXTERN void sfftw_execute_split_dft_c2r(PLAN*,REAL4*,REAL4*,REAL4*);
  660. FFTW_EXTERN void sfftw_execute_split_dft_r2c(PLAN*,REAL4*,REAL4*,REAL4*);
  661. FFTW_EXTERN void sfftw_export_wisdom(void*,void*);
  662. FFTW_EXTERN void sfftw_flops(PLAN*,double*,double*,double*);
  663. FFTW_EXTERN void sfftw_forget_wisdom(void);
  664. FFTW_EXTERN void sfftw_import_system_wisdom(INTEGER*);
  665. FFTW_EXTERN void sfftw_import_wisdom(INTEGER*,void*,void*);
  666. FFTW_EXTERN void sfftw_init_threads(INTEGER*);
  667. FFTW_EXTERN void sfftw_plan_dft(PLAN*,INTEGER*,INTEGER*,COMPLEX8*,COMPLEX8*,INTEGER*,INTEGER*);
  668. FFTW_EXTERN void sfftw_plan_dft_1d(PLAN*,INTEGER*,COMPLEX8*,COMPLEX8*,INTEGER*,INTEGER*);
  669. FFTW_EXTERN void sfftw_plan_dft_2d(PLAN*,INTEGER*,INTEGER*,COMPLEX8*,COMPLEX8*,INTEGER*,INTEGER*);
  670. FFTW_EXTERN void sfftw_plan_dft_3d(PLAN*,INTEGER*,INTEGER*,INTEGER*,COMPLEX8*,COMPLEX8*,INTEGER*,INTEGER*);
  671. FFTW_EXTERN void sfftw_plan_dft_c2r(PLAN*,INTEGER*,INTEGER*,COMPLEX8*,REAL4*,INTEGER*);
  672. FFTW_EXTERN void sfftw_plan_dft_c2r_1d(PLAN*,INTEGER*,COMPLEX8*,REAL4*,INTEGER*);
  673. FFTW_EXTERN void sfftw_plan_dft_c2r_2d(PLAN*,INTEGER*,INTEGER*,COMPLEX8*,REAL4*,INTEGER*);
  674. FFTW_EXTERN void sfftw_plan_dft_c2r_3d(PLAN*,INTEGER*,INTEGER*,INTEGER*,COMPLEX8*,REAL4*,INTEGER*);
  675. FFTW_EXTERN void sfftw_plan_dft_r2c(PLAN*,INTEGER*,INTEGER*,REAL4*,COMPLEX8*,INTEGER*);
  676. FFTW_EXTERN void sfftw_plan_dft_r2c_1d(PLAN*,INTEGER*,REAL4*,COMPLEX8*,INTEGER*);
  677. FFTW_EXTERN void sfftw_plan_dft_r2c_2d(PLAN*,INTEGER*,INTEGER*,REAL4*,COMPLEX8*,INTEGER*);
  678. FFTW_EXTERN void sfftw_plan_dft_r2c_3d(PLAN*,INTEGER*,INTEGER*,INTEGER*,REAL4*,COMPLEX8*,INTEGER*);
  679. FFTW_EXTERN void sfftw_plan_guru_dft(PLAN*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,COMPLEX8*,COMPLEX8*,INTEGER*,INTEGER*);
  680. FFTW_EXTERN void sfftw_plan_guru_dft_c2r(PLAN*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,COMPLEX8*,REAL4*,INTEGER*);
  681. FFTW_EXTERN void sfftw_plan_guru_dft_r2c(PLAN*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,REAL4*,COMPLEX8*,INTEGER*);
  682. FFTW_EXTERN void sfftw_plan_guru_r2r(PLAN*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,REAL4*,REAL4*,INTEGER*,INTEGER*);
  683. FFTW_EXTERN void sfftw_plan_guru_split_dft(PLAN*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,REAL4*,REAL4*,REAL4*,REAL4*,INTEGER*);
  684. FFTW_EXTERN void sfftw_plan_guru_split_dft_c2r(PLAN*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,REAL4*,REAL4*,REAL4*,INTEGER*);
  685. FFTW_EXTERN void sfftw_plan_guru_split_dft_r2c(PLAN*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,REAL4*,REAL4*,REAL4*,INTEGER*);
  686. FFTW_EXTERN void sfftw_plan_many_dft(PLAN*,INTEGER*,INTEGER*,INTEGER*,COMPLEX8*,INTEGER*,INTEGER*,INTEGER*,COMPLEX8*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,INTEGER*);
  687. FFTW_EXTERN void sfftw_plan_many_dft_c2r(PLAN*,INTEGER*,INTEGER*,INTEGER*,COMPLEX8*,INTEGER*,INTEGER*,INTEGER*,REAL4*,INTEGER*,INTEGER*,INTEGER*,INTEGER*);
  688. FFTW_EXTERN void sfftw_plan_many_dft_r2c(PLAN*,INTEGER*,INTEGER*,INTEGER*,REAL4*,INTEGER*,INTEGER*,INTEGER*,COMPLEX8*,INTEGER*,INTEGER*,INTEGER*,INTEGER*);
  689. FFTW_EXTERN void sfftw_plan_many_r2r(PLAN*,INTEGER*,INTEGER*,INTEGER*,REAL4*,INTEGER*,INTEGER*,INTEGER*,REAL4*,INTEGER*,INTEGER*,INTEGER*,INTEGER*,INTEGER*);
  690. FFTW_EXTERN void sfftw_plan_r2r(PLAN*,INTEGER*,INTEGER*,REAL4*,REAL4*,INTEGER*,INTEGER*);
  691. FFTW_EXTERN void sfftw_plan_r2r_1d(PLAN*,INTEGER*,REAL4*,REAL4*,INTEGER*,INTEGER*);
  692. FFTW_EXTERN void sfftw_plan_r2r_2d(PLAN*,INTEGER*,INTEGER*,REAL4*,REAL4*,INTEGER*,INTEGER*,INTEGER*);
  693. FFTW_EXTERN void sfftw_plan_r2r_3d(PLAN*,INTEGER*,INTEGER*,INTEGER*,REAL4*,REAL4*,INTEGER*,INTEGER*,INTEGER*,INTEGER*);
  694. FFTW_EXTERN void sfftw_plan_with_nthreads(INTEGER*);
  695. FFTW_EXTERN void sfftw_print_plan(PLAN*);
  696. #endif /* FFTW3_MKL_F77_H */