emp-toolkit
bench_input-check.h
Go to the documentation of this file.
1 #include <emp-tool/emp-tool.h>
2 #include "input-validity/iv.h"
3 
4 double bench_iv(void * f1, void * f2, void* g, uint64_t len1, uint64_t len2, uint64_t len3, NetIO * io, uint64_t TIME, uint64_t party) {
5  double t = 0;
6  double t1 = wallClock();
7  for(uint64_t k = 0; k < TIME; ++k) {
8  if (party == ALICE) {
9  bool * b = new bool[len1];
10  for(uint64_t i = 0; i < len1; ++i)
11  b[i] = true;
12  io->set_nodelay();
13  IV iv(io, party, len1, len2, len3);
14  iv.checkf1Alice(b, f1);
15  iv.checkf2Alice(f2);
16  io->set_delay();
17  iv.evalgAlice(g);
18  delete []b;
19  }
20  else {
21  bool * b = new bool[len2];
22  for(uint64_t i = 0; i < len2; ++i)
23  b[i] = true;
24  bool * output = new bool[len3];
25  IV iv(io, party, len1, len2, len3);
26  io->set_nodelay();
27  iv.checkf1Bob(f1);
28  iv.checkf2Bob(b, f2);
29  io->set_delay();
30  iv.evalgBob(g, output);
31  delete []b;
32  delete[] output;
33  }
34  }
35  double t4 = wallClock();
36  t+=(t4-t1);
37  return t/TIME;
38 }
double wallClock()
Definition: utils.hpp:49
bool checkf1Bob(void *f)
Definition: iv.h:414
bool checkf2Alice(void *f)
Definition: iv.h:530
Definition: net_io_channel.h:22
Definition: iv.h:7
bool checkf1Alice(bool *b, void *f)
Definition: iv.h:463
bool evalgAlice(void *f)
Definition: iv.h:121
bool evalgBob(void *f, bool *output)
Definition: iv.h:229
#define ALICE
Definition: utils.h:15
void set_delay()
Definition: net_io_channel.h:89
void set_nodelay()
Definition: net_io_channel.h:84
int party
Definition: input-check-malicious.cpp:12
double bench_iv(void *f1, void *f2, void *g, uint64_t len1, uint64_t len2, uint64_t len3, NetIO *io, uint64_t TIME, uint64_t party)
Definition: bench_input-check.h:4
bool checkf2Bob(bool *b, void *f)
Definition: iv.h:565