Class LongAparapiNTTStepStrategy

All Implemented Interfaces:
Parallelizable, NTTStepStrategy

public class LongAparapiNTTStepStrategy extends LongNTTStepStrategy
NTT steps for the long element type aparapi transforms.
Since:
1.8.3
Version:
1.8.3
Author:
Mikko Tommila
  • Constructor Details

    • LongAparapiNTTStepStrategy

      public LongAparapiNTTStepStrategy()
      Default constructor.
  • Method Details

    • multiplyElements

      public void multiplyElements(ArrayAccess arrayAccess, int startRow, int startColumn, int rows, int columns, long length, long totalTransformLength, boolean isInverse, int modulus) throws ApfloatRuntimeException
      Specified by:
      multiplyElements in interface NTTStepStrategy
      Overrides:
      multiplyElements in class LongNTTStepStrategy
      Throws:
      ApfloatRuntimeException
    • transformRows

      public void transformRows(ArrayAccess arrayAccess, int length, int count, boolean isInverse, boolean permute, int modulus) throws ApfloatRuntimeException
      Transform the columns of the data matrix. Note that this method expects the data to be organized in columns, not rows. The arguments length and count still mean the length of one transform and number of transforms to be done.
      Specified by:
      transformRows in interface NTTStepStrategy
      Overrides:
      transformRows in class LongNTTStepStrategy
      Parameters:
      arrayAccess - The memory array to split to columns and to transform.
      length - Length of one transform (one columns).
      count - Number of columns.
      isInverse - true if an inverse transform is performed, false if a forward transform is performed.
      permute - If permutation should be done.
      modulus - Index of the modulus.
      Throws:
      ApfloatRuntimeException