Update of /cvsroot/audacity/lib-src/libnyquist/nyquist/ffts
In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv8506/ffts

Added Files:
        README.txt abstract 
Log Message:
Updating to Nyquist v3.03.


--- NEW FILE: abstract ---
Subject:     FFT for RISC 2.0
To:          [email protected]
Enclosure:   FFTs-for-RISC-2.sit

Enclosed is a stuffit archive of version 2.0 of my 'C' source code fft library.

   Very-Fast Fourier Transform routines.  Routines are provided for real and 
complex
forward and inverse 1d and 2d fourier transforms and 3d complex forward and 
inverse ffts.
I coded these to optimize execution speed on Risc processors like the PowerPC.
All fft sizes must still be a power of two.
Test programs based on the Numerical Recipes in C routines are provided.
Also included are some simple applications with source code which time the FFTs.
See the enclosed read me file for more information.

Revision version 2.0:
                Rewrote code to rely more on compiler optimization (and be less 
ugly.)
                Removed restrictions on too small or too large ffts.
                Provided a library extension that manages memory for cosine and 
bit
reversed counter tables.
                Added 2d and 3d complex and 2d real ffts.
                Speeded routines for data too large to fit in primary cache.
                Changed most testing from Matlab to Numerical Recipes based 
(because its cheaper.)
                Changed call parameters (watch out.)
Revision version 1.21:
       line 126 of rfftTest.c corrected.
Revisions version 1.2:
       I now store the Nyquest point of the real transform where the 0 for the 
DC term's
imaginary part used to be.  !! WATCH OUT FOR THIS IF YOU USE rfft !!
       Added the real inverse Fourier transform.

Revisions version 1.1:
       Re-arranged to put fft routines in a shared library and changed source 
file name to fftlib.c.
       Removed some ugly optimizations that are no longer needed for 
CodeWarrier.

This code is public domain, do anything you want to with it.

[Moderators- This file should replace ffts-for-risc-121-c.hqx and can be 
included on any CD]

--- NEW FILE: README.txt ---
This directory contains a public domain FFT library which was optimized
for speed on RISC processors such as the PowerPC.  All ffts
use single precision floats, for double precision just use a
global search and replace to change float to double in all 
source files.
Codewarrier Pro 1.0 project files are also supplied.

** Warning **   Perform rigorous testing to
your own standards before using this code.

 (John Green) [email protected]

files:
        fftTiming
Application to time complex ffts

        rfftTiming
Application to time real ffts

// Directory: fft libraries

files:

        fftext.c
Library of in-place fast fourier transforms. Contains forward 
and inverse complex and real transforms.  The real fft's expect the
frequency domain data to have the real part of the fsamp/2 bin (which
has a 0 imaginary part) to be stored in the location for the imaginary
part of the DC bin (the DC bin of real data is also strictly real.)
You must first call an initialization routine fftInit  before calling 
the fft computation routines ffts, iffts, rffts and riffts.
The init routines malloc the memory to store the cosine and
bit reversed counter tables as well as initializing their values.

        fftlib.c
Lower level library of in-place fast fourier transforms. Same as fftext.c but 
you
need to manage the mallocs for the cosine and bit reversed tables yourself.


        fft2d.c
Library of 2d and 3d complex and 2d real in-place fast fourier transforms.
The init routine fft2dInit must be called before using the 2d routines and
fft3dInit must be called before using the 3d routines.  These init routines
will also call the appropriate 1d init routines in fftext.c

        matlib.c
Matrix transpose routines used by fft2d.c and complex vector multiply
for forming the product of two spectra.

        dxpose.c
Double precision matrix transpose for quick single precision complex transposing

// Directory: timing code
This directory contains the source to fftTiming and rfftTiming

// Directory: Numerical Recipes testing
This directory contains files used to test the various fft routines using
the Numerical Recipes in C routines as a baseline.  These routines can be 
purchased
in PeeCee (after expanding you can move them to a Mac) format from:
http://cfata2.harvard.edu/numerical-recipes/
Unfortunately Numerical Recipes defines its forward and inverse fft's backwards.
For complex fft's I just use their inverse fft as a forward one, but for real 
ffts
their forward fft followed by my inverse fft reverses the data.  They also have 
ugly matrix
and tensor data types and start their indices with one, Fortran style, but 
these are
minor annoyances.

// Directory: Matlab testing
This directory contains files to test fast 1d and 2d convolution with Matlab 
used to
verify the results.  An example of using Matlab to test the fft library 
routines is
also given for the 2d real fft.


------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
Audacity-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/audacity-cvs

Reply via email to