Mercurial > hg > sv-dependency-builds
comparison src/fftw-3.3.5/api/fftw3q.f03 @ 42:2cd0e3b3e1fd
Current fftw source
author | Chris Cannam |
---|---|
date | Tue, 18 Oct 2016 13:40:26 +0100 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
41:481f5f8c5634 | 42:2cd0e3b3e1fd |
---|---|
1 ! Generated automatically. DO NOT EDIT! | |
2 | |
3 | |
4 type, bind(C) :: fftwq_iodim | |
5 integer(C_INT) n, is, os | |
6 end type fftwq_iodim | |
7 type, bind(C) :: fftwq_iodim64 | |
8 integer(C_INTPTR_T) n, is, os | |
9 end type fftwq_iodim64 | |
10 | |
11 interface | |
12 type(C_PTR) function fftwq_plan_dft(rank,n,in,out,sign,flags) bind(C, name='fftwq_plan_dft') | |
13 import | |
14 integer(C_INT), value :: rank | |
15 integer(C_INT), dimension(*), intent(in) :: n | |
16 complex(16), dimension(*), intent(out) :: in | |
17 complex(16), dimension(*), intent(out) :: out | |
18 integer(C_INT), value :: sign | |
19 integer(C_INT), value :: flags | |
20 end function fftwq_plan_dft | |
21 | |
22 type(C_PTR) function fftwq_plan_dft_1d(n,in,out,sign,flags) bind(C, name='fftwq_plan_dft_1d') | |
23 import | |
24 integer(C_INT), value :: n | |
25 complex(16), dimension(*), intent(out) :: in | |
26 complex(16), dimension(*), intent(out) :: out | |
27 integer(C_INT), value :: sign | |
28 integer(C_INT), value :: flags | |
29 end function fftwq_plan_dft_1d | |
30 | |
31 type(C_PTR) function fftwq_plan_dft_2d(n0,n1,in,out,sign,flags) bind(C, name='fftwq_plan_dft_2d') | |
32 import | |
33 integer(C_INT), value :: n0 | |
34 integer(C_INT), value :: n1 | |
35 complex(16), dimension(*), intent(out) :: in | |
36 complex(16), dimension(*), intent(out) :: out | |
37 integer(C_INT), value :: sign | |
38 integer(C_INT), value :: flags | |
39 end function fftwq_plan_dft_2d | |
40 | |
41 type(C_PTR) function fftwq_plan_dft_3d(n0,n1,n2,in,out,sign,flags) bind(C, name='fftwq_plan_dft_3d') | |
42 import | |
43 integer(C_INT), value :: n0 | |
44 integer(C_INT), value :: n1 | |
45 integer(C_INT), value :: n2 | |
46 complex(16), dimension(*), intent(out) :: in | |
47 complex(16), dimension(*), intent(out) :: out | |
48 integer(C_INT), value :: sign | |
49 integer(C_INT), value :: flags | |
50 end function fftwq_plan_dft_3d | |
51 | |
52 type(C_PTR) function fftwq_plan_many_dft(rank,n,howmany,in,inembed,istride,idist,out,onembed,ostride,odist,sign,flags) & | |
53 bind(C, name='fftwq_plan_many_dft') | |
54 import | |
55 integer(C_INT), value :: rank | |
56 integer(C_INT), dimension(*), intent(in) :: n | |
57 integer(C_INT), value :: howmany | |
58 complex(16), dimension(*), intent(out) :: in | |
59 integer(C_INT), dimension(*), intent(in) :: inembed | |
60 integer(C_INT), value :: istride | |
61 integer(C_INT), value :: idist | |
62 complex(16), dimension(*), intent(out) :: out | |
63 integer(C_INT), dimension(*), intent(in) :: onembed | |
64 integer(C_INT), value :: ostride | |
65 integer(C_INT), value :: odist | |
66 integer(C_INT), value :: sign | |
67 integer(C_INT), value :: flags | |
68 end function fftwq_plan_many_dft | |
69 | |
70 type(C_PTR) function fftwq_plan_guru_dft(rank,dims,howmany_rank,howmany_dims,in,out,sign,flags) & | |
71 bind(C, name='fftwq_plan_guru_dft') | |
72 import | |
73 integer(C_INT), value :: rank | |
74 type(fftwq_iodim), dimension(*), intent(in) :: dims | |
75 integer(C_INT), value :: howmany_rank | |
76 type(fftwq_iodim), dimension(*), intent(in) :: howmany_dims | |
77 complex(16), dimension(*), intent(out) :: in | |
78 complex(16), dimension(*), intent(out) :: out | |
79 integer(C_INT), value :: sign | |
80 integer(C_INT), value :: flags | |
81 end function fftwq_plan_guru_dft | |
82 | |
83 type(C_PTR) function fftwq_plan_guru_split_dft(rank,dims,howmany_rank,howmany_dims,ri,ii,ro,io,flags) & | |
84 bind(C, name='fftwq_plan_guru_split_dft') | |
85 import | |
86 integer(C_INT), value :: rank | |
87 type(fftwq_iodim), dimension(*), intent(in) :: dims | |
88 integer(C_INT), value :: howmany_rank | |
89 type(fftwq_iodim), dimension(*), intent(in) :: howmany_dims | |
90 real(16), dimension(*), intent(out) :: ri | |
91 real(16), dimension(*), intent(out) :: ii | |
92 real(16), dimension(*), intent(out) :: ro | |
93 real(16), dimension(*), intent(out) :: io | |
94 integer(C_INT), value :: flags | |
95 end function fftwq_plan_guru_split_dft | |
96 | |
97 type(C_PTR) function fftwq_plan_guru64_dft(rank,dims,howmany_rank,howmany_dims,in,out,sign,flags) & | |
98 bind(C, name='fftwq_plan_guru64_dft') | |
99 import | |
100 integer(C_INT), value :: rank | |
101 type(fftwq_iodim64), dimension(*), intent(in) :: dims | |
102 integer(C_INT), value :: howmany_rank | |
103 type(fftwq_iodim64), dimension(*), intent(in) :: howmany_dims | |
104 complex(16), dimension(*), intent(out) :: in | |
105 complex(16), dimension(*), intent(out) :: out | |
106 integer(C_INT), value :: sign | |
107 integer(C_INT), value :: flags | |
108 end function fftwq_plan_guru64_dft | |
109 | |
110 type(C_PTR) function fftwq_plan_guru64_split_dft(rank,dims,howmany_rank,howmany_dims,ri,ii,ro,io,flags) & | |
111 bind(C, name='fftwq_plan_guru64_split_dft') | |
112 import | |
113 integer(C_INT), value :: rank | |
114 type(fftwq_iodim64), dimension(*), intent(in) :: dims | |
115 integer(C_INT), value :: howmany_rank | |
116 type(fftwq_iodim64), dimension(*), intent(in) :: howmany_dims | |
117 real(16), dimension(*), intent(out) :: ri | |
118 real(16), dimension(*), intent(out) :: ii | |
119 real(16), dimension(*), intent(out) :: ro | |
120 real(16), dimension(*), intent(out) :: io | |
121 integer(C_INT), value :: flags | |
122 end function fftwq_plan_guru64_split_dft | |
123 | |
124 subroutine fftwq_execute_dft(p,in,out) bind(C, name='fftwq_execute_dft') | |
125 import | |
126 type(C_PTR), value :: p | |
127 complex(16), dimension(*), intent(inout) :: in | |
128 complex(16), dimension(*), intent(out) :: out | |
129 end subroutine fftwq_execute_dft | |
130 | |
131 subroutine fftwq_execute_split_dft(p,ri,ii,ro,io) bind(C, name='fftwq_execute_split_dft') | |
132 import | |
133 type(C_PTR), value :: p | |
134 real(16), dimension(*), intent(inout) :: ri | |
135 real(16), dimension(*), intent(inout) :: ii | |
136 real(16), dimension(*), intent(out) :: ro | |
137 real(16), dimension(*), intent(out) :: io | |
138 end subroutine fftwq_execute_split_dft | |
139 | |
140 type(C_PTR) function fftwq_plan_many_dft_r2c(rank,n,howmany,in,inembed,istride,idist,out,onembed,ostride,odist,flags) & | |
141 bind(C, name='fftwq_plan_many_dft_r2c') | |
142 import | |
143 integer(C_INT), value :: rank | |
144 integer(C_INT), dimension(*), intent(in) :: n | |
145 integer(C_INT), value :: howmany | |
146 real(16), dimension(*), intent(out) :: in | |
147 integer(C_INT), dimension(*), intent(in) :: inembed | |
148 integer(C_INT), value :: istride | |
149 integer(C_INT), value :: idist | |
150 complex(16), dimension(*), intent(out) :: out | |
151 integer(C_INT), dimension(*), intent(in) :: onembed | |
152 integer(C_INT), value :: ostride | |
153 integer(C_INT), value :: odist | |
154 integer(C_INT), value :: flags | |
155 end function fftwq_plan_many_dft_r2c | |
156 | |
157 type(C_PTR) function fftwq_plan_dft_r2c(rank,n,in,out,flags) bind(C, name='fftwq_plan_dft_r2c') | |
158 import | |
159 integer(C_INT), value :: rank | |
160 integer(C_INT), dimension(*), intent(in) :: n | |
161 real(16), dimension(*), intent(out) :: in | |
162 complex(16), dimension(*), intent(out) :: out | |
163 integer(C_INT), value :: flags | |
164 end function fftwq_plan_dft_r2c | |
165 | |
166 type(C_PTR) function fftwq_plan_dft_r2c_1d(n,in,out,flags) bind(C, name='fftwq_plan_dft_r2c_1d') | |
167 import | |
168 integer(C_INT), value :: n | |
169 real(16), dimension(*), intent(out) :: in | |
170 complex(16), dimension(*), intent(out) :: out | |
171 integer(C_INT), value :: flags | |
172 end function fftwq_plan_dft_r2c_1d | |
173 | |
174 type(C_PTR) function fftwq_plan_dft_r2c_2d(n0,n1,in,out,flags) bind(C, name='fftwq_plan_dft_r2c_2d') | |
175 import | |
176 integer(C_INT), value :: n0 | |
177 integer(C_INT), value :: n1 | |
178 real(16), dimension(*), intent(out) :: in | |
179 complex(16), dimension(*), intent(out) :: out | |
180 integer(C_INT), value :: flags | |
181 end function fftwq_plan_dft_r2c_2d | |
182 | |
183 type(C_PTR) function fftwq_plan_dft_r2c_3d(n0,n1,n2,in,out,flags) bind(C, name='fftwq_plan_dft_r2c_3d') | |
184 import | |
185 integer(C_INT), value :: n0 | |
186 integer(C_INT), value :: n1 | |
187 integer(C_INT), value :: n2 | |
188 real(16), dimension(*), intent(out) :: in | |
189 complex(16), dimension(*), intent(out) :: out | |
190 integer(C_INT), value :: flags | |
191 end function fftwq_plan_dft_r2c_3d | |
192 | |
193 type(C_PTR) function fftwq_plan_many_dft_c2r(rank,n,howmany,in,inembed,istride,idist,out,onembed,ostride,odist,flags) & | |
194 bind(C, name='fftwq_plan_many_dft_c2r') | |
195 import | |
196 integer(C_INT), value :: rank | |
197 integer(C_INT), dimension(*), intent(in) :: n | |
198 integer(C_INT), value :: howmany | |
199 complex(16), dimension(*), intent(out) :: in | |
200 integer(C_INT), dimension(*), intent(in) :: inembed | |
201 integer(C_INT), value :: istride | |
202 integer(C_INT), value :: idist | |
203 real(16), dimension(*), intent(out) :: out | |
204 integer(C_INT), dimension(*), intent(in) :: onembed | |
205 integer(C_INT), value :: ostride | |
206 integer(C_INT), value :: odist | |
207 integer(C_INT), value :: flags | |
208 end function fftwq_plan_many_dft_c2r | |
209 | |
210 type(C_PTR) function fftwq_plan_dft_c2r(rank,n,in,out,flags) bind(C, name='fftwq_plan_dft_c2r') | |
211 import | |
212 integer(C_INT), value :: rank | |
213 integer(C_INT), dimension(*), intent(in) :: n | |
214 complex(16), dimension(*), intent(out) :: in | |
215 real(16), dimension(*), intent(out) :: out | |
216 integer(C_INT), value :: flags | |
217 end function fftwq_plan_dft_c2r | |
218 | |
219 type(C_PTR) function fftwq_plan_dft_c2r_1d(n,in,out,flags) bind(C, name='fftwq_plan_dft_c2r_1d') | |
220 import | |
221 integer(C_INT), value :: n | |
222 complex(16), dimension(*), intent(out) :: in | |
223 real(16), dimension(*), intent(out) :: out | |
224 integer(C_INT), value :: flags | |
225 end function fftwq_plan_dft_c2r_1d | |
226 | |
227 type(C_PTR) function fftwq_plan_dft_c2r_2d(n0,n1,in,out,flags) bind(C, name='fftwq_plan_dft_c2r_2d') | |
228 import | |
229 integer(C_INT), value :: n0 | |
230 integer(C_INT), value :: n1 | |
231 complex(16), dimension(*), intent(out) :: in | |
232 real(16), dimension(*), intent(out) :: out | |
233 integer(C_INT), value :: flags | |
234 end function fftwq_plan_dft_c2r_2d | |
235 | |
236 type(C_PTR) function fftwq_plan_dft_c2r_3d(n0,n1,n2,in,out,flags) bind(C, name='fftwq_plan_dft_c2r_3d') | |
237 import | |
238 integer(C_INT), value :: n0 | |
239 integer(C_INT), value :: n1 | |
240 integer(C_INT), value :: n2 | |
241 complex(16), dimension(*), intent(out) :: in | |
242 real(16), dimension(*), intent(out) :: out | |
243 integer(C_INT), value :: flags | |
244 end function fftwq_plan_dft_c2r_3d | |
245 | |
246 type(C_PTR) function fftwq_plan_guru_dft_r2c(rank,dims,howmany_rank,howmany_dims,in,out,flags) & | |
247 bind(C, name='fftwq_plan_guru_dft_r2c') | |
248 import | |
249 integer(C_INT), value :: rank | |
250 type(fftwq_iodim), dimension(*), intent(in) :: dims | |
251 integer(C_INT), value :: howmany_rank | |
252 type(fftwq_iodim), dimension(*), intent(in) :: howmany_dims | |
253 real(16), dimension(*), intent(out) :: in | |
254 complex(16), dimension(*), intent(out) :: out | |
255 integer(C_INT), value :: flags | |
256 end function fftwq_plan_guru_dft_r2c | |
257 | |
258 type(C_PTR) function fftwq_plan_guru_dft_c2r(rank,dims,howmany_rank,howmany_dims,in,out,flags) & | |
259 bind(C, name='fftwq_plan_guru_dft_c2r') | |
260 import | |
261 integer(C_INT), value :: rank | |
262 type(fftwq_iodim), dimension(*), intent(in) :: dims | |
263 integer(C_INT), value :: howmany_rank | |
264 type(fftwq_iodim), dimension(*), intent(in) :: howmany_dims | |
265 complex(16), dimension(*), intent(out) :: in | |
266 real(16), dimension(*), intent(out) :: out | |
267 integer(C_INT), value :: flags | |
268 end function fftwq_plan_guru_dft_c2r | |
269 | |
270 type(C_PTR) function fftwq_plan_guru_split_dft_r2c(rank,dims,howmany_rank,howmany_dims,in,ro,io,flags) & | |
271 bind(C, name='fftwq_plan_guru_split_dft_r2c') | |
272 import | |
273 integer(C_INT), value :: rank | |
274 type(fftwq_iodim), dimension(*), intent(in) :: dims | |
275 integer(C_INT), value :: howmany_rank | |
276 type(fftwq_iodim), dimension(*), intent(in) :: howmany_dims | |
277 real(16), dimension(*), intent(out) :: in | |
278 real(16), dimension(*), intent(out) :: ro | |
279 real(16), dimension(*), intent(out) :: io | |
280 integer(C_INT), value :: flags | |
281 end function fftwq_plan_guru_split_dft_r2c | |
282 | |
283 type(C_PTR) function fftwq_plan_guru_split_dft_c2r(rank,dims,howmany_rank,howmany_dims,ri,ii,out,flags) & | |
284 bind(C, name='fftwq_plan_guru_split_dft_c2r') | |
285 import | |
286 integer(C_INT), value :: rank | |
287 type(fftwq_iodim), dimension(*), intent(in) :: dims | |
288 integer(C_INT), value :: howmany_rank | |
289 type(fftwq_iodim), dimension(*), intent(in) :: howmany_dims | |
290 real(16), dimension(*), intent(out) :: ri | |
291 real(16), dimension(*), intent(out) :: ii | |
292 real(16), dimension(*), intent(out) :: out | |
293 integer(C_INT), value :: flags | |
294 end function fftwq_plan_guru_split_dft_c2r | |
295 | |
296 type(C_PTR) function fftwq_plan_guru64_dft_r2c(rank,dims,howmany_rank,howmany_dims,in,out,flags) & | |
297 bind(C, name='fftwq_plan_guru64_dft_r2c') | |
298 import | |
299 integer(C_INT), value :: rank | |
300 type(fftwq_iodim64), dimension(*), intent(in) :: dims | |
301 integer(C_INT), value :: howmany_rank | |
302 type(fftwq_iodim64), dimension(*), intent(in) :: howmany_dims | |
303 real(16), dimension(*), intent(out) :: in | |
304 complex(16), dimension(*), intent(out) :: out | |
305 integer(C_INT), value :: flags | |
306 end function fftwq_plan_guru64_dft_r2c | |
307 | |
308 type(C_PTR) function fftwq_plan_guru64_dft_c2r(rank,dims,howmany_rank,howmany_dims,in,out,flags) & | |
309 bind(C, name='fftwq_plan_guru64_dft_c2r') | |
310 import | |
311 integer(C_INT), value :: rank | |
312 type(fftwq_iodim64), dimension(*), intent(in) :: dims | |
313 integer(C_INT), value :: howmany_rank | |
314 type(fftwq_iodim64), dimension(*), intent(in) :: howmany_dims | |
315 complex(16), dimension(*), intent(out) :: in | |
316 real(16), dimension(*), intent(out) :: out | |
317 integer(C_INT), value :: flags | |
318 end function fftwq_plan_guru64_dft_c2r | |
319 | |
320 type(C_PTR) function fftwq_plan_guru64_split_dft_r2c(rank,dims,howmany_rank,howmany_dims,in,ro,io,flags) & | |
321 bind(C, name='fftwq_plan_guru64_split_dft_r2c') | |
322 import | |
323 integer(C_INT), value :: rank | |
324 type(fftwq_iodim64), dimension(*), intent(in) :: dims | |
325 integer(C_INT), value :: howmany_rank | |
326 type(fftwq_iodim64), dimension(*), intent(in) :: howmany_dims | |
327 real(16), dimension(*), intent(out) :: in | |
328 real(16), dimension(*), intent(out) :: ro | |
329 real(16), dimension(*), intent(out) :: io | |
330 integer(C_INT), value :: flags | |
331 end function fftwq_plan_guru64_split_dft_r2c | |
332 | |
333 type(C_PTR) function fftwq_plan_guru64_split_dft_c2r(rank,dims,howmany_rank,howmany_dims,ri,ii,out,flags) & | |
334 bind(C, name='fftwq_plan_guru64_split_dft_c2r') | |
335 import | |
336 integer(C_INT), value :: rank | |
337 type(fftwq_iodim64), dimension(*), intent(in) :: dims | |
338 integer(C_INT), value :: howmany_rank | |
339 type(fftwq_iodim64), dimension(*), intent(in) :: howmany_dims | |
340 real(16), dimension(*), intent(out) :: ri | |
341 real(16), dimension(*), intent(out) :: ii | |
342 real(16), dimension(*), intent(out) :: out | |
343 integer(C_INT), value :: flags | |
344 end function fftwq_plan_guru64_split_dft_c2r | |
345 | |
346 subroutine fftwq_execute_dft_r2c(p,in,out) bind(C, name='fftwq_execute_dft_r2c') | |
347 import | |
348 type(C_PTR), value :: p | |
349 real(16), dimension(*), intent(inout) :: in | |
350 complex(16), dimension(*), intent(out) :: out | |
351 end subroutine fftwq_execute_dft_r2c | |
352 | |
353 subroutine fftwq_execute_dft_c2r(p,in,out) bind(C, name='fftwq_execute_dft_c2r') | |
354 import | |
355 type(C_PTR), value :: p | |
356 complex(16), dimension(*), intent(inout) :: in | |
357 real(16), dimension(*), intent(out) :: out | |
358 end subroutine fftwq_execute_dft_c2r | |
359 | |
360 subroutine fftwq_execute_split_dft_r2c(p,in,ro,io) bind(C, name='fftwq_execute_split_dft_r2c') | |
361 import | |
362 type(C_PTR), value :: p | |
363 real(16), dimension(*), intent(inout) :: in | |
364 real(16), dimension(*), intent(out) :: ro | |
365 real(16), dimension(*), intent(out) :: io | |
366 end subroutine fftwq_execute_split_dft_r2c | |
367 | |
368 subroutine fftwq_execute_split_dft_c2r(p,ri,ii,out) bind(C, name='fftwq_execute_split_dft_c2r') | |
369 import | |
370 type(C_PTR), value :: p | |
371 real(16), dimension(*), intent(inout) :: ri | |
372 real(16), dimension(*), intent(inout) :: ii | |
373 real(16), dimension(*), intent(out) :: out | |
374 end subroutine fftwq_execute_split_dft_c2r | |
375 | |
376 type(C_PTR) function fftwq_plan_many_r2r(rank,n,howmany,in,inembed,istride,idist,out,onembed,ostride,odist,kind,flags) & | |
377 bind(C, name='fftwq_plan_many_r2r') | |
378 import | |
379 integer(C_INT), value :: rank | |
380 integer(C_INT), dimension(*), intent(in) :: n | |
381 integer(C_INT), value :: howmany | |
382 real(16), dimension(*), intent(out) :: in | |
383 integer(C_INT), dimension(*), intent(in) :: inembed | |
384 integer(C_INT), value :: istride | |
385 integer(C_INT), value :: idist | |
386 real(16), dimension(*), intent(out) :: out | |
387 integer(C_INT), dimension(*), intent(in) :: onembed | |
388 integer(C_INT), value :: ostride | |
389 integer(C_INT), value :: odist | |
390 integer(C_FFTW_R2R_KIND), dimension(*), intent(in) :: kind | |
391 integer(C_INT), value :: flags | |
392 end function fftwq_plan_many_r2r | |
393 | |
394 type(C_PTR) function fftwq_plan_r2r(rank,n,in,out,kind,flags) bind(C, name='fftwq_plan_r2r') | |
395 import | |
396 integer(C_INT), value :: rank | |
397 integer(C_INT), dimension(*), intent(in) :: n | |
398 real(16), dimension(*), intent(out) :: in | |
399 real(16), dimension(*), intent(out) :: out | |
400 integer(C_FFTW_R2R_KIND), dimension(*), intent(in) :: kind | |
401 integer(C_INT), value :: flags | |
402 end function fftwq_plan_r2r | |
403 | |
404 type(C_PTR) function fftwq_plan_r2r_1d(n,in,out,kind,flags) bind(C, name='fftwq_plan_r2r_1d') | |
405 import | |
406 integer(C_INT), value :: n | |
407 real(16), dimension(*), intent(out) :: in | |
408 real(16), dimension(*), intent(out) :: out | |
409 integer(C_FFTW_R2R_KIND), value :: kind | |
410 integer(C_INT), value :: flags | |
411 end function fftwq_plan_r2r_1d | |
412 | |
413 type(C_PTR) function fftwq_plan_r2r_2d(n0,n1,in,out,kind0,kind1,flags) bind(C, name='fftwq_plan_r2r_2d') | |
414 import | |
415 integer(C_INT), value :: n0 | |
416 integer(C_INT), value :: n1 | |
417 real(16), dimension(*), intent(out) :: in | |
418 real(16), dimension(*), intent(out) :: out | |
419 integer(C_FFTW_R2R_KIND), value :: kind0 | |
420 integer(C_FFTW_R2R_KIND), value :: kind1 | |
421 integer(C_INT), value :: flags | |
422 end function fftwq_plan_r2r_2d | |
423 | |
424 type(C_PTR) function fftwq_plan_r2r_3d(n0,n1,n2,in,out,kind0,kind1,kind2,flags) bind(C, name='fftwq_plan_r2r_3d') | |
425 import | |
426 integer(C_INT), value :: n0 | |
427 integer(C_INT), value :: n1 | |
428 integer(C_INT), value :: n2 | |
429 real(16), dimension(*), intent(out) :: in | |
430 real(16), dimension(*), intent(out) :: out | |
431 integer(C_FFTW_R2R_KIND), value :: kind0 | |
432 integer(C_FFTW_R2R_KIND), value :: kind1 | |
433 integer(C_FFTW_R2R_KIND), value :: kind2 | |
434 integer(C_INT), value :: flags | |
435 end function fftwq_plan_r2r_3d | |
436 | |
437 type(C_PTR) function fftwq_plan_guru_r2r(rank,dims,howmany_rank,howmany_dims,in,out,kind,flags) & | |
438 bind(C, name='fftwq_plan_guru_r2r') | |
439 import | |
440 integer(C_INT), value :: rank | |
441 type(fftwq_iodim), dimension(*), intent(in) :: dims | |
442 integer(C_INT), value :: howmany_rank | |
443 type(fftwq_iodim), dimension(*), intent(in) :: howmany_dims | |
444 real(16), dimension(*), intent(out) :: in | |
445 real(16), dimension(*), intent(out) :: out | |
446 integer(C_FFTW_R2R_KIND), dimension(*), intent(in) :: kind | |
447 integer(C_INT), value :: flags | |
448 end function fftwq_plan_guru_r2r | |
449 | |
450 type(C_PTR) function fftwq_plan_guru64_r2r(rank,dims,howmany_rank,howmany_dims,in,out,kind,flags) & | |
451 bind(C, name='fftwq_plan_guru64_r2r') | |
452 import | |
453 integer(C_INT), value :: rank | |
454 type(fftwq_iodim64), dimension(*), intent(in) :: dims | |
455 integer(C_INT), value :: howmany_rank | |
456 type(fftwq_iodim64), dimension(*), intent(in) :: howmany_dims | |
457 real(16), dimension(*), intent(out) :: in | |
458 real(16), dimension(*), intent(out) :: out | |
459 integer(C_FFTW_R2R_KIND), dimension(*), intent(in) :: kind | |
460 integer(C_INT), value :: flags | |
461 end function fftwq_plan_guru64_r2r | |
462 | |
463 subroutine fftwq_execute_r2r(p,in,out) bind(C, name='fftwq_execute_r2r') | |
464 import | |
465 type(C_PTR), value :: p | |
466 real(16), dimension(*), intent(inout) :: in | |
467 real(16), dimension(*), intent(out) :: out | |
468 end subroutine fftwq_execute_r2r | |
469 | |
470 subroutine fftwq_destroy_plan(p) bind(C, name='fftwq_destroy_plan') | |
471 import | |
472 type(C_PTR), value :: p | |
473 end subroutine fftwq_destroy_plan | |
474 | |
475 subroutine fftwq_forget_wisdom() bind(C, name='fftwq_forget_wisdom') | |
476 import | |
477 end subroutine fftwq_forget_wisdom | |
478 | |
479 subroutine fftwq_cleanup() bind(C, name='fftwq_cleanup') | |
480 import | |
481 end subroutine fftwq_cleanup | |
482 | |
483 subroutine fftwq_set_timelimit(t) bind(C, name='fftwq_set_timelimit') | |
484 import | |
485 real(C_DOUBLE), value :: t | |
486 end subroutine fftwq_set_timelimit | |
487 | |
488 subroutine fftwq_plan_with_nthreads(nthreads) bind(C, name='fftwq_plan_with_nthreads') | |
489 import | |
490 integer(C_INT), value :: nthreads | |
491 end subroutine fftwq_plan_with_nthreads | |
492 | |
493 integer(C_INT) function fftwq_init_threads() bind(C, name='fftwq_init_threads') | |
494 import | |
495 end function fftwq_init_threads | |
496 | |
497 subroutine fftwq_cleanup_threads() bind(C, name='fftwq_cleanup_threads') | |
498 import | |
499 end subroutine fftwq_cleanup_threads | |
500 | |
501 subroutine fftwq_make_planner_thread_safe() bind(C, name='fftwq_make_planner_thread_safe') | |
502 import | |
503 end subroutine fftwq_make_planner_thread_safe | |
504 | |
505 integer(C_INT) function fftwq_export_wisdom_to_filename(filename) bind(C, name='fftwq_export_wisdom_to_filename') | |
506 import | |
507 character(C_CHAR), dimension(*), intent(in) :: filename | |
508 end function fftwq_export_wisdom_to_filename | |
509 | |
510 subroutine fftwq_export_wisdom_to_file(output_file) bind(C, name='fftwq_export_wisdom_to_file') | |
511 import | |
512 type(C_PTR), value :: output_file | |
513 end subroutine fftwq_export_wisdom_to_file | |
514 | |
515 type(C_PTR) function fftwq_export_wisdom_to_string() bind(C, name='fftwq_export_wisdom_to_string') | |
516 import | |
517 end function fftwq_export_wisdom_to_string | |
518 | |
519 subroutine fftwq_export_wisdom(write_char,data) bind(C, name='fftwq_export_wisdom') | |
520 import | |
521 type(C_FUNPTR), value :: write_char | |
522 type(C_PTR), value :: data | |
523 end subroutine fftwq_export_wisdom | |
524 | |
525 integer(C_INT) function fftwq_import_system_wisdom() bind(C, name='fftwq_import_system_wisdom') | |
526 import | |
527 end function fftwq_import_system_wisdom | |
528 | |
529 integer(C_INT) function fftwq_import_wisdom_from_filename(filename) bind(C, name='fftwq_import_wisdom_from_filename') | |
530 import | |
531 character(C_CHAR), dimension(*), intent(in) :: filename | |
532 end function fftwq_import_wisdom_from_filename | |
533 | |
534 integer(C_INT) function fftwq_import_wisdom_from_file(input_file) bind(C, name='fftwq_import_wisdom_from_file') | |
535 import | |
536 type(C_PTR), value :: input_file | |
537 end function fftwq_import_wisdom_from_file | |
538 | |
539 integer(C_INT) function fftwq_import_wisdom_from_string(input_string) bind(C, name='fftwq_import_wisdom_from_string') | |
540 import | |
541 character(C_CHAR), dimension(*), intent(in) :: input_string | |
542 end function fftwq_import_wisdom_from_string | |
543 | |
544 integer(C_INT) function fftwq_import_wisdom(read_char,data) bind(C, name='fftwq_import_wisdom') | |
545 import | |
546 type(C_FUNPTR), value :: read_char | |
547 type(C_PTR), value :: data | |
548 end function fftwq_import_wisdom | |
549 | |
550 subroutine fftwq_fprint_plan(p,output_file) bind(C, name='fftwq_fprint_plan') | |
551 import | |
552 type(C_PTR), value :: p | |
553 type(C_PTR), value :: output_file | |
554 end subroutine fftwq_fprint_plan | |
555 | |
556 subroutine fftwq_print_plan(p) bind(C, name='fftwq_print_plan') | |
557 import | |
558 type(C_PTR), value :: p | |
559 end subroutine fftwq_print_plan | |
560 | |
561 type(C_PTR) function fftwq_sprint_plan(p) bind(C, name='fftwq_sprint_plan') | |
562 import | |
563 type(C_PTR), value :: p | |
564 end function fftwq_sprint_plan | |
565 | |
566 type(C_PTR) function fftwq_malloc(n) bind(C, name='fftwq_malloc') | |
567 import | |
568 integer(C_SIZE_T), value :: n | |
569 end function fftwq_malloc | |
570 | |
571 type(C_PTR) function fftwq_alloc_real(n) bind(C, name='fftwq_alloc_real') | |
572 import | |
573 integer(C_SIZE_T), value :: n | |
574 end function fftwq_alloc_real | |
575 | |
576 type(C_PTR) function fftwq_alloc_complex(n) bind(C, name='fftwq_alloc_complex') | |
577 import | |
578 integer(C_SIZE_T), value :: n | |
579 end function fftwq_alloc_complex | |
580 | |
581 subroutine fftwq_free(p) bind(C, name='fftwq_free') | |
582 import | |
583 type(C_PTR), value :: p | |
584 end subroutine fftwq_free | |
585 | |
586 subroutine fftwq_flops(p,add,mul,fmas) bind(C, name='fftwq_flops') | |
587 import | |
588 type(C_PTR), value :: p | |
589 real(C_DOUBLE), intent(out) :: add | |
590 real(C_DOUBLE), intent(out) :: mul | |
591 real(C_DOUBLE), intent(out) :: fmas | |
592 end subroutine fftwq_flops | |
593 | |
594 real(C_DOUBLE) function fftwq_estimate_cost(p) bind(C, name='fftwq_estimate_cost') | |
595 import | |
596 type(C_PTR), value :: p | |
597 end function fftwq_estimate_cost | |
598 | |
599 real(C_DOUBLE) function fftwq_cost(p) bind(C, name='fftwq_cost') | |
600 import | |
601 type(C_PTR), value :: p | |
602 end function fftwq_cost | |
603 | |
604 integer(C_INT) function fftwq_alignment_of(p) bind(C, name='fftwq_alignment_of') | |
605 import | |
606 real(16), dimension(*), intent(out) :: p | |
607 end function fftwq_alignment_of | |
608 | |
609 end interface |