Clearmatics Libsnark  0.1
C++ library for zkSNARK proofs
trace_lines.hpp
Go to the documentation of this file.
1 
12 #ifndef TRACE_LINES_HPP_
13 #define TRACE_LINES_HPP_
14 
15 #include <libff/common/utils.hpp>
18 #include <memory>
19 
20 namespace libsnark
21 {
22 
32 template<typename ramT>
34 {
35 public:
37 
38  std::shared_ptr<dual_variable_gadget<FieldT>> timestamp;
39  std::shared_ptr<dual_variable_gadget<FieldT>> address;
40  std::shared_ptr<dual_variable_gadget<FieldT>> contents_before;
41  std::shared_ptr<dual_variable_gadget<FieldT>> contents_after;
42 
43 public:
46  const size_t timestamp_size,
48  const std::string &annotation_prefix = "");
49 
50  void generate_r1cs_constraints(const bool enforce_bitness = false);
53 
55 };
56 
64 template<typename ramT>
66 {
67 public:
69 
72 
75  const size_t timestamp_size,
77  const std::string &annotation_prefix = "");
78 };
79 
80 } // namespace libsnark
81 
83 
84 #endif // TRACE_LINES_HPP_
libsnark::ram_architecture_params
typename ramT::architecture_params_type ram_architecture_params
Definition: ram_params.hpp:53
libsnark::memory_line_variable_gadget
Definition: trace_lines.hpp:33
libsnark::memory_line_variable_gadget::generate_r1cs_witness_from_packed
void generate_r1cs_witness_from_packed()
libsnark::ram_protoboard
typename ramT::protoboard_type ram_protoboard
Definition: ram_params.hpp:46
libsnark
Definition: accumulation_vector.hpp:18
libsnark::memory_line_variable_gadget::contents_after
std::shared_ptr< dual_variable_gadget< FieldT > > contents_after
Definition: trace_lines.hpp:41
libsnark::ram_base_field
typename ramT::base_field_type ram_base_field
Definition: ram_params.hpp:40
libsnark::memory_line_variable_gadget::all_vars
pb_variable_array< FieldT > all_vars() const
libsnark::memory_line_variable_gadget::generate_r1cs_constraints
void generate_r1cs_constraints(const bool enforce_bitness=false)
libsnark::memory_line_variable_gadget::FieldT
ram_base_field< ramT > FieldT
Definition: trace_lines.hpp:36
libsnark::memory_line_variable_gadget::timestamp
std::shared_ptr< dual_variable_gadget< FieldT > > timestamp
Definition: trace_lines.hpp:38
libsnark::memory_line_variable_gadget::address
std::shared_ptr< dual_variable_gadget< FieldT > > address
Definition: trace_lines.hpp:39
libsnark::execution_line_variable_gadget::cpu_state
pb_variable_array< FieldT > cpu_state
Definition: trace_lines.hpp:70
libsnark::pb_variable
Definition: pb_variable.hpp:24
basic_gadgets.hpp
libsnark::execution_line_variable_gadget::execution_line_variable_gadget
execution_line_variable_gadget(ram_protoboard< ramT > &pb, const size_t timestamp_size, const ram_architecture_params< ramT > &ap, const std::string &annotation_prefix="")
libsnark::pb_variable_array
Definition: pb_variable.hpp:44
libsnark::memory_line_variable_gadget::contents_before
std::shared_ptr< dual_variable_gadget< FieldT > > contents_before
Definition: trace_lines.hpp:40
libsnark::memory_line_variable_gadget::memory_line_variable_gadget
memory_line_variable_gadget(ram_protoboard< ramT > &pb, const size_t timestamp_size, const ram_architecture_params< ramT > &ap, const std::string &annotation_prefix="")
libsnark::execution_line_variable_gadget::has_accepted
pb_variable< FieldT > has_accepted
Definition: trace_lines.hpp:71
libsnark::memory_line_variable_gadget::generate_r1cs_witness_from_bits
void generate_r1cs_witness_from_bits()
libsnark::execution_line_variable_gadget
Definition: trace_lines.hpp:65
libsnark::execution_line_variable_gadget::FieldT
ram_base_field< ramT > FieldT
Definition: trace_lines.hpp:68
libsnark::ram_gadget_base
typename ramT::gadget_base_type ram_gadget_base
Definition: ram_params.hpp:48
trace_lines.tcc
ram_params.hpp