cfftcm - initialize the trigonometric weight and factor tables or compute the one-dimensional Fast Fourier Transform (forward or inverse) of a set of data sequences stored in a two-dimensional complex array. =head1 SYNOPSIS
SUBROUTINE CFFTCM( IOPT, N1, N2, SCALE, X, LDX, Y, LDY, TRIGS, IFAC, * WORK, LWORK, IERR) COMPLEX X(LDX,*), Y(LDY,*) INTEGER IOPT, N1, N2, LDX, LDY, LWORK, IERR INTEGER IFAC(*) REAL SCALE REAL TRIGS(*), WORK(*)
SUBROUTINE CFFTCM_64( IOPT, N1, N2, SCALE, X, LDX, Y, LDY, TRIGS, * IFAC, WORK, LWORK, IERR) COMPLEX X(LDX,*), Y(LDY,*) INTEGER*8 IOPT, N1, N2, LDX, LDY, LWORK, IERR INTEGER*8 IFAC(*) REAL SCALE REAL TRIGS(*), WORK(*)
SUBROUTINE FFTM( IOPT, [N1], [N2], [SCALE], X, [LDX], Y, [LDY], * TRIGS, IFAC, WORK, [LWORK], IERR) COMPLEX, DIMENSION(:,:) :: X, Y INTEGER :: IOPT, N1, N2, LDX, LDY, LWORK, IERR INTEGER, DIMENSION(:) :: IFAC REAL :: SCALE REAL, DIMENSION(:) :: TRIGS, WORK
SUBROUTINE FFTM_64( IOPT, [N1], [N2], [SCALE], X, [LDX], Y, [LDY], * TRIGS, IFAC, WORK, [LWORK], IERR) COMPLEX, DIMENSION(:,:) :: X, Y INTEGER(8) :: IOPT, N1, N2, LDX, LDY, LWORK, IERR INTEGER(8), DIMENSION(:) :: IFAC REAL :: SCALE REAL, DIMENSION(:) :: TRIGS, WORK
#include <sunperf.h>
void cfftcm(int iopt, int n1, int n2, float scale, complex *x, int ldx, complex *y, int ldy, float *trigs, int *ifac, float *work, int lwork, int *ierr);
void cfftcm_64(long iopt, long n1, long n2, float scale, complex *x, long ldx, complex *y, long ldy, float *trigs, long *ifac, float *work, long lwork, long *ierr);
cfftcm initializes the trigonometric weight and factor tables or computes the one-dimensional Fast Fourier Transform (forward or inverse) of a set of data sequences stored in a two-dimensional complex array: .Ve
N1-1
Y(k,l)
= 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 inverse transform or -1 for forward transform
W = exp(isign*i*j*k*2*pi/N1)
.Ve
IOPT = 0 computes the trigonometric weight table and factor table
IOPT = -1 computes forward FFT
IOPT = +1 computes inverse FFT
0 = normal return
-1 = IOPT is not 0, 1 or -1
-2 = N1 < 0
-3 = N2 < 0
-4 = (LDX < N1)
-5 = (LDY < N1) or (LDY not equal LDX when X and Y are same array)
-6 = (LWORK not equal 0) and (LWORK < 2*N1*NCPUS)
-7 = memory allocation failed
fft