Mercurial > hg > sv-dependency-builds
comparison src/fftw-3.3.5/dft/dft.h @ 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 /* | |
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 | |
22 #ifndef __DFT_H__ | |
23 #define __DFT_H__ | |
24 | |
25 #include "ifftw.h" | |
26 #include "codelet-dft.h" | |
27 | |
28 #ifdef __cplusplus | |
29 extern "C" | |
30 { | |
31 #endif /* __cplusplus */ | |
32 | |
33 /* problem.c: */ | |
34 typedef struct { | |
35 problem super; | |
36 tensor *sz, *vecsz; | |
37 R *ri, *ii, *ro, *io; | |
38 } problem_dft; | |
39 | |
40 void X(dft_zerotens)(tensor *sz, R *ri, R *ii); | |
41 problem *X(mkproblem_dft)(const tensor *sz, const tensor *vecsz, | |
42 R *ri, R *ii, R *ro, R *io); | |
43 problem *X(mkproblem_dft_d)(tensor *sz, tensor *vecsz, | |
44 R *ri, R *ii, R *ro, R *io); | |
45 | |
46 /* solve.c: */ | |
47 void X(dft_solve)(const plan *ego_, const problem *p_); | |
48 | |
49 /* plan.c: */ | |
50 typedef void (*dftapply) (const plan *ego, R *ri, R *ii, R *ro, R *io); | |
51 | |
52 typedef struct { | |
53 plan super; | |
54 dftapply apply; | |
55 } plan_dft; | |
56 | |
57 plan *X(mkplan_dft)(size_t size, const plan_adt *adt, dftapply apply); | |
58 | |
59 #define MKPLAN_DFT(type, adt, apply) \ | |
60 (type *)X(mkplan_dft)(sizeof(type), adt, apply) | |
61 | |
62 /* various solvers */ | |
63 solver *X(mksolver_dft_direct)(kdft k, const kdft_desc *desc); | |
64 solver *X(mksolver_dft_directbuf)(kdft k, const kdft_desc *desc); | |
65 | |
66 void X(dft_rank0_register)(planner *p); | |
67 void X(dft_rank_geq2_register)(planner *p); | |
68 void X(dft_indirect_register)(planner *p); | |
69 void X(dft_indirect_transpose_register)(planner *p); | |
70 void X(dft_vrank_geq1_register)(planner *p); | |
71 void X(dft_vrank2_transpose_register)(planner *p); | |
72 void X(dft_vrank3_transpose_register)(planner *p); | |
73 void X(dft_buffered_register)(planner *p); | |
74 void X(dft_generic_register)(planner *p); | |
75 void X(dft_rader_register)(planner *p); | |
76 void X(dft_bluestein_register)(planner *p); | |
77 void X(dft_nop_register)(planner *p); | |
78 void X(ct_generic_register)(planner *p); | |
79 void X(ct_genericbuf_register)(planner *p); | |
80 | |
81 /* configurations */ | |
82 void X(dft_conf_standard)(planner *p); | |
83 | |
84 #ifdef __cplusplus | |
85 } /* extern "C" */ | |
86 #endif /* __cplusplus */ | |
87 | |
88 #endif /* __DFT_H__ */ |