# ModularEvaluationCategory(PT, MP)ΒΆ

ModularEvaluationCategory(`PT`

, `MP`

) defines interface to evaluation functions for `ModularAlgebraicGcd2`

.

- degree: (MP, Symbol) -> NonNegativeInteger
`degree(p, v)`

computes degree of`p`

with respect to`v`

.

- eval1: (MP, Symbol, Integer, Record(prime: Integer, eval1coeffbuf: U32Vector, eval1expbuf: SortedExponentVector)) -> MP
`eval1(p, v, r, pss)`

evaluates`p`

with respect to single variable`v`

at`r`

.`pss`

is global state.

- eval1a: (MP, Integer, Record(prime: Integer, eval1coeffbuf: U32Vector, eval1expbuf: SortedExponentVector)) -> Integer
`eval1a(p, r, pss)`

evaluates`p`

at`r`

.`p`

must be polynomial in single variable.`pss`

is global state.

- ldegree: (PT, Symbol) -> NonNegativeInteger
`ldegree(p, v)`

computes degree of`p`

with respect to`v`

.`v`

must be one of auxiliary variables and must be lexicographically first variable which appears in`p`

. Moreover,`p`

must be a polynomial in`v`

(not a rational function).

- modpreduction: (MP, Integer) -> MP
`modpreduction(p, q)`

reduces all coefficients of`p`

modulo`q`

.