This file offers some functions related to cyclotomic polynomials, including tests for LRS-degeneracy. Several contributions from Nico Mexis.
Let f be a RingElem representing a univariate polynomial in a polynomial
ring P (with characteristic 0). Let n be a positive integer.
cyclotomic(n,x) -- returns the n-th cyclotomic polynomial in the indet x
CyclotomicTest(f) -- returns an unsigned long n indicating that f is the n-th cyclotomic polynomial; if f is not cyclotomic, it returns 0.
CyclotomicIndex(f) -- if f is cyclotomic, returns n its index. If f is not cyclotomic it may return 0 or some other value. Faster than CyclotomicTest.
LRSDegeneracyOrder(f) -- returns least order of LRS-degeneracy, or 0 if not LRS-degenerate
LRSDegeneracyOrders(f) -- returns vector<long> of all LRS-degeneracy orders
LRSDegeneracyOrders(f, VerLev) -- same as above, but may give some false positives; (recommend VerLev = 3)
IsLRSDegenerate(f) -- returns true if f is k-LRS-degenerate for some k
IsLRSDegenerateOrder(f, k) -- returns true if f is k-LRS-degenerate
IsLRSDegenerateOrder(f, n, VerLev) -- same as above, but may give false positive
InversePhiBound can be found in OEIS sequence A355667.
2023