org.apfloat.internal
Class Float3NTTConvolutionStrategy
java.lang.Object
org.apfloat.internal.FloatElementaryModMath
org.apfloat.internal.FloatModMath
org.apfloat.internal.Float3NTTConvolutionStrategy
- All Implemented Interfaces:
- ConvolutionStrategy
public class Float3NTTConvolutionStrategy
- extends FloatModMath
- implements ConvolutionStrategy
Convolution methods in the transform domain for the float
type.
Multiplication can be done in linear time in the transform domain, where
the multiplication is simply an element-by-element multiplication.
This implementation uses three Number Theoretic Transforms to do the
convolution and the Chinese Remainder Theorem to get the final result.
- Version:
- 1.1
- Author:
- Mikko Tommila
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Float3NTTConvolutionStrategy
public Float3NTTConvolutionStrategy(int radix,
NTTStrategy transform)
- Creates a new convoluter that uses the specified
transform for transforming the data.
- Parameters:
radix
- The radix that will be used.transform
- The transform that will be used.
convolute
public DataStorage convolute(DataStorage x,
DataStorage y,
long resultSize)
throws ApfloatRuntimeException
- Description copied from interface:
ConvolutionStrategy
- Convolutes the two sets of data.
- Specified by:
convolute
in interface ConvolutionStrategy
- Parameters:
x
- First data set.y
- Second data set.resultSize
- Number of elements needed in the result data.
- Returns:
- The convolved data.
- Throws:
ApfloatRuntimeException