kimchi_msm/test/test_circuit/
columns.rs1use crate::{
2 columns::{Column, ColumnIndexer},
3 N_LIMBS,
4};
5
6pub const N_COL_TEST: usize = 4 * N_LIMBS + N_FSEL_TEST;
8
9pub const N_FSEL_TEST: usize = 3;
11
12#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)]
14pub enum TestColumn {
15 A(usize),
16 B(usize),
17 C(usize),
18 D(usize),
19 FixedSel1,
20 FixedSel2,
21 FixedSel3,
22}
23
24impl ColumnIndexer<usize> for TestColumn {
25 const N_COL: usize = N_COL_TEST;
26 fn to_column(self) -> Column<usize> {
27 let to_column_inner = |offset, i| {
28 assert!(i < N_LIMBS);
29 Column::Relation(N_LIMBS * offset + i)
30 };
31 match self {
32 TestColumn::A(i) => to_column_inner(0, i),
33 TestColumn::B(i) => to_column_inner(1, i),
34 TestColumn::C(i) => to_column_inner(2, i),
35 TestColumn::D(i) => to_column_inner(3, i),
36 TestColumn::FixedSel1 => Column::FixedSelector(0),
37 TestColumn::FixedSel2 => Column::FixedSelector(1),
38 TestColumn::FixedSel3 => Column::FixedSelector(2),
39 }
40 }
41}