# Class LongTableFNTStrategy

All Implemented Interfaces:
NTTStrategy

public class LongTableFNTStrategy extends LongTableFNT implements NTTStrategy
Fast Number Theoretic Transform strategy that uses lookup tables for powers of n:th root of unity and permutation indexes.

Version:
1.9.0
Author:
Mikko Tommila
• ## Constructor Details

• ### LongTableFNTStrategy

public LongTableFNTStrategy()
Default constructor.
• ## Method Details

• ### transform

public void transform(DataStorage dataStorage, int modulus) throws ApfloatRuntimeException
Description copied from interface: NTTStrategy
Perform a forward transform on the data.

Multiple moduli can be used, if the convolution algorithm uses the Chinese Remainder Theorem to calculate the final result.

Specified by:
transform in interface NTTStrategy
Parameters:
dataStorage - The data to be transformed.
modulus - Number of modulus to use (in case the transform supports multiple moduli).
Throws:
ApfloatRuntimeException
• ### inverseTransform

public void inverseTransform(DataStorage dataStorage, int modulus, long totalTransformLength) throws ApfloatRuntimeException
Description copied from interface: NTTStrategy
Perform an inverse transform on the data.

Multiple moduli can be used, if the convolution algorithm uses the Chinese Remainder Theorem to calculate the final result.

Specified by:
inverseTransform in interface NTTStrategy
Parameters:
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.
Throws:
ApfloatRuntimeException
• ### getTransformLength

public long getTransformLength(long size)
Description copied from interface: NTTStrategy
Return the supported transform length for the specified data size.
Specified by:
getTransformLength in interface NTTStrategy
Parameters:
size - Length of the data to be transformed.
Returns:
Length of the transform needed by this transform.