Expand description
Shared multilinear column store for sumcheck round evaluators.
An MleStore owns the equal-length multilinear columns that a group of
round evaluators reads, along with the deduplicated
equality-indicator trackers for MLE-check evaluation points. Columns enter the
store either borrowed (MleStore::push) or owned (MleStore::push_owned) and are
addressed by the returned ColId, so several evaluators can read — and the store can fold —
one shared column exactly once per challenge.
§Invariant
The store folds — columns and eq trackers both; evaluators only read. Every column and every
registered tracker advances exactly once per MleStore::fold call, no matter how many
evaluators reference it.
Folding is eager: MleStore::fold advances every column immediately, and the round pass
over the columns is a plain read. A deferred-fold variant that fuses the fold into the next
round’s read pass can replace the internals without changing this interface.
Structs§
- ColId
- Identifier of a column held by an
MleStore. - Column
Chunk - One column’s low and high halves within an
EvaluationChunk. - EqId
- Identifier of an equality-indicator tracker held by an
MleStore. - Evaluation
Chunk - A range of the halved hypercube, prepared for the round evaluators.
- MleStore
- A store of equal-length multilinear columns shared by a group of round evaluators.
- Round
Context - The scalar state of one round, as an evaluator may read it while interpolating.