/src/fftw3/api/plan-many-dft.c
Line | Count | Source (jump to first uncovered line) |
1 | | /* |
2 | | * Copyright (c) 2003, 2007-14 Matteo Frigo |
3 | | * Copyright (c) 2003, 2007-14 Massachusetts Institute of Technology |
4 | | * |
5 | | * This program is free software; you can redistribute it and/or modify |
6 | | * it under the terms of the GNU General Public License as published by |
7 | | * the Free Software Foundation; either version 2 of the License, or |
8 | | * (at your option) any later version. |
9 | | * |
10 | | * This program is distributed in the hope that it will be useful, |
11 | | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
12 | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
13 | | * GNU General Public License for more details. |
14 | | * |
15 | | * You should have received a copy of the GNU General Public License |
16 | | * along with this program; if not, write to the Free Software |
17 | | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
18 | | * |
19 | | */ |
20 | | |
21 | | #include "api/api.h" |
22 | | #include "dft/dft.h" |
23 | | |
24 | 566 | #define N0(nembed)((nembed) ? (nembed) : n) |
25 | | |
26 | | X(plan) X(plan_many_dft)(int rank, const int *n, |
27 | | int howmany, |
28 | | C *in, const int *inembed, |
29 | | int istride, int idist, |
30 | | C *out, const int *onembed, |
31 | | int ostride, int odist, int sign, unsigned flags) |
32 | 283 | { |
33 | 283 | R *ri, *ii, *ro, *io; |
34 | | |
35 | 283 | if (!X(many_kosherp)(rank, n, howmany)) return 0; |
36 | | |
37 | 283 | EXTRACT_REIM(sign, in, &ri, &ii); |
38 | 283 | EXTRACT_REIM(sign, out, &ro, &io); |
39 | | |
40 | 283 | return |
41 | 283 | X(mkapiplan)(sign, flags, |
42 | 283 | X(mkproblem_dft_d)( |
43 | 283 | X(mktensor_rowmajor)(rank, n, |
44 | 283 | N0(inembed), N0(onembed), |
45 | 283 | 2 * istride, 2 * ostride), |
46 | 283 | X(mktensor_1d)(howmany, 2 * idist, 2 * odist), |
47 | 283 | TAINT_UNALIGNED(ri, flags), |
48 | 283 | TAINT_UNALIGNED(ii, flags), |
49 | 283 | TAINT_UNALIGNED(ro, flags), |
50 | 283 | TAINT_UNALIGNED(io, flags))); |
51 | 283 | } |