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
- Author:
- Mikko Tommila
-
Method Summary
Modifier and TypeMethodDescriptionconvolute(DataStorage x, DataStorage y, long resultSize) Convolutes the two sets of data.
-
Method Details
-
convolute
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
-