org.apfloat.internal
Class Int3NTTConvolutionStrategy
java.lang.Object
org.apfloat.internal.IntElementaryModMath
org.apfloat.internal.IntModMath
org.apfloat.internal.Int3NTTConvolutionStrategy
- All Implemented Interfaces:
- ConvolutionStrategy, IntModConstants
- public class Int3NTTConvolutionStrategy
- extends IntModMath
- implements ConvolutionStrategy, IntModConstants
Convolution methods in the transform domain for the int
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.0
- Author:
- Mikko Tommila
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Int3NTTConvolutionStrategy
public Int3NTTConvolutionStrategy(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