XPolynomialFactor(vl, F)

xpfact.spad line 1 [edit on github]


factor: XDistributedPolynomial(vl, F) -> List XDistributedPolynomial(vl, F) if F has PolynomialFactorizationExplicit

factor(p) returns a factorization of p into irreducible factors. Note: in general thare are finitely many nonequivalent factorizations into irreducible factors, this routine returns only one.

homo_fact: XDistributedPolynomial(vl, F) -> List XDistributedPolynomial(vl, F)

homo_fact(p) factors homogeneous polynomial p into irreducible factors.

ldivide: (XDistributedPolynomial(vl, F), XDistributedPolynomial(vl, F)) -> Record(quotient: XDistributedPolynomial(vl, F), remainder: XDistributedPolynomial(vl, F))

ldivide(a, b) returns [c, r] such that a = b*c + r, r is is of minimal possible degree and homogeneous part of of r of maximal degree contains no terms divisible from left by leading term of b.

left_ext_GCD: (XDistributedPolynomial(vl, F), XDistributedPolynomial(vl, F)) -> Union(Record(g: XDistributedPolynomial(vl, F), c1: XDistributedPolynomial(vl, F), c2: XDistributedPolynomial(vl, F), cu: XDistributedPolynomial(vl, F), cv: XDistributedPolynomial(vl, F)), failed)

left_ext_GCD(a, b) returns [g, u0, v0, u, v] where g is left GCD of a and b, g = a*u0 + b*v0 and au = - bv is least common right multiple of a and b when a and b have least common right multiple. Otherwise left_ext_GCD(a, b) returns “failed”.

top_split: XDistributedPolynomial(vl, F) -> List XDistributedPolynomial(vl, F)

top_split(p) returns [p1, p2] where p1 is homogeneous part of p of maximal degree and p2 is sum of lower order terms of p.