Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.commons.math.transform
Class FastCosineTransformer

    java.lang.Object
      org.apache.commons.math.transform.FastCosineTransformer

All Implemented Interfaces:
  RealTransformer

    public class FastCosineTransformer

extends java.lang.Object
implements RealTransformer

Implements the Fast Cosine Transform for transformation of one-dimensional data sets. For reference, see Fast Fourier Transforms, ISBN 0849371635, chapter 3.

FCT is its own inverse, up to a multiplier depending on conventions. The equations are listed in the comments of the corresponding methods.

Different from FFT and FST, FCT requires the length of data set to be power of 2 plus one. Users should especially pay attention to the function transformation on how this affects the sampling.

As of version 2.0 this no longer implements Serializable

Since:
  1.2
Version:
  $Revision:670469 $ $Date:2008-06-23 10:01:38 +0200 (lun., 23 juin 2008) $

Constructor Summary
`FastCosineTransformer()` Construct a default transformer.

Method Summary
`protected double[]` | `fct(double[] f)` Perform the FCT algorithm (including inverse).
`double[]` | `inversetransform(double[] f)` Inversely transform the given real data set.
`double[]` | `inversetransform(UnivariateRealFunction f, double min, double max, int n)` Inversely transform the given real function, sampled on the given interval.
`double[]` | `inversetransform2(double[] f)` Inversely transform the given real data set.
`double[]` | `inversetransform2(UnivariateRealFunction f, double min, double max, int n)` Inversely transform the given real function, sampled on the given interval.
`double[]` | `transform(double[] f)` Transform the given real data set.
`double[]` | `transform(UnivariateRealFunction f, double min, double max, int n)` Transform the given real function, sampled on the given interval.
`double[]` | `transform2(double[] f)` Transform the given real data set.
`double[]` | `transform2(UnivariateRealFunction f, double min, double max, int n)` Transform the given real function, sampled on the given interval.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### FastCosineTransformer

    public FastCosineTransformer()

  Construct a default transformer.

Method Detail

### transform

    public double[] transform(double[] f)
                       throws java.lang.IllegalArgumentException

  Transform the given real data set.

  The formula is Fn = (1/2) [f0 + (-1)n fN] + ∑k=1N-1 fk cos(π nk/N)

  Specified by:
    `transform` in interface `RealTransformer`
  Parameters:
    `f` - the real data array to be transformed
  Returns:
    the real transformed array
  Throws:
    `java.lang.IllegalArgumentException` - if any parameters are invalid

### transform

    public double[] transform(UnivariateRealFunction f,
                              double min,
                              double max,
                              int n)
                       throws FunctionEvaluationException,
                              java.lang.IllegalArgumentException

  Transform the given real function, sampled on the given interval.

  The formula is Fn = (1/2) [f0 + (-1)n fN] + ∑k=1N-1 fk cos(π nk/N)

  Specified by:
    `transform` in interface `RealTransformer`
  Parameters:
    `f` - the function to be sampled and transformed
    `min` - the lower bound for the interval
    `max` - the upper bound for the interval
    `n` - the number of sample points
  Returns:
    the real transformed array
  Throws:
    `FunctionEvaluationException` - if function cannot be evaluated at some point
    `java.lang.IllegalArgumentException` - if any parameters are invalid

### transform2

    public double[] transform2(double[] f)
                        throws java.lang.IllegalArgumentException

  Transform the given real data set.

  The formula is Fn = √(1/2N) [f0 + (-1)n fN] + √(2/N) ∑k=1N-1 fk cos(π nk/N)

  Parameters:
    `f` - the real data array to be transformed
  Returns:
    the real transformed array
  Throws:
    `java.lang.IllegalArgumentException` - if any parameters are invalid

### transform2

    public double[] transform2(UnivariateRealFunction f,
                               double min,
                               double max,
                               int n)
                        throws FunctionEvaluationException,
                               java.lang.IllegalArgumentException

  Transform the given real function, sampled on the given interval.

  The formula is Fn = √(1/2N) [f0 + (-1)n fN] + √(2/N) ∑k=1N-1 fk cos(π nk/N)

  Parameters:
    `f` - the function to be sampled and transformed
    `min` - the lower bound for the interval
    `max` - the upper bound for the interval
    `n` - the number of sample points
  Returns:
    the real transformed array
  Throws:
    `FunctionEvaluationException` - if function cannot be evaluated at some point
    `java.lang.IllegalArgumentException` - if any parameters are invalid

### inversetransform

    public double[] inversetransform(double[] f)
                              throws java.lang.IllegalArgumentException

  Inversely transform the given real data set.

  The formula is fk = (1/N) [F0 + (-1)k FN] + (2/N) ∑n=1N-1 Fn cos(π nk/N)

  Specified by:
    `inversetransform` in interface `RealTransformer`
  Parameters:
    `f` - the real data array to be inversely transformed
  Returns:
    the real inversely transformed array
  Throws:
    `java.lang.IllegalArgumentException` - if any parameters are invalid

### inversetransform

    public double[] inversetransform(UnivariateRealFunction f,
                                     double min,
                                     double max,
                                     int n)
                              throws FunctionEvaluationException,
                                     java.lang.IllegalArgumentException

  Inversely transform the given real function, sampled on the given interval.

  The formula is fk = (1/N) [F0 + (-1)k FN] + (2/N) ∑n=1N-1 Fn cos(π nk/N)

  Specified by:
    `inversetransform` in interface `RealTransformer`
  Parameters:
    `f` - the function to be sampled and inversely transformed
    `min` - the lower bound for the interval
    `max` - the upper bound for the interval
    `n` - the number of sample points
  Returns:
    the real inversely transformed array
  Throws:
    `FunctionEvaluationException` - if function cannot be evaluated at some point
    `java.lang.IllegalArgumentException` - if any parameters are invalid

### inversetransform2

    public double[] inversetransform2(double[] f)
                               throws java.lang.IllegalArgumentException

  Inversely transform the given real data set.

  The formula is fk = √(1/2N) [F0 + (-1)k FN] + √(2/N) ∑n=1N-1 Fn cos(π nk/N)

  Parameters:
    `f` - the real data array to be inversely transformed
  Returns:
    the real inversely transformed array
  Throws:
    `java.lang.IllegalArgumentException` - if any parameters are invalid

### inversetransform2

    public double[] inversetransform2(UnivariateRealFunction f,
                                      double min,
                                      double max,
                                      int n)
                               throws FunctionEvaluationException,
                                      java.lang.IllegalArgumentException

  Inversely transform the given real function, sampled on the given interval.

  The formula is fk = √(1/2N) [F0 + (-1)k FN] + √(2/N) ∑n=1N-1 Fn cos(π nk/N)

  Parameters:
    `f` - the function to be sampled and inversely transformed
    `min` - the lower bound for the interval
    `max` - the upper bound for the interval
    `n` - the number of sample points
  Returns:
    the real inversely transformed array
  Throws:
    `FunctionEvaluationException` - if function cannot be evaluated at some point
    `java.lang.IllegalArgumentException` - if any parameters are invalid

### fct

    protected double[] fct(double[] f)
                    throws java.lang.IllegalArgumentException

  Perform the FCT algorithm (including inverse).

  Parameters:
    `f` - the real data array to be transformed
  Returns:
    the real transformed array
  Throws:
    `java.lang.IllegalArgumentException` - if any parameters are invalid

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright (c) 2003-2011 Apache Software Foundation