Skip to main content

build_affine_virtual_bit_slice_mles

Function build_affine_virtual_bit_slice_mles 

Source
pub fn build_affine_virtual_bit_slice_mles<C, const D: usize>(
    all_trace_bin_poly: &[DenseMultilinearExtension<BinaryPoly<D>>],
    affine_virtual_specs: &[AffineVirtualSpec],
    num_vars: usize,
    field_cfg: &C,
) -> Vec<DenseMultilinearExtension<C::Element>>
where C: SemiringConfig + ProjectPrimitiveIntegersWithConfig,
Expand description

Build per-bit-slice MLEs for affine virtual booleanity targets.

Returns N * D MLEs in (spec-major, i-minor) order: $[v_{0,0}, v_{0,1}, ..., v_{0,D-1}, v_{1,0}, ...]$. The j-th spec, i-th bit MLE evaluates at row b to the i-th coefficient of

ones_coefficient * 1_D + sum_t coefficient_t * source_t[b + row_shift_t]

with out-of-range shifted rows contributing zero, matching ShiftSpec. all_trace_bin_poly must contain every binary-polynomial trace column in the UAIR’s flat total-column order: public columns first, then witness columns.