When using uint64 from stdlib and calling XOR or AND directly(not using create_logic_constraint):
#include "barretenberg/circuit_checker/circuit_checker.hpp"
#include "barretenberg/stdlib/primitives/field/field.hpp"
#include "barretenberg/stdlib/primitives/uint/uint.hpp"
using namespace bb;
namespace {
auto& engine = numeric::get_debug_randomness();
}
using field_t = stdlib::field_t<UltraCircuitBuilder>;
using witness_t = stdlib::witness_t<UltraCircuitBuilder>;
using pub_witness_t = stdlib::public_witness_t<UltraCircuitBuilder>;
using uint_t = stdlib::uint64<UltraCircuitBuilder>;
int main()
{
UltraCircuitBuilder builder;
uint_t a = witness_t(&builder, 0);
uint_t b = witness_t(&builder, 0);
uint_t c = a ^ b;
info(c);
}
It returns the following error:
barretenberg/cpp/src/barretenberg/stdlib_circuit_builders/circuit_builder_base.hpp:107: FF bb::CircuitBuilderBase<bb::field<bb::Bn254FrParams>>::get_variable(const uint32_t) const [FF_ = bb::field<bb::Bn254FrParams>]: Assertion `(variables.size() > index)' failed.
[1] 1378769 IOT instruction (core dumped) ./bin/xor_debug
When using
uint64fromstdliband calling XOR or AND directly(not usingcreate_logic_constraint):It returns the following error: