Clearmatics Libsnark  0.1
C++ library for zkSNARK proofs
Classes | Namespaces | Typedefs | Enumerations | Functions
tinyram_aux.hpp File Reference
#include <cassert>
#include <iostream>
#include <libff/common/utils.hpp>
#include <libsnark/relations/constraint_satisfaction_problems/r1cs/r1cs.hpp>
#include <libsnark/relations/ram_computations/memory/memory_interface.hpp>
#include <libsnark/relations/ram_computations/rams/ram_params.hpp>
#include <map>
Include dependency graph for tinyram_aux.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  libsnark::tinyram_architecture_params
 
class  libsnark::tinyram_instruction
 
class  libsnark::tinyram_program
 

Namespaces

 libsnark
 

Typedefs

typedef size_t libsnark::reg_count_t
 
typedef size_t libsnark::reg_width_t
 
typedef std::vector< size_t > libsnark::tinyram_input_tape
 
typedef tinyram_input_tape::const_iterator libsnark::tinyram_input_tape_iterator
 

Enumerations

enum  libsnark::tinyram_opcode {
  libsnark::tinyram_opcode_AND = 0b00000, libsnark::tinyram_opcode_OR = 0b00001, libsnark::tinyram_opcode_XOR = 0b00010, libsnark::tinyram_opcode_NOT = 0b00011,
  libsnark::tinyram_opcode_ADD = 0b00100, libsnark::tinyram_opcode_SUB = 0b00101, libsnark::tinyram_opcode_MULL = 0b00110, libsnark::tinyram_opcode_UMULH = 0b00111,
  libsnark::tinyram_opcode_SMULH = 0b01000, libsnark::tinyram_opcode_UDIV = 0b01001, libsnark::tinyram_opcode_UMOD = 0b01010, libsnark::tinyram_opcode_SHL = 0b01011,
  libsnark::tinyram_opcode_SHR = 0b01100, libsnark::tinyram_opcode_CMPE = 0b01101, libsnark::tinyram_opcode_CMPA = 0b01110, libsnark::tinyram_opcode_CMPAE = 0b01111,
  libsnark::tinyram_opcode_CMPG = 0b10000, libsnark::tinyram_opcode_CMPGE = 0b10001, libsnark::tinyram_opcode_MOV = 0b10010, libsnark::tinyram_opcode_CMOV = 0b10011,
  libsnark::tinyram_opcode_JMP = 0b10100, libsnark::tinyram_opcode_CJMP = 0b10101, libsnark::tinyram_opcode_CNJMP = 0b10110, libsnark::tinyram_opcode_10111 = 0b10111,
  libsnark::tinyram_opcode_11000 = 0b11000, libsnark::tinyram_opcode_11001 = 0b11001, libsnark::tinyram_opcode_STOREB = 0b11010, libsnark::tinyram_opcode_LOADB = 0b11011,
  libsnark::tinyram_opcode_STOREW = 0b11100, libsnark::tinyram_opcode_LOADW = 0b11101, libsnark::tinyram_opcode_READ = 0b11110, libsnark::tinyram_opcode_ANSWER = 0b11111
}
 
enum  libsnark::tinyram_opcode_args {
  libsnark::tinyram_opcode_args_des_arg1_arg2 = 1, libsnark::tinyram_opcode_args_des_arg2 = 2, libsnark::tinyram_opcode_args_arg1_arg2 = 3, libsnark::tinyram_opcode_args_arg2 = 4,
  libsnark::tinyram_opcode_args_none = 5, libsnark::tinyram_opcode_args_arg2_des = 6
}
 

Functions

void libsnark::ensure_tinyram_opcode_value_map ()
 
tinyram_instruction libsnark::random_tinyram_instruction (const tinyram_architecture_params &ap)
 
std::vector< tinyram_instruction > libsnark::generate_tinyram_prelude (const tinyram_architecture_params &ap)
 
tinyram_program libsnark::load_preprocessed_program (const tinyram_architecture_params &ap, std::istream &preprocessed)
 
memory_store_trace libsnark::tinyram_boot_trace_from_program_and_input (const tinyram_architecture_params &ap, const size_t boot_trace_size_bound, const tinyram_program &program, const tinyram_input_tape &primary_input)
 
tinyram_input_tape libsnark::load_tape (std::istream &tape)
 

Detailed Description

Declaration of auxiliary functions for TinyRAM.

Author
This file is part of libsnark, developed by SCIPR Lab and contributors (see AUTHORS).

Definition in file tinyram_aux.hpp.