Package org.apfloat.aparapi
Class ColumnSixStepFNTStrategy
- java.lang.Object
-
- org.apfloat.internal.AbstractStepFNTStrategy
-
- org.apfloat.internal.SixStepFNTStrategy
-
- org.apfloat.aparapi.ColumnSixStepFNTStrategy
-
- All Implemented Interfaces:
org.apfloat.internal.Parallelizable
,org.apfloat.spi.NTTStrategy
- Direct Known Subclasses:
IntAparapiSixStepFNTStrategy
,LongAparapiSixStepFNTStrategy
public class ColumnSixStepFNTStrategy extends org.apfloat.internal.SixStepFNTStrategy
Six-step NTT implementation that processes the data in the columns of the matrix.This transform only works together with an
NTTStepStrategy
implementation that processes the data in columns instead of rows and aMatrixStrategy
implementation that can transpose the data.The data size should be sufficiently large to meet the parallelization needs of the GPU. The GPU global size i.e. the number of columns in the data matrix should be at least 1024.
- Since:
- 1.8.3
- Version:
- 1.8.3
- Author:
- Mikko Tommila
-
-
Constructor Summary
Constructors Constructor Description ColumnSixStepFNTStrategy(org.apfloat.spi.NTTStepStrategy stepStrategy, org.apfloat.spi.MatrixStrategy matrixStrategy)
Basic constructor.
-
Method Summary
Modifier and Type Method Description protected void
multiplyElements(org.apfloat.spi.ArrayAccess arrayAccess, int rows, int columns, long length, long totalTransformLength, boolean isInverse, int modulus)
protected void
transposeInitial(org.apfloat.spi.ArrayAccess arrayAccess, int n1, int n2, boolean isInverse)
protected void
transposeMiddle(org.apfloat.spi.ArrayAccess arrayAccess, int n1, int n2, boolean isInverse)
-
Methods inherited from class org.apfloat.internal.SixStepFNTStrategy
inverseTransform, postTransform, preTransform, transform, transformFirst, transformSecond, transposeFinal
-
-
-
-
Constructor Detail
-
ColumnSixStepFNTStrategy
public ColumnSixStepFNTStrategy(org.apfloat.spi.NTTStepStrategy stepStrategy, org.apfloat.spi.MatrixStrategy matrixStrategy)
Basic constructor.- Parameters:
stepStrategy
- A step strategy that can process data in columns.matrixStrategy
- A matrix strategy that can process the data.
-
-
Method Detail
-
transposeInitial
protected void transposeInitial(org.apfloat.spi.ArrayAccess arrayAccess, int n1, int n2, boolean isInverse)
- Overrides:
transposeInitial
in classorg.apfloat.internal.SixStepFNTStrategy
-
transposeMiddle
protected void transposeMiddle(org.apfloat.spi.ArrayAccess arrayAccess, int n1, int n2, boolean isInverse)
- Overrides:
transposeMiddle
in classorg.apfloat.internal.SixStepFNTStrategy
-
multiplyElements
protected void multiplyElements(org.apfloat.spi.ArrayAccess arrayAccess, int rows, int columns, long length, long totalTransformLength, boolean isInverse, int modulus)
- Overrides:
multiplyElements
in classorg.apfloat.internal.SixStepFNTStrategy
-
-