Class IrreduciblePolynomials

java.lang.Object
cc.redberry.rings.poly.univar.IrreduciblePolynomials

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

    • 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