ModularAlgebraicGcdOperations(MP, MPT, MD)¶
This category specifies operations needed by ModularAlgebraicGcd package. Since we have multiple implementations we specify interface here and put implementations in separate packages. Most operations are done using special purpose abstract representation. Apropriate types are passesd as parametes:
MPT is type of modular polynomials in one variable with coefficients in some algebraic extension.
MD is type of modulus. Final results are converted to packed representation, with coefficients (from prime field) stored in one array and exponents (in main variable and in auxilary variables representing generators of algebrac extension) stored in parallel array.
- canonicalIfCan: (MPT, MD) -> Union(MPT, failed)
canonicalIfCan(x, m)tries to divide
xby its leading coefficient modulo
- degree: MPT -> Integer
degree(x)gives degree of
- MPtoMPT: (MP, Symbol, List Symbol, MD) -> Union(MPT, failed)
MPtoMPT(p, s, ls, m)converts
pto packed represntation.
- pack_exps: (Integer, Integer, MD) -> SortedExponentVector
pack_exps(d, s, m)produces vector of exponents up to degree
sis size (degree) of algebraic extension. Use together with
- pack_modulus: (List MP, List Symbol, Integer) -> Union(MD, failed)
pack_modulus(lp, ls, p)converts
pwhich together describe algebraic extension to packed representation.
- pseudoRem: (MPT, MPT, MD) -> MPT
pseudoRem(x, y, m)computes pseudoremainder of
- repack1: (MPT, U32Vector, Integer, MD) -> Void
repack1(x, a, d, m)stores coefficients of
dis degree of
x. Corresponding exponents are given by pack_exps.
- zero?: MPT -> Boolean