Class IntAparapiNTTStepStrategy

    • Constructor Detail

      • IntAparapiNTTStepStrategy

        public IntAparapiNTTStepStrategy()
        Default constructor.
    • Method Detail

      • multiplyElements

        public void multiplyElements​(ArrayAccess arrayAccess,
                                     int startRow,
                                     int startColumn,
                                     int rows,
                                     int columns,
                                     long length,
                                     long totalTransformLength,
                                     boolean isInverse,
                                     int modulus)
                              throws ApfloatRuntimeException
        Description copied from interface: NTTStepStrategy
        Multiply each matrix element (i, j) by wi * j / totalTransformLength. The matrix size is n1 x n2.
        Specified by:
        multiplyElements in interface NTTStepStrategy
        Overrides:
        multiplyElements in class IntNTTStepStrategy
        Parameters:
        arrayAccess - The memory array to multiply.
        startRow - Which row in the whole matrix the starting row in the arrayAccess is.
        startColumn - Which column in the whole matrix the starting column in the arrayAccess is.
        rows - The number of rows in the arrayAccess to multiply.
        columns - The number of columns in the matrix (= n2).
        length - The length of data in the matrix being transformed.
        totalTransformLength - The total transform length, for the scaling factor. Used only for the inverse case.
        isInverse - If the multiplication is done for the inverse transform or not.
        modulus - Index of the modulus.
        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 IntNTTStepStrategy
        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