Skip to content

Commit b2257a9

Browse files
authored
fix: Fix the conditional assign issue in CycleGroup (#16370)
This pr handles the recent change in `field_t::conditional_assign` that affected `cycle_group`
2 parents 234154f + b518131 commit b2257a9

1 file changed

Lines changed: 11 additions & 11 deletions

File tree

barretenberg/cpp/src/barretenberg/stdlib/primitives/group/cycle_group.cpp

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)