@@ -295,8 +295,8 @@ template <typename Builder> void cycle_group<Builder>::set_point_at_infinity(con
295295 return ;
296296 }
297297
298- this ->x = field_t::conditional_assign (is_infinity, 0 , this ->x );
299- this ->y = field_t::conditional_assign (is_infinity, 0 , this ->y );
298+ this ->x = field_t::conditional_assign (is_infinity, 0 , this ->x ). normalize () ;
299+ this ->y = field_t::conditional_assign (is_infinity, 0 , this ->y ). normalize () ;
300300
301301 // We won't bump into the case where we end up with non constant coordinates
302302 ASSERT (!this ->x .is_constant ());
@@ -333,8 +333,8 @@ template <typename Builder> void cycle_group<Builder>::standardize()
333333 }
334334 this ->_is_standard = true ;
335335
336- this ->x = field_t::conditional_assign (this ->_is_infinity , 0 , this ->x );
337- this ->y = field_t::conditional_assign (this ->_is_infinity , 0 , this ->y );
336+ this ->x = field_t::conditional_assign (this ->_is_infinity , 0 , this ->x ). normalize () ;
337+ this ->y = field_t::conditional_assign (this ->_is_infinity , 0 , this ->y ). normalize () ;
338338}
339339
340340/* *
@@ -416,7 +416,7 @@ cycle_group<Builder> cycle_group<Builder>::dbl(const std::optional<AffineElement
416416
417417 context->create_ecc_dbl_gate (bb::ecc_dbl_gate_<FF>{
418418 .x1 = x.get_witness_index (),
419- .y1 = modified_y.get_normalized_witness_index (),
419+ .y1 = modified_y.get_witness_index (),
420420 .x3 = result.x .get_witness_index (),
421421 .y3 = result.y .get_witness_index (),
422422 });
@@ -712,8 +712,8 @@ template <typename Builder> cycle_group<Builder> cycle_group<Builder>::operator+
712712 result_y = field_t::conditional_assign (lhs_infinity, other.y , result_y);
713713
714714 // if rhs infinity, return lhs
715- result_x = field_t::conditional_assign (rhs_infinity, x, result_x);
716- result_y = field_t::conditional_assign (rhs_infinity, y, result_y);
715+ result_x = field_t::conditional_assign (rhs_infinity, x, result_x). normalize () ;
716+ result_y = field_t::conditional_assign (rhs_infinity, y, result_y). normalize () ;
717717
718718 // is result point at infinity?
719719 // yes = infinity_predicate && !lhs_infinity && !rhs_infinity
@@ -796,8 +796,8 @@ template <typename Builder> cycle_group<Builder> cycle_group<Builder>::operator-
796796 result_y = field_t::conditional_assign (lhs_infinity, (-other.y ).normalize (), result_y);
797797
798798 // if rhs infinity, return lhs
799- result_x = field_t::conditional_assign (rhs_infinity, x, result_x);
800- result_y = field_t::conditional_assign (rhs_infinity, y, result_y);
799+ result_x = field_t::conditional_assign (rhs_infinity, x, result_x). normalize () ;
800+ result_y = field_t::conditional_assign (rhs_infinity, y, result_y). normalize () ;
801801
802802 // is result point at infinity?
803803 // yes = infinity_predicate && !lhs_infinity && !rhs_infinity
@@ -2009,8 +2009,8 @@ cycle_group<Builder> cycle_group<Builder>::conditional_assign(const bool_t& pred
20092009 const cycle_group& lhs,
20102010 const cycle_group& rhs)
20112011{
2012- auto x_res = field_t::conditional_assign (predicate, lhs.x , rhs.x );
2013- auto y_res = field_t::conditional_assign (predicate, lhs.y , rhs.y );
2012+ auto x_res = field_t::conditional_assign (predicate, lhs.x , rhs.x ). normalize () ;
2013+ auto y_res = field_t::conditional_assign (predicate, lhs.y , rhs.y ). normalize () ;
20142014 auto _is_infinity_res =
20152015 bool_t::conditional_assign (predicate, lhs.is_point_at_infinity (), rhs.is_point_at_infinity ());
20162016
0 commit comments