Clearmatics Libsnark  0.1
C++ library for zkSNARK proofs
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
libsnark::ram_universal_gadget< ramT > Class Template Reference

#include <ram_universal_gadget.hpp>

Inheritance diagram for libsnark::ram_universal_gadget< ramT >:
Inheritance graph
[legend]
Collaboration diagram for libsnark::ram_universal_gadget< ramT >:
Collaboration graph
[legend]

Public Types

typedef ram_base_field< ramT > FieldT
 

Public Member Functions

 ram_universal_gadget (ram_protoboard< ramT > &pb, const size_t boot_trace_size_bound, const size_t time_bound, const pb_variable_array< FieldT > &packed_input, const std::string &annotation_prefix="")
 
void generate_r1cs_constraints ()
 
void generate_r1cs_witness (const ram_boot_trace< ramT > &boot_trace, const ram_input_tape< ramT > &auxiliary_input)
 
void print_execution_trace () const
 
void print_memory_trace () const
 

Static Public Member Functions

static size_t packed_input_element_size (const ram_architecture_params< ramT > &ap)
 
static size_t packed_input_size (const ram_architecture_params< ramT > &ap, const size_t boot_trace_size_bound)
 

Public Attributes

size_t num_memory_lines
 
std::vector< memory_line_variable_gadget< ramT > > boot_lines
 
std::vector< pb_variable_array< FieldT > > boot_line_bits
 
std::vector< multipacking_gadget< FieldT > > unpack_boot_lines
 
std::vector< memory_line_variable_gadget< ramT > > load_instruction_lines
 
std::vector< execution_line_variable_gadget< ramT > > execution_lines
 
std::vector< memory_line_variable_gadget< ramT > * > unrouted_memory_lines
 
std::vector< memory_line_variable_gadget< ramT > > routed_memory_lines
 
std::vector< ram_cpu_checker< ramT > > execution_checkers
 
std::vector< memory_checker_gadget< ramT > > memory_checkers
 
std::vector< pb_variable_array< FieldT > > routing_inputs
 
std::vector< pb_variable_array< FieldT > > routing_outputs
 
std::shared_ptr< as_waksman_routing_gadget< FieldT > > routing_network
 
size_t boot_trace_size_bound
 
size_t time_bound
 
pb_variable_array< FieldTpacked_input
 

Detailed Description

template<typename ramT>
class libsnark::ram_universal_gadget< ramT >

Definition at line 88 of file ram_universal_gadget.hpp.

Member Typedef Documentation

◆ FieldT

template<typename ramT >
typedef ram_base_field<ramT> libsnark::ram_universal_gadget< ramT >::FieldT

Definition at line 91 of file ram_universal_gadget.hpp.

Constructor & Destructor Documentation

◆ ram_universal_gadget()

template<typename ramT >
libsnark::ram_universal_gadget< ramT >::ram_universal_gadget ( ram_protoboard< ramT > &  pb,
const size_t  boot_trace_size_bound,
const size_t  time_bound,
const pb_variable_array< FieldT > &  packed_input,
const std::string &  annotation_prefix = "" 
)

Member Function Documentation

◆ generate_r1cs_constraints()

template<typename ramT >
void libsnark::ram_universal_gadget< ramT >::generate_r1cs_constraints ( )

◆ generate_r1cs_witness()

template<typename ramT >
void libsnark::ram_universal_gadget< ramT >::generate_r1cs_witness ( const ram_boot_trace< ramT > &  boot_trace,
const ram_input_tape< ramT > &  auxiliary_input 
)

◆ packed_input_element_size()

template<typename ramT >
static size_t libsnark::ram_universal_gadget< ramT >::packed_input_element_size ( const ram_architecture_params< ramT > &  ap)
static

◆ packed_input_size()

template<typename ramT >
static size_t libsnark::ram_universal_gadget< ramT >::packed_input_size ( const ram_architecture_params< ramT > &  ap,
const size_t  boot_trace_size_bound 
)
static

