|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apfloat.internal.LongElementaryModMath
org.apfloat.internal.LongModMath
org.apfloat.internal.LongTableFNTStrategy
org.apfloat.internal.LongParallelFNTStrategy
org.apfloat.internal.LongFactor3SixStepNTTStrategy
public class LongFactor3SixStepNTTStrategy
A transform that implements a 3-point transform on top of the six-step Number Theoretic Transform that does transforms of length 2n.
Field Summary |
---|
Fields inherited from class org.apfloat.internal.LongParallelFNTStrategy |
---|
parallelRunner |
Constructor Summary | |
---|---|
LongFactor3SixStepNTTStrategy(LongSixStepFNTStrategy factor2Strategy)
Creates a new factor-3 transform strategy on top of a six-step transform. |
Method Summary | |
---|---|
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. |
Methods inherited from class org.apfloat.internal.LongParallelFNTStrategy |
---|
multiplyElements, transformRows |
Methods inherited from class org.apfloat.internal.LongTableFNTStrategy |
---|
inverseTableFNT, tableFNT |
Methods inherited from class org.apfloat.internal.LongModMath |
---|
createWTable, getForwardNthRoot, getInverseNthRoot, modDivide, modInverse, modPow, negate |
Methods inherited from class org.apfloat.internal.LongElementaryModMath |
---|
getModulus, modAdd, modMultiply, modSubtract, setModulus |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public LongFactor3SixStepNTTStrategy(LongSixStepFNTStrategy factor2Strategy)
factor2Strategy
- The underlying transformation strategy, that can be capable of only doing radix-2 transforms.Method Detail |
---|
public void setParallelRunner(ParallelRunner parallelRunner)
ParallelNTTStrategy
setParallelRunner
in interface ParallelNTTStrategy
setParallelRunner
in class LongParallelFNTStrategy
parallelRunner
- The parallel runner.public void transform(DataStorage dataStorage, int modulus) throws ApfloatRuntimeException
NTTStrategy
Multiple moduli can be used, if the convolution algorithm uses the Chinese Remainder Theorem to calculate the final result.
transform
in interface NTTStrategy
transform
in class LongTableFNTStrategy
dataStorage
- The data to be transformed.modulus
- Number of modulus to use (in case the transform supports multiple moduli).
ApfloatRuntimeException
public void inverseTransform(DataStorage dataStorage, int modulus, long totalTransformLength) throws ApfloatRuntimeException
NTTStrategy
Multiple moduli can be used, if the convolution algorithm uses the Chinese Remainder Theorem to calculate the final result.
inverseTransform
in interface NTTStrategy
inverseTransform
in class LongTableFNTStrategy
dataStorage
- 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.
ApfloatRuntimeException
public long getTransformLength(long size)
NTTStrategy
getTransformLength
in interface NTTStrategy
getTransformLength
in class LongTableFNTStrategy
size
- Length of the data to be transformed.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |