2#include <unordered_map>
8#include <gtest/gtest.h>
22 uint32_t
a =
engine.get_random_uint32();
23 uint32_t
b =
engine.get_random_uint32();
26 uint32_t modulus_base = 16;
27 uint32_t bitvector_size = 32;
28 Solver s(
"30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001",
39 ASSERT_TRUE(s.
check());
47 uint32_t
a =
engine.get_random_uint32();
48 uint32_t
b =
engine.get_random_uint32();
51 uint32_t modulus_base = 16;
52 uint32_t bitvector_size = 32;
53 Solver s(
"30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001",
64 ASSERT_TRUE(s.
check());
72 uint32_t
a =
engine.get_random_uint32();
73 uint32_t
b =
engine.get_random_uint32();
76 uint32_t modulus_base = 16;
77 uint32_t bitvector_size = 32;
78 Solver s(
"30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001",
89 ASSERT_TRUE(s.
check());
97 uint32_t
a =
engine.get_random_uint32();
98 uint32_t
b = (
a >> 10) | (
a << 22);
100 uint32_t modulus_base = 16;
101 uint32_t bitvector_size = 32;
102 Solver s(
"30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001",
111 ASSERT_TRUE(s.
check());
119 uint32_t
a =
engine.get_random_uint32();
120 uint32_t
b = (
a << 10) | (
a >> 22);
122 uint32_t modulus_base = 16;
123 uint32_t bitvector_size = 32;
124 Solver s(
"30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001",
133 ASSERT_TRUE(s.
check());
143 uint32_t
a =
engine.get_random_uint32();
144 uint32_t
b =
engine.get_random_uint32();
147 uint32_t modulus_base = 16;
148 uint32_t bitvector_size = 32;
149 Solver s(
"30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001",
161 ASSERT_TRUE(s.
check());
164 ASSERT_EQ(
bb::fr(c), xvals);
169 uint32_t
a =
engine.get_random_uint32();
170 uint32_t
b =
engine.get_random_uint32();
173 uint32_t modulus_base = 16;
174 uint32_t bitvector_size = 32;
175 Solver s(
"30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001",
187 ASSERT_TRUE(s.
check());
190 ASSERT_EQ(
bb::fr(c), xvals);
195 uint32_t
a =
engine.get_random_uint32();
196 uint32_t
b =
engine.get_random_uint32();
199 uint32_t modulus_base = 16;
200 uint32_t bitvector_size = 32;
201 Solver s(
"30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001",
213 ASSERT_TRUE(s.
check());
216 ASSERT_EQ(
bb::fr(c), xvals);
221 uint32_t
a =
engine.get_random_uint32();
222 uint32_t
b =
engine.get_random_uint32();
225 uint32_t modulus_base = 16;
226 uint32_t bitvector_size = 32;
227 Solver s(
"30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001",
239 ASSERT_TRUE(s.
check());
242 ASSERT_EQ(
bb::fr(c), xvals);
247 uint32_t
a =
engine.get_random_uint32();
250 uint32_t modulus_base = 16;
251 uint32_t bitvector_size = 32;
252 Solver s(
"30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001",
262 ASSERT_TRUE(s.
check());
270 uint32_t
a =
engine.get_random_uint32();
273 uint32_t modulus_base = 16;
274 uint32_t bitvector_size = 32;
275 Solver s(
"30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001",
285 ASSERT_TRUE(s.
check());
293 uint32_t
a =
engine.get_random_uint32();
294 unsigned int mask = (1 << 10) - 1;
295 uint32_t
b =
a & mask;
297 uint32_t modulus_base = 16;
298 uint32_t bitvector_size = 32;
299 Solver s(
"30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001",
309 ASSERT_TRUE(s.
check());
317 uint32_t
a =
engine.get_random_uint32();
318 unsigned int mask = (1 << 10);
319 uint32_t
b =
a & mask;
322 uint32_t modulus_base = 16;
323 uint32_t bitvector_size = 32;
324 Solver s(
"30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001",
334 ASSERT_TRUE(s.
check());
Symbolic term element class.
STerm rotl(const uint32_t &n) const
STerm rotr(const uint32_t &n) const
STerm extract_bit(const uint32_t &bit_index)
Returns ith bit of variable.
STerm truncate(const uint32_t &to_size)
Returns last to_size bits of variable.
smt_circuit::STerm shr(smt_circuit::STerm v0, smt_circuit::STerm v1, smt_solver::Solver *solver)
Right shift operation.
smt_circuit::STerm shl(smt_circuit::STerm v0, smt_circuit::STerm v1, smt_solver::Solver *solver)
Left shift operation without truncation.
Entry point for Barretenberg command-line interface.
UltraCircuitBuilder_< UltraExecutionTraceBlocks > UltraCircuitBuilder
TEST(BoomerangMegaCircuitBuilder, BasicCircuit)
const SolverConfiguration default_solver_config
STerm BVVar(const std::string &name, Solver *slv)
bb::fr string_to_fr(const std::string &number, int base, bool is_signed, size_t step)
Converts a string of an arbitrary base to fr. Note: there should be no prefix.