Clearmatics Libsnark
0.1
C++ library for zkSNARK proofs
|
Go to the documentation of this file.
39 template<
typename FieldT>
42 template<
typename FieldT>
52 template<
typename FieldT>
struct bacs_gate {
62 const std::map<size_t, std::string> &variable_annotations =
63 std::map<size_t, std::string>())
const;
67 friend std::ostream &operator<<<FieldT>(
69 friend std::istream &
operator>>
78 template<
typename FieldT>
84 template<
typename FieldT>
91 template<
typename FieldT>
95 template<
typename FieldT>
113 std::vector<bacs_gate<FieldT>>
gates;
122 size_t depth()
const;
125 std::map<size_t, std::string> gate_annotations;
126 std::map<size_t, std::string> variable_annotations;
149 friend std::ostream &operator<<<FieldT>(
151 friend std::istream &
operator>>
size_t primary_input_size
std::ostream & operator<<(std::ostream &out, const accumulation_vector< T > &v)
linear_combination< FieldT > rhs
bacs_variable_assignment< FieldT > get_all_outputs(const bacs_primary_input< FieldT > &primary_input, const bacs_auxiliary_input< FieldT > &auxiliary_input) const
std::vector< bacs_gate< FieldT > > gates
size_t num_inputs() const
bacs_variable_assignment< FieldT > get_all_wires(const bacs_primary_input< FieldT > &primary_input, const bacs_auxiliary_input< FieldT > &auxiliary_input) const
void print(const std::map< size_t, std::string > &variable_annotations=std::map< size_t, std::string >()) const
bool operator==(const bacs_gate< FieldT > &other) const
bool operator==(const bacs_circuit< FieldT > &other) const
bool is_satisfied(const bacs_primary_input< FieldT > &primary_input, const bacs_auxiliary_input< FieldT > &auxiliary_input) const
void add_gate(const bacs_gate< FieldT > &g)
std::istream & operator>>(std::istream &in, accumulation_vector< T > &v)
std::vector< size_t > wire_depths() const
linear_combination< FieldT > lhs
std::vector< FieldT > bacs_variable_assignment
size_t auxiliary_input_size
variable< FieldT > output
FieldT evaluate(const bacs_variable_assignment< FieldT > &input) const
bacs_variable_assignment< FieldT > bacs_auxiliary_input
bacs_variable_assignment< FieldT > bacs_primary_input