*** JMFFT - émulation des FFTs de la SciLib de CRAY - (c) CNRS/IDRIS ***

NOM

     CFFTMLT - Applique une Transformée de Fourier rapide (FFT)
               complexe-complexe à un ensemble donné de vecteurs.

SYNTAXE

     CALL CFTFAX (n, ifax, trigs)

     CALL CFFTMLT (ar, ai, work, trigs,	ifax, inc, jump, n, lot, isign)

IMPLEMENTATION

     Ces sous-programmes émulent les sous-programmes de même nom de la SCILIB de
     CRAY. Tous les arguments réels ou complexes doivent être déclarés en
     double précision.

DESCRIPTION

     CFFTMLT applique une FFT complexe-complexe a un ensemble donné de
     vecteurs selon la formule suivante :

				 n-1 
     (ar(inc*k+1),ai(inc*k+1)) = Sum exp(isign*iota*2*pi*j*k/n) (ar(inc*j+1),ai(inc*j+1))
				 j=0	  

     pour k = 0,1,...,n-1

     Ce calcul s'applique aux n vecteurs fournis en entrée.

ARGUMENTS

     ar	   Tableau du type REAL(KIND=8) de dimension n*lot.  (entrée/sortie)
	   En entrée, il contient la partie réelle des données à transformer.
	   En sortie, il contient la partie réelle transformée.

     ai	   Tableau du type REAL(KIND=8) de dimension n*lot.  (entrée/sortie)
	   En entrée, il contient la partie imaginaire des données à transformer.
	   En sortie, il contient la partie imaginaire transformée.

     work  Tableau du type REAL(KIND=8) de dimension 4*n*lot.
           Espace de travail.

     trigs Tableau du type REAL(KIND=8) de dimension 2*n. (entrée) Il doit
           être initialisé afin de contenir la table des sinus et cosinus. Le
           sous-programme suivant permet d'initialiser les tableaux trigs et ifax à
           la fois :

		     CALL CFTFAX (n,ifax,trigs)

     ifax  Tableau du type INTEGER de dimension 19.  (entrée)
	   Il doit être initialisé grâce au sous-programme ci-dessous afin
           de contenir une liste de facteurs de n.

     inc   Scalaire du type INTEGER.  (entrée)
	   Le pas entre deux élements d'un vecteur.

     jump  Scalaire du type INTEGER. (entrée)
           Le pas entre deux vecteurs consécutifs.  inc et jump s'appliquent
           aussi bien à la partie réelle qu'à la partie imaginaire.

     n	   Scalaire du type INTEGER.  (entrée)
	   Longueur de chaque vecteur à transformer. n >= 0.
	   Toute valeur non valide de n conduit le sous-programme CFTFAX
	   à retourner un code d'erreur ifax(1)=-99.

     lot   Scalaire du type INTEGER.  (entrée)
	   Le nombre de vecteurs à transformer.

     isign Scalaire du type INTEGER. (entrée)
	   +1 --> transformée de Fourier
	   -1 --> transformée de Fourier inverse

VOIR AUSSI

     CCFFTM, RFFTMLT
© CNRS-IDRIS 2013