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

#include <ra_memory.hpp>

Inheritance diagram for libsnark::ra_memory:
Inheritance graph
[legend]
Collaboration diagram for libsnark::ra_memory:
Collaboration graph
[legend]

Public Member Functions

 ra_memory (const size_t num_addresses, const size_t value_size)
 
 ra_memory (const size_t num_addresses, const size_t value_size, const std::vector< size_t > &contents_as_vector)
 
 ra_memory (const size_t num_addresses, const size_t value_size, const memory_contents &contents)
 
size_t get_value (const size_t address) const
 
void set_value (const size_t address, const size_t value)
 
- Public Member Functions inherited from libsnark::memory_interface
 memory_interface (const size_t num_addresses, const size_t value_size)
 
 memory_interface (const size_t num_addresses, const size_t value_size, const std::vector< size_t > &contents_as_vector)
 
 memory_interface (const size_t num_addresses, const size_t value_size, const memory_contents &contents)
 

Public Attributes

memory_contents contents
 
- Public Attributes inherited from libsnark::memory_interface
size_t num_addresses
 
size_t value_size
 

Detailed Description

A random-access memory maintains the memory's contents via a map (from addresses to values).

Definition at line 24 of file ra_memory.hpp.

Constructor & Destructor Documentation

◆ ra_memory() [1/3]

libsnark::ra_memory::ra_memory ( const size_t  num_addresses,
const size_t  value_size 
)

Definition at line 20 of file ra_memory.cpp.

◆ ra_memory() [2/3]

libsnark::ra_memory::ra_memory ( const size_t  num_addresses,
const size_t  value_size,
const std::vector< size_t > &  contents_as_vector 
)

Definition at line 25 of file ra_memory.cpp.

30 {
31  /* copy std::vector into std::map */
32  for (size_t i = 0; i < contents_as_vector.size(); ++i) {
33  contents[i] = contents_as_vector[i];
34  }
35 }

◆ ra_memory() [3/3]

libsnark::ra_memory::ra_memory ( const size_t  num_addresses,
const size_t  value_size,
const memory_contents contents 
)

Definition at line 37 of file ra_memory.cpp.

Member Function Documentation

◆ get_value()

size_t libsnark::ra_memory::get_value ( const size_t  address) const
virtual

Implements libsnark::memory_interface.

Definition at line 45 of file ra_memory.cpp.

46 {
47  assert(address < num_addresses);
48  auto it = contents.find(address);
49  return (it == contents.end() ? 0 : it->second);
50 }

◆ set_value()

void libsnark::ra_memory::set_value ( const size_t  address,
const size_t  value 
)
virtual

Implements libsnark::memory_interface.

Definition at line 52 of file ra_memory.cpp.

53 {
54  contents[address] = value;
55 }

Member Data Documentation

◆ contents

memory_contents libsnark::ra_memory::contents

Definition at line 27 of file ra_memory.hpp.


The documentation for this class was generated from the following files:
libsnark::memory_interface::memory_interface
memory_interface(const size_t num_addresses, const size_t value_size)
Definition: memory_interface.hpp:43
libsnark::memory_interface::value_size
size_t value_size
Definition: memory_interface.hpp:41
libsnark::memory_interface::num_addresses
size_t num_addresses
Definition: memory_interface.hpp:40
libsnark::ra_memory::contents
memory_contents contents
Definition: ra_memory.hpp:27