Class FloatFactor3NTTStepStrategy

    • Constructor Detail

      • FloatFactor3NTTStepStrategy

        public FloatFactor3NTTStepStrategy()
        Default constructor.
    • Method Detail

      • transformColumns

        public void transformColumns​(DataStorage dataStorage0,
                                     DataStorage dataStorage1,
                                     DataStorage dataStorage2,
                                     long startColumn,
                                     long columns,
                                     long power2length,
                                     long length,
                                     boolean isInverse,
                                     int modulus)
                              throws ApfloatRuntimeException
        Description copied from interface: Factor3NTTStepStrategy
        Transform the columns of a matrix using a 3-point transform.
        Specified by:
        transformColumns in interface Factor3NTTStepStrategy
        Parameters:
        dataStorage0 - The data of the first column.
        dataStorage1 - The data of the second column.
        dataStorage2 - The data of the third column.
        startColumn - The starting element index in the data storages to transform.
        columns - How many columns to transform.
        power2length - Length of the column transform.
        length - Length of total transform (three times the length of one column).
        isInverse - true if an inverse transform is performed, false if a forward transform is performed.
        modulus - Index of the modulus.
        Throws:
        ApfloatRuntimeException
      • createColumnTransformParallelRunnable

        protected ParallelRunnable createColumnTransformParallelRunnable​(DataStorage dataStorage0,
                                                                         DataStorage dataStorage1,
                                                                         DataStorage dataStorage2,
                                                                         long startColumn,
                                                                         long columns,
                                                                         long power2length,
                                                                         long length,
                                                                         boolean isInverse,
                                                                         int modulus)
        Create a ParallelRunnable object for transforming the columns of the matrix using a 3-point NTT transform.
        Parameters:
        dataStorage0 - The data of the first column.
        dataStorage1 - The data of the second column.
        dataStorage2 - The data of the third column.
        startColumn - The starting element index in the data storages to transform.
        columns - How many columns to transform.
        power2length - Length of the column transform.
        length - Length of total transform (three times the length of one column).
        isInverse - true if an inverse transform is performed, false if a forward transform is performed.
        modulus - Index of the modulus.
        Returns:
        A suitable object for performing the 3-point transforms in parallel.