18 FILE * f = fopen(file,
"r");
19 tmp2=fscanf(f,
"%d%d\n", &num_gate, &num_wire);
20 tmp2=fscanf(f,
"%d%d%d\n", &n1, &n2, &n3);
23 gates =
new int[num_gate*4];
26 tmp2=fscanf(f,
"%d", &tmp);
28 tmp2=fscanf(f,
"%d%d%d%d%s", &tmp, &gates[4*i], &gates[4*i+1], &gates[4*i+2], str);
29 if (str[0] ==
'A') gates[4*i+3] =
AND_GATE;
30 else if (str[0] ==
'X') gates[4*i+3] =
XOR_GATE;
33 tmp2=fscanf(f,
"%d%d%d%s", &tmp, &gates[4*i], &gates[4*i+2], str);
46 gates =
new int[num_gate*4];
48 memcpy(gates, cf.
gates, num_gate*4*
sizeof(
int));
49 memcpy(wires, cf.
wires, num_wire*
sizeof(
block));
60 memcpy(wires, in1, n1*
sizeof(
block));
61 memcpy(wires+n1, in2, n2*
sizeof(
block));
65 wires[gates[4*i]], wires[gates[4*i+1]]);
69 wires[gates[4*i]], wires[gates[4*i+1]]);
74 memcpy(out, &wires[num_wire-n3], n3*
sizeof(
block));
int * gates
Definition: circuit_file.h:14
int num_gate
Definition: circuit_file.h:13
int tmp
Definition: circuit_file.h:16
CircuitFile(const CircuitFile &cf)
Definition: circuit_file.h:40
int table_size() const
Definition: circuit_file.h:55
void compute(block *out, block *in1, block *in2)
Definition: circuit_file.h:59
__m128i block
Definition: block.h:8
block gc_xor(const block &a, const block &b)
Definition: garble_circuit.h:24
#define NOT_GATE
Definition: circuit_file.h:6
int num_wire
Definition: circuit_file.h:13
int n3
Definition: circuit_file.h:13
int n2
Definition: circuit_file.h:13
int n1
Definition: circuit_file.h:13
block * wires
Definition: circuit_file.h:15
~CircuitFile()
Definition: circuit_file.h:51
block gc_not(const block &a)
Definition: garble_circuit.h:27
block gc_and(const block &a, const block &b)
Definition: garble_circuit.h:21
#define AND_GATE
Definition: circuit_file.h:4
int tmp2
Definition: circuit_file.h:16
CircuitFile(const char *file)
Definition: circuit_file.h:17
#define XOR_GATE
Definition: circuit_file.h:5
GarbleCircuit * local_gc
Definition: backend.cpp:8
Definition: circuit_file.h:12