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.IllegalArgumentExceptionTransform the given real data set.- Specified by:
transformin 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:
transformin 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.IllegalArgumentExceptionInversely transform the given real data set.- Specified by:
inversetransformin 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:
inversetransformin 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.IllegalArgumentExceptionTransform 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
-
-