MCPcopy Create free account
hub / github.com/ddkang/zkml / construct

Method construct

src/commitments/packer.rs:45–75  ·  view source on GitHub ↗
(num_bits_per_elem: usize, gadget_config: &GadgetConfig)

Source from the content-addressed store, hash-verified

43 }
44
45 pub fn construct(num_bits_per_elem: usize, gadget_config: &GadgetConfig) -> PackerConfig<F> {
46 let columns = &gadget_config.columns;
47
48 let num_elem_per_packed = if NUM_BITS_PER_FIELD_ELEM / num_bits_per_elem > columns.len() - 1 {
49 columns.len() - 1
50 } else {
51 // TODO: for many columns, pack many in a single row
52 NUM_BITS_PER_FIELD_ELEM / num_bits_per_elem
53 };
54 println!("column len: {}", columns.len());
55 println!("num_bits_per_elem: {}", num_bits_per_elem);
56 println!("NUM_BITS_PER_FIELD_ELEM: {}", NUM_BITS_PER_FIELD_ELEM);
57 println!("num_elem_per_packed: {}", num_elem_per_packed);
58
59 let num_packed_per_row = max(
60 1,
61 columns.len() / (num_elem_per_packed * (num_bits_per_elem + 1)),
62 );
63 println!("num_packed_per_row: {}", num_packed_per_row);
64
65 let exponents = Self::get_exponents(num_bits_per_elem, num_elem_per_packed);
66
67 let config = PackerConfig {
68 num_bits_per_elem,
69 num_elem_per_packed,
70 num_packed_per_row,
71 exponents,
72 _marker: PhantomData,
73 };
74 config
75 }
76
77 pub fn configure(
78 meta: &mut ConstraintSystem<F>,

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected