pub fn combined_lookers<A, F, P>(
alloc: &A,
gamma: F,
tables: &[TableLookup<'_, P>],
) -> (Vec<Vec<FieldVec<P, A>>>, Vec<FieldVec<P, A>>)Expand description
Build each table’s gamma-scaled looker numerators and its combined pushforward Y.
Within a table, looker i’s numerator is gamma^i * eq_{r_i}, the scaled equality indicator
its fractional-addition circuit runs over, so the fractional sum of that table’s looker circuits
is the gamma-combination of their sums. The table’s pushforward is the scatter of those same
numerators:
Y = sum_i gamma^i * (I_i)_* eq_{r_i}Each table uses its own gamma, so the tables share nothing here.
Both the numerators and the pushforwards are drawn from alloc: the numerators become the leaf
layers of the per-looker fractional-addition circuits, and a committing caller hands the
pushforwards to the channel, which owns them until the openings run.
§Preconditions
tablesis non-empty, every table has at least one looker, every looker’s index column has2^nentries for its own evaluation point lengthn, and every index entry is less than its table’s size.
§Panics
Panics if any precondition is violated.