28 (in.get(C::ecc_lambda) * (in.get(C::ecc_p_x) - in.get(C::ecc_r_x)) - in.get(C::ecc_p_y));
29 const auto ecc_EITHER_INF = ((in.get(C::ecc_p_is_inf) + in.get(C::ecc_q_is_inf)) -
FF(2) * ecc_BOTH_INF);
32 using View =
typename std::tuple_element_t<0, ContainerOverSubrelations>::View;
33 auto tmp =
static_cast<View
>(in.get(C::ecc_sel)) * (
FF(1) -
static_cast<View
>(in.get(C::ecc_sel)));
37 using View =
typename std::tuple_element_t<1, ContainerOverSubrelations>::View;
38 auto tmp =
static_cast<View
>(in.get(C::ecc_double_op)) * (
FF(1) -
static_cast<View
>(in.get(C::ecc_double_op)));
42 using View =
typename std::tuple_element_t<2, ContainerOverSubrelations>::View;
43 auto tmp =
static_cast<View
>(in.get(C::ecc_add_op)) * (
FF(1) -
static_cast<View
>(in.get(C::ecc_add_op)));
47 using View =
typename std::tuple_element_t<3, ContainerOverSubrelations>::View;
48 auto tmp = (
static_cast<View
>(in.get(C::ecc_sel)) -
49 (
static_cast<View
>(in.get(C::ecc_double_op)) +
static_cast<View
>(in.get(C::ecc_add_op)) +
50 CView(ecc_INFINITY_PRED)));
54 using View =
typename std::tuple_element_t<4, ContainerOverSubrelations>::View;
55 auto tmp =
static_cast<View
>(in.get(C::ecc_p_is_inf)) * (
FF(1) -
static_cast<View
>(in.get(C::ecc_p_is_inf)));
59 using View =
typename std::tuple_element_t<5, ContainerOverSubrelations>::View;
60 auto tmp =
static_cast<View
>(in.get(C::ecc_q_is_inf)) * (
FF(1) -
static_cast<View
>(in.get(C::ecc_q_is_inf)));
64 using View =
typename std::tuple_element_t<6, ContainerOverSubrelations>::View;
65 auto tmp =
static_cast<View
>(in.get(C::ecc_r_is_inf)) * (
FF(1) -
static_cast<View
>(in.get(C::ecc_r_is_inf)));
69 using View =
typename std::tuple_element_t<7, ContainerOverSubrelations>::View;
70 auto tmp =
static_cast<View
>(in.get(C::ecc_x_match)) * (
FF(1) -
static_cast<View
>(in.get(C::ecc_x_match)));
74 using View =
typename std::tuple_element_t<8, ContainerOverSubrelations>::View;
75 auto tmp =
static_cast<View
>(in.get(C::ecc_sel)) *
76 ((
CView(ecc_X_DIFF) * (
static_cast<View
>(in.get(C::ecc_x_match)) *
77 (
FF(1) -
static_cast<View
>(in.get(C::ecc_inv_x_diff))) +
78 static_cast<View
>(in.get(C::ecc_inv_x_diff))) -
80 static_cast<View
>(in.get(C::ecc_x_match)));
84 using View =
typename std::tuple_element_t<9, ContainerOverSubrelations>::View;
85 auto tmp =
static_cast<View
>(in.get(C::ecc_y_match)) * (
FF(1) -
static_cast<View
>(in.get(C::ecc_y_match)));
89 using View =
typename std::tuple_element_t<10, ContainerOverSubrelations>::View;
90 auto tmp =
static_cast<View
>(in.get(C::ecc_sel)) *
91 ((
CView(ecc_Y_DIFF) * (
static_cast<View
>(in.get(C::ecc_y_match)) *
92 (
FF(1) -
static_cast<View
>(in.get(C::ecc_inv_y_diff))) +
93 static_cast<View
>(in.get(C::ecc_inv_y_diff))) -
95 static_cast<View
>(in.get(C::ecc_y_match)));
99 using View =
typename std::tuple_element_t<11, ContainerOverSubrelations>::View;
100 auto tmp = (
static_cast<View
>(in.get(C::ecc_double_op)) -
101 static_cast<View
>(in.get(C::ecc_x_match)) *
static_cast<View
>(in.get(C::ecc_y_match)));
105 using View =
typename std::tuple_element_t<12, ContainerOverSubrelations>::View;
106 auto tmp =
static_cast<View
>(in.get(C::ecc_sel)) *
107 (
static_cast<View
>(in.get(C::ecc_result_infinity)) -
108 (
CView(ecc_INFINITY_PRED) *
CView(ecc_BOTH_NON_INF) +
CView(ecc_BOTH_INF)));
112 using View =
typename std::tuple_element_t<13, ContainerOverSubrelations>::View;
114 (
FF(1) -
static_cast<View
>(in.get(C::ecc_result_infinity))) *
static_cast<View
>(in.get(C::ecc_double_op)) *
115 (
FF(2) *
static_cast<View
>(in.get(C::ecc_p_y)) *
static_cast<View
>(in.get(C::ecc_inv_2_p_y)) -
FF(1));
119 using View =
typename std::tuple_element_t<14, ContainerOverSubrelations>::View;
120 auto tmp =
static_cast<View
>(in.get(C::ecc_sel)) *
121 (
static_cast<View
>(in.get(C::ecc_lambda)) -
122 (
static_cast<View
>(in.get(C::ecc_double_op)) *
FF(3) *
static_cast<View
>(in.get(C::ecc_p_x)) *
123 static_cast<View
>(in.get(C::ecc_p_x)) *
static_cast<View
>(in.get(C::ecc_inv_2_p_y)) +
124 static_cast<View
>(in.get(C::ecc_add_op)) *
CView(ecc_Y_DIFF) *
125 static_cast<View
>(in.get(C::ecc_inv_x_diff))));
129 using View =
typename std::tuple_element_t<15, ContainerOverSubrelations>::View;
130 auto tmp = (
static_cast<View
>(in.get(C::ecc_use_computed_result)) -
131 static_cast<View
>(in.get(C::ecc_sel)) * (
FF(1) -
static_cast<View
>(in.get(C::ecc_p_is_inf))) *
132 (
FF(1) -
static_cast<View
>(in.get(C::ecc_q_is_inf))) * (
FF(1) -
CView(ecc_INFINITY_PRED)));
136 using View =
typename std::tuple_element_t<16, ContainerOverSubrelations>::View;
137 auto tmp =
static_cast<View
>(in.get(C::ecc_sel)) *
138 (((
static_cast<View
>(in.get(C::ecc_r_x)) -
139 CView(ecc_EITHER_INF) *
140 (
static_cast<View
>(in.get(C::ecc_p_is_inf)) *
static_cast<View
>(in.get(C::ecc_q_x)) +
141 static_cast<View
>(in.get(C::ecc_q_is_inf)) *
static_cast<View
>(in.get(C::ecc_p_x)))) -
142 static_cast<View
>(in.get(C::ecc_result_infinity)) *
CView(ecc_INFINITY_X)) -
143 static_cast<View
>(in.get(C::ecc_use_computed_result)) *
CView(ecc_COMPUTED_R_X));
147 using View =
typename std::tuple_element_t<17, ContainerOverSubrelations>::View;
148 auto tmp =
static_cast<View
>(in.get(C::ecc_sel)) *
149 (((
static_cast<View
>(in.get(C::ecc_r_y)) -
150 CView(ecc_EITHER_INF) *
151 (
static_cast<View
>(in.get(C::ecc_p_is_inf)) *
static_cast<View
>(in.get(C::ecc_q_y)) +
152 static_cast<View
>(in.get(C::ecc_q_is_inf)) *
static_cast<View
>(in.get(C::ecc_p_y)))) -
153 static_cast<View
>(in.get(C::ecc_result_infinity)) *
CView(ecc_INFINITY_Y)) -
154 static_cast<View
>(in.get(C::ecc_use_computed_result)) *
CView(ecc_COMPUTED_R_Y));
158 using View =
typename std::tuple_element_t<18, ContainerOverSubrelations>::View;
159 auto tmp =
static_cast<View
>(in.get(C::ecc_sel)) *
160 (
static_cast<View
>(in.get(C::ecc_r_is_inf)) -
static_cast<View
>(in.get(C::ecc_result_infinity)));