Class FastHadamardTransformer
- java.lang.Object
-
- org.apache.commons.math.transform.FastHadamardTransformer
-
- All Implemented Interfaces:
RealTransformer
public class FastHadamardTransformer extends java.lang.Object implements RealTransformer
Implements the Fast Hadamard Transform (FHT). Transformation of an input vector x to the output vector y.In addition to transformation of real vectors, the Hadamard transform can transform integer vectors into integer vectors. However, this integer transform cannot be inverted directly. Due to a scaling factor it may lead to rational results. As an example, the inverse transform of integer vector (0, 1, 0, 1) is rational vector (1/2, -1/2, 0, 0).
- Since:
- 2.0
-
-
Constructor Summary
Constructors Constructor Description FastHadamardTransformer()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description 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[]
transform(double[] f)
Transform the given real data set.int[]
transform(int[] 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.
-
-
-
Method Detail
-
transform
public double[] transform(double[] f) throws java.lang.IllegalArgumentException
Transform the given real data set.- Specified by:
transform
in interfaceRealTransformer
- Parameters:
f
- the real data array to be transformed (signal)- Returns:
- the real transformed array (spectrum)
- 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.- Specified by:
transform
in interfaceRealTransformer
- Parameters:
f
- the function to be sampled and transformedmin
- the lower bound for the intervalmax
- the upper bound for the intervaln
- the number of sample points- Returns:
- the real transformed array
- Throws:
FunctionEvaluationException
- if function cannot be evaluated at some pointjava.lang.IllegalArgumentException
- if any parameters are invalid
-
inversetransform
public double[] inversetransform(double[] f) throws java.lang.IllegalArgumentException
Inversely transform the given real data set.- Specified by:
inversetransform
in interfaceRealTransformer
- Parameters:
f
- the real data array to be inversely transformed (spectrum)- Returns:
- the real inversely transformed array (signal)
- 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.- Specified by:
inversetransform
in interfaceRealTransformer
- Parameters:
f
- the function to be sampled and inversely transformedmin
- the lower bound for the intervalmax
- the upper bound for the intervaln
- the number of sample points- Returns:
- the real inversely transformed array
- Throws:
FunctionEvaluationException
- if function cannot be evaluated at some pointjava.lang.IllegalArgumentException
- if any parameters are invalid
-
transform
public int[] transform(int[] f) throws java.lang.IllegalArgumentException
Transform the given real data set.The integer transform cannot be inverted directly, due to a scaling factor it may lead to double results.
- Parameters:
f
- the integer data array to be transformed (signal)- Returns:
- the integer transformed array (spectrum)
- Throws:
java.lang.IllegalArgumentException
- if any parameters are invalid
-
-