Clearmatics Libsnark  0.1
C++ library for zkSNARK proofs
Public Member Functions | Public Attributes | Friends | List of all members
libsnark::fooram_architecture_params Class Reference

#include <fooram_aux.hpp>

Public Member Functions

 fooram_architecture_params (const size_t w=16)
 
size_t num_addresses () const
 
size_t address_size () const
 
size_t value_size () const
 
size_t cpu_state_size () const
 
size_t initial_pc_addr () const
 
memory_contents initial_memory_contents (const fooram_program &program, const fooram_input_tape &primary_input) const
 
libff::bit_vector initial_cpu_state () const
 
void print () const
 
bool operator== (const fooram_architecture_params &other) const
 

Public Attributes

size_t w
 

Friends

std::ostream & operator<< (std::ostream &out, const fooram_architecture_params &ap)
 
std::istream & operator>> (std::istream &in, fooram_architecture_params &ap)
 

Detailed Description

Definition at line 27 of file fooram_aux.hpp.

Constructor & Destructor Documentation

◆ fooram_architecture_params()

libsnark::fooram_architecture_params::fooram_architecture_params ( const size_t  w = 16)

Definition at line 20 of file fooram_aux.cpp.

20 : w(w) {}

Member Function Documentation

◆ address_size()

size_t libsnark::fooram_architecture_params::address_size ( ) const

Definition at line 24 of file fooram_aux.cpp.

24 { return w; }

◆ cpu_state_size()

size_t libsnark::fooram_architecture_params::cpu_state_size ( ) const

Definition at line 28 of file fooram_aux.cpp.

28 { return w; }

◆ initial_cpu_state()

libff::bit_vector libsnark::fooram_architecture_params::initial_cpu_state ( ) const

Definition at line 41 of file fooram_aux.cpp.

42 {
43  libff::bit_vector state;
44  state.resize(w, false);
45  return state;
46 }

◆ initial_memory_contents()

memory_contents libsnark::fooram_architecture_params::initial_memory_contents ( const fooram_program program,
const fooram_input_tape primary_input 
) const

Definition at line 32 of file fooram_aux.cpp.

34 {
36  /* fooram memory contents do not depend on program/input. */
37  libff::UNUSED(program, primary_input);
38  return m;
39 }

◆ initial_pc_addr()

size_t libsnark::fooram_architecture_params::initial_pc_addr ( ) const

Definition at line 30 of file fooram_aux.cpp.

30 { return 0; }

◆ num_addresses()

size_t libsnark::fooram_architecture_params::num_addresses ( ) const

Definition at line 22 of file fooram_aux.cpp.

22 { return 1ul << w; }

◆ operator==()

bool libsnark::fooram_architecture_params::operator== ( const fooram_architecture_params other) const

Definition at line 50 of file fooram_aux.cpp.

52 {
53  return (this->w == other.w);
54 }

◆ print()

void libsnark::fooram_architecture_params::print ( ) const

Definition at line 48 of file fooram_aux.cpp.

48 { printf("w = %zu\n", w); }

◆ value_size()

size_t libsnark::fooram_architecture_params::value_size ( ) const

Definition at line 26 of file fooram_aux.cpp.

26 { return w; }

Friends And Related Function Documentation

◆ operator<<

std::ostream& operator<< ( std::ostream &  out,
const fooram_architecture_params ap 
)
friend

Definition at line 56 of file fooram_aux.cpp.

58 {
59  out << ap.w << "\n";
60  return out;
61 }

◆ operator>>

std::istream& operator>> ( std::istream &  in,
fooram_architecture_params ap 
)
friend

Definition at line 63 of file fooram_aux.cpp.

64 {
65  in >> ap.w;
66  libff::consume_newline(in);
67  return in;
68 }

Member Data Documentation

◆ w

size_t libsnark::fooram_architecture_params::w

Definition at line 30 of file fooram_aux.hpp.


The documentation for this class was generated from the following files:
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