dfftzm - initialize the trigonometric weight and factor tables or compute the one-dimensional forward Fast Fourier Transform of a set of double precision data sequences stored in a two-dimensional array. =head1 SYNOPSIS
SUBROUTINE DFFTZM( IOPT, M, N, SCALE, X, LDX, Y, LDY, TRIGS, IFAC, * WORK, LWORK, IERR) DOUBLE COMPLEX Y(LDY,*) INTEGER IOPT, M, N, LDX, LDY, LWORK, IERR INTEGER IFAC(*) DOUBLE PRECISION SCALE DOUBLE PRECISION X(LDX,*), TRIGS(*), WORK(*)
SUBROUTINE DFFTZM_64( IOPT, M, N, SCALE, X, LDX, Y, LDY, TRIGS, * IFAC, WORK, LWORK, IERR) DOUBLE COMPLEX Y(LDY,*) INTEGER*8 IOPT, M, N, LDX, LDY, LWORK, IERR INTEGER*8 IFAC(*) DOUBLE PRECISION SCALE DOUBLE PRECISION X(LDX,*), TRIGS(*), WORK(*)
SUBROUTINE FFTM( IOPT, [M], [N], [SCALE], X, [LDX], Y, [LDY], TRIGS, * IFAC, WORK, [LWORK], IERR) COMPLEX(8), DIMENSION(:,:) :: Y INTEGER :: IOPT, M, N, LDX, LDY, LWORK, IERR INTEGER, DIMENSION(:) :: IFAC REAL(8) :: SCALE REAL(8), DIMENSION(:) :: TRIGS, WORK REAL(8), DIMENSION(:,:) :: X
SUBROUTINE FFTM_64( IOPT, [M], [N], [SCALE], X, [LDX], Y, [LDY], * TRIGS, IFAC, WORK, [LWORK], IERR) COMPLEX(8), DIMENSION(:,:) :: Y INTEGER(8) :: IOPT, M, N, LDX, LDY, LWORK, IERR INTEGER(8), DIMENSION(:) :: IFAC REAL(8) :: SCALE REAL(8), DIMENSION(:) :: TRIGS, WORK REAL(8), DIMENSION(:,:) :: X
#include <sunperf.h>
void dfftzm(int iopt, int m, int n, double scale, double *x, int ldx, doublecomplex *y, int ldy, double *trigs, int *ifac, double *work, int lwork, int *ierr);
void dfftzm_64(long iopt, long m, long n, double scale, double *x, long ldx, doublecomplex *y, long ldy, double *trigs, long *ifac, double *work, long lwork, long *ierr);
dfftzm initializes the trigonometric weight and factor tables or computes the one-dimensional forward Fast Fourier Transform of a set of double precision data sequences stored in a two-dimensional array: .Ve
N1-1
Y(k,l)
= scale * SUM W*X(j,l)
j=0 .Ve
where
k ranges from 0 to N1-1 and l ranges from 0 to N2-1
i = sqrt(-1)
isign = -1 for forward transform
W = exp(isign*i*j*k*2*pi/N1)
In real-to-complex transform of length N1, the (N1/2+1) complex output data points stored are the positive-frequency half of the spectrum of the discrete Fourier transform. The other half can be obtained through complex conjugation and therefore is not stored.
IOPT = 0 computes the trigonometric weight table and factor table
IOPT = -1 computes forward FFT
0 = normal return
-1 = IOPT is not 0 or -1
-2 = M < 0
-3 = N < 0
-4 = (LDX < M) or (LDX not equal 2*LDY when X and Y are same array)
-4 = (LDY < M/2 + 1)
-6 = (LWORK not equal 0) and (LWORK < M)
-7 = memory allocation failed
fft