org.apache.commons.math.transform
Class FastFourierTransformer.RootsOfUnity

java.lang.Object
  extended by org.apache.commons.math.transform.FastFourierTransformer.RootsOfUnity
All Implemented Interfaces:
java.io.Serializable
Enclosing class:
FastFourierTransformer

private static class FastFourierTransformer.RootsOfUnity
extends java.lang.Object
implements java.io.Serializable

Computes the nth roots of unity. A cache of already computed values is maintained.


Field Summary
private  boolean isForward
          Forward/reverse indicator.
private  int omegaCount
          Number of roots of unity.
private  double[] omegaImaginaryForward
          Imaginary part of the roots for forward transform.
private  double[] omegaImaginaryInverse
          Imaginary part of the roots for reverse transform.
private  double[] omegaReal
          Real part of the roots.
private static long serialVersionUID
          Serializable version id.
 
Constructor Summary
FastFourierTransformer.RootsOfUnity()
          Build an engine for computing then th roots of unity
 
Method Summary
 void computeOmega(int n)
          Computes the nth roots of unity.
 double getOmegaImaginary(int k)
          Get the imaginary part of the kth nth root of unity
 double getOmegaReal(int k)
          Get the real part of the kth nth root of unity
 boolean isForward()
          Check if computation has been done for forward or reverse transform.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

serialVersionUID

private static final long serialVersionUID
Serializable version id.

See Also:
Constant Field Values

omegaCount

private int omegaCount
Number of roots of unity.


omegaReal

private double[] omegaReal
Real part of the roots.


omegaImaginaryForward

private double[] omegaImaginaryForward
Imaginary part of the roots for forward transform.


omegaImaginaryInverse

private double[] omegaImaginaryInverse
Imaginary part of the roots for reverse transform.


isForward

private boolean isForward
Forward/reverse indicator.

Constructor Detail

FastFourierTransformer.RootsOfUnity

public FastFourierTransformer.RootsOfUnity()
Build an engine for computing then th roots of unity

Method Detail

isForward

public boolean isForward()
                  throws java.lang.IllegalStateException
Check if computation has been done for forward or reverse transform.

Returns:
true if computation has been done for forward transform
Throws:
java.lang.IllegalStateException - if no roots of unity have been computed yet

computeOmega

public void computeOmega(int n)
                  throws java.lang.IllegalArgumentException
Computes the nth roots of unity.

The computed omega[] = { 1, w, w2, ... w(n-1) } where w = exp(-2 π i / n), i = &sqrt;(-1).

Note that n is positive for forward transform and negative for inverse transform.

Parameters:
n - number of roots of unity to compute, positive for forward transform, negative for inverse transform
Throws:
java.lang.IllegalArgumentException - if n = 0

getOmegaReal

public double getOmegaReal(int k)
                    throws java.lang.IllegalStateException,
                           java.lang.IllegalArgumentException
Get the real part of the kth nth root of unity

Parameters:
k - index of the nth root of unity
Returns:
real part of the kth nth root of unity
Throws:
java.lang.IllegalStateException - if no roots of unity have been computed yet
java.lang.IllegalArgumentException - if k is out of range

getOmegaImaginary

public double getOmegaImaginary(int k)
                         throws java.lang.IllegalStateException,
                                java.lang.IllegalArgumentException
Get the imaginary part of the kth nth root of unity

Parameters:
k - index of the nth root of unity
Returns:
imaginary part of the kth nth root of unity
Throws:
java.lang.IllegalStateException - if no roots of unity have been computed yet
java.lang.IllegalArgumentException - if k is out of range


Copyright (c) 2003-2010 Apache Software Foundation