RFFTMLT,DFFTMLT(3)          MathKeisan FFT routine          RFFTMLT,DFFTMLT(3)



NAME
       rfftmlt,     dfftmlt     -     one-dimensional     multiple    real-to-
                              complex or complex-to-real FFT. (OpenMP Parallel
       Support).

SYNOPSIS
       libfft.a

          INTEGER ifax(32), inc, jump, n, lot, isign
          REAL    x(n+2,lot), work(3*n*lot), trigs(2*n)
          CALL RFFTMLT ( x, work, trigs, ifax, inc, jump, n, lot, isign )

          INTEGER      ifax(32), inc, jump, n, lot, isign
          REAL(kind=8) x(n+2,lot),work(3*n*lot), trigs(2*n)
          CALL DFFTMLT ( x, work, trigs, ifax, inc, jump, n, lot, isign )

       libfft_64.a

          INTEGER(kind=8) ifax(32), inc, jump, n, lot, isign
          REAL(kind=8)    x(n+2,lot), work(3*n*lot), trigs(2*n)
          CALL RFFTMLT ( x, work, trigs, ifax, inc, jump, n, lot, isign )

          INTEGER(kind=8) ifax(32), inc, jump, n, lot, isign
          REAL(kind=8)    x(n+2,lot), work(3*n*lot), trigs(2*n)
          CALL DFFTMLT ( x, work, trigs, ifax, inc, jump, n, lot, isign )

DESCRIPTION
       This  subroutine computes in place the one-dimensional discrete Fourier
       transform of the lot real or complex vectors stored in x.   The  trans-
       formed data replaces the original contents of the real array x.  Please
       consult the ARGUMENTS list for more detail on the input and output for-
       mat of [RD]FFTMLT.

       Conceptually,  if  we  consider  a real-to-complex transformation (i.e.
       isign = -1) of a real vector stored in x, then  its  transform,  y,  is
       expressed  by  the  following formula, where x and y are dimensioned as
       x(0:n-1) and y(0:n/2), respectively:


                      n-1

       y(k) = (1/n) * Sum x(j) * exp(-j*k*2*pi*i/n)

                      j=0


       for k = 0, ..., n/2, where i = sqrt(-1).

       The corresponding complex-to-real transform is similar,  but  with  the
       exponent having positive sign:


              n-1

       y(k) = Sum x(j) * exp(j*k*2*pi*i/n)

              j=0


       Note  that  both  ifax  and  trigs  must  be initialized with a call to
       [FD]FTFAX prior to the computation of any transforms.  Furthermore, the
       values  of  ifax  and trigs are valid only for the value of n specified
       for the call to [FD]FTFAX; if multiple values of n  are  desired,  then
       multiple calls to [FD]FTFAX are required.

       A  result  of Fourier theory is that a transform of real data is conju-
       gate symmetric; hence, only the first n/2 + 1 complex  data  points  of
       each data set will be output by this routine.

       Set  the OpenMP environmental variable OMP_NUM_THREADS to the number of
       threads you would like to use.



ARGUMENTS
       Input

       x      Contains the input values before the  call  to  [RD]FFTMLT,  and
              output  values  after the call.  When isign = -1, x contains the
              lot  real  vectors  of  length  n.(i.e  (x(j,m)  is  stored   in
              X(j*inc,m) for j=0,1,.., n-1 and m=1,2,..,lot).  When isign = 1,
              x contains the lot complex vectors  of  length  n/2  +  1.  (i.e
              Real(x(j,m))  is  stored  in  X(2*k*inc,m), Imaginary(x(k,m)) is
              stored in X((2*k+1)*inc,m) for k=0,1,..,n/2  and m=1,2,..,lot.

       inc    Storage increment between successive elements in  a  given  data
              set in x, (inc>0).

       jump   Storage  increment  between corresponding elements in successive
              data sets in x, (jump>0).

       n      Number of data elements in a given data set in x, (n>0).

       lot    Number of data sets in x to transform, (lot>0).

       isign  Determines the sign of the exponential in the transform.   Addi-
              tionally,  for isign = -1, [RD]FFTMLT performs a real-to-complex
              multiple FFT; for isign = 1, [RD]FFTMLT performs  a  complex-to-
              real multiple FFT.

       Working Storage

       work   Workspace for computing the transform.

       trigs  A  table  of  relevant trigonometric values.  trigs must be ini-
              tialized by a call to [FD]FTFAX prior to the call to [RD]FFTMLT.

       ifax   A  table  of  relevant  factorization information.  ifax must be
              initialized by  a  call  to  [FD]FTFAX  prior  to  the  call  to
              [RD]FFTMLT.

       Output

       x      The  transformed  data  sets.  When isign = -1, contains the lot
              complex vectors of length n/2 + 1.  When isign = 1, contains the
              lot real vectors of length n.



SciLib routine                                              RFFTMLT,DFFTMLT(3)