From 3a987489a2ce14ea191aa5a9e18e535eb0b5afa1 Mon Sep 17 00:00:00 2001 From: Corey Richardson Date: Wed, 10 Jul 2019 15:53:35 -0700 Subject: [PATCH] quadratic extension: support generating numeral inputs --- .../libff/generate_inputs.cpp | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/reference-02-quadratic-extension/libff/generate_inputs.cpp b/reference-02-quadratic-extension/libff/generate_inputs.cpp index 62f069a..d03ab07 100644 --- a/reference-02-quadratic-extension/libff/generate_inputs.cpp +++ b/reference-02-quadratic-extension/libff/generate_inputs.cpp @@ -16,10 +16,25 @@ void write_mnt4_fq2(FILE* output, Fqe x) { write_mnt4_fq(output, x.c1); } -int main(void) +void write_mnt4_fq_numeral(FILE* output, Fq x) { + auto out_numeral = x.as_bigint(); + fwrite((void *) out_numeral.data, libff::mnt4753_q_limbs * sizeof(mp_size_t), 1, output); +} + +void write_mnt4_fq2_numeral(FILE* output, Fqe x) { + write_mnt4_fq_numeral(output, x.c0); + write_mnt4_fq_numeral(output, x.c1); +} + +int main(int argc, char **argv) { mnt4753_pp::init_public_params(); + auto write_mnt4_q2 = write_mnt4_fq2; + + if (argc >= 2 && strcmp(argv[1], "numeral") == 1) { + write_mnt4_q2 = write_mnt4_fq2_numeral; + } auto output = fopen("inputs", "w"); size_t num_instances = 10; @@ -34,14 +49,14 @@ int main(void) for (size_t i = 0; i < n; ++i) { Fq c0 = SHA512_rng>(offset + 2 * i); Fq c1 = SHA512_rng>(offset + 2 * i + 1); - write_mnt4_fq2(output, Fqe(c0, c1)); + write_mnt4_q2(output, Fqe(c0, c1)); } offset = rand(); for (size_t i = 0; i < n; ++i) { Fq c0 = SHA512_rng>(offset + 2 * i); Fq c1 = SHA512_rng>(offset + 2 * i + 1); - write_mnt4_fq2(output, Fqe(c0, c1)); + write_mnt4_q2(output, Fqe(c0, c1)); } } }