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_start)) +
static_cast<View
>(in.get(C::scalar_mul_end))) *
50 (
FF(1) -
static_cast<View
>(in.get(C::scalar_mul_sel)));
54 using View =
typename std::tuple_element_t<5, ContainerOverSubrelations>::View;
55 auto tmp = (
FF(1) -
CView(scalar_mul_LATCH_CONDITION)) *
56 (
static_cast<View
>(in.get(C::scalar_mul_sel)) -
static_cast<View
>(in.get(C::scalar_mul_sel_shift)));
60 using View =
typename std::tuple_element_t<6, ContainerOverSubrelations>::View;
61 auto tmp =
static_cast<View
>(in.get(C::scalar_mul_sel_shift)) *
62 (
static_cast<View
>(in.get(C::scalar_mul_start_shift)) -
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_end)) *
144 ((
static_cast<View
>(in.get(C::scalar_mul_point_x)) *
static_cast<View
>(in.get(C::scalar_mul_bit)) +
145 CView(ecc_INFINITY_X) * (
FF(1) -
static_cast<View
>(in.get(C::scalar_mul_bit)))) -
146 static_cast<View
>(in.get(C::scalar_mul_res_x)));
150 using View =
typename std::tuple_element_t<20, ContainerOverSubrelations>::View;
151 auto tmp =
static_cast<View
>(in.get(C::scalar_mul_end)) *
152 ((
static_cast<View
>(in.get(C::scalar_mul_point_y)) *
static_cast<View
>(in.get(C::scalar_mul_bit)) +
153 CView(ecc_INFINITY_Y) * (
FF(1) -
static_cast<View
>(in.get(C::scalar_mul_bit)))) -
154 static_cast<View
>(in.get(C::scalar_mul_res_y)));
158 using View =
typename std::tuple_element_t<21, ContainerOverSubrelations>::View;
159 auto tmp =
static_cast<View
>(in.get(C::scalar_mul_end)) *
160 (((
static_cast<View
>(in.get(C::scalar_mul_point_inf)) -
FF(1)) *
161 static_cast<View
>(in.get(C::scalar_mul_bit)) +
163 static_cast<View
>(in.get(C::scalar_mul_res_inf)));
167 using View =
typename std::tuple_element_t<22, ContainerOverSubrelations>::View;
169 (
static_cast<View
>(in.get(C::scalar_mul_should_add)) -
170 static_cast<View
>(in.get(C::scalar_mul_sel_not_end)) *
static_cast<View
>(in.get(C::scalar_mul_bit)));
174 using View =
typename std::tuple_element_t<23, ContainerOverSubrelations>::View;
175 auto tmp =
CView(scalar_mul_SHOULD_PASS) * (
static_cast<View
>(in.get(C::scalar_mul_res_x)) -
176 static_cast<View
>(in.get(C::scalar_mul_res_x_shift)));
180 using View =
typename std::tuple_element_t<24, ContainerOverSubrelations>::View;
181 auto tmp =
CView(scalar_mul_SHOULD_PASS) * (
static_cast<View
>(in.get(C::scalar_mul_res_y)) -
182 static_cast<View
>(in.get(C::scalar_mul_res_y_shift)));
186 using View =
typename std::tuple_element_t<25, ContainerOverSubrelations>::View;
187 auto tmp =
CView(scalar_mul_SHOULD_PASS) * (
static_cast<View
>(in.get(C::scalar_mul_res_inf)) -
188 static_cast<View
>(in.get(C::scalar_mul_res_inf_shift)));