30 using View =
typename std::tuple_element_t<1, ContainerOverSubrelations>::View;
31 auto tmp =
static_cast<View
>(in.get(C::scalar_mul_point_inf)) *
32 (
FF(1) -
static_cast<View
>(in.get(C::scalar_mul_point_inf)));
36 using View =
typename std::tuple_element_t<2, ContainerOverSubrelations>::View;
38 static_cast<View
>(in.get(C::scalar_mul_start)) * (
FF(1) -
static_cast<View
>(in.get(C::scalar_mul_start)));
42 using View =
typename std::tuple_element_t<3, ContainerOverSubrelations>::View;
44 static_cast<View
>(in.get(C::scalar_mul_end)) * (
FF(1) -
static_cast<View
>(in.get(C::scalar_mul_end)));
48 using View =
typename std::tuple_element_t<4, ContainerOverSubrelations>::View;
49 auto tmp =
static_cast<View
>(in.get(C::scalar_mul_sel_shift)) *
50 (
static_cast<View
>(in.get(C::scalar_mul_start_shift)) -
CView(scalar_mul_LATCH_CONDITION));
54 using View =
typename std::tuple_element_t<5, ContainerOverSubrelations>::View;
55 auto tmp = (
static_cast<View
>(in.get(C::scalar_mul_start)) +
static_cast<View
>(in.get(C::scalar_mul_end))) *
56 (
FF(1) -
static_cast<View
>(in.get(C::scalar_mul_sel)));
60 using View =
typename std::tuple_element_t<6, ContainerOverSubrelations>::View;
61 auto tmp = (
static_cast<View
>(in.get(C::scalar_mul_sel_shift)) -
static_cast<View
>(in.get(C::scalar_mul_sel))) *
62 (
FF(1) -
CView(scalar_mul_LATCH_CONDITION));
66 using View =
typename std::tuple_element_t<7, ContainerOverSubrelations>::View;
67 auto tmp = (
static_cast<View
>(in.get(C::scalar_mul_sel_not_end)) -
68 (
static_cast<View
>(in.get(C::scalar_mul_sel)) -
static_cast<View
>(in.get(C::scalar_mul_end))));
72 using View =
typename std::tuple_element_t<8, ContainerOverSubrelations>::View;
74 static_cast<View
>(in.get(C::scalar_mul_sel_not_end)) *
75 (
static_cast<View
>(in.get(C::scalar_mul_point_x)) -
static_cast<View
>(in.get(C::scalar_mul_point_x_shift)));
79 using View =
typename std::tuple_element_t<9, ContainerOverSubrelations>::View;
81 static_cast<View
>(in.get(C::scalar_mul_sel_not_end)) *
82 (
static_cast<View
>(in.get(C::scalar_mul_point_y)) -
static_cast<View
>(in.get(C::scalar_mul_point_y_shift)));
86 using View =
typename std::tuple_element_t<10, ContainerOverSubrelations>::View;
87 auto tmp =
static_cast<View
>(in.get(C::scalar_mul_sel_not_end)) *
88 (
static_cast<View
>(in.get(C::scalar_mul_point_inf)) -
89 static_cast<View
>(in.get(C::scalar_mul_point_inf_shift)));
93 using View =
typename std::tuple_element_t<11, ContainerOverSubrelations>::View;
95 static_cast<View
>(in.get(C::scalar_mul_sel_not_end)) *
96 (
static_cast<View
>(in.get(C::scalar_mul_scalar)) -
static_cast<View
>(in.get(C::scalar_mul_scalar_shift)));
100 using View =
typename std::tuple_element_t<12, ContainerOverSubrelations>::View;
101 auto tmp =
static_cast<View
>(in.get(C::scalar_mul_start)) *
102 (
static_cast<View
>(in.get(C::scalar_mul_bit_idx)) -
FF(253));
106 using View =
typename std::tuple_element_t<13, ContainerOverSubrelations>::View;
107 auto tmp =
static_cast<View
>(in.get(C::scalar_mul_end)) *
static_cast<View
>(in.get(C::scalar_mul_bit_idx));
111 using View =
typename std::tuple_element_t<14, ContainerOverSubrelations>::View;
112 auto tmp =
static_cast<View
>(in.get(C::scalar_mul_sel_not_end)) *
113 (
static_cast<View
>(in.get(C::scalar_mul_bit_idx)) -
114 (
static_cast<View
>(in.get(C::scalar_mul_bit_idx_shift)) +
FF(1)));
118 using View =
typename std::tuple_element_t<15, ContainerOverSubrelations>::View;
120 static_cast<View
>(in.get(C::scalar_mul_sel)) * (
static_cast<View
>(in.get(C::scalar_mul_const_two)) -
FF(2));
124 using View =
typename std::tuple_element_t<16, ContainerOverSubrelations>::View;
125 auto tmp =
static_cast<View
>(in.get(C::scalar_mul_end)) *
126 (
static_cast<View
>(in.get(C::scalar_mul_temp_x)) -
static_cast<View
>(in.get(C::scalar_mul_point_x)));
130 using View =
typename std::tuple_element_t<17, ContainerOverSubrelations>::View;
131 auto tmp =
static_cast<View
>(in.get(C::scalar_mul_end)) *
132 (
static_cast<View
>(in.get(C::scalar_mul_temp_y)) -
static_cast<View
>(in.get(C::scalar_mul_point_y)));
136 using View =
typename std::tuple_element_t<18, ContainerOverSubrelations>::View;
137 auto tmp =
static_cast<View
>(in.get(C::scalar_mul_end)) * (
static_cast<View
>(in.get(C::scalar_mul_temp_inf)) -
138 static_cast<View
>(in.get(C::scalar_mul_point_inf)));
142 using View =
typename std::tuple_element_t<19, ContainerOverSubrelations>::View;
143 auto tmp = (
static_cast<View
>(in.get(C::scalar_mul_temp_x_shift)) -
144 static_cast<View
>(in.get(C::scalar_mul_temp_x_shift)));
148 using View =
typename std::tuple_element_t<20, ContainerOverSubrelations>::View;
149 auto tmp = (
static_cast<View
>(in.get(C::scalar_mul_temp_y_shift)) -
150 static_cast<View
>(in.get(C::scalar_mul_temp_y_shift)));
154 using View =
typename std::tuple_element_t<21, ContainerOverSubrelations>::View;
155 auto tmp = (
static_cast<View
>(in.get(C::scalar_mul_temp_inf_shift)) -
156 static_cast<View
>(in.get(C::scalar_mul_temp_inf_shift)));
160 using View =
typename std::tuple_element_t<22, ContainerOverSubrelations>::View;
161 auto tmp =
static_cast<View
>(in.get(C::scalar_mul_end)) *
162 ((
static_cast<View
>(in.get(C::scalar_mul_point_x)) *
static_cast<View
>(in.get(C::scalar_mul_bit)) +
163 CView(ecc_INFINITY_X) * (
FF(1) -
static_cast<View
>(in.get(C::scalar_mul_bit)))) -
164 static_cast<View
>(in.get(C::scalar_mul_res_x)));
168 using View =
typename std::tuple_element_t<23, ContainerOverSubrelations>::View;
169 auto tmp =
static_cast<View
>(in.get(C::scalar_mul_end)) *
170 ((
static_cast<View
>(in.get(C::scalar_mul_point_y)) *
static_cast<View
>(in.get(C::scalar_mul_bit)) +
171 CView(ecc_INFINITY_Y) * (
FF(1) -
static_cast<View
>(in.get(C::scalar_mul_bit)))) -
172 static_cast<View
>(in.get(C::scalar_mul_res_y)));
176 using View =
typename std::tuple_element_t<24, ContainerOverSubrelations>::View;
177 auto tmp =
static_cast<View
>(in.get(C::scalar_mul_end)) *
178 (((
static_cast<View
>(in.get(C::scalar_mul_point_inf)) -
FF(1)) *
179 static_cast<View
>(in.get(C::scalar_mul_bit)) +
181 static_cast<View
>(in.get(C::scalar_mul_res_inf)));
185 using View =
typename std::tuple_element_t<25, ContainerOverSubrelations>::View;
187 (
static_cast<View
>(in.get(C::scalar_mul_should_add)) -
188 static_cast<View
>(in.get(C::scalar_mul_sel_not_end)) *
static_cast<View
>(in.get(C::scalar_mul_bit)));
192 using View =
typename std::tuple_element_t<26, ContainerOverSubrelations>::View;
193 auto tmp =
CView(scalar_mul_SHOULD_PASS) * (
static_cast<View
>(in.get(C::scalar_mul_res_x)) -
194 static_cast<View
>(in.get(C::scalar_mul_res_x_shift)));
198 using View =
typename std::tuple_element_t<27, ContainerOverSubrelations>::View;
199 auto tmp =
CView(scalar_mul_SHOULD_PASS) * (
static_cast<View
>(in.get(C::scalar_mul_res_y)) -
200 static_cast<View
>(in.get(C::scalar_mul_res_y_shift)));
204 using View =
typename std::tuple_element_t<28, ContainerOverSubrelations>::View;
205 auto tmp =
CView(scalar_mul_SHOULD_PASS) * (
static_cast<View
>(in.get(C::scalar_mul_res_inf)) -
206 static_cast<View
>(in.get(C::scalar_mul_res_inf_shift)));