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 protectedAbstractNTTBuilder()Subclass constructor.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected NTTStrategycreateFactor3NTTStrategy(long size, NTTStrategy nttStrategy)Create a factor-3 NTT strategy on top of another NTT strategy.NTTStrategycreateNTT(long size)Creates a Number Theoretic Transform of suitable type for the specified length.protected abstract NTTStrategycreateSimpleFNTStrategy(long size)Create a simple NTT strategy.protected NTTStrategycreateSixStepFNTStrategy(long size)Create a six-step NTT strategy.protected NTTStrategycreateTwoPassFNTStrategy(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:NTTBuilderCreates a Number Theoretic Transform of suitable type for the specified length.- Specified by:
createNTTin 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.
-
-