source: trunk/NS3D_JMC/JMFFT-8.0/doc/fftfax.html @ 12

Last change on this file since 12 was 12, checked in by xlvlod, 17 years ago

ajout code NS3D

File size: 3.5 KB
Line 
1<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
2<HTML>
3  <HEAD>
4    <title>RFFTMLT</title>
5  </HEAD>
6
7  <BODY  BGCOLOR="#fdf5e6">
8<PRE>
9<B>*** JMFFT 8.0 - émulation des FFTs de la SciLib de CRAY - (c) CNRS/IDRIS ***</B>
10
11<B>NOM</B>
12
13     RFFTMLT - Applique une Transformée de Fourier rapide (FFT)
14               complexe-réelle ou réelle-complexe à un ensemble donné de vecteurs.
15
16<B>SYNTAXE</B>
17
18     CALL FFTFAX(n, ifax, trigs)
19
20     CALL RFFTMLT (x, work, trigs, ifax, inc1x, inc2x, n, lot, isign)
21
22<B>IMPLEMENTATION</B>
23
24     Ces sous-programmes émulent les sous-programmes de même nom de la SCILIB de
25     CRAY. Tous les arguments réels ou complexes doivent être déclarés en
26     double précision.
27
28<B>DESCRIPTION</B>
29
30     Quand isign=-1, RFFTMLT applique une FFT réelle-complexe à un ensemble
31     donné de vecteurs. Pour chacun des m vecteurs réels x(j,m) j = 0,1,...,n-1,
32     RFFTMLT calcule le vecteur complexe y(k,m) k = 0,1,...,n/2 tel que :
33
34                                    n-1
35                       y(k,m) = 1/n Sum  x(j,m) (w(n)**(-j*k))
36                                    j=0
37
38          pour      k = 0,1,...,n/2,
39          où,    w(n) = exp((2*pi*i)/n).
40
41     Quand isign = +1, RFFTMLT applique une FFT complexe-réelle (FFT
42     inverse). pour chacun des m vecteur complexe y(k,m) k = 0,1,...,n/2,
43     RFFTMLT calcule le vecteur réel x(j,m) j = 0,1,...,n-1 tel que :
44
45                       n-1
46             x(j,m) =  Sum  y(k,m) (w(n)**(j*k))
47                       k=0
48
49     pour       j = 0,1,...,n-1
50     où,     w(n) = exp((2*pi*i)/n)
51
52<B>ARGUMENTS</B>
53
54     x     Tableau du type REAL(KIND=8) de dimension (0:n+1, lot). (entrée/sortie)
55           En entrée, il contient les éléments à transformer.
56           En sortie, il contient les éléments transformés.
57           La première dimension doit être au moins égale à n+2.
58
59     work  Tableau du type REAL(KIND==8) de dimension 2*n*lot.
60           Espace de travail.
61
62     trigs Tableau du type REAL(KIND==8) de dimension 2*n. (entrée) Il
63           contient la table des sinus et cosinus. Le sous-programme suivant
64           initialise les deux tableaux trigs et ifax à la fois :
65
66                CALL FFTFAX(n, ifax, trigs)
67
68     ifax  Tableau du type INTEGER de dimension 19.  (entrée)
69           Il contient la liste des facteurs premiers de n.
70           Il est initialisé à l'appel du sous-programme FFTFAX (voir ci-dessus).
71
72     inc1x Scalaire du type INTEGER.  (entrée)
73           Le pas de déplacement en nombre d'éléments réels dans chaque
74           vecteur à transformer.
75
76     inc2x Scalaire du type INTEGER.  (entrée)
77           Le déplacement entre les premiers éléments de deux vecteurs consécutifs.
78
79     n     Scalaire du type INTEGER. (entrée)
80           Longueur de chaque vecteur à transformer. n >= 2.
81           n doit être un nombre paire.
82
83           Toute valeur non valide de n conduit le sous-programme FFTFAX à retourner
84           un code d'erreur ifax(1)=-99.
85
86     lot   Scalaire du type INTEGER. (entrée)
87           Le nombre de vecteurs à transformer.
88
89     isign Scalaire du type INTEGER. (entrée)
90           -1 --> applique une FFT réelle-complexe.
91           +1 --> applique une FFT  complexe-réelle (FFT inverse).
92
93<B>EXEMPLES</B>
94
95     Le programme suivant montre les séquences d'appels à FFTFAX et RFFTMLT
96     pour calculer la FFT du tableau A :
97
98          INTEGER, PARAMETER :: n = 16, lot = 2, inc = 1, jump = inc*(n+2)
99          REAL(KIND=8), DIMENSION(jump, lot) :: a
100          REAL(KIND=8), DIMENSION(2*n)       :: trigs
101          REAL(KIND=8), DIMENSION(2*n*lot)   :: work
102          INTEGER, DIMENSION(19)             :: ifax
103          . . .
104          CALL FFTFAX(n, ifax, trigs)
105          CALL RFFTMLT(a, work, trigs, ifax, inc, jump, n, lot, -1)
106          . . .
107
108<B>VOIR AUSSI</B>
109
110     RFFTMLT
111</PRE>
112
113<!--#include virtual="/includes/fin.html" -->
114</BODY>
115</HTML>
Note: See TracBrowser for help on using the repository browser.