51 if (
builder.is_write_vk_mode()) {
54 builder.set_variable(input_result_infinite.get_witness_index(),
bb::fr(0));
57 cycle_group_ct input1_point =
59 cycle_group_ct input2_point =
65 cycle_group_ct input_result(input_result_x, input_result_y,
false);
69 bool_ct expected_infinite =
70 bool_ct::conditional_assign(predicate, input_result.is_point_at_infinity(), input_result_infinite);
71 input_result_infinite.assert_equal(expected_infinite);
74 cycle_group_ct result = input1_point + input2_point;
81 cycle_group_ct to_be_asserted_equal = cycle_group_ct::conditional_assign(predicate, input_result, result);
82 result.assert_equal(to_be_asserted_equal);
static constexpr affine_element affine_one
Implements boolean logic in-circuit.
cycle_group represents a group Element of the proving system's embedded curve, i.e....
static field_t from_witness_index(Builder *ctx, uint32_t witness_index)
uint32_t get_witness_index() const
Get the witness index of the current field element.