Class IrreduciblePolynomials


  • public final class IrreduciblePolynomials
    extends Object
    Irreducibility tests and generators for random irreducible polynomials.
    Since:
    1.0
    • Method Detail

      • irreducibleQ

        public static <Poly extends IUnivariatePolynomial<Poly>> boolean irreducibleQ​(Poly poly)
        Tests whether poly is irreducible
        Parameters:
        poly - the polynomial
        Returns:
        whether poly is an irreducible polynomial
      • finiteFieldIrreducibleQ

        public static <Poly extends IUnivariatePolynomial<Poly>> boolean finiteFieldIrreducibleQ​(Poly poly)
        Tests whether poly is irreducible over the finite field
        Parameters:
        poly - the polynomial over finite field
        Returns:
        whether poly is an irreducible polynomial
      • finiteFieldIrreducibleViaModularComposition

        public static <Poly extends IUnivariatePolynomial<Poly>> boolean finiteFieldIrreducibleViaModularComposition​(Poly poly)
        Tests whether poly is irreducible over the finite field
        Parameters:
        poly - the polynomial over finite field
        Returns:
        whether poly is an irreducible polynomial
      • finiteFieldIrreducibleBenOr

        public static <Poly extends IUnivariatePolynomial<Poly>> boolean finiteFieldIrreducibleBenOr​(Poly poly)
        Tests whether poly is irreducible over the finite field
        Parameters:
        poly - the polynomial over finite field
        Returns:
        whether poly is an irreducible polynomial
      • randomIrreduciblePolynomial

        public static UnivariatePolynomialZp64 randomIrreduciblePolynomial​(long modulus,
                                                                           int degree,
                                                                           org.apache.commons.math3.random.RandomGenerator rnd)
        Generated random irreducible Zp polynomial of degree degree
        Parameters:
        modulus - the modulus
        degree - the degree
        rnd - random source
        Returns:
        irreducible polynomial
      • randomIrreduciblePolynomial

        public static <E> UnivariatePolynomial<E> randomIrreduciblePolynomial​(Ring<E> ring,
                                                                              int degree,
                                                                              org.apache.commons.math3.random.RandomGenerator rnd)
        Generated random irreducible polynomial over specified ring of degree degree
        Parameters:
        ring - coefficient ring
        degree - the degree
        rnd - random source
        Returns:
        irreducible polynomial
      • randomIrreduciblePolynomialOverZ

        public static UnivariatePolynomial<BigInteger> randomIrreduciblePolynomialOverZ​(int degree,
                                                                                        org.apache.commons.math3.random.RandomGenerator rnd)
        Generated random irreducible polynomial over Z
        Parameters:
        degree - the degree
        rnd - random source
        Returns:
        irreducible polynomial over Z
      • randomIrreduciblePolynomial

        public static <Poly extends IUnivariatePolynomial<Poly>> Poly randomIrreduciblePolynomial​(Poly factory,
                                                                                                  int degree,
                                                                                                  org.apache.commons.math3.random.RandomGenerator rnd)
        Generated random irreducible polynomial of degree degree
        Parameters:
        factory - type marker
        degree - the degree
        rnd - random source
        Returns:
        irreducible polynomial