nil::crypto3::zk::snark::tbcs_circuit Struct Reference
#include <tbcs.hpp>
Collaboration diagram for nil::crypto3::zk::snark::tbcs_circuit:
Public Member Functions | |
void | add_gate (const tbcs_gate &g) |
std::size_t | depth () const |
tbcs_variable_assignment | get_all_outputs (const tbcs_primary_input &primary_input, const tbcs_auxiliary_input &auxiliary_input) const |
tbcs_variable_assignment | get_all_wires (const tbcs_primary_input &primary_input, const tbcs_auxiliary_input &auxiliary_input) const |
bool | is_satisfied (const tbcs_primary_input &primary_input, const tbcs_auxiliary_input &auxiliary_input) const |
bool | is_valid () const |
std::size_t | num_gates () const |
std::size_t | num_inputs () const |
std::size_t | num_wires () const |
bool | operator== (const tbcs_circuit &other) const |
tbcs_circuit () | |
std::vector< std::size_t > | wire_depths () const |
Public Attributes | |
std::size_t | auxiliary_input_size |
std::vector< tbcs_gate > | gates |
std::size_t | primary_input_size |
Detailed Description
A TBCS circuit is a boolean circuit in which every gate has 2 inputs.
A TBCS circuit is satisfied by a TBCS variable assignment if every output evaluates to zero.
NOTE: The 0-th variable (i.e., "x_{0}") always represents the constant 1. Thus, the 0-th variable is not included in num_variables.
Constructor & Destructor Documentation
◆ tbcs_circuit()
|
inline |
Member Function Documentation
◆ add_gate()
|
inline |
◆ depth()
|
inline |
◆ get_all_outputs()
|
inline |
◆ get_all_wires()
|
inline |
◆ is_satisfied()
|
inline |
◆ is_valid()
|
inline |
The output wire of gates[i] must have index 1+num_inputs+i. (The '1+' accounts for the index of the constant wire.)
Gates must be topologically sorted.
◆ num_gates()
|
inline |
◆ num_inputs()
|
inline |
◆ num_wires()
|
inline |
◆ operator==()
|
inline |
◆ wire_depths()
|
inline |
Member Data Documentation
◆ auxiliary_input_size
std::size_t nil::crypto3::zk::snark::tbcs_circuit::auxiliary_input_size |
◆ gates
std::vector<tbcs_gate> nil::crypto3::zk::snark::tbcs_circuit::gates |
◆ primary_input_size
std::size_t nil::crypto3::zk::snark::tbcs_circuit::primary_input_size |
The documentation for this struct was generated from the following file: