·  Home
+   man pages
 -> Linux -> FreeBSD -> OpenBSD -> NetBSD -> Tru64 Unix -> HP-UX 11i -> IRIX
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

man pages->IRIX man pages -> complib/scfftm1du (3)
 Title
 Content
 Arch
 Section All Sections 1 - General Commands 2 - System Calls 3 - Subroutines 4 - Special Files 5 - File Formats 6 - Games 7 - Macros and Conventions 8 - Maintenance Commands 9 - Kernel Interface n - New Commands

### Contents

```
scfftm1du,dzfftm1du(3F)				       scfftm1du,dzfftm1du(3F)

```

### NAME[Toc][Back]

```     scfftm1du,	dzfftm1du - Multiple 1D, Real to Complex, Direct Fast Fourier
Transforms.
```

### SYNOPSYS[Toc][Back]

```     Fortran :
subroutine	scfftm1du( sign, n, p, array, inc, lda,	coef )
integer	     sign, n, p, inc, lda
real		     array(lda,p), coef(n+15)

subroutine	dzfftm1du( sign, n, p, array, inc, lda,	coef )
integer	     sign, n, p, inc, lda
real*8	     array(lda,p), coef(n+15)

C :
#include <fft.h>
int scfftm1du ( int sign, int n, int p, float *array,
int inc,	int lda, float *coef);
int dzfftm1du ( int sign, int n, int p, double *array,
int inc,	int lda, double	*coef);

```

### DESCRIPTION[Toc][Back]

```     scfftm1du and dzfftm1du compute the complex Fourier transform of P	real
sequences of N samples each. The k-th index F(k) of the Transform of an N
sample sequence f(i) is equal to:
F(k) = Sum ( W^(i*k) * f(i) ), for i =0, ...,	(N-1)
W = exp(	(Sign*2*sqrt(-1)*PI) / N )

The Fourier transforms are	computed in-place so the input sequence	is
overwritten by the	Fourier	transform output. As the input sequences have
real values, only half of the results are computed	since the (N-k)-th
sample of the transform would be the conjugate of the k-th	sample.

However, some extra space is necessary. For an N sample input sequence,
the complex output	of the transform takes ((N+2)/2) complex values.  This
represents	either N+1(odd case) or	N+2(even case) real values, that's one
or	two more real values than the input.

```

### PARAMETERS[Toc][Back]

```     SIGN Integer specifying which sign	to be used for the expression of W
(see above) - must	be either +1 or	-1.  Unchanged on exit.

N Integer,	the number of samples in each sequence.	 Unchanged on exit.

P Integer,	the number of sequences.  Unchanged on exit.

Page 1

scfftm1du,dzfftm1du(3F)				       scfftm1du,dzfftm1du(3F)

ARRAY Array containing the	samples	of the sequence	to be transformed.
On	input, the element "i" of the sequence "j" is stored as	A(i*inc,j) in
Fortran , and A[i*inc+j*lda] in C.
On	exit, the array	is overwritten by its transform.

INC Integer, increment between two	consecutive elements of	a sequence.
Unchanged on exit.

LDA Integer, leading dimension: increment between the first samples of
two consecutive sequences.	 Unchanged on exit.

COEFF Array of at least ( N + 15 )	elements.  On entry it contains	the
Sines/Cosines and factorization of	N. COEFF needs to be initialized with
a call to scfftm1dui or dzfftm1dui.  Unchanged on exit.

Example	of Calling Sequence
1D	FFTs computed on 64 sequences of 1024 real values each.	The elements
of	each sequence are stored with increment	(stride) 1, and	the offset
between the first element of two succesive	sequence (leading dimension)
is	1026.
Note : 1026 >= 1024+2 .
Fortran
real array(0:1026-1,0:64-1), coeff(1024+15)
call scfftm1dui( 1024, coeff)
call scfftm1du( -1, 1024, 64,	array, 1, 1026,	coeff)

C
#include <fft.h>
float	array[64*1026],	*coeff;
coeff	= scfftm1dui( 1024, NULL);
scfftm1du( -1, 1024, 64, array, 1, 1026, coeff);
```

```     fft, scfftm1dui, dzfftm1dui, scfft1du, dzfft1du, csfftm1du, zdfftm1du