pub struct LookupPerm {
pub input_idx: u8,
pub swap_cols: bool,
}Expand description
Per-lookup-input permutation for adaptive variable ordering.
When a non-default leader is chosen, the dispatcher rotates kernel
inputs and may swap the two columns of selected lookup atoms (triangle
only — the 4-cycle has rotational symmetry and never needs col-swap).
swap_cols == true means the dispatcher must materialize an owned
2-col view with cols swapped before calling the layout helper.
Fields§
§input_idx: u8Index into the promoter’s canonical input order:
triangle = [e_xy, e_yz, e_xz], 4-cycle =
[e_wx, e_xy, e_yz, e_zw]. lookup_perms[i] describes
kernel slot i + 1 (slots 1, 2, 3 — the non-leader slots).
The leader slot 0 is identified by VariableOrder::leader_idx
and is never repeated here.
swap_cols: boolWhether to swap col0 ↔ col1 on this input before the layout helper sees it.
Trait Implementations§
Source§impl Clone for LookupPerm
impl Clone for LookupPerm
Source§fn clone(&self) -> LookupPerm
fn clone(&self) -> LookupPerm
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more