PrimGCDΒΆ

amodgcd.spad line 67 [edit on github]

This is unfinished package for computing primitive gcd over algebraic extensions. Algebraic extension is defined by list of polynomial forming triangular system. Currently implemented is only trial division.

alg_reduce0: (SparseMultivariatePolynomial(Integer, Symbol), SparseMultivariatePolynomial(Integer, Symbol), List Symbol, Symbol) -> SparseMultivariatePolynomial(Integer, Symbol)

alg_reduce0(x, m, lv, z) performs single reduction step.

alg_reduce: (SparseMultivariatePolynomial(Integer, Symbol), List SparseMultivariatePolynomial(Integer, Symbol), List Symbol, List Symbol) -> SparseMultivariatePolynomial(Integer, Symbol)

alg_reduce(x, lm, lv, lz) reduces x modulo elements of lm.

alg_trial_division: (SparseMultivariatePolynomial(Integer, Symbol), SparseMultivariatePolynomial(Integer, Symbol), List SparseMultivariatePolynomial(Integer, Symbol), List Symbol, List Symbol) -> Boolean

alg_trial_division(x, y, lm, lv, lz) checks if x is divisible by y in algebraic extension defined by lm. lz is list of algebraic variables, lv is list of independent (polynomial) variables. Other variables serve as parameters.

coeffs0: (SparseMultivariatePolynomial(Integer, Symbol), List Symbol, List SparseMultivariatePolynomial(Integer, Symbol)) -> List SparseMultivariatePolynomial(Integer, Symbol)

coeffs0(x, lv, lp) is used by coeffs1

coeffs1: (SparseMultivariatePolynomial(Integer, Symbol), List Symbol) -> List SparseMultivariatePolynomial(Integer, Symbol)

coeffs1(x, lv) computes list of coefficients of x with respect to variables in lv. Variables in lv must be decreasing and bigger than all other variables of x.

lcx0: (SparseMultivariatePolynomial(Integer, Symbol), List Symbol) -> Record(lcx0lc: SparseMultivariatePolynomial(Integer, Symbol), lcx0m: SparseMultivariatePolynomial(Integer, Symbol))

lcx0(x, lv) computes leading coefficient of x and corresponding product of variables (monomial with coefficient 1) with respect to variables in lv Variables in lv must be decreasing and bigger than all other variables of x.

lcz: (SparseMultivariatePolynomial(Integer, Symbol), Symbol) -> Record(lczlc: SparseMultivariatePolynomial(Integer, Symbol), k: Integer)

lcz(x, z) computes leading coefficient and degree of x with respect to variable z.