# ModularDistinctDegreeFactorizer U¶

This package supports factorization and gcds of univariate polynomials over the integers modulo different primes. The inputs are given as polynomials over the integers with the prime passed explicitly as an extra argument.

ddFact: (U, Integer) -> List Record(factor: U, degree: Integer)

ddFact(f, p) computes a distinct degree factorization of the polynomial f modulo the prime p, i.e. such that each factor is a product of irreducibles of the same degrees. The input polynomial f is assumed to be square-free modulo p.

gcd: (U, U, Integer) -> U

gcd(f1, f2, p) computes the gcd of the univariate polynomials f1 and f2 modulo the integer prime p.

separateFactors: (List Record(factor: U, degree: Integer), Integer) -> List U

separateFactors(ddl, p) refines the distinct degree factorization produced by ddFact to give a complete list of factors.