50 bool has_valid_witness_assignments);
53 bool has_valid_witness_assignments);
68 bool has_valid_witness_assignments);
71 bool has_valid_witness_assignments);
73template <
typename Builder>
119template <
typename Builder>
165template <
typename Builder>
211template <
typename Builder>
214 bool has_valid_witness_assignments)
216 if (!has_valid_witness_assignments) {
267template <
typename Builder>
270 bool has_valid_witness_assignments)
274 create_bigint_addition_constraint<Builder>(input, dsl_bigint);
278 create_bigint_sub_constraint<Builder>(input, dsl_bigint);
282 create_bigint_mul_constraint<Builder>(input, dsl_bigint);
286 create_bigint_div_constraint<Builder>(input, dsl_bigint, has_valid_witness_assignments);
295template <
typename Builder>
310 uint64_t modulus_64 = 0;
312 std::vector<uint64_t> modulus_limbs;
314 if (i < input.
modulus.size()) {
315 modulus_64 += input.
modulus[i] * base;
317 if ((i + 1) % 8 == 0) {
318 modulus_limbs.push_back(modulus_64);
325 .modulus_1 = modulus_limbs[1],
326 .modulus_2 = modulus_limbs[2],
327 .modulus_3 = modulus_limbs[3] };
329 for (
size_t i = 0; i < 32; ++i) {
330 if (i < input.
inputs.size()) {
333 rev_bytes.
write_at(element_bytes, i);
342 switch (modulus_id) {
344 auto big = big_bn254_fq(bytes);
349 auto big = big_bn254_fr(bytes);
354 auto big = big_secp256k1_fq(bytes);
359 auto big = big_secp256k1_fr(bytes);
364 auto big = big_secp256r1_fq(bytes);
369 auto big = big_secp256r1_fr(bytes);
380template <
typename Builder>
394 switch (modulus_id) {
440 if (i < input.
result.size()) {
456 builder.create_poly_gate(assert_equal);
#define BB_ASSERT_LTE(left, right,...)
static constexpr uint64_t modulus_0
static constexpr uint64_t modulus_3
static constexpr uint64_t modulus_1
static constexpr uint64_t modulus_2
static constexpr uint64_t modulus_0
static constexpr uint64_t modulus_3
static constexpr uint64_t modulus_2
static constexpr uint64_t modulus_1
Represents a dynamic array of bytes in-circuit.
byte_array reverse() const
Reverse the bytes in the byte array.
byte_array & write_at(byte_array const &other, size_t index)
Overwrites this byte_array starting at index with the contents of other. Asserts that the write does ...
static field_t from_witness_index(Builder *ctx, uint32_t witness_index)
std::conditional_t< IsGoblinBigGroup< C, Fq, Fr, G >, element_goblin::goblin_element< C, goblin_field< C >, Fr, G >, element_default::element< C, Fq, Fr, G > > element
element wraps either element_default::element or element_goblin::goblin_element depending on parametr...
Entry point for Barretenberg command-line interface.
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
static constexpr uint64_t modulus_0
static constexpr uint64_t modulus_1
static constexpr uint64_t modulus_2
static constexpr uint64_t modulus_3
static constexpr uint64_t modulus_0
static constexpr uint64_t modulus_3
static constexpr uint64_t modulus_1
static constexpr uint64_t modulus_2
static constexpr uint64_t modulus_3
static constexpr uint64_t modulus_2
static constexpr uint64_t modulus_0
static constexpr uint64_t modulus_1
static constexpr uint64_t modulus_2
static constexpr uint64_t modulus_1
static constexpr uint64_t modulus_3
static constexpr uint64_t modulus_0
void throw_or_abort(std::string const &err)