mingw64-i686-fftw3 3.3.5
[git/cygwin-packages/mingw64-i686-fftw3.git] / 3.3.4-internal-dllexport.patch
1 These symbols are all required by the threaded libs.
2
3 --- origsrc/fftw-3.3.5/api/api.h 2016-07-30 14:21:09.000000000 -0500
4 +++ src/fftw-3.3.5/api/api.h 2016-08-01 21:37:05.441096800 -0500
5 @@ -108,7 +108,7 @@ rdft_kind *X(map_r2r_kind)(int rank, con
6
7 typedef void (*planner_hook_t)(void);
8
9 -void X(set_planner_hooks)(planner_hook_t before, planner_hook_t after);
10 +IFFTW_EXTERN void X(set_planner_hooks)(planner_hook_t before, planner_hook_t after);
11
12 #ifdef __cplusplus
13 } /* extern "C" */
14 --- origsrc/fftw-3.3.4/dft/ct.h 2014-03-04 12:41:03.000000000 -0600
15 +++ src/fftw-3.3.4/dft/ct.h 2016-04-15 12:39:08.211651400 -0500
16 @@ -52,12 +52,12 @@ struct ct_solver_s {
17 ct_force_vrecursion force_vrecursionp;
18 };
19
20 -int X(ct_applicable)(const ct_solver *, const problem *, planner *);
21 +IFFTW_EXTERN int X(ct_applicable)(const ct_solver *, const problem *, planner *);
22 ct_solver *X(mksolver_ct)(size_t size, INT r, int dec,
23 ct_mkinferior mkcldw,
24 ct_force_vrecursion force_vrecursionp);
25 -extern ct_solver *(*X(mksolver_ct_hook))(size_t, INT, int,
26 - ct_mkinferior, ct_force_vrecursion);
27 +IFFTW_EXTERN ct_solver *(*X(mksolver_ct_hook))(size_t, INT, int,
28 + ct_mkinferior, ct_force_vrecursion);
29
30 void X(regsolver_ct_directw)(planner *plnr,
31 kdftw codelet, const ct_desc *desc, int dec);
32 --- origsrc/fftw-3.3.4/dft/dft.h 2014-03-04 12:41:03.000000000 -0600
33 +++ src/fftw-3.3.4/dft/dft.h 2016-04-15 12:41:32.619488900 -0500
34 @@ -38,13 +38,13 @@ typedef struct {
35 } problem_dft;
36
37 void X(dft_zerotens)(tensor *sz, R *ri, R *ii);
38 -problem *X(mkproblem_dft)(const tensor *sz, const tensor *vecsz,
39 - R *ri, R *ii, R *ro, R *io);
40 -problem *X(mkproblem_dft_d)(tensor *sz, tensor *vecsz,
41 - R *ri, R *ii, R *ro, R *io);
42 +IFFTW_EXTERN problem *X(mkproblem_dft)(const tensor *sz, const tensor *vecsz,
43 + R *ri, R *ii, R *ro, R *io);
44 +IFFTW_EXTERN problem *X(mkproblem_dft_d)(tensor *sz, tensor *vecsz,
45 + R *ri, R *ii, R *ro, R *io);
46
47 /* solve.c: */
48 -void X(dft_solve)(const plan *ego_, const problem *p_);
49 +IFFTW_EXTERN void X(dft_solve)(const plan *ego_, const problem *p_);
50
51 /* plan.c: */
52 typedef void (*dftapply) (const plan *ego, R *ri, R *ii, R *ro, R *io);
53 @@ -54,7 +54,7 @@ typedef struct {
54 dftapply apply;
55 } plan_dft;
56
57 -plan *X(mkplan_dft)(size_t size, const plan_adt *adt, dftapply apply);
58 +IFFTW_EXTERN plan *X(mkplan_dft)(size_t size, const plan_adt *adt, dftapply apply);
59
60 #define MKPLAN_DFT(type, adt, apply) \
61 (type *)X(mkplan_dft)(sizeof(type), adt, apply)
62 --- origsrc/fftw-3.3.4/kernel/ifftw.h 2014-03-04 12:41:03.000000000 -0600
63 +++ src/fftw-3.3.4/kernel/ifftw.h 2016-04-15 12:39:27.887650000 -0500
64 @@ -349,12 +349,12 @@ typedef struct {
65 double other;
66 } opcnt;
67
68 -void X(ops_zero)(opcnt *dst);
69 +IFFTW_EXTERN void X(ops_zero)(opcnt *dst);
70 void X(ops_other)(INT o, opcnt *dst);
71 void X(ops_cpy)(const opcnt *src, opcnt *dst);
72
73 void X(ops_add)(const opcnt *a, const opcnt *b, opcnt *dst);
74 -void X(ops_add2)(const opcnt *a, opcnt *dst);
75 +IFFTW_EXTERN void X(ops_add2)(const opcnt *a, opcnt *dst);
76
77 /* dst = m * a + b */
78 void X(ops_madd)(INT m, const opcnt *a, const opcnt *b, opcnt *dst);
79 @@ -365,7 +365,7 @@ void X(ops_madd2)(INT m, const opcnt *a,
80
81 /*-----------------------------------------------------------------------*/
82 /* minmax.c: */
83 -INT X(imax)(INT a, INT b);
84 +IFFTW_EXTERN INT X(imax)(INT a, INT b);
85 INT X(imin)(INT a, INT b);
86
87 /*-----------------------------------------------------------------------*/
88 @@ -440,9 +440,9 @@ typedef enum { INPLACE_IS, INPLACE_OS }
89
90 tensor *X(mktensor)(int rnk);
91 tensor *X(mktensor_0d)(void);
92 -tensor *X(mktensor_1d)(INT n, INT is, INT os);
93 -tensor *X(mktensor_2d)(INT n0, INT is0, INT os0,
94 - INT n1, INT is1, INT os1);
95 +IFFTW_EXTERN tensor *X(mktensor_1d)(INT n, INT is, INT os);
96 +IFFTW_EXTERN tensor *X(mktensor_2d)(INT n0, INT is0, INT os0,
97 + INT n1, INT is1, INT os1);
98 tensor *X(mktensor_3d)(INT n0, INT is0, INT os0,
99 INT n1, INT is1, INT os1,
100 INT n2, INT is2, INT os2);
101 @@ -465,7 +465,7 @@ int X(tensor_inplace_strides)(const tens
102 int X(tensor_inplace_strides2)(const tensor *a, const tensor *b);
103 int X(tensor_strides_decrease)(const tensor *sz, const tensor *vecsz,
104 inplace_kind k);
105 -tensor *X(tensor_copy)(const tensor *sz);
106 +IFFTW_EXTERN tensor *X(tensor_copy)(const tensor *sz);
107 int X(tensor_kosherp)(const tensor *x);
108
109 tensor *X(tensor_copy_inplace)(const tensor *sz, inplace_kind k);
110 @@ -475,8 +475,8 @@ tensor *X(tensor_compress)(const tensor
111 tensor *X(tensor_compress_contiguous)(const tensor *sz);
112 tensor *X(tensor_append)(const tensor *a, const tensor *b);
113 void X(tensor_split)(const tensor *sz, tensor **a, int a_rnk, tensor **b);
114 -int X(tensor_tornk1)(const tensor *t, INT *n, INT *is, INT *os);
115 -void X(tensor_destroy)(tensor *sz);
116 +IFFTW_EXTERN int X(tensor_tornk1)(const tensor *t, INT *n, INT *is, INT *os);
117 +IFFTW_EXTERN void X(tensor_destroy)(tensor *sz);
118 void X(tensor_destroy2)(tensor *a, tensor *b);
119 void X(tensor_destroy4)(tensor *a, tensor *b, tensor *c, tensor *d);
120 void X(tensor_print)(const tensor *sz, printer *p);
121 @@ -573,7 +573,7 @@ struct plan_s {
122 };
123
124 plan *X(mkplan)(size_t size, const plan_adt *adt);
125 -void X(plan_destroy_internal)(plan *ego);
126 +IFFTW_EXTERN void X(plan_destroy_internal)(plan *ego);
127 IFFTW_EXTERN void X(plan_awake)(plan *ego, enum wakefulness wakefulness);
128 void X(plan_null_destroy)(plan *ego);
129
130 @@ -590,10 +590,10 @@ struct solver_s {
131 int refcnt;
132 };
133
134 -solver *X(mksolver)(size_t size, const solver_adt *adt);
135 +IFFTW_EXTERN solver *X(mksolver)(size_t size, const solver_adt *adt);
136 void X(solver_use)(solver *ego);
137 void X(solver_destroy)(solver *ego);
138 -void X(solver_register)(planner *plnr, solver *s);
139 +IFFTW_EXTERN void X(solver_register)(planner *plnr, solver *s);
140
141 /* shorthand */
142 #define MKSOLVER(type, adt) (type *)X(mksolver)(sizeof(type), adt)
143 @@ -807,7 +807,7 @@ void X(planner_destroy)(planner *ego);
144
145
146 /* make plan, destroy problem */
147 -plan *X(mkplan_d)(planner *ego, problem *p);
148 +IFFTW_EXTERN plan *X(mkplan_d)(planner *ego, problem *p);
149 plan *X(mkplan_f_d)(planner *ego, problem *p,
150 unsigned l_set, unsigned u_set, unsigned u_reset);
151
152 @@ -868,14 +868,14 @@ typedef INT stride;
153
154 struct solvtab_s { void (*reg)(planner *); const char *reg_nam; };
155 typedef struct solvtab_s solvtab[];
156 -void X(solvtab_exec)(const solvtab tbl, planner *p);
157 +IFFTW_EXTERN void X(solvtab_exec)(const solvtab tbl, planner *p);
158 #define SOLVTAB(s) { s, STRINGIZE(s) }
159 #define SOLVTAB_END { 0, 0 }
160
161 /*-----------------------------------------------------------------------*/
162 /* pickdim.c */
163 -int X(pickdim)(int which_dim, const int *buddies, size_t nbuddies,
164 - const tensor *sz, int oop, int *dp);
165 +IFFTW_EXTERN int X(pickdim)(int which_dim, const int *buddies, size_t nbuddies,
166 + const tensor *sz, int oop, int *dp);
167
168 /*-----------------------------------------------------------------------*/
169 /* twiddle.c */
170 @@ -943,7 +943,7 @@ int X(is_prime)(INT n);
171 INT X(next_prime)(INT n);
172 int X(factors_into)(INT n, const INT *primes);
173 int X(factors_into_small_primes)(INT n);
174 -INT X(choose_radix)(INT r, INT n);
175 +IFFTW_EXTERN INT X(choose_radix)(INT r, INT n);
176 INT X(isqrt)(INT n);
177 INT X(modulo)(INT a, INT n);
178
179 --- origsrc/fftw-3.3.4/rdft/hc2hc.h 2014-03-04 12:41:03.000000000 -0600
180 +++ src/fftw-3.3.4/rdft/hc2hc.h 2016-04-15 12:42:28.511086200 -0500
181 @@ -46,9 +46,9 @@ struct hc2hc_solver_s {
182 };
183
184 hc2hc_solver *X(mksolver_hc2hc)(size_t size, INT r, hc2hc_mkinferior mkcldw);
185 -extern hc2hc_solver *(*X(mksolver_hc2hc_hook))(size_t, INT, hc2hc_mkinferior);
186 +IFFTW_EXTERN hc2hc_solver *(*X(mksolver_hc2hc_hook))(size_t, INT, hc2hc_mkinferior);
187
188 void X(regsolver_hc2hc_direct)(planner *plnr, khc2hc codelet,
189 const hc2hc_desc *desc);
190
191 -int X(hc2hc_applicable)(const hc2hc_solver *, const problem *, planner *);
192 +IFFTW_EXTERN int X(hc2hc_applicable)(const hc2hc_solver *, const problem *, planner *);
193 --- origsrc/fftw-3.3.4/rdft/rdft.h 2014-03-04 12:41:03.000000000 -0600
194 +++ src/fftw-3.3.4/rdft/rdft.h 2016-04-15 12:41:23.315807500 -0500
195 @@ -44,10 +44,10 @@ typedef struct {
196 } problem_rdft;
197
198 void X(rdft_zerotens)(tensor *sz, R *I);
199 -problem *X(mkproblem_rdft)(const tensor *sz, const tensor *vecsz,
200 - R *I, R *O, const rdft_kind *kind);
201 -problem *X(mkproblem_rdft_d)(tensor *sz, tensor *vecsz,
202 - R *I, R *O, const rdft_kind *kind);
203 +IFFTW_EXTERN problem *X(mkproblem_rdft)(const tensor *sz, const tensor *vecsz,
204 + R *I, R *O, const rdft_kind *kind);
205 +IFFTW_EXTERN problem *X(mkproblem_rdft_d)(tensor *sz, tensor *vecsz,
206 + R *I, R *O, const rdft_kind *kind);
207 problem *X(mkproblem_rdft_0_d)(tensor *vecsz, R *I, R *O);
208 problem *X(mkproblem_rdft_1)(const tensor *sz, const tensor *vecsz,
209 R *I, R *O, rdft_kind kind);
210 @@ -57,7 +57,7 @@ problem *X(mkproblem_rdft_1_d)(tensor *s
211 const char *X(rdft_kind_str)(rdft_kind kind);
212
213 /* solve.c: */
214 -void X(rdft_solve)(const plan *ego_, const problem *p_);
215 +IFFTW_EXTERN void X(rdft_solve)(const plan *ego_, const problem *p_);
216
217 /* plan.c: */
218 typedef void (*rdftapply) (const plan *ego, R *I, R *O);
219 @@ -67,7 +67,7 @@ typedef struct {
220 rdftapply apply;
221 } plan_rdft;
222
223 -plan *X(mkplan_rdft)(size_t size, const plan_adt *adt, rdftapply apply);
224 +IFFTW_EXTERN plan *X(mkplan_rdft)(size_t size, const plan_adt *adt, rdftapply apply);
225
226 #define MKPLAN_RDFT(type, adt, apply) \
227 (type *)X(mkplan_rdft)(sizeof(type), adt, apply)
228 @@ -123,22 +123,22 @@ typedef struct {
229 rdft_kind kind; /* assert(kind < DHT) */
230 } problem_rdft2;
231
232 -problem *X(mkproblem_rdft2)(const tensor *sz, const tensor *vecsz,
233 - R *r0, R *r1, R *cr, R *ci, rdft_kind kind);
234 +IFFTW_EXTERN problem *X(mkproblem_rdft2)(const tensor *sz, const tensor *vecsz,
235 + R *r0, R *r1, R *cr, R *ci, rdft_kind kind);
236 problem *X(mkproblem_rdft2_d)(tensor *sz, tensor *vecsz,
237 R *r0, R *r1, R *cr, R *ci, rdft_kind kind);
238 problem *X(mkproblem_rdft2_d_3pointers)(tensor *sz, tensor *vecsz,
239 R *r, R *cr, R *ci, rdft_kind kind);
240 -int X(rdft2_inplace_strides)(const problem_rdft2 *p, int vdim);
241 +IFFTW_EXTERN int X(rdft2_inplace_strides)(const problem_rdft2 *p, int vdim);
242 INT X(rdft2_tensor_max_index)(const tensor *sz, rdft_kind k);
243 -void X(rdft2_strides)(rdft_kind kind, const iodim *d, INT *rs, INT *cs);
244 +IFFTW_EXTERN void X(rdft2_strides)(rdft_kind kind, const iodim *d, INT *rs, INT *cs);
245 INT X(rdft2_complex_n)(INT real_n, rdft_kind kind);
246
247 /* verify.c: */
248 void X(rdft2_verify)(plan *pln, const problem_rdft2 *p, int rounds);
249
250 /* solve.c: */
251 -void X(rdft2_solve)(const plan *ego_, const problem *p_);
252 +IFFTW_EXTERN void X(rdft2_solve)(const plan *ego_, const problem *p_);
253
254 /* plan.c: */
255 typedef void (*rdft2apply) (const plan *ego, R *r0, R *r1, R *cr, R *ci);
256 @@ -148,7 +148,7 @@ typedef struct {
257 rdft2apply apply;
258 } plan_rdft2;
259
260 -plan *X(mkplan_rdft2)(size_t size, const plan_adt *adt, rdft2apply apply);
261 +IFFTW_EXTERN plan *X(mkplan_rdft2)(size_t size, const plan_adt *adt, rdft2apply apply);
262
263 #define MKPLAN_RDFT2(type, adt, apply) \
264 (type *)X(mkplan_rdft2)(sizeof(type), adt, apply)
This page took 0.15476 seconds and 5 git commands to generate.