Skip to content

Commit

Permalink
ntt/parameters/baby_bear.h: add "canonical" parameters.
Browse files Browse the repository at this point in the history
Customarily one uses primitive root as generator, but the community
used an alternative generator, which remains the default choice.
  • Loading branch information
dot-asm committed Jun 16, 2024
1 parent dc88578 commit def13e1
Showing 1 changed file with 75 additions and 3 deletions.
78 changes: 75 additions & 3 deletions ntt/parameters/baby_bear.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,83 @@
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0

const int S = 27;

#ifdef BABY_BEAR_CANONICAL_GROUP_GENERATOR

const fr_t group_gen = fr_t(0x1f); // primitive_root(0x78000001)
const fr_t group_gen_inverse = fr_t(0x03def7be);

// Values in Montgomery form

const fr_t group_gen = fr_t(0x2ffffffau);
const fr_t group_gen_inverse = fr_t(0x2d555555u);
const fr_t forward_roots_of_unity[S + 1] = {
fr_t(0x0ffffffeu),
fr_t(0x68000003u),
fr_t(0x1c38d511u),
fr_t(0x3d85298fu),
fr_t(0x5f06e481u),
fr_t(0x3f5c39ecu),
fr_t(0x5516a97au),
fr_t(0x3d6be592u),
fr_t(0x5bb04149u),
fr_t(0x4907f9abu),
fr_t(0x548b8e90u),
fr_t(0x1d8ca617u),
fr_t(0x2ce7f0e6u),
fr_t(0x621b371fu),
fr_t(0x6d4d2d78u),
fr_t(0x18716fcdu),
fr_t(0x3b30a682u),
fr_t(0x1c6f4728u),
fr_t(0x59b01f7cu),
fr_t(0x1a7f97acu),
fr_t(0x0732561cu),
fr_t(0x2b5a1cd4u),
fr_t(0x6f7d26f9u),
fr_t(0x16e2f919u),
fr_t(0x285ab85bu),
fr_t(0x0dd5a9ecu),
fr_t(0x43f13568u),
fr_t(0x57fab6eeu)
};

const int S = 27;
const fr_t inverse_roots_of_unity[S + 1] = {
fr_t(0x0ffffffeu),
fr_t(0x68000003u),
fr_t(0x5bc72af0u),
fr_t(0x02ec07f3u),
fr_t(0x67e027cau),
fr_t(0x5e1a0700u),
fr_t(0x4bcc008cu),
fr_t(0x0bed94d1u),
fr_t(0x330b2e00u),
fr_t(0x6b469805u),
fr_t(0x0d83fad2u),
fr_t(0x26e64394u),
fr_t(0x0855523bu),
fr_t(0x5c9f0045u),
fr_t(0x5a7ba8c3u),
fr_t(0x3c8b04e2u),
fr_t(0x0c0f2066u),
fr_t(0x1b51d34cu),
fr_t(0x59f9bc12u),
fr_t(0x3511f012u),
fr_t(0x061ec85fu),
fr_t(0x5fd09c6bu),
fr_t(0x26bdc06cu),
fr_t(0x1272832eu),
fr_t(0x052ce2e8u),
fr_t(0x02ff110du),
fr_t(0x216ce204u),
fr_t(0x5e12c8e9u)
};

#else

const fr_t group_gen = fr_t(3);
const fr_t group_gen_inverse = fr_t(0x50000001);

// Values in Montgomery form

const fr_t forward_roots_of_unity[S + 1] = {
fr_t(0x0ffffffeu),
Expand Down Expand Up @@ -70,6 +141,7 @@ const fr_t inverse_roots_of_unity[S + 1] = {
fr_t(0x167ca34bu),
fr_t(0x50b3630au)
};
#endif

const fr_t domain_size_inverse[S + 1] = {
fr_t(0x0ffffffeu),
Expand Down

0 comments on commit def13e1

Please sign in to comment.