7#include <gtest/gtest.h>
22 for (
size_t i = 0; i < n; i++) {
36 for (
size_t i = 0; i < n; i++) {
37 res = res * z + coeffs[i];
41 info(
"evaluation at point ", z,
": ", res);
44 info(
"public inputs: ",
builder.num_public_inputs());
46 return builder.export_circuit();
51 STerm point = c[
"point"];
52 STerm result = c[
"result"];
54 for (
size_t i = 0; i < n; i++) {
63 terms.insert({
"point", c[
"point"] });
64 terms.insert({
"result", c[
"result"] });
65 terms.insert({
"evaluation", evaluation });
67 auto values = s->
model(terms);
69 info(
"point = ", values[
"point"]);
70 info(
"circuit_result = ", values[
"result"]);
71 info(
"function_evaluation = ", values[
"evaluation"]);
74TEST(PolynomialEvaluation,
public)
81 UltraCircuit circuit(circuit_info, &s, TermType::FFTerm);
83 ev != circuit[
"result"];
89TEST(PolynomialEvaluation,
private)
96 UltraCircuit circuit(circuit_info, &s, TermType::FFTerm);
98 ev != circuit[
"result"];
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.
Symbolic Circuit class for Standard Circuit Builder.
size_t get_num_gates() const
Get the num gates object.
const char * getResult() const
std::unordered_map< std::string, std::string > model(std::unordered_map< std::string, cvc5::Term > &terms) const
Symbolic term element class.
Entry point for Barretenberg command-line interface.
TEST(MegaCircuitBuilder, CopyConstructor)
UltraCircuitBuilder_< UltraExecutionTraceBlocks > UltraCircuitBuilder
CircuitSchema unpack_from_buffer(const msgpack::sbuffer &buf)
Get the CircuitSchema object.
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
std::string to_string(bb::avm2::ValueTag tag)
msgpack::sbuffer create_polynomial_evaluation_circuit(size_t n, bool pub_coeffs)
stdlib::witness_t< Builder > witness_t
stdlib::public_witness_t< Builder > pub_witness_t
void model_variables(UltraCircuit &c, Solver *s, STerm &evaluation)
STerm direct_polynomial_evaluation(UltraCircuit &c, size_t n)
bool smt_timer(smt_solver::Solver *s)
Get the solver result and amount of time that it took to solve.
static field random_element(numeric::RNG *engine=nullptr) noexcept
Serialized state of a circuit.