Go to main content
Oracle Developer Studio 12.5 Man Pages

Exit Print View

Updated: June 2017
 
 

fft (3p)

Name

fft - Fast Fourier transform subroutines

Synopsis

Please see following description for synopsis

Description

Oracle Solaris Studio Performance Library                              fft(3P)



NAME
       fft - Fast Fourier transform subroutines


OVERVIEW
       The  signal  processing  software  in Oracle Solaris Studio Performance
       Library includes a set of routines based on public domain packages FFT-
       PACK  and VFFPACK that computes the Fast Fourier Transform.  These rou-
       tines are now being replaced by a new interface (Perflib interface).


MAPPING
       Below is a mapping of routines from the FFTPACK interface and  the  new
       Perflib interface.  See individual man pages for more detail.

       FFTPACK interface       Perflib interface

       RFFTF (DFFTF)           SFFTC (DFFTZ)
       RFFTB (DFFTB)           CFFTS (ZFFTD)
       CFFTF (ZFFTF)           CFFTC (ZFFTZ)
       EZFFTF (DEZFFTF)        SFFTC (DFFTZ)
       EZFFTB (DEZFFTB)        CFFTS (ZFFTD)
       CFFTB (ZFFTB)           CFFTC (ZFFTZ)
       RFFT2F (DFFT2F)         SFFT2C (DFFT2Z)
       RFFT2B (DFFT2B)         CFFT2S (ZFFT2D)
       CFFT2F (ZFFT2F)         CFFT2C (ZFFT2Z)
       CFFT2B (ZFFT2B)         CFFT2C (ZFFT2Z)
       RFFT3F (DFFT3F)         SFFT3C (DFFT3Z)
       RFFT3B (DFFT3B)         CFFT3S (ZFFT3D)
       CFFT3B (ZFFT3B)         CFFT3C (ZFFT3Z)
       CFFT3F (ZFFT3F)         CFFT3C (ZFFT3Z)
       VCFFTF (VZFFTF)         CFFTCM (ZFFTZM)
       VCFFTB (VZFFTB)         CFFTCM (ZFFTZM)
       VRFFTF (VDFFTF)         SFFTCM (DFFTZM)
       VRFFTB (VDFFTB)         CFFTSM (ZFFTDM)
       RFFTI (DFFTI)           SFFTC (DFFTZ), CFFTS (ZFFTD)
       CFFTI (ZFFTI)           CFFTC (ZFFTZ)
       EZFFTI (DEZFFTI)        SFFTC (DFFTZ), CFFTS (ZFFTD)
       RFFT2I (DFFT2I)         SFFTC2 (DFFTZ2), CFFTS2 (ZFFTD2)
       RFFT3I (DFFT3I)         SFFTC3 (DFFTZ3), CFFTS3 (ZFFTD3)
       CFFT2I (ZFFT2I)         CFFTC2 (ZFFTZ2)
       CFFT3I (ZFFT3I)         CFFTC3 (ZFFTZ3)
       VCFFTI (VZFFTI)         CFFTCM (ZFFTZM)
       VRFFTI (VDFFTI)         SFFTCM (DFFTZM), CFFTSM (ZFFTDM)


NOTES
       Unlike  the  FFTPACK  interface, the Perflib interface does not provide
       separate routines for initialization.  Computation  and  initialization
       can be selected by an argument in the calling sequence of each routine.
       Similar to the FFTPACK routines, the weight and factor tables  need  to
       be  initialized  once  for  a  particular transform length.  Once these
       tables are initialized, they can be used repeatedly to compute the for-
       ward  and  inverse  tranforms for different data sets until, of course,
       the transform length is changed.  The appropriate transform routine  is
       then called to initialize the tables for the new length.



       The  Perflib  interface  gives the user the option of computing the FFT
       in-place (input  overwritten  by  transform  results)  or  out-of-place
       (input  unchanged) in every routine.  When an out-of-place transform is
       requested, the input and output arrays  must  not  overlap  in  memory.
       In-place  transforms  require that there be perfect overlay between the
       input and output arrays.  That is, the arrays must begin  at  the  same
       memory location.  The routines assume (and therefore do not check) that
       these conditions are satisfied.  In some cases, the dimension(s) of the
       input  and output arrays are related to each other.  Below is a summary
       of requirements of the array dimensions.   LDX1  and  LDX  are  leading
       dimensions  of the input arrays and LDY1 and LDY are leading dimensions
       of the output arrays.  LDX2 and LDY2 are the second dimensions  of  the
       input  and output arrays, respectively.  M and N are the first and sec-
       ond actual dimensions of the problem.

       Routine name      in-place       out-of-place

       SFFTCM, DFFTZM    LDX = 2*LDY    LDX >= M
                         LDY >= M/2+1  LDY >= M/2+1

       CFFTSM, ZFFTDM    LDX >= M/2+1  LDX >= M/2+1
                         LDY = 2*LDX    LDY >= M

       CFFTCM, ZFFTZM    LDX >= M      LDX >= M
                         LDY = LDX      LDY >= M

       SFFTC2, DFFTZ2    LDX = 2*LDY    LDX >= M
                         LDY >= M/2+1  LDY >= M/2+1

       CFFTS2, ZFFTD2    LDX >= M/2+1  LDX >= M/2+1
                         LDY = 2*LDX    LDY >= 2*LDX; LDY is even

       CFFTC2, ZFFTZ2    LDX >= M      LDX >= M
                         LDY = LDX      LDY >= M

       CFFTS3, ZFFTD3    LDX1 >= M/2+1 LDX1 >= M/2+1
                         LDX2 >= N     LDX2 >= N
                         LDY1 = 2*LDX1  LDY1 >= 2*LDX1; LDY1 is even
                         LDY2 = LDX2    LDY2 >= N

       CFFTC3, ZFFTZ3    LDX1 >= M     LDX1 >= M
                         LDX2 >= N     LDX2 >= N
                         LDY1 = LDX1    LDY1 >= M
                         LDY2 = LDX2    LDY2 >= N

       SFFTC3, DFFTZ3    LDX1 = 2*LDY1  LDX1 >= M
                         LDX2 >= N     LDX2 >= N
                         LDY1 >= M/2+1 LDY1 >= M/2+1
                         LDY2 = LDX2    LDY2 >= N


       In routines that compute transforms between complex and real data  type
       such  as  SFFTC2  or CFFTS3 even though the transform length is M, only
       (M/2+1) complex data points are referenced  or  computed.   These  data
       points  make up the positive-frequency half of the spectrum of the Dis-
       crete Fourier Transform.  The remaining M-(M/2+1) data  points  can  be
       easily  derived since they are complex conjugates and therefore are not
       stored or referenced.



                                  7 Nov 2015                           fft(3P)