4 * This source code is part of
8 * GROningen MAchine for Chemical Simulations
12 * Copyright (c) 1991-1999
13 * BIOSON Research Institute, Dept. of Biophysical Chemistry
14 * University of Groningen, The Netherlands
17 * GROMACS: A message-passing parallel molecular dynamics implementation
18 * H.J.C. Berendsen, D. van der Spoel and R. van Drunen
19 * Comp. Phys. Comm. 91, 43-56 (1995)
21 * Also check out our WWW page:
22 * http://md.chem.rug.nl/~gmx
27 * Green Red Orange Magenta Azure Cyan Skyblue
29 /* rfftw.h -- system-wide definitions for rfftw */
33 static char *SRCID_rfftw_h
= "$Id$";
39 #endif /* __cplusplus */
41 /****************************************************************************/
45 typedef fftw_plan rfftw_plan
;
46 typedef fftwnd_plan rfftwnd_plan
;
48 #define FFTW_REAL_TO_COMPLEX FFTW_FORWARD
49 #define FFTW_COMPLEX_TO_REAL FFTW_BACKWARD
51 extern void rfftw(rfftw_plan plan
, int howmany
, fftw_real
*in
, int istride
,
52 int idist
, fftw_real
*out
, int ostride
, int odist
);
53 extern void rfftw_one(rfftw_plan plan
, fftw_real
*in
, fftw_real
*out
);
55 extern rfftw_plan
rfftw_create_plan_specific(int n
, fftw_direction dir
,
57 fftw_real
*in
, int istride
,
58 fftw_real
*out
, int ostride
);
60 extern rfftw_plan
rfftw_create_plan(int n
, fftw_direction dir
, int flags
);
61 extern void rfftw_destroy_plan(rfftw_plan plan
);
63 extern void rfftw_fprint_plan(FILE *f
, rfftw_plan p
);
64 extern void rfftw_print_plan(rfftw_plan p
);
66 extern void rfftw_executor_simple(int n
, fftw_real
*in
,
72 extern rfftwnd_plan
rfftwnd_create_plan_specific(int rank
, const int *n
,
73 fftw_direction dir
, int flags
,
74 fftw_real
*in
, int istride
,
75 fftw_real
*out
, int ostride
);
76 extern rfftwnd_plan
rfftw2d_create_plan_specific(int nx
, int ny
,
77 fftw_direction dir
, int flags
,
78 fftw_real
*in
, int istride
,
79 fftw_real
*out
, int ostride
);
80 extern rfftwnd_plan
rfftw3d_create_plan_specific(int nx
, int ny
, int nz
,
81 fftw_direction dir
, int flags
,
82 fftw_real
*in
, int istride
,
83 fftw_real
*out
, int ostride
);
84 extern rfftwnd_plan
rfftwnd_create_plan(int rank
, const int *n
,
85 fftw_direction dir
, int flags
);
86 extern rfftwnd_plan
rfftw2d_create_plan(int nx
, int ny
,
87 fftw_direction dir
, int flags
);
88 extern rfftwnd_plan
rfftw3d_create_plan(int nx
, int ny
, int nz
,
89 fftw_direction dir
, int flags
);
90 extern void rfftwnd_destroy_plan(rfftwnd_plan plan
);
91 extern void rfftwnd_fprint_plan(FILE *f
, rfftwnd_plan plan
);
92 extern void rfftwnd_print_plan(rfftwnd_plan plan
);
93 extern void rfftwnd_real_to_complex(rfftwnd_plan p
, int howmany
,
94 fftw_real
*in
, int istride
, int idist
,
95 fftw_complex
*out
, int ostride
, int odist
);
96 extern void rfftwnd_complex_to_real(rfftwnd_plan p
, int howmany
,
97 fftw_complex
*in
, int istride
, int idist
,
98 fftw_real
*out
, int ostride
, int odist
);
99 extern void rfftwnd_one_real_to_complex(rfftwnd_plan p
,
100 fftw_real
*in
, fftw_complex
*out
);
101 extern void rfftwnd_one_complex_to_real(rfftwnd_plan p
,
102 fftw_complex
*in
, fftw_real
*out
);
104 /****************************************************************************/
108 #endif /* __cplusplus */