Initial commit

This commit is contained in:
Pratyush Mishra
2020-10-11 19:50:41 -07:00
commit 43ca2132fd
209 changed files with 18825 additions and 0 deletions

View File

@@ -0,0 +1,77 @@
use crate::{Fq, FQ_ONE};
use ark_ff::{
biginteger::BigInteger768 as BigInteger,
field_new,
fields::fp2::{Fp2, Fp2Parameters},
};
pub type Fq2 = Fp2<Fq2Parameters>;
pub struct Fq2Parameters;
impl Fp2Parameters for Fq2Parameters {
type Fp = Fq;
// non_residue = 13
#[rustfmt::skip]
const NONRESIDUE: Fq = field_new!(Fq, BigInteger([
11881297496860141143,
13588356353764843511,
9969398190777826186,
17325157081734070311,
16341533986183788031,
8322434028726676858,
13631157743146294957,
8365783422740577875,
3010239015809771096,
11776256826687733591,
7214251687253691272,
268626707558702
]));
// qnr = (8, 1)
const QUADRATIC_NONRESIDUE: (Self::Fp, Self::Fp) = (
field_new!(
Fq,
BigInteger([
587330122779359758,
14352661462510473462,
17802452401246596498,
18018663494943049411,
17948754733747257098,
10253180574146027531,
6683223122694781837,
13573468617269213174,
5059368039312883748,
950479668716233863,
9936591501985804621,
88719447132658
])
),
FQ_ONE,
);
// Coefficients:
// [1, 41898490967918953402344214791240637128170709919953949071783502921025352812571106773058893763790338921418070971888253786114353726529584385201591605722013126468931404347949840543007986327743462853720628051692141265303114721689600]
// see https://github.com/o1-labs/snarky/blob/2cf5ef3a14989e57c17518832b3c52590068fc48/src/camlsnark_c/libsnark-caml/depends/libff/libff/algebra/curves/mnt753/mnt4753/mnt4753_init.cpp
const FROBENIUS_COEFF_FP2_C1: &'static [Self::Fp] = &[
FQ_ONE,
field_new!(
Fq,
BigInteger([
14260497802974073023,
5895249896161266456,
14682908860938702530,
17222385991615618722,
14621060510943733448,
10594887362868996148,
7477357615964975684,
12570239403004322603,
2180620924574446161,
12129628062772479841,
8853285699251153944,
362282887012814
])
),
];
}