MonomialExtensionTools(F, UP)¶

Tools for handling monomial extensions.

decompose: (Fraction UP, UP -> UP) -> Record(poly: UP, normal: Fraction UP, special: Fraction UP)

decompose(f, D) returns [p, n, s] such that f = p+n+s, all the squarefree factors of denom(n) are normal w.r.t. D, denom(s) is special w.r.t. D, and n and s are proper fractions (no pole at infinity). D is the derivation to use.

normalDenom: (Fraction UP, UP -> UP) -> UP

normalDenom(f, D) returns the product of all the normal factors of denom(f). D is the derivation to use.

split: (UP, UP -> UP) -> Record(normal: UP, special: UP)

split(p, D) returns [n, s] such that p = n s, all the squarefree factors of n are normal w.r.t. D, and s is special w.r.t. D. D is the derivation to use.

splitSquarefree: (UP, UP -> UP) -> Record(normal: Factored UP, special: Factored UP)

splitSquarefree(p, D) returns [n_1 n_2\^2 ... n_m\^m, s_1 s_2\^2 ... s_q\^q] such that p = n_1 n_2\^2 ... n_m\^m s_1 s_2\^2 ... s_q\^q, each n_i is normal w.r.t. D and each s_i is special w.r.t D. D is the derivation to use.