Skip to main content

Module mle_store

Module mle_store 

Source
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.
ColumnChunk
One column’s low and high halves within an EvaluationChunk.
EqId
Identifier of an equality-indicator tracker held by an MleStore.
EvaluationChunk
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.
RoundContext
The scalar state of one round, as an evaluator may read it while interpolating.