Clearmatics Libsnark  0.1
C++ library for zkSNARK proofs
fooram_aux.cpp
Go to the documentation of this file.
1 
14 #include <libff/common/serialization.hpp>
16 
17 namespace libsnark
18 {
19 
21 
22 size_t fooram_architecture_params::num_addresses() const { return 1ul << w; }
23 
24 size_t fooram_architecture_params::address_size() const { return w; }
25 
26 size_t fooram_architecture_params::value_size() const { return w; }
27 
29 
30 size_t fooram_architecture_params::initial_pc_addr() const { return 0; }
31 
33  const fooram_program &program, const fooram_input_tape &primary_input) const
34 {
36  /* fooram memory contents do not depend on program/input. */
37  libff::UNUSED(program, primary_input);
38  return m;
39 }
40 
42 {
43  libff::bit_vector state;
44  state.resize(w, false);
45  return state;
46 }
47 
48 void fooram_architecture_params::print() const { printf("w = %zu\n", w); }
49 
51  const fooram_architecture_params &other) const
52 {
53  return (this->w == other.w);
54 }
55 
56 std::ostream &operator<<(
57  std::ostream &out, const fooram_architecture_params &ap)
58 {
59  out << ap.w << "\n";
60  return out;
61 }
62 
63 std::istream &operator>>(std::istream &in, fooram_architecture_params &ap)
64 {
65  in >> ap.w;
66  libff::consume_newline(in);
67  return in;
68 }
69 
70 } // namespace libsnark
libsnark::fooram_architecture_params::address_size
size_t address_size() const
Definition: fooram_aux.cpp:24
libsnark::fooram_architecture_params::print
void print() const
Definition: fooram_aux.cpp:48
libsnark
Definition: accumulation_vector.hpp:18
libsnark::operator<<
std::ostream & operator<<(std::ostream &out, const accumulation_vector< T > &v)
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::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
fooram_aux.hpp
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
libsnark::operator>>
std::istream & operator>>(std::istream &in, accumulation_vector< T > &v)
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==
bool operator==(const fooram_architecture_params &other) const
Definition: fooram_aux.cpp:50