#pragma once #include "config_pc.hpp" #include "circuit.h" struct stream_descriptor{ int idx = 0,offset = 0; int stage = 0; bool finished = false; size_t pos = 0,pos_j = 0; size_t data_size,row_size,col_size,size,layer,tree_pos; string name; size_t input_pos,input_pos_j,input_data_size,input_size; string input_name; }; typedef struct stream_descriptor stream_descriptor; void read_layer(int circuit_num, int layer , vector &V); void read_H( int layer , vector &H_add,vector &H_mul, vector &V, F beta_h1, F beta_h2 ); void read_G( int layer , vector &G_add,vector &G_mul, vector &V, vector &beta_g1,F beta_h1, F beta_g2,F beta_h2,F Vr); void read_stream(stream_descriptor &fd, vector &v, int size); void read_stream_PC(stream_descriptor &fd, F *v, int size); void reset_stream(stream_descriptor &fp); void get_transcript(vector> &transcript); void compute_H( int layer , F *H_add, F *H_mul, F *V, int layer_size); void compute_G( int layer , F *G_add,F *G_mul, F *V, F *beta_g1,F V_u, int len); void read_trace(stream_descriptor &fd, vector &buff_L,vector &buff_R,vector &buff_O, vector &buff_S); void read_mul_tree_data(stream_descriptor &fd, vector> &v, int size, int layer, int distance); void read_mul_tree_layer(stream_descriptor &fd, vector &v, int size, int layer); void read_memory(stream_descriptor &fd, vector &buff_addr, vector &buff_v, vector &buff_f);