29 using View =
typename std::tuple_element_t<1, ContainerOverSubrelations>::View;
30 auto tmp =
static_cast<View
>(in.get(C::merkle_check_write)) *
31 (
FF(1) -
static_cast<View
>(in.get(C::merkle_check_write)));
35 using View =
typename std::tuple_element_t<2, ContainerOverSubrelations>::View;
36 auto tmp =
static_cast<View
>(in.get(C::merkle_check_start)) *
37 (
FF(1) -
static_cast<View
>(in.get(C::merkle_check_start)));
41 using View =
typename std::tuple_element_t<3, ContainerOverSubrelations>::View;
43 static_cast<View
>(in.get(C::merkle_check_end)) * (
FF(1) -
static_cast<View
>(in.get(C::merkle_check_end)));
47 using View =
typename std::tuple_element_t<4, ContainerOverSubrelations>::View;
48 auto tmp = (
static_cast<View
>(in.get(C::merkle_check_start)) +
static_cast<View
>(in.get(C::merkle_check_end))) *
49 (
FF(1) -
static_cast<View
>(in.get(C::merkle_check_sel)));
53 using View =
typename std::tuple_element_t<5, ContainerOverSubrelations>::View;
55 (
FF(1) -
CView(merkle_check_LATCH_CONDITION)) *
56 (
static_cast<View
>(in.get(C::merkle_check_sel)) -
static_cast<View
>(in.get(C::merkle_check_sel_shift)));
60 using View =
typename std::tuple_element_t<6, ContainerOverSubrelations>::View;
61 auto tmp =
static_cast<View
>(in.get(C::merkle_check_sel_shift)) *
62 (
static_cast<View
>(in.get(C::merkle_check_start_shift)) -
CView(merkle_check_LATCH_CONDITION));
66 using View =
typename std::tuple_element_t<7, ContainerOverSubrelations>::View;
67 auto tmp =
static_cast<View
>(in.get(C::merkle_check_sel)) *
68 ((
CView(merkle_check_PATH_LEN_MIN_ONE) *
69 (
static_cast<View
>(in.get(C::merkle_check_end)) *
70 (
FF(1) -
static_cast<View
>(in.get(C::merkle_check_path_len_min_one_inv))) +
71 static_cast<View
>(in.get(C::merkle_check_path_len_min_one_inv))) -
73 static_cast<View
>(in.get(C::merkle_check_end)));
77 using View =
typename std::tuple_element_t<8, ContainerOverSubrelations>::View;
78 auto tmp = (
FF(1) -
CView(merkle_check_LATCH_CONDITION)) *
79 (
static_cast<View
>(in.get(C::merkle_check_read_root_shift)) -
80 static_cast<View
>(in.get(C::merkle_check_read_root)));
84 using View =
typename std::tuple_element_t<9, ContainerOverSubrelations>::View;
86 (
FF(1) -
CView(merkle_check_LATCH_CONDITION)) *
87 (
static_cast<View
>(in.get(C::merkle_check_write_shift)) -
static_cast<View
>(in.get(C::merkle_check_write)));
91 using View =
typename std::tuple_element_t<10, ContainerOverSubrelations>::View;
92 auto tmp = (
FF(1) -
CView(merkle_check_LATCH_CONDITION)) *
93 (
static_cast<View
>(in.get(C::merkle_check_write_root_shift)) -
94 static_cast<View
>(in.get(C::merkle_check_write_root)));
98 using View =
typename std::tuple_element_t<11, ContainerOverSubrelations>::View;
99 auto tmp =
static_cast<View
>(in.get(C::merkle_check_sel)) *
100 (
FF(1) -
static_cast<View
>(in.get(C::merkle_check_end))) *
101 ((
static_cast<View
>(in.get(C::merkle_check_path_len_shift)) -
102 static_cast<View
>(in.get(C::merkle_check_path_len))) +
107 using View =
typename std::tuple_element_t<12, ContainerOverSubrelations>::View;
108 auto tmp =
static_cast<View
>(in.get(C::merkle_check_index_is_even)) *
109 (
FF(1) -
static_cast<View
>(in.get(C::merkle_check_index_is_even)));
113 using View =
typename std::tuple_element_t<13, ContainerOverSubrelations>::View;
115 static_cast<View
>(in.get(C::merkle_check_sel)) * (
FF(1) -
static_cast<View
>(in.get(C::merkle_check_end))) *
116 ((
FF(2) *
static_cast<View
>(in.get(C::merkle_check_index_shift)) +
CView(merkle_check_INDEX_IS_ODD)) -
117 static_cast<View
>(in.get(C::merkle_check_index)));
121 using View =
typename std::tuple_element_t<14, ContainerOverSubrelations>::View;
122 auto tmp =
static_cast<View
>(in.get(C::merkle_check_end)) *
123 (
static_cast<View
>(in.get(C::merkle_check_index)) -
CView(merkle_check_INDEX_IS_ODD));
127 using View =
typename std::tuple_element_t<15, ContainerOverSubrelations>::View;
128 auto tmp = (
static_cast<View
>(in.get(C::merkle_check_read_left_node)) -
129 (
static_cast<View
>(in.get(C::merkle_check_index_is_even)) *
130 (
static_cast<View
>(in.get(C::merkle_check_read_node)) -
131 static_cast<View
>(in.get(C::merkle_check_sibling))) +
132 static_cast<View
>(in.get(C::merkle_check_sibling))));
136 using View =
typename std::tuple_element_t<16, ContainerOverSubrelations>::View;
137 auto tmp = (
static_cast<View
>(in.get(C::merkle_check_read_right_node)) -
138 (
static_cast<View
>(in.get(C::merkle_check_index_is_even)) *
139 (
static_cast<View
>(in.get(C::merkle_check_sibling)) -
140 static_cast<View
>(in.get(C::merkle_check_read_node))) +
141 static_cast<View
>(in.get(C::merkle_check_read_node))));
145 using View =
typename std::tuple_element_t<17, ContainerOverSubrelations>::View;
146 auto tmp = (
static_cast<View
>(in.get(C::merkle_check_write_left_node)) -
147 static_cast<View
>(in.get(C::merkle_check_write)) *
148 (
static_cast<View
>(in.get(C::merkle_check_index_is_even)) *
149 (
static_cast<View
>(in.get(C::merkle_check_write_node)) -
150 static_cast<View
>(in.get(C::merkle_check_sibling))) +
151 static_cast<View
>(in.get(C::merkle_check_sibling))));
155 using View =
typename std::tuple_element_t<18, ContainerOverSubrelations>::View;
156 auto tmp = (
static_cast<View
>(in.get(C::merkle_check_write_right_node)) -
157 static_cast<View
>(in.get(C::merkle_check_write)) *
158 (
static_cast<View
>(in.get(C::merkle_check_index_is_even)) *
159 (
static_cast<View
>(in.get(C::merkle_check_sibling)) -
160 static_cast<View
>(in.get(C::merkle_check_write_node))) +
161 static_cast<View
>(in.get(C::merkle_check_write_node))));
165 using View =
typename std::tuple_element_t<19, ContainerOverSubrelations>::View;
166 auto tmp =
static_cast<View
>(in.get(C::merkle_check_sel)) *
167 (
static_cast<View
>(in.get(C::merkle_check_const_three)) -
FF(3));
171 using View =
typename std::tuple_element_t<20, ContainerOverSubrelations>::View;
172 auto tmp = (
FF(1) -
CView(merkle_check_LATCH_CONDITION)) *
173 (
static_cast<View
>(in.get(C::merkle_check_merkle_hash_separator_shift)) -
174 static_cast<View
>(in.get(C::merkle_check_merkle_hash_separator)));
178 using View =
typename std::tuple_element_t<21, ContainerOverSubrelations>::View;
179 auto tmp = (
FF(1) -
CView(merkle_check_LATCH_CONDITION)) *
180 (
static_cast<View
>(in.get(C::merkle_check_read_node_shift)) -
181 static_cast<View
>(in.get(C::merkle_check_read_output_hash)));
185 using View =
typename std::tuple_element_t<22, ContainerOverSubrelations>::View;
186 auto tmp = (
FF(1) -
CView(merkle_check_LATCH_CONDITION)) *
187 (
static_cast<View
>(in.get(C::merkle_check_write_node_shift)) -
188 static_cast<View
>(in.get(C::merkle_check_write_output_hash)));
192 using View =
typename std::tuple_element_t<23, ContainerOverSubrelations>::View;
193 auto tmp =
static_cast<View
>(in.get(C::merkle_check_end)) *
194 (
static_cast<View
>(in.get(C::merkle_check_read_output_hash)) -
195 static_cast<View
>(in.get(C::merkle_check_read_root)));
199 using View =
typename std::tuple_element_t<24, ContainerOverSubrelations>::View;
200 auto tmp =
static_cast<View
>(in.get(C::merkle_check_end)) *
201 (
static_cast<View
>(in.get(C::merkle_check_write_output_hash)) -
202 static_cast<View
>(in.get(C::merkle_check_write_root)));