PolynomialEvaluationUtilities

evalut.spad line 1 [edit on github]

This package implements evaluation functions useful for modular algorithms.Computations work on integer polynomials, but most is done modulo a prime which is provided via parameters, either explicitly or through a state parameter (state also caches needed buffers). Some functions work on fractions.To avoid useless GCD computations during evaluation fractions may be represented as a record.

eval1 : (Polynomial(Integer), Symbol, Integer, Record(prime : Integer, eval1coeffbuf : U32Vector, eval1expbuf : SortedExponentVector)) -> Polynomial(Integer)

eval1(pol, v, pt, pss) evaluates pol in variable v at pt, using global state form pss. Computations are done modulo a prime contained in pss.

eval1 : (Record(numer : Polynomial(Integer), denom : Polynomial(Integer)), Symbol, Integer, Record(prime : Integer, eval1coeffbuf : U32Vector, eval1expbuf : SortedExponentVector)) -> Union(Record(numer : Polynomial(Integer), denom : Polynomial(Integer)), "failed")

eval1(pq, v, pt, pss) evaluates fraction of polynomial pq in variable v at pt, using global state form pss. Computations are done modulo a prime contained in pss.

eval1a : (Polynomial(Integer), Integer, Record(prime : Integer, eval1coeffbuf : U32Vector, eval1expbuf : SortedExponentVector)) -> Integer

eval1a(pol, pt, pss) evaluates polynomial pol at point pt using global state form pss. Computations are done modulo a prime contained in pss. Note: pol must have at most one variable.

modpeval : (Polynomial(Integer), List(Symbol), List(Integer), Integer) -> Integer

modpeval(pol, lv, lpt, p) evaluates polynomial pol in variables form lv at point from lpt modulo a prime p

modpreduction : (Polynomial(Integer), Integer) -> Polynomial(Integer)

modpreduction(pol, p) reduces polynomial pol modulo prime p.

modpreduction : (Fraction(Polynomial(Integer)), Integer) -> Union(Record(numer : Polynomial(Integer), denom : Polynomial(Integer)), "failed")

modpreduction(r, p) reduces a rational function r modulo prime p.