Class IntModMath

Direct Known Subclasses:
IntFactor3NTTStepStrategy, IntNTTConvolutionStepStrategy, IntTableFNT, IntWTables

public class IntModMath extends IntElementaryModMath
Modulo arithmetic functions for int data.
Version:
1.0
Author:
Mikko Tommila
  • Constructor Details

    • IntModMath

      public IntModMath()
      Default constructor.
  • Method Details

    • createWTable

      public final int[] createWTable(int w, int n)
      Create a table of powers of n:th root of unity.
      Parameters:
      w - The n:th root of unity modulo the current modulus.
      n - The table length (= transform length).
      Returns:
      Table of table[i]=wi mod m, i = 0, ..., n-1.
    • getForwardNthRoot

      public int getForwardNthRoot(int primitiveRoot, long n)
      Get forward n:th root of unity. This is w.

      Assumes that the modulus is prime.

      Parameters:
      primitiveRoot - Primitive root of the modulus.
      n - The transform length.
      Returns:
      Forward n:th root of unity.
    • getInverseNthRoot

      public int getInverseNthRoot(int primitiveRoot, long n)
      Get inverse n:th root of unity. This is w-1.

      Assumes that the modulus is prime.

      Parameters:
      primitiveRoot - Primitive root of the modulus.
      n - The transform length.
      Returns:
      Inverse n:th root of unity.
    • modInverse

      public final int modInverse(int a)
      Modular inverse, that is 1 / a. Assumes that the modulus is prime.
      Parameters:
      a - The operand.
      Returns:
      a-1 mod m.
    • modDivide

      public final int modDivide(int a, int b)
      Modular division. Assumes that the modulus is prime.
      Parameters:
      a - The dividend.
      b - The divisor.
      Returns:
      a*b-1 mod m.
    • negate

      public final int negate(int a)
      Modular negation.
      Parameters:
      a - The argument.
      Returns:
      -a mod m.
    • modPow

      public final int modPow(int a, int n)
      Modular power. Assumes that the modulus is prime.
      Parameters:
      a - The base.
      n - The exponent.
      Returns:
      an mod m.