public class LongFactor3SixStepNTTStrategy extends LongParallelFNTStrategy
parallelRunner| Constructor and Description |
|---|
LongFactor3SixStepNTTStrategy(LongSixStepFNTStrategy factor2Strategy)
Creates a new factor-3 transform strategy on top of a six-step transform.
|
| Modifier and Type | Method and Description |
|---|---|
long |
getTransformLength(long size)
Return the supported transform length for the specified data size.
|
void |
inverseTransform(DataStorage dataStorage,
int modulus,
long totalTransformLength)
Perform an inverse transform on the data.
|
void |
setParallelRunner(ParallelRunner parallelRunner)
Set the parallel runner to be used when executing the transform.
|
void |
transform(DataStorage dataStorage,
int modulus)
Perform a forward transform on the data.
|
multiplyElements, transformRowsinverseTableFNT, tableFNTcreateWTable, getForwardNthRoot, getInverseNthRoot, modDivide, modInverse, modPow, negategetModulus, modAdd, modMultiply, modSubtract, setModuluspublic LongFactor3SixStepNTTStrategy(LongSixStepFNTStrategy factor2Strategy)
factor2Strategy - The underlying transformation strategy, that can be capable of only doing radix-2 transforms.public void setParallelRunner(ParallelRunner parallelRunner)
ParallelNTTStrategysetParallelRunner in interface ParallelNTTStrategysetParallelRunner in class LongParallelFNTStrategyparallelRunner - The parallel runner.public void transform(DataStorage dataStorage, int modulus) throws ApfloatRuntimeException
NTTStrategyMultiple moduli can be used, if the convolution algorithm uses the Chinese Remainder Theorem to calculate the final result.
transform in interface NTTStrategytransform in class LongTableFNTStrategydataStorage - The data to be transformed.modulus - Number of modulus to use (in case the transform supports multiple moduli).ApfloatRuntimeExceptionpublic void inverseTransform(DataStorage dataStorage, int modulus, long totalTransformLength) throws ApfloatRuntimeException
NTTStrategyMultiple moduli can be used, if the convolution algorithm uses the Chinese Remainder Theorem to calculate the final result.
inverseTransform in interface NTTStrategyinverseTransform in class LongTableFNTStrategydataStorage - The data to be transformed.modulus - Number of modulus to use (in case the transform supports multiple moduli).totalTransformLength - Total transform length; the final result elements are divided by this value.ApfloatRuntimeExceptionpublic long getTransformLength(long size)
NTTStrategygetTransformLength in interface NTTStrategygetTransformLength in class LongTableFNTStrategysize - Length of the data to be transformed.