Clearmatics Libsnark  0.1
C++ library for zkSNARK proofs
fooram_aux.hpp
Go to the documentation of this file.
1 
12 #ifndef FOORAM_AUX_HPP_
13 #define FOORAM_AUX_HPP_
14 
15 #include <iostream>
16 #include <libff/common/utils.hpp>
18 #include <vector>
19 
20 namespace libsnark
21 {
22 
23 typedef std::vector<size_t> fooram_program;
24 typedef std::vector<size_t> fooram_input_tape;
25 typedef typename std::vector<size_t>::const_iterator fooram_input_tape_iterator;
26 
28 {
29 public:
30  size_t w;
31  fooram_architecture_params(const size_t w = 16);
32 
33  size_t num_addresses() const;
34  size_t address_size() const;
35  size_t value_size() const;
36  size_t cpu_state_size() const;
37  size_t initial_pc_addr() const;
38 
40  const fooram_program &program,
41  const fooram_input_tape &primary_input) const;
42 
43  libff::bit_vector initial_cpu_state() const;
44  void print() const;
45  bool operator==(const fooram_architecture_params &other) const;
46 
47  friend std::ostream &operator<<(
48  std::ostream &out, const fooram_architecture_params &ap);
49  friend std::istream &operator>>(
50  std::istream &in, fooram_architecture_params &ap);
51 };
52 
53 } // namespace libsnark
54 
55 #endif // FOORAM_AUX_HPP_
libsnark::fooram_architecture_params::address_size
size_t address_size() const
Definition: fooram_aux.cpp:24
libsnark::fooram_input_tape_iterator
std::vector< size_t >::const_iterator fooram_input_tape_iterator
Definition: fooram_aux.hpp:25
libsnark::fooram_architecture_params::print
void print() const
Definition: fooram_aux.cpp:48
libsnark
Definition: accumulation_vector.hpp:18
libsnark::fooram_architecture_params::initial_cpu_state
libff::bit_vector initial_cpu_state() const
Definition: fooram_aux.cpp:41
libsnark::fooram_program
std::vector< size_t > fooram_program
Definition: fooram_aux.hpp:23
libsnark::fooram_architecture_params::operator>>
friend std::istream & operator>>(std::istream &in, fooram_architecture_params &ap)
Definition: fooram_aux.cpp:63
libsnark::fooram_architecture_params::initial_memory_contents
memory_contents initial_memory_contents(const fooram_program &program, const fooram_input_tape &primary_input) const
Definition: fooram_aux.cpp:32
libsnark::memory_contents
std::map< size_t, size_t > memory_contents
Definition: memory_interface.hpp:25
libsnark::fooram_architecture_params::w
size_t w
Definition: fooram_aux.hpp:30
libsnark::fooram_architecture_params::cpu_state_size
size_t cpu_state_size() const
Definition: fooram_aux.cpp:28
libsnark::fooram_architecture_params
Definition: fooram_aux.hpp:27
libsnark::fooram_input_tape
std::vector< size_t > fooram_input_tape
Definition: fooram_aux.hpp:24
libsnark::fooram_architecture_params::fooram_architecture_params
fooram_architecture_params(const size_t w=16)
Definition: fooram_aux.cpp:20
memory_interface.hpp
libsnark::fooram_architecture_params::num_addresses
size_t num_addresses() const
Definition: fooram_aux.cpp:22
libsnark::fooram_architecture_params::initial_pc_addr
size_t initial_pc_addr() const
Definition: fooram_aux.cpp:30
libsnark::fooram_architecture_params::value_size
size_t value_size() const
Definition: fooram_aux.cpp:26
libsnark::fooram_architecture_params::operator<<
friend std::ostream & operator<<(std::ostream &out, const fooram_architecture_params &ap)
Definition: fooram_aux.cpp:56
libsnark::fooram_architecture_params::operator==
bool operator==(const fooram_architecture_params &other) const
Definition: fooram_aux.cpp:50