|
Barretenberg
The ZK-SNARK library at the core of Aztec
|
Base class for symbolic circuits. More...
#include <circuit_base.hpp>
Public Member Functions | |
| CircuitBase (std::unordered_map< uint32_t, std::string > &variable_names, std::vector< bb::fr > &variables, std::vector< uint32_t > &public_inps, std::vector< uint32_t > &real_variable_index, std::vector< uint32_t > &real_variable_tags, Solver *solver, TermType type, const std::string &tag="", bool enable_optimizations=true) | |
| STerm | operator[] (const std::string &name) |
| Returns a previously named symbolic variable. | |
| STerm | operator[] (const uint32_t &idx) |
| size_t | get_num_real_vars () const |
| size_t | get_num_vars () const |
| void | init () |
| virtual bool | simulate_circuit_eval (std::vector< bb::fr > &witness) const =0 |
| CircuitBase (const CircuitBase &other)=default | |
| CircuitBase (CircuitBase &&other) noexcept=default | |
| CircuitBase & | operator= (const CircuitBase &other)=default |
| CircuitBase & | operator= (CircuitBase &&other) noexcept=default |
| virtual | ~CircuitBase ()=default |
Public Attributes | |
| std::vector< bb::fr > | variables |
| std::unordered_set< uint32_t > | public_inps |
| std::unordered_map< uint32_t, std::string > | variable_names |
| std::unordered_map< std::string, uint32_t > | variable_names_inverse |
| std::unordered_map< uint32_t, STerm > | symbolic_vars |
| std::vector< uint32_t > | real_variable_index |
| std::vector< uint32_t > | real_variable_tags |
| std::unordered_map< uint32_t, bool > | optimized |
| bool | enable_optimizations |
| std::unordered_map< uint32_t, std::vector< bb::fr > > | post_process |
| Solver * | solver |
| TermType | type |
| std::string | tag |
Base class for symbolic circuits.
Contains all the information about the circuit: gates, variables, symbolic variables, specified names, global solver and optimiztaions.
Definition at line 28 of file circuit_base.hpp.
| smt_circuit::CircuitBase::CircuitBase | ( | std::unordered_map< uint32_t, std::string > & | variable_names, |
| std::vector< bb::fr > & | variables, | ||
| std::vector< uint32_t > & | public_inps, | ||
| std::vector< uint32_t > & | real_variable_index, | ||
| std::vector< uint32_t > & | real_variable_tags, | ||
| Solver * | solver, | ||
| TermType | type, | ||
| const std::string & | tag = "", |
||
| bool | enable_optimizations = true |
||
| ) |
Definition at line 5 of file circuit_base.cpp.
|
default |
|
defaultnoexcept |
|
virtualdefault |
|
inline |
Definition at line 66 of file circuit_base.hpp.
|
inline |
Definition at line 67 of file circuit_base.hpp.
| void smt_circuit::CircuitBase::init | ( | ) |
Creates all the needed symbolic variables and constants which are used in circuit.
Definition at line 44 of file circuit_base.cpp.
|
defaultnoexcept |
|
default |
| STerm smt_circuit::CircuitBase::operator[] | ( | const std::string & | name | ) |
Returns a previously named symbolic variable.
| name |
Definition at line 70 of file circuit_base.cpp.
|
inline |
Definition at line 65 of file circuit_base.hpp.
|
pure virtual |
Implemented in smt_circuit::UltraCircuit.
| bool smt_circuit::CircuitBase::enable_optimizations |
Definition at line 39 of file circuit_base.hpp.
| std::unordered_map<uint32_t, bool> smt_circuit::CircuitBase::optimized |
Definition at line 37 of file circuit_base.hpp.
| std::unordered_map<uint32_t, std::vector<bb::fr> > smt_circuit::CircuitBase::post_process |
Definition at line 41 of file circuit_base.hpp.
| std::unordered_set<uint32_t> smt_circuit::CircuitBase::public_inps |
Definition at line 31 of file circuit_base.hpp.
| std::vector<uint32_t> smt_circuit::CircuitBase::real_variable_index |
Definition at line 35 of file circuit_base.hpp.
| std::vector<uint32_t> smt_circuit::CircuitBase::real_variable_tags |
Definition at line 36 of file circuit_base.hpp.
| Solver* smt_circuit::CircuitBase::solver |
Definition at line 47 of file circuit_base.hpp.
| std::unordered_map<uint32_t, STerm> smt_circuit::CircuitBase::symbolic_vars |
Definition at line 34 of file circuit_base.hpp.
| std::string smt_circuit::CircuitBase::tag |
Definition at line 50 of file circuit_base.hpp.
| TermType smt_circuit::CircuitBase::type |
Definition at line 48 of file circuit_base.hpp.
| std::unordered_map<uint32_t, std::string> smt_circuit::CircuitBase::variable_names |
Definition at line 32 of file circuit_base.hpp.
| std::unordered_map<std::string, uint32_t> smt_circuit::CircuitBase::variable_names_inverse |
Definition at line 33 of file circuit_base.hpp.
| std::vector<bb::fr> smt_circuit::CircuitBase::variables |
Definition at line 30 of file circuit_base.hpp.