Clearmatics Libsnark  0.1
C++ library for zkSNARK proofs
profile_r1cs_gg_ppzksnark.cpp
Go to the documentation of this file.
1 
31 #include <cassert>
32 #include <cstdio>
33 #include <libff/common/profiling.hpp>
34 #include <libff/common/utils.hpp>
38 
39 using namespace libsnark;
40 
41 int main(int argc, const char *argv[])
42 {
43  default_r1cs_gg_ppzksnark_pp::init_public_params();
44  libff::start_profiling();
45 
46  if (argc == 2 && strcmp(argv[1], "-v") == 0) {
47  libff::print_compilation_info();
48  return 0;
49  }
50 
51  if (argc != 3 && argc != 4) {
52  printf("usage: %s num_constraints input_size [Fr|bytes]\n", argv[0]);
53  return 1;
54  }
55  const int num_constraints = atoi(argv[1]);
56  int input_size = atoi(argv[2]);
57  if (argc == 4) {
58  assert(strcmp(argv[3], "Fr") == 0 || strcmp(argv[3], "bytes") == 0);
59  if (strcmp(argv[3], "bytes") == 0) {
60  input_size = libff::div_ceil(
61  8 * input_size, libff::Fr<libff::default_ec_pp>::capacity());
62  }
63  }
64 
65  libff::enter_block("Generate R1CS example");
68  libff::Fr<default_r1cs_gg_ppzksnark_pp>>(
69  num_constraints, input_size);
70  libff::leave_block("Generate R1CS example");
71 
72  libff::print_header("(enter) Profile R1CS GG-ppzkSNARK");
73  const bool test_serialization = true;
74  run_r1cs_gg_ppzksnark<default_r1cs_gg_ppzksnark_pp>(
75  example, test_serialization);
76  libff::print_header("(leave) Profile R1CS GG-ppzkSNARK");
77 }
libsnark
Definition: accumulation_vector.hpp:18
libsnark::r1cs_example
Definition: r1cs_examples.hpp:25
libsnark::generate_r1cs_example_with_field_input
r1cs_example< FieldT > generate_r1cs_example_with_field_input(const size_t num_constraints, const size_t num_inputs)
r1cs_gg_ppzksnark_pp.hpp
run_r1cs_gg_ppzksnark.hpp
r1cs_examples.hpp
main
int main(int argc, const char *argv[])
Definition: profile_r1cs_gg_ppzksnark.cpp:41