pub fn combine_table_entry<'a, F, I>(
joint_combiner: &F,
table_id_combiner: &F,
v: I,
table_id: &F
) -> Fwhere
F: 'a + Zero + One + Clone,
I: DoubleEndedIterator<Item = &'a F>,
Expand description
Let’s say we want to do a lookup in a “vector-valued” table T: Vec<[F; n]>
(here I
am using [F; n]
to model a vector of length n
).
For i < n
, define T_i := T.map(|t| t[i]).collect()
. In other words, the table
obtained by taking the ith
entry of each element of T
.
In the lookup argument, we perform lookups in T
by sampling a random challenge
joint_combiner
, and computing a “combined” lookup table sum_{i < n} joint_combiner^i T_i
.
To check a vector’s membership in this lookup table, we combine the values in that vector
analogously using joint_combiner
.
This function computes that combined value.