Clearmatics Libsnark  0.1
C++ library for zkSNARK proofs
ram_to_r1cs.hpp
Go to the documentation of this file.
1 
17 #ifndef RAM_TO_R1CS_HPP_
18 #define RAM_TO_R1CS_HPP_
19 
21 
22 namespace libsnark
23 {
24 
25 template<typename ramT> class ram_to_r1cs
26 {
27 public:
29 
31 
34  std::shared_ptr<ram_universal_gadget<ramT>> universal_gadget;
35 
38  const size_t boot_trace_size_bound,
39  const size_t time_bound);
40  void instance_map();
43  const ram_boot_trace<ramT> &boot_trace,
44  const ram_input_tape<ramT> &auxiliary_input);
45 
46  /* both methods assume that auxiliary_input_map has been called */
47  void print_execution_trace() const;
48  void print_memory_trace() const;
49 
50  static std::vector<ram_base_field<ramT>> pack_primary_input_address_and_value(
52 
55  const size_t boot_trace_size_bound,
56  const ram_boot_trace<ramT> &boot_trace);
57 };
58 
59 } // namespace libsnark
60 
62 
63 #endif // RAM_TO_R1CS_HPP_
libsnark::ram_input_tape
std::vector< size_t > ram_input_tape
Definition: ram_params.hpp:55
libsnark::ram_architecture_params
typename ramT::architecture_params_type ram_architecture_params
Definition: ram_params.hpp:53
libsnark::ram_to_r1cs::print_execution_trace
void print_execution_trace() const
libsnark::ram_protoboard
typename ramT::protoboard_type ram_protoboard
Definition: ram_params.hpp:46
libsnark::ram_to_r1cs::instance_map
void instance_map()
libsnark
Definition: accumulation_vector.hpp:18
libsnark::ram_to_r1cs::universal_gadget
std::shared_ptr< ram_universal_gadget< ramT > > universal_gadget
Definition: ram_to_r1cs.hpp:34
libsnark::ram_to_r1cs::FieldT
ram_base_field< ramT > FieldT
Definition: ram_to_r1cs.hpp:28
libsnark::ram_base_field
typename ramT::base_field_type ram_base_field
Definition: ram_params.hpp:40
libsnark::ram_to_r1cs::pack_primary_input_address_and_value
static std::vector< ram_base_field< ramT > > pack_primary_input_address_and_value(const ram_architecture_params< ramT > &ap, const address_and_value &av)
libsnark::ram_to_r1cs::auxiliary_input_map
r1cs_auxiliary_input< FieldT > auxiliary_input_map(const ram_boot_trace< ramT > &boot_trace, const ram_input_tape< ramT > &auxiliary_input)
libsnark::ram_to_r1cs::ram_to_r1cs
ram_to_r1cs(const ram_architecture_params< ramT > &ap, const size_t boot_trace_size_bound, const size_t time_bound)
ram_universal_gadget.hpp
libsnark::ram_to_r1cs::r1cs_input
pb_variable_array< FieldT > r1cs_input
Definition: ram_to_r1cs.hpp:33
libsnark::address_and_value
std::pair< size_t, size_t > address_and_value
Definition: memory_store_trace.hpp:24
libsnark::ram_to_r1cs
Definition: ram_to_r1cs.hpp:25
libsnark::memory_store_trace
Definition: memory_store_trace.hpp:29
libsnark::r1cs_auxiliary_input
std::vector< FieldT > r1cs_auxiliary_input
Definition: r1cs.hpp:84
libsnark::pb_variable_array
Definition: pb_variable.hpp:44
libsnark::r1cs_constraint_system
Definition: protoboard.hpp:25
libsnark::ram_to_r1cs::get_constraint_system
r1cs_constraint_system< FieldT > get_constraint_system() const
libsnark::ram_to_r1cs::print_memory_trace
void print_memory_trace() const
ram_to_r1cs.tcc
libsnark::ram_to_r1cs::main_protoboard
ram_protoboard< ramT > main_protoboard
Definition: ram_to_r1cs.hpp:32
libsnark::ram_to_r1cs::primary_input_map
static r1cs_primary_input< ram_base_field< ramT > > primary_input_map(const ram_architecture_params< ramT > &ap, const size_t boot_trace_size_bound, const ram_boot_trace< ramT > &boot_trace)
libsnark::r1cs_primary_input
std::vector< FieldT > r1cs_primary_input
Definition: r1cs.hpp:82
libsnark::ram_to_r1cs::boot_trace_size_bound
size_t boot_trace_size_bound
Definition: ram_to_r1cs.hpp:30