Package org.apfloat.spi
Interface ConvolutionStrategy
-
- All Known Implementing Classes:
DoubleKaratsubaConvolutionStrategy,DoubleMediumConvolutionStrategy,DoubleShortConvolutionStrategy,FloatKaratsubaConvolutionStrategy,FloatMediumConvolutionStrategy,FloatShortConvolutionStrategy,IntKaratsubaConvolutionStrategy,IntMediumConvolutionStrategy,IntShortConvolutionStrategy,LongKaratsubaConvolutionStrategy,LongMediumConvolutionStrategy,LongShortConvolutionStrategy,ParallelThreeNTTConvolutionStrategy,ThreeNTTConvolutionStrategy
public interface ConvolutionStrategyGeneric convolution strategy. To perform the convolution, an implementing class could use e.g.- A simple long multiplication convolution with O(n2) complexity
- An O(nlog2(3)) Karatsuba type algorithm, e.g. as desribed in Knuth's Seminumerical Algorithms
- Floating-point Fast Fourier Transform (FFT) based convolution
- Number-Theoretic Transform (NTT) based convolution, with the Chinese Remainder Theorem used
- Version:
- 1.0
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description DataStorageconvolute(DataStorage x, DataStorage y, long resultSize)Convolutes the two sets of data.
-
-
-
Method Detail
-
convolute
DataStorage convolute(DataStorage x, DataStorage y, long resultSize) throws ApfloatRuntimeException
Convolutes the two sets of data.- Parameters:
x- First data set.y- Second data set.resultSize- Number of elements needed in the result data.- Returns:
- The convolved data.
- Throws:
ApfloatRuntimeException
-
-