NAME

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(*)

F95 INTERFACE

  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

C INTERFACE

#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);


PURPOSE

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.


ARGUMENTS


SEE ALSO

fft