| 
							- /*
 -   Interface for the f2c translation of fftpack as found on http://www.netlib.org/fftpack/
 -   
 -    FFTPACK license:
 - 
 -    http://www.cisl.ucar.edu/css/software/fftpack5/ftpk.html
 - 
 -    Copyright (c) 2004 the University Corporation for Atmospheric
 -    Research ("UCAR"). All rights reserved. Developed by NCAR's
 -    Computational and Information Systems Laboratory, UCAR,
 -    www.cisl.ucar.edu.
 - 
 -    Redistribution and use of the Software in source and binary forms,
 -    with or without modification, is permitted provided that the
 -    following conditions are met:
 - 
 -    - Neither the names of NCAR's Computational and Information Systems
 -    Laboratory, the University Corporation for Atmospheric Research,
 -    nor the names of its sponsors or contributors may be used to
 -    endorse or promote products derived from this Software without
 -    specific prior written permission.  
 - 
 -    - Redistributions of source code must retain the above copyright
 -    notices, this list of conditions, and the disclaimer below.
 - 
 -    - Redistributions in binary form must reproduce the above copyright
 -    notice, this list of conditions, and the disclaimer below in the
 -    documentation and/or other materials provided with the
 -    distribution.
 - 
 -    THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 -    EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO THE WARRANTIES OF
 -    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 -    NONINFRINGEMENT. IN NO EVENT SHALL THE CONTRIBUTORS OR COPYRIGHT
 -    HOLDERS BE LIABLE FOR ANY CLAIM, INDIRECT, INCIDENTAL, SPECIAL,
 -    EXEMPLARY, OR CONSEQUENTIAL DAMAGES OR OTHER LIABILITY, WHETHER IN AN
 -    ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
 -    CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE
 -    SOFTWARE.
 - 
 -    ChangeLog:
 -    2011/10/02: this is my first release of this file.
 - */
 - 
 - #ifndef FFTPACK_H
 - #define FFTPACK_H
 - 
 - #ifdef __cplusplus
 - extern "C" {
 - #endif
 - 
 - // just define FFTPACK_DOUBLE_PRECISION if you want to build it as a double precision fft
 - 
 - #ifndef FFTPACK_DOUBLE_PRECISION
 -   typedef float fftpack_real;
 -   typedef int   fftpack_int;
 - #else
 -   typedef double fftpack_real;
 -   typedef int    fftpack_int;
 - #endif
 - 
 -   void cffti(fftpack_int n, fftpack_real *wsave);
 - 
 -   void cfftf(fftpack_int n, fftpack_real *c, fftpack_real *wsave);
 - 
 -   void cfftb(fftpack_int n, fftpack_real *c, fftpack_real *wsave);
 - 
 -   void rffti(fftpack_int n, fftpack_real *wsave);
 -   void rfftf(fftpack_int n, fftpack_real *r, fftpack_real *wsave);
 -   void rfftb(fftpack_int n, fftpack_real *r, fftpack_real *wsave);
 - 
 -   void cosqi(fftpack_int n, fftpack_real *wsave);
 -   void cosqf(fftpack_int n, fftpack_real *x, fftpack_real *wsave);
 -   void cosqb(fftpack_int n, fftpack_real *x, fftpack_real *wsave);
 - 
 -   void costi(fftpack_int n, fftpack_real *wsave);
 -   void cost(fftpack_int n, fftpack_real *x, fftpack_real *wsave);
 - 
 -   void sinqi(fftpack_int n, fftpack_real *wsave);
 -   void sinqb(fftpack_int n, fftpack_real *x, fftpack_real *wsave);
 -   void sinqf(fftpack_int n, fftpack_real *x, fftpack_real *wsave);
 - 
 -   void sinti(fftpack_int n, fftpack_real *wsave);
 -   void sint(fftpack_int n, fftpack_real *x, fftpack_real *wsave);
 - 
 - #ifdef __cplusplus
 - }
 - #endif
 - 
 - #endif /* FFTPACK_H */
 - 
 - /*
 - 
 -                       FFTPACK
 - 
 - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 - 
 -                   version 4  april 1985
 - 
 -      a package of fortran subprograms for the fast fourier
 -       transform of periodic and other symmetric sequences
 - 
 -                          by
 - 
 -                   paul n swarztrauber
 - 
 -   national center for atmospheric research  boulder,colorado 80307
 - 
 -    which is sponsored by the national science foundation
 - 
 - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 - 
 - 
 - this package consists of programs which perform fast fourier
 - transforms for both complex and real periodic sequences and
 - certain other symmetric sequences that are listed below.
 - 
 - 1.   rffti     initialize  rfftf and rfftb
 - 2.   rfftf     forward transform of a real periodic sequence
 - 3.   rfftb     backward transform of a real coefficient array
 - 
 - 4.   ezffti    initialize ezfftf and ezfftb
 - 5.   ezfftf    a simplified real periodic forward transform
 - 6.   ezfftb    a simplified real periodic backward transform
 - 
 - 7.   sinti     initialize sint
 - 8.   sint      sine transform of a real odd sequence
 - 
 - 9.   costi     initialize cost
 - 10.  cost      cosine transform of a real even sequence
 - 
 - 11.  sinqi     initialize sinqf and sinqb
 - 12.  sinqf     forward sine transform with odd wave numbers
 - 13.  sinqb     unnormalized inverse of sinqf
 - 
 - 14.  cosqi     initialize cosqf and cosqb
 - 15.  cosqf     forward cosine transform with odd wave numbers
 - 16.  cosqb     unnormalized inverse of cosqf
 - 
 - 17.  cffti     initialize cfftf and cfftb
 - 18.  cfftf     forward transform of a complex periodic sequence
 - 19.  cfftb     unnormalized inverse of cfftf
 - 
 - 
 - ******************************************************************
 - 
 - subroutine rffti(n,wsave)
 - 
 -   ****************************************************************
 - 
 - subroutine rffti initializes the array wsave which is used in
 - both rfftf and rfftb. the prime factorization of n together with
 - a tabulation of the trigonometric functions are computed and
 - stored in wsave.
 - 
 - input parameter
 - 
 - n       the length of the sequence to be transformed.
 - 
 - output parameter
 - 
 - wsave   a work array which must be dimensioned at least 2*n+15.
 -         the same work array can be used for both rfftf and rfftb
 -         as long as n remains unchanged. different wsave arrays
 -         are required for different values of n. the contents of
 -         wsave must not be changed between calls of rfftf or rfftb.
 - 
 - ******************************************************************
 - 
 - subroutine rfftf(n,r,wsave)
 - 
 - ******************************************************************
 - 
 - subroutine rfftf computes the fourier coefficients of a real
 - perodic sequence (fourier analysis). the transform is defined
 - below at output parameter r.
 - 
 - input parameters
 - 
 - n       the length of the array r to be transformed.  the method
 -         is most efficient when n is a product of small primes.
 -         n may change so long as different work arrays are provided
 - 
 - r       a real array of length n which contains the sequence
 -         to be transformed
 - 
 - wsave   a work array which must be dimensioned at least 2*n+15.
 -         in the program that calls rfftf. the wsave array must be
 -         initialized by calling subroutine rffti(n,wsave) and a
 -         different wsave array must be used for each different
 -         value of n. this initialization does not have to be
 -         repeated so long as n remains unchanged thus subsequent
 -         transforms can be obtained faster than the first.
 -         the same wsave array can be used by rfftf and rfftb.
 - 
 - 
 - output parameters
 - 
 - r       r(1) = the sum from i=1 to i=n of r(i)
 - 
 -         if n is even set l =n/2   , if n is odd set l = (n+1)/2
 - 
 -           then for k = 2,...,l
 - 
 -              r(2*k-2) = the sum from i = 1 to i = n of
 - 
 -                   r(i)*cos((k-1)*(i-1)*2*pi/n)
 - 
 -              r(2*k-1) = the sum from i = 1 to i = n of
 - 
 -                  -r(i)*sin((k-1)*(i-1)*2*pi/n)
 - 
 -         if n is even
 - 
 -              r(n) = the sum from i = 1 to i = n of
 - 
 -                   (-1)**(i-1)*r(i)
 - 
 -  *****  note
 -              this transform is unnormalized since a call of rfftf
 -              followed by a call of rfftb will multiply the input
 -              sequence by n.
 - 
 - wsave   contains results which must not be destroyed between
 -         calls of rfftf or rfftb.
 - 
 - 
 - ******************************************************************
 - 
 - subroutine rfftb(n,r,wsave)
 - 
 - ******************************************************************
 - 
 - subroutine rfftb computes the real perodic sequence from its
 - fourier coefficients (fourier synthesis). the transform is defined
 - below at output parameter r.
 - 
 - input parameters
 - 
 - n       the length of the array r to be transformed.  the method
 -         is most efficient when n is a product of small primes.
 -         n may change so long as different work arrays are provided
 - 
 - r       a real array of length n which contains the sequence
 -         to be transformed
 - 
 - wsave   a work array which must be dimensioned at least 2*n+15.
 -         in the program that calls rfftb. the wsave array must be
 -         initialized by calling subroutine rffti(n,wsave) and a
 -         different wsave array must be used for each different
 -         value of n. this initialization does not have to be
 -         repeated so long as n remains unchanged thus subsequent
 -         transforms can be obtained faster than the first.
 -         the same wsave array can be used by rfftf and rfftb.
 - 
 - 
 - output parameters
 - 
 - r       for n even and for i = 1,...,n
 - 
 -              r(i) = r(1)+(-1)**(i-1)*r(n)
 - 
 -                   plus the sum from k=2 to k=n/2 of
 - 
 -                    2.*r(2*k-2)*cos((k-1)*(i-1)*2*pi/n)
 - 
 -                   -2.*r(2*k-1)*sin((k-1)*(i-1)*2*pi/n)
 - 
 -         for n odd and for i = 1,...,n
 - 
 -              r(i) = r(1) plus the sum from k=2 to k=(n+1)/2 of
 - 
 -                   2.*r(2*k-2)*cos((k-1)*(i-1)*2*pi/n)
 - 
 -                  -2.*r(2*k-1)*sin((k-1)*(i-1)*2*pi/n)
 - 
 -  *****  note
 -              this transform is unnormalized since a call of rfftf
 -              followed by a call of rfftb will multiply the input
 -              sequence by n.
 - 
 - wsave   contains results which must not be destroyed between
 -         calls of rfftb or rfftf.
 - 
 - ******************************************************************
 - 
 - subroutine sinti(n,wsave)
 - 
 - ******************************************************************
 - 
 - subroutine sinti initializes the array wsave which is used in
 - subroutine sint. the prime factorization of n together with
 - a tabulation of the trigonometric functions are computed and
 - stored in wsave.
 - 
 - input parameter
 - 
 - n       the length of the sequence to be transformed.  the method
 -         is most efficient when n+1 is a product of small primes.
 - 
 - output parameter
 - 
 - wsave   a work array with at least int(2.5*n+15) locations.
 -         different wsave arrays are required for different values
 -         of n. the contents of wsave must not be changed between
 -         calls of sint.
 - 
 - ******************************************************************
 - 
 - subroutine sint(n,x,wsave)
 - 
 - ******************************************************************
 - 
 - subroutine sint computes the discrete fourier sine transform
 - of an odd sequence x(i). the transform is defined below at
 - output parameter x.
 - 
 - sint is the unnormalized inverse of itself since a call of sint
 - followed by another call of sint will multiply the input sequence
 - x by 2*(n+1).
 - 
 - the array wsave which is used by subroutine sint must be
 - initialized by calling subroutine sinti(n,wsave).
 - 
 - input parameters
 - 
 - n       the length of the sequence to be transformed.  the method
 -         is most efficient when n+1 is the product of small primes.
 - 
 - x       an array which contains the sequence to be transformed
 - 
 - 
 - wsave   a work array with dimension at least int(2.5*n+15)
 -         in the program that calls sint. the wsave array must be
 -         initialized by calling subroutine sinti(n,wsave) and a
 -         different wsave array must be used for each different
 -         value of n. this initialization does not have to be
 -         repeated so long as n remains unchanged thus subsequent
 -         transforms can be obtained faster than the first.
 - 
 - output parameters
 - 
 - x       for i=1,...,n
 - 
 -              x(i)= the sum from k=1 to k=n
 - 
 -                   2*x(k)*sin(k*i*pi/(n+1))
 - 
 -              a call of sint followed by another call of
 -              sint will multiply the sequence x by 2*(n+1).
 -              hence sint is the unnormalized inverse
 -              of itself.
 - 
 - wsave   contains initialization calculations which must not be
 -         destroyed between calls of sint.
 - 
 - ******************************************************************
 - 
 - subroutine costi(n,wsave)
 - 
 - ******************************************************************
 - 
 - subroutine costi initializes the array wsave which is used in
 - subroutine cost. the prime factorization of n together with
 - a tabulation of the trigonometric functions are computed and
 - stored in wsave.
 - 
 - input parameter
 - 
 - n       the length of the sequence to be transformed.  the method
 -         is most efficient when n-1 is a product of small primes.
 - 
 - output parameter
 - 
 - wsave   a work array which must be dimensioned at least 3*n+15.
 -         different wsave arrays are required for different values
 -         of n. the contents of wsave must not be changed between
 -         calls of cost.
 - 
 - ******************************************************************
 - 
 - subroutine cost(n,x,wsave)
 - 
 - ******************************************************************
 - 
 - subroutine cost computes the discrete fourier cosine transform
 - of an even sequence x(i). the transform is defined below at output
 - parameter x.
 - 
 - cost is the unnormalized inverse of itself since a call of cost
 - followed by another call of cost will multiply the input sequence
 - x by 2*(n-1). the transform is defined below at output parameter x
 - 
 - the array wsave which is used by subroutine cost must be
 - initialized by calling subroutine costi(n,wsave).
 - 
 - input parameters
 - 
 - n       the length of the sequence x. n must be greater than 1.
 -         the method is most efficient when n-1 is a product of
 -         small primes.
 - 
 - x       an array which contains the sequence to be transformed
 - 
 - wsave   a work array which must be dimensioned at least 3*n+15
 -         in the program that calls cost. the wsave array must be
 -         initialized by calling subroutine costi(n,wsave) and a
 -         different wsave array must be used for each different
 -         value of n. this initialization does not have to be
 -         repeated so long as n remains unchanged thus subsequent
 -         transforms can be obtained faster than the first.
 - 
 - output parameters
 - 
 - x       for i=1,...,n
 - 
 -             x(i) = x(1)+(-1)**(i-1)*x(n)
 - 
 -              + the sum from k=2 to k=n-1
 - 
 -                  2*x(k)*cos((k-1)*(i-1)*pi/(n-1))
 - 
 -              a call of cost followed by another call of
 -              cost will multiply the sequence x by 2*(n-1)
 -              hence cost is the unnormalized inverse
 -              of itself.
 - 
 - wsave   contains initialization calculations which must not be
 -         destroyed between calls of cost.
 - 
 - ******************************************************************
 - 
 - subroutine sinqi(n,wsave)
 - 
 - ******************************************************************
 - 
 - subroutine sinqi initializes the array wsave which is used in
 - both sinqf and sinqb. the prime factorization of n together with
 - a tabulation of the trigonometric functions are computed and
 - stored in wsave.
 - 
 - input parameter
 - 
 - n       the length of the sequence to be transformed. the method
 -         is most efficient when n is a product of small primes.
 - 
 - output parameter
 - 
 - wsave   a work array which must be dimensioned at least 3*n+15.
 -         the same work array can be used for both sinqf and sinqb
 -         as long as n remains unchanged. different wsave arrays
 -         are required for different values of n. the contents of
 -         wsave must not be changed between calls of sinqf or sinqb.
 - 
 - ******************************************************************
 - 
 - subroutine sinqf(n,x,wsave)
 - 
 - ******************************************************************
 - 
 - subroutine sinqf computes the fast fourier transform of quarter
 - wave data. that is , sinqf computes the coefficients in a sine
 - series representation with only odd wave numbers. the transform
 - is defined below at output parameter x.
 - 
 - sinqb is the unnormalized inverse of sinqf since a call of sinqf
 - followed by a call of sinqb will multiply the input sequence x
 - by 4*n.
 - 
 - the array wsave which is used by subroutine sinqf must be
 - initialized by calling subroutine sinqi(n,wsave).
 - 
 - 
 - input parameters
 - 
 - n       the length of the array x to be transformed.  the method
 -         is most efficient when n is a product of small primes.
 - 
 - x       an array which contains the sequence to be transformed
 - 
 - wsave   a work array which must be dimensioned at least 3*n+15.
 -         in the program that calls sinqf. the wsave array must be
 -         initialized by calling subroutine sinqi(n,wsave) and a
 -         different wsave array must be used for each different
 -         value of n. this initialization does not have to be
 -         repeated so long as n remains unchanged thus subsequent
 -         transforms can be obtained faster than the first.
 - 
 - output parameters
 - 
 - x       for i=1,...,n
 - 
 -              x(i) = (-1)**(i-1)*x(n)
 - 
 -                 + the sum from k=1 to k=n-1 of
 - 
 -                 2*x(k)*sin((2*i-1)*k*pi/(2*n))
 - 
 -              a call of sinqf followed by a call of
 -              sinqb will multiply the sequence x by 4*n.
 -              therefore sinqb is the unnormalized inverse
 -              of sinqf.
 - 
 - wsave   contains initialization calculations which must not
 -         be destroyed between calls of sinqf or sinqb.
 - 
 - ******************************************************************
 - 
 - subroutine sinqb(n,x,wsave)
 - 
 - ******************************************************************
 - 
 - subroutine sinqb computes the fast fourier transform of quarter
 - wave data. that is , sinqb computes a sequence from its
 - representation in terms of a sine series with odd wave numbers.
 - the transform is defined below at output parameter x.
 - 
 - sinqf is the unnormalized inverse of sinqb since a call of sinqb
 - followed by a call of sinqf will multiply the input sequence x
 - by 4*n.
 - 
 - the array wsave which is used by subroutine sinqb must be
 - initialized by calling subroutine sinqi(n,wsave).
 - 
 - 
 - input parameters
 - 
 - n       the length of the array x to be transformed.  the method
 -         is most efficient when n is a product of small primes.
 - 
 - x       an array which contains the sequence to be transformed
 - 
 - wsave   a work array which must be dimensioned at least 3*n+15.
 -         in the program that calls sinqb. the wsave array must be
 -         initialized by calling subroutine sinqi(n,wsave) and a
 -         different wsave array must be used for each different
 -         value of n. this initialization does not have to be
 -         repeated so long as n remains unchanged thus subsequent
 -         transforms can be obtained faster than the first.
 - 
 - output parameters
 - 
 - x       for i=1,...,n
 - 
 -              x(i)= the sum from k=1 to k=n of
 - 
 -                4*x(k)*sin((2k-1)*i*pi/(2*n))
 - 
 -              a call of sinqb followed by a call of
 -              sinqf will multiply the sequence x by 4*n.
 -              therefore sinqf is the unnormalized inverse
 -              of sinqb.
 - 
 - wsave   contains initialization calculations which must not
 -         be destroyed between calls of sinqb or sinqf.
 - 
 - ******************************************************************
 - 
 - subroutine cosqi(n,wsave)
 - 
 - ******************************************************************
 - 
 - subroutine cosqi initializes the array wsave which is used in
 - both cosqf and cosqb. the prime factorization of n together with
 - a tabulation of the trigonometric functions are computed and
 - stored in wsave.
 - 
 - input parameter
 - 
 - n       the length of the array to be transformed.  the method
 -         is most efficient when n is a product of small primes.
 - 
 - output parameter
 - 
 - wsave   a work array which must be dimensioned at least 3*n+15.
 -         the same work array can be used for both cosqf and cosqb
 -         as long as n remains unchanged. different wsave arrays
 -         are required for different values of n. the contents of
 -         wsave must not be changed between calls of cosqf or cosqb.
 - 
 - ******************************************************************
 - 
 - subroutine cosqf(n,x,wsave)
 - 
 - ******************************************************************
 - 
 - subroutine cosqf computes the fast fourier transform of quarter
 - wave data. that is , cosqf computes the coefficients in a cosine
 - series representation with only odd wave numbers. the transform
 - is defined below at output parameter x
 - 
 - cosqf is the unnormalized inverse of cosqb since a call of cosqf
 - followed by a call of cosqb will multiply the input sequence x
 - by 4*n.
 - 
 - the array wsave which is used by subroutine cosqf must be
 - initialized by calling subroutine cosqi(n,wsave).
 - 
 - 
 - input parameters
 - 
 - n       the length of the array x to be transformed.  the method
 -         is most efficient when n is a product of small primes.
 - 
 - x       an array which contains the sequence to be transformed
 - 
 - wsave   a work array which must be dimensioned at least 3*n+15
 -         in the program that calls cosqf. the wsave array must be
 -         initialized by calling subroutine cosqi(n,wsave) and a
 -         different wsave array must be used for each different
 -         value of n. this initialization does not have to be
 -         repeated so long as n remains unchanged thus subsequent
 -         transforms can be obtained faster than the first.
 - 
 - output parameters
 - 
 - x       for i=1,...,n
 - 
 -              x(i) = x(1) plus the sum from k=2 to k=n of
 - 
 -                 2*x(k)*cos((2*i-1)*(k-1)*pi/(2*n))
 - 
 -              a call of cosqf followed by a call of
 -              cosqb will multiply the sequence x by 4*n.
 -              therefore cosqb is the unnormalized inverse
 -              of cosqf.
 - 
 - wsave   contains initialization calculations which must not
 -         be destroyed between calls of cosqf or cosqb.
 - 
 - ******************************************************************
 - 
 - subroutine cosqb(n,x,wsave)
 - 
 - ******************************************************************
 - 
 - subroutine cosqb computes the fast fourier transform of quarter
 - wave data. that is , cosqb computes a sequence from its
 - representation in terms of a cosine series with odd wave numbers.
 - the transform is defined below at output parameter x.
 - 
 - cosqb is the unnormalized inverse of cosqf since a call of cosqb
 - followed by a call of cosqf will multiply the input sequence x
 - by 4*n.
 - 
 - the array wsave which is used by subroutine cosqb must be
 - initialized by calling subroutine cosqi(n,wsave).
 - 
 - 
 - input parameters
 - 
 - n       the length of the array x to be transformed.  the method
 -         is most efficient when n is a product of small primes.
 - 
 - x       an array which contains the sequence to be transformed
 - 
 - wsave   a work array that must be dimensioned at least 3*n+15
 -         in the program that calls cosqb. the wsave array must be
 -         initialized by calling subroutine cosqi(n,wsave) and a
 -         different wsave array must be used for each different
 -         value of n. this initialization does not have to be
 -         repeated so long as n remains unchanged thus subsequent
 -         transforms can be obtained faster than the first.
 - 
 - output parameters
 - 
 - x       for i=1,...,n
 - 
 -              x(i)= the sum from k=1 to k=n of
 - 
 -                4*x(k)*cos((2*k-1)*(i-1)*pi/(2*n))
 - 
 -              a call of cosqb followed by a call of
 -              cosqf will multiply the sequence x by 4*n.
 -              therefore cosqf is the unnormalized inverse
 -              of cosqb.
 - 
 - wsave   contains initialization calculations which must not
 -         be destroyed between calls of cosqb or cosqf.
 - 
 - ******************************************************************
 - 
 - subroutine cffti(n,wsave)
 - 
 - ******************************************************************
 - 
 - subroutine cffti initializes the array wsave which is used in
 - both cfftf and cfftb. the prime factorization of n together with
 - a tabulation of the trigonometric functions are computed and
 - stored in wsave.
 - 
 - input parameter
 - 
 - n       the length of the sequence to be transformed
 - 
 - output parameter
 - 
 - wsave   a work array which must be dimensioned at least 4*n+15
 -         the same work array can be used for both cfftf and cfftb
 -         as long as n remains unchanged. different wsave arrays
 -         are required for different values of n. the contents of
 -         wsave must not be changed between calls of cfftf or cfftb.
 - 
 - ******************************************************************
 - 
 - subroutine cfftf(n,c,wsave)
 - 
 - ******************************************************************
 - 
 - subroutine cfftf computes the forward complex discrete fourier
 - transform (the fourier analysis). equivalently , cfftf computes
 - the fourier coefficients of a complex periodic sequence.
 - the transform is defined below at output parameter c.
 - 
 - the transform is not normalized. to obtain a normalized transform
 - the output must be divided by n. otherwise a call of cfftf
 - followed by a call of cfftb will multiply the sequence by n.
 - 
 - the array wsave which is used by subroutine cfftf must be
 - initialized by calling subroutine cffti(n,wsave).
 - 
 - input parameters
 - 
 - 
 - n      the length of the complex sequence c. the method is
 -        more efficient when n is the product of small primes. n
 - 
 - c      a complex array of length n which contains the sequence
 - 
 - wsave   a real work array which must be dimensioned at least 4n+15
 -         in the program that calls cfftf. the wsave array must be
 -         initialized by calling subroutine cffti(n,wsave) and a
 -         different wsave array must be used for each different
 -         value of n. this initialization does not have to be
 -         repeated so long as n remains unchanged thus subsequent
 -         transforms can be obtained faster than the first.
 -         the same wsave array can be used by cfftf and cfftb.
 - 
 - output parameters
 - 
 - c      for j=1,...,n
 - 
 -            c(j)=the sum from k=1,...,n of
 - 
 -                  c(k)*exp(-i*(j-1)*(k-1)*2*pi/n)
 - 
 -                        where i=sqrt(-1)
 - 
 - wsave   contains initialization calculations which must not be
 -         destroyed between calls of subroutine cfftf or cfftb
 - 
 - ******************************************************************
 - 
 - subroutine cfftb(n,c,wsave)
 - 
 - ******************************************************************
 - 
 - subroutine cfftb computes the backward complex discrete fourier
 - transform (the fourier synthesis). equivalently , cfftb computes
 - a complex periodic sequence from its fourier coefficients.
 - the transform is defined below at output parameter c.
 - 
 - a call of cfftf followed by a call of cfftb will multiply the
 - sequence by n.
 - 
 - the array wsave which is used by subroutine cfftb must be
 - initialized by calling subroutine cffti(n,wsave).
 - 
 - input parameters
 - 
 - 
 - n      the length of the complex sequence c. the method is
 -        more efficient when n is the product of small primes.
 - 
 - c      a complex array of length n which contains the sequence
 - 
 - wsave   a real work array which must be dimensioned at least 4n+15
 -         in the program that calls cfftb. the wsave array must be
 -         initialized by calling subroutine cffti(n,wsave) and a
 -         different wsave array must be used for each different
 -         value of n. this initialization does not have to be
 -         repeated so long as n remains unchanged thus subsequent
 -         transforms can be obtained faster than the first.
 -         the same wsave array can be used by cfftf and cfftb.
 - 
 - output parameters
 - 
 - c      for j=1,...,n
 - 
 -            c(j)=the sum from k=1,...,n of
 - 
 -                  c(k)*exp(i*(j-1)*(k-1)*2*pi/n)
 - 
 -                        where i=sqrt(-1)
 - 
 - wsave   contains initialization calculations which must not be
 -         destroyed between calls of subroutine cfftf or cfftb
 - 
 - */
 
 
  |