MARLEY (Model of Argon Reaction Low Energy Yields) v2.0.0
A Monte Carlo event generator for tens-of-MeV neutrino interactions
Loading...
Searching...
No Matches
fftpack4.h
1/*
2 * This file is based largely on the following software distribution:
3 *
4 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
5 *
6 * FFTPACK
7 *
8 * Reference
9 * P.N. Swarztrauber, Vectorizing the FFTs, in Parallel Computations
10 * (G. Rodrigue, ed.), Academic Press, 1982, pp. 51--83.
11 *
12 * http://www.netlib.org/fftpack/
13 *
14 * Updated to single, double, and extended precision,
15 * and translated to ISO-Standard C/C++ (without aliasing)
16 * on 10 October 2005 by Andrew Fernandes <andrew_AT_fernandes.org>
17 *
18 * Version 4 April 1985
19 *
20 * A Package of Fortran Subprograms for the Fast Fourier
21 * Transform of Periodic and other Symmetric Sequences
22 *
23 * by
24 *
25 * Paul N Swarztrauber
26 *
27 * National Center for Atmospheric Research, Boulder, Colorado 80307,
28 *
29 * which is sponsored by the National Science Foundation
30 *
31 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
32 *
33 * There appears to be no explicit license for FFTPACK. However, the
34 * package has been incorporated verbatim into a large number of software
35 * systems over the years with numerous types of license without complaint
36 * from the original author; therefore it would appear
37 * that the code is effectively public domain. If you are in doubt,
38 * however, you will need to contact the author or the National Center
39 * for Atmospheric Research to be sure.
40 *
41 * All the changes from the original FFTPACK to the current file
42 * fall under the following BSD-style open-source license:
43 *
44 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
45 *
46 * Copyright (c) 2005, Andrew Fernandes ([email protected]);
47 * All rights reserved.
48 *
49 * Redistribution and use in source and binary forms, with or without
50 * modification, are permitted provided that the following conditions
51 * are met:
52 *
53 * - Redistributions of source code must retain the above copyright
54 * notice, this list of conditions and the following disclaimer.
55 *
56 * - Redistributions in binary form must reproduce the above copyright
57 * notice, this list of conditions and the following disclaimer in the
58 * documentation and/or other materials provided with the distribution.
59 *
60 * - Neither the name of the North Carolina State University nor the
61 * names of its contributors may be used to endorse or promote products
62 * derived from this software without specific prior written permission.
63 *
64 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
65 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
66 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
67 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
68 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
69 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
70 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
71 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
72 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
73 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
74 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
75 * POSSIBILITY OF SUCH DAMAGE.
76 *
77 */
78#ifndef FFTPACK_H
79#define FFTPACK_H
80
81#include "fftpack4_precision.h"
82
83#ifdef __cplusplus
84extern "C" {
85#endif
86
87void cfftb( integer_t *n, real_t *c, real_t *wsave, integer_t *ifac );
88void cfftf( integer_t *n, real_t *c, real_t *wsave, integer_t *ifac );
89void cffti( integer_t *n, real_t *wsave, integer_t *ifac );
90
91void cosqb( integer_t *n, real_t *x, real_t *wsave, integer_t *ifac );
92void cosqf( integer_t *n, real_t *x, real_t *wsave, integer_t *ifac );
93void cosqi( integer_t *n, real_t *wsave, integer_t *ifac );
94
95void cost( integer_t *n, real_t *x, real_t *wsave, integer_t *ifac );
96void costi( integer_t *n, real_t *wsave, integer_t *ifac );
97
98void ezfftb( integer_t *n, real_t *r, real_t *azero, real_t *a, real_t *b, real_t *wsave, integer_t *ifac );
99void ezfftf( integer_t *n, real_t *r, real_t *azero, real_t *a, real_t *b, real_t *wsave, integer_t *ifac );
100void ezffti( integer_t *n, real_t *wsave, integer_t *ifac );
101
102void rfftb( integer_t *n, real_t *r, real_t *wsave, integer_t *ifac );
103void rfftf( integer_t *n, real_t *r, real_t *wsave, integer_t *ifac );
104void rffti( integer_t *n, real_t *wsave, integer_t *ifac );
105
106void sinqb( integer_t *n, real_t *x, real_t *wsave, integer_t *ifac );
107void sinqf( integer_t *n, real_t *x, real_t *wsave, integer_t *ifac );
108void sinqi( integer_t *n, real_t *wsave, integer_t *ifac );
109
110void sint( integer_t *n, real_t *x, real_t *wsave, integer_t *ifac );
111void sinti( integer_t *n, real_t *wsave, integer_t *ifac );
112
113#ifdef __cplusplus
114}
115#endif
116
117#endif /* ! FFTPACK_H */