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 ConvolutionStrategy
Generic 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 DataStorage
convolute(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
-
-