◆ print_execution_trace()

template<typename ramT >
void libsnark::ram_universal_gadget< ramT >::print_execution_trace ( ) const

◆ print_memory_trace()

template<typename ramT >
void libsnark::ram_universal_gadget< ramT >::print_memory_trace ( ) const

Member Data Documentation

◆ boot_line_bits

template<typename ramT >
std::vector<pb_variable_array<FieldT> > libsnark::ram_universal_gadget< ramT >::boot_line_bits

Definition at line 96 of file ram_universal_gadget.hpp.

◆ boot_lines

template<typename ramT >
std::vector<memory_line_variable_gadget<ramT> > libsnark::ram_universal_gadget< ramT >::boot_lines

Definition at line 95 of file ram_universal_gadget.hpp.

◆ boot_trace_size_bound

template<typename ramT >
size_t libsnark::ram_universal_gadget< ramT >::boot_trace_size_bound

Definition at line 115 of file ram_universal_gadget.hpp.

◆ execution_checkers

template<typename ramT >
std::vector<ram_cpu_checker<ramT> > libsnark::ram_universal_gadget< ramT >::execution_checkers

Definition at line 106 of file ram_universal_gadget.hpp.

◆ execution_lines

template<typename ramT >
std::vector<execution_line_variable_gadget<ramT> > libsnark::ram_universal_gadget< ramT >::execution_lines

Definition at line 101 of file ram_universal_gadget.hpp.

◆ load_instruction_lines

template<typename ramT >
std::vector<memory_line_variable_gadget<ramT> > libsnark::ram_universal_gadget< ramT >::load_instruction_lines

Definition at line 99 of file ram_universal_gadget.hpp.

◆ memory_checkers

template<typename ramT >
std::vector<memory_checker_gadget<ramT> > libsnark::ram_universal_gadget< ramT >::memory_checkers

Definition at line 107 of file ram_universal_gadget.hpp.

◆ num_memory_lines

template<typename ramT >
size_t libsnark::ram_universal_gadget< ramT >::num_memory_lines

Definition at line 93 of file ram_universal_gadget.hpp.

◆ packed_input

template<typename ramT >
pb_variable_array<FieldT> libsnark::ram_universal_gadget< ramT >::packed_input

Definition at line 117 of file ram_universal_gadget.hpp.

◆ routed_memory_lines

template<typename ramT >
std::vector<memory_line_variable_gadget<ramT> > libsnark::ram_universal_gadget< ramT >::routed_memory_lines

Definition at line 104 of file ram_universal_gadget.hpp.

◆ routing_inputs

template<typename ramT >
std::vector<pb_variable_array<FieldT> > libsnark::ram_universal_gadget< ramT >::routing_inputs

Definition at line 109 of file ram_universal_gadget.hpp.

◆ routing_network

template<typename ramT >
std::shared_ptr<as_waksman_routing_gadget<FieldT> > libsnark::ram_universal_gadget< ramT >::routing_network

Definition at line 112 of file ram_universal_gadget.hpp.

◆ routing_outputs

template<typename ramT >
std::vector<pb_variable_array<FieldT> > libsnark::ram_universal_gadget< ramT >::routing_outputs

Definition at line 110 of file ram_universal_gadget.hpp.

◆ time_bound

template<typename ramT >
size_t libsnark::ram_universal_gadget< ramT >::time_bound

Definition at line 116 of file ram_universal_gadget.hpp.

◆ unpack_boot_lines

template<typename ramT >
std::vector<multipacking_gadget<FieldT> > libsnark::ram_universal_gadget< ramT >::unpack_boot_lines

Definition at line 97 of file ram_universal_gadget.hpp.

◆ unrouted_memory_lines

template<typename ramT >
std::vector<memory_line_variable_gadget<ramT> *> libsnark::ram_universal_gadget< ramT >::unrouted_memory_lines

Definition at line 103 of file ram_universal_gadget.hpp.


The documentation for this class was generated from the following file: