PDL::FFTW man page on Peanut

Man page or keyword search:  
man Server   7435 pages
apropos Keyword Search (all sections)
Output format
Peanut logo
[printable version]

FFTW(3)		      User Contributed Perl Documentation	       FFTW(3)

NAME
       PDL::FFTW - PDL interface to the Fastest Fourier Transform in the West
       v2.x

DESCRIPTION
       This is a means to interface PDL with the FFTW library. It's similar to
       the standard FFT routine but it's usually faster and has support for
       real transforms. It works well for the types of PDLs for which was the
       library was compiled (otherwise it must do conversions).

SYNOPSIS
	   use PDL::FFTW

	   load_wisdom("file_name");

	   out_cplx_pdl =  fftw(in_cplx_pdl);
	   out_cplx_pdl = ifftw(in_cplx_pdl);

	   out_cplx_pdl =  rfftw(in_real_pdl);
	   out_real_pdl = irfftw(in_cplx_pdl);

	   cplx_pdl = nfftw(cplx_pdl);
	   cplx_pdl = infftw(cplx_pdl);

	   cplx_pdl = Cmul(a_cplx_pdl, b_cplx_pdl);
	   cplx_pdl = Cconj(a_cplx_pdl);
	   real_pdl = Cmod(a_cplx_pdl);
	   real_pdl = Cmod2(a_cplx_pdl);

FFTW documentation
       Please refer to the FFTW documentation for a better understanding of
       these functions.

       Note that complex numbers are represented as piddles with leading
       dimension size 2 (real/imaginary pairs).

FUNCTIONS
       load_wisdom

       Loads the wisdom from a file for better FFTW performance.

       The wisdom is automatically saved when the program ends. It will be
       automagically called when the variable $PDL::FFT::wisdom is set to a
       file name.  For example, the following is a useful idiom to have in
       your .perldlrc file:

	 $PDL::FFT::wisdom = "$ENV{HOME}/.fftwisdom"; # save fftw wisdom in this file

       Explicit usage:

	 load_wisdom($fname);

       fftw

       calculate the complex FFT of a real piddle (complex input, complex
       output)

	  $pdl_cplx = fftw $pdl_cplx;

       ifftw

       Complex inverse FFT (complex input, complex output).

	  $pdl_cplx = ifftw $pdl_cplx;

       nfftw

       Complex inplace FFT (complex input, complex output).

	  $pdl_cplx = nfftw $pdl_cplx;

       infftw

       Complex inplace inverse FFT (complex input, complex output).

	  $pdl_cplx = infftw $pdl_cplx;

       rfftw

       Real FFT. For an input piddle of dimensions [n1,n2,...] the output is
       [2,(n1/2)+1,n2,...] (real input, complex output).

	 $pdl_cplx = fftw $pdl_real;

       irfftw

       Real inverse FFT. Have a look at rfftw to understand the format. USE
       ONLY an even n1! (complex input, real output)

	 $pdl_real = ifftw $pdl_cplx;

       nrfftw

       Real inplace FFT. If you want a transformation on a piddle with
       dimensions [n1,n2,....] you MUST pass in a piddle with dimensions
       [2*(n1/2+1),n2,...] (real input, complex output).

       Use with care due to dimension restrictions mentioned below.  For
       details check the html docs that come with the fftw library.

	 $pdl_cplx = nrfftw $pdl_real;

       inrfftw

       Real inplace inverse FFT. Have a look at nrfftw to understand the
       format. USE ONLY an even first dimension size! (complex input, real
       output)

	 $pdl_real = infftw $pdl_cplx;

       rfftwconv

       ND convolution using real ffts from the FFTW library

	 $conv = rfftwconv $im, kernctr $im, $k; # kernctr is from PDL::FFT

       fftwconv

       ND convolution using complex ffts from the FFTW library

       Assumes real input!

	 $conv = fftwconv $im, kernctr $im, $k; # kernctr is from PDL::FFT

       Cmul

	 Signature: (a(n); b(n); [o]c(n))

       Complex multiplication

	  $out_pdl_cplx = Cmul($a_pdl_cplx,$b_pdl_cplx);

       Cscale

	 Signature: (a(n); b(); [o]c(n))

       Complex by real multiplation.

	 Cscale($a_pdl_cplx,$b_pdl_real);

       Cdiv

	 Signature: (a(n); b(n); [o]c(n))

       Complex division.

	 $out_pdl_cplx = Cdiv($a_pdl_cplx,$b_pdl_cplx);

       Cbmul

	 Signature: (a(n); b(n))

       Complex inplace multiplication.

	  Cbmul($a_pdl_cplx,$b_pdl_cplx);

       Cbscale

	 Signature: (a(n); b())

       Complex inplace multiplaction by real.

	  Cbscale($a_pdl_cplx,$b_pdl_real);

       Cconj

	 Signature: (a(n); [o]c(n))

       Complex conjugate.

	  $out_pdl_cplx = Cconj($a_pdl_cplx);

       Cbconj

	 Signature: (a(n))

       Complex inplace conjugate.

	  Cbconj($a_pdl_cplx);

       Cexp

	 Signature: (a(n); [o]c(n))

       Complex exponentation.

	  $out_pdl_cplx = Cexp($a_pdl_cplx);

       Cbexp

	 Signature: (a(n))

       Complex inplace exponentation.

	  $out_pdl_cplx = Cexp($a_pdl_cplx);

       Cmod

	 Signature: (a(n); [o]c())

       modulus of a complex piddle.

	 $out_pdl_real = Cmod($a_pdl_cplx);

       Carg

	 Signature: (a(n); [o]c())

       argument of a complex number.

	  $out_pdl_real = Carg($a_pdl_cplx);

       Cmod2

	 Signature: (a(n); [o]c())

       Returns squared modulus of a complex number.

	  $out_pdl_real = Cmod2($a_pdl_cplx);

AUTHOR
       Copyright (C) 1999 Christian Pellegrin, 2000 Christian Soeller.	All
       rights reserved. There is no warranty. You are allowed to redistribute
       this software / documentation under certain conditions. For details,
       see the file COPYING in the PDL distribution. If this file is separated
       from the PDL distribution, the copyright notice should be included in
       the file.

perl v5.10.0			  2008-08-29			       FFTW(3)
[top]

List of man pages available for Peanut

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net