Note: this function is deprecated and will be withdrawn at Mark 30.2. Replaced by
c06pqc.
Given
sequences of
real data values
, for
and
, this function simultaneously calculates the Fourier transforms of all the sequences defined by
(Note the scale factor
in this definition.)
The transformed values
are complex, but for each value of
the
form a Hermitian sequence (i.e.,
is the complex conjugate of
), so they are completely determined by
real numbers. The first call of
c06fpc must be preceded by a call to
c06gzc to initialize the array
trig with trigonometric coefficients according to the value of
n.
The discrete Fourier transform is sometimes defined using a positive sign in the exponential term
To compute this form, this function should be followed by a call to
c06gqc to form the complex conjugates of the
.
The function uses a variant of the fast Fourier transform algorithm (
Brigham (1974)) known as the Stockham self-sorting algorithm, which is described in
Temperton (1983). Special coding is provided for the factors
,
,
, 5 and 6.
Some indication of accuracy can be obtained by performing a subsequent inverse transform and comparing the results with the original sequence (in exact arithmetic they would be identical).
Background information to multithreading can be found in the
Multithreading documentation.
This program reads in sequences of real data values and prints their discrete Fourier transforms (as computed by
c06fpc). The Fourier transforms are expanded into full complex form using
c06gsc and printed. Inverse transforms are then calculated by calling
c06gqc followed by
c06fqc showing that the original sequences are restored.