Rogue Wave banner
Previous fileTop of DocumentContentsIndex pageNext file
Essential Math Module User's Guide
Rogue Wave web site:  Home Page  |  Main Documentation Page

4.1 Overview

Three fast Fourier transform (FFT) servers are included in the Essential Math Module class library:

In addition, a fast sine/cosine transform server is included:

The only restriction on the length of a vector that can be transformed is that a real RWMathVec<double> must have an even number of points. In particular, vector lengths need not be a power of 2, although the transform is more efficient if they are. More generally, vectors with lengths that have small prime factors transform the most efficiently. By definition, a power of 2 has prime factors of 2—the smallest of all.

At any given moment, a server is configured to transform a vector of a specified length. The appropriate weights, which are actually the roots of one of the prime factors, are stored internally. This length can be set:

Because reconfiguring for a new vector length is a relatively expensive process, if more than one vector length must be transformed within a program, it is better to build several servers rather than to keep reconfiguring one. This means it is possible to transform efficiently and conveniently more than one vector length within a stretch of code, something that is difficult to do with conventional Fortran-based FFT functions.

See the SourcePro C++ API Reference Guide for a description of the exact transforms that are calculated.



Previous fileTop of DocumentContentsNo linkNext file

Copyright © Rogue Wave Software, Inc. All Rights Reserved.

The Rogue Wave name and logo, and SourcePro, are registered trademarks of Rogue Wave Software. All other trademarks are the property of their respective owners.
Provide feedback to Rogue Wave about its documentation.