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
-