Uniform evaluation of field coefficient vectors #
Coefficients are listed in increasing degree order. The program constructs the field modulus once, then uses Horner's rule. Its ambient polynomial bound also holds on malformed inputs: every step preserves the modulus and evaluation point, and the accumulator's bit length can only decrease.
This file does not parse answers or claim correctness of the Pauli decider. It supplies the arithmetic operation needed by its two line tests.
Evaluation of a coefficient list in increasing degree order.
Equations
- MIPRE.Introspection.FieldPolynomialProgram.evalCoeffs x coeffs = List.foldr (fun (c a : R) => a * x + c) 0 coeffs
Instances For
This is the coefficient-vector evaluation used by the line-test semantics.
Equations
- MIPRE.Introspection.FieldPolynomialProgram.hornerStep s c = (s.1, s.2.1, MIPRE.LowDegree.BinaryPolynomial.xorBits (MIPRE.LowDegree.BinaryPolynomial.mulReduce s.1 s.2.2 s.2.1) c)
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Horner evaluation with an explicit modulus, point and initial accumulator. The initial accumulator is useful for the correctness induction; ordinary polynomial evaluation initializes it to the field's zero vector.
Equations
- One or more equations did not get rendered due to their size.
Instances For
One ambient program, uniform in both field width and coefficient count.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Canonical fixed-length vectors evaluate to the expected power sum.