Subversion Repositories shark

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
107 pj 1
/*
2
 * Copyright (c) 1997-1999 Massachusetts Institute of Technology
3
 *
4
 * This program is free software; you can redistribute it and/or modify
5
 * it under the terms of the GNU General Public License as published by
6
 * the Free Software Foundation; either version 2 of the License, or
7
 * (at your option) any later version.
8
 *
9
 * This program is distributed in the hope that it will be useful,
10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
 * GNU General Public License for more details.
13
 *
14
 * You should have received a copy of the GNU General Public License
15
 * along with this program; if not, write to the Free Software
16
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
17
 *
18
 */
19
 
20
/* rfftw.h -- system-wide definitions for rfftw */
21
#ifndef RFFTW_H
22
#define RFFTW_H
23
 
24
#include <fftw.h>
25
 
26
#ifdef __cplusplus
27
extern "C" {
28
#endif                          /* __cplusplus */
29
 
30
/****************************************************************************/
31
 
32
#define RFFTW_V2
33
 
34
typedef fftw_plan rfftw_plan;
35
typedef fftwnd_plan rfftwnd_plan;
36
 
37
#define FFTW_REAL_TO_COMPLEX FFTW_FORWARD
38
#define FFTW_COMPLEX_TO_REAL FFTW_BACKWARD
39
 
40
extern void rfftw(rfftw_plan plan, int howmany, fftw_real *in, int istride,
41
                  int idist, fftw_real *out, int ostride, int odist);
42
extern void rfftw_one(rfftw_plan plan, fftw_real *in, fftw_real *out);
43
 
44
extern rfftw_plan rfftw_create_plan_specific(int n, fftw_direction dir,
45
                                            int flags,
46
                                            fftw_real *in, int istride,
47
                                            fftw_real *out, int ostride);
48
 
49
extern rfftw_plan rfftw_create_plan(int n, fftw_direction dir, int flags);
50
extern void rfftw_destroy_plan(rfftw_plan plan);
51
 
52
//extern void rfftw_fprint_plan(FILE *f, rfftw_plan p);
53
//extern void rfftw_print_plan(rfftw_plan p);
54
 
55
extern void rfftw_executor_simple(int n, fftw_real *in,
56
                                  fftw_real *out,
57
                                  fftw_plan_node *p,
58
                                  int istride,
59
                                  int ostride);
60
 
61
extern rfftwnd_plan rfftwnd_create_plan_specific(int rank, const int *n,
62
                                                fftw_direction dir, int flags,
63
                                                fftw_real *in, int istride,
64
                                                fftw_real *out, int ostride);
65
extern rfftwnd_plan rfftw2d_create_plan_specific(int nx, int ny,
66
                                           fftw_direction dir, int flags,
67
                                              fftw_real *in, int istride,
68
                                            fftw_real *out, int ostride);
69
extern rfftwnd_plan rfftw3d_create_plan_specific(int nx, int ny, int nz,
70
                                           fftw_direction dir, int flags,
71
                                              fftw_real *in, int istride,
72
                                            fftw_real *out, int ostride);
73
extern rfftwnd_plan rfftwnd_create_plan(int rank, const int *n,
74
                                          fftw_direction dir, int flags);
75
extern rfftwnd_plan rfftw2d_create_plan(int nx, int ny,
76
                                          fftw_direction dir, int flags);
77
extern rfftwnd_plan rfftw3d_create_plan(int nx, int ny, int nz,
78
                                          fftw_direction dir, int flags);
79
extern void rfftwnd_destroy_plan(rfftwnd_plan plan);
80
//extern void rfftwnd_fprint_plan(FILE *f, rfftwnd_plan plan);
81
extern void rfftwnd_print_plan(rfftwnd_plan plan);
82
extern void rfftwnd_real_to_complex(rfftwnd_plan p, int howmany,
83
                                   fftw_real *in, int istride, int idist,
84
                              fftw_complex *out, int ostride, int odist);
85
extern void rfftwnd_complex_to_real(rfftwnd_plan p, int howmany,
86
                                fftw_complex *in, int istride, int idist,
87
                                 fftw_real *out, int ostride, int odist);
88
extern void rfftwnd_one_real_to_complex(rfftwnd_plan p,
89
                                        fftw_real *in, fftw_complex *out);
90
extern void rfftwnd_one_complex_to_real(rfftwnd_plan p,
91
                                        fftw_complex *in, fftw_real *out);
92
 
93
/****************************************************************************/
94
 
95
#ifdef __cplusplus
96
}                               /* extern "C" */
97
#endif                          /* __cplusplus */
98
#endif                          /* RFFTW_H */