Package org.apfloat.internal
Class AbstractNTTBuilder
- java.lang.Object
-
- org.apfloat.internal.AbstractNTTBuilder
-
- All Implemented Interfaces:
NTTBuilder
- Direct Known Subclasses:
DoubleNTTBuilder
,FloatNTTBuilder
,IntNTTBuilder
,LongNTTBuilder
public abstract class AbstractNTTBuilder extends java.lang.Object implements NTTBuilder
Abstract base class for creating Number Theoretic Transforms suitable for the specified length, based on available memory configured in theApfloatContext
.- Since:
- 1.7.0
- Version:
- 1.8.3
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
AbstractNTTBuilder()
Subclass constructor.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected NTTStrategy
createFactor3NTTStrategy(long size, NTTStrategy nttStrategy)
Create a factor-3 NTT strategy on top of another NTT strategy.NTTStrategy
createNTT(long size)
Creates a Number Theoretic Transform of suitable type for the specified length.protected abstract NTTStrategy
createSimpleFNTStrategy(long size)
Create a simple NTT strategy.protected NTTStrategy
createSixStepFNTStrategy(long size)
Create a six-step NTT strategy.protected NTTStrategy
createTwoPassFNTStrategy(long size)
Create a two-pass NTT strategy.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apfloat.spi.NTTBuilder
createFactor3NTTSteps, createNTTConvolutionSteps, createNTTSteps
-
-
-
-
Method Detail
-
createNTT
public NTTStrategy createNTT(long size)
Description copied from interface:NTTBuilder
Creates a Number Theoretic Transform of suitable type for the specified length.- Specified by:
createNTT
in interfaceNTTBuilder
- Parameters:
size
- The transform length that will be used.- Returns:
- A suitable NTT object for performing the transform.
-
createSimpleFNTStrategy
protected abstract NTTStrategy createSimpleFNTStrategy(long size)
Create a simple NTT strategy.- Parameters:
size
- The transform length that will be used.- Returns:
- A new simple NTT strategy.
-
createSixStepFNTStrategy
protected NTTStrategy createSixStepFNTStrategy(long size)
Create a six-step NTT strategy.- Parameters:
size
- The transform length that will be used.- Returns:
- A new six-step NTT strategy.
-
createTwoPassFNTStrategy
protected NTTStrategy createTwoPassFNTStrategy(long size)
Create a two-pass NTT strategy.- Parameters:
size
- The transform length that will be used.- Returns:
- A new two-pass NTT strategy.
-
createFactor3NTTStrategy
protected NTTStrategy createFactor3NTTStrategy(long size, NTTStrategy nttStrategy)
Create a factor-3 NTT strategy on top of another NTT strategy.- Parameters:
size
- The transform length that will be used.nttStrategy
- The underlying factor-2 NTT strategy.- Returns:
- A new factor-3 NTT strategy.
-
-