use ark_ec::{ bw6, bw6::{BW6Parameters, TwistType, BW6}, }; use ark_ff::{biginteger::BigInteger768 as BigInteger, BigInt}; use crate::*; pub mod g1; pub mod g2; #[cfg(test)] mod tests; #[derive(PartialEq, Eq)] pub struct Parameters; impl BW6Parameters for Parameters { const X: BigInteger = BigInt::new([ 0x8508c00000000001, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ]); /// `x` is positive. const X_IS_NEGATIVE: bool = false; // X+1 const ATE_LOOP_COUNT_1: &'static [u64] = &[0x8508c00000000002]; const ATE_LOOP_COUNT_1_IS_NEGATIVE: bool = false; // X^3-X^2-X const ATE_LOOP_COUNT_2: &'static [i8] = &[ -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, -1, 0, 1, 0, -1, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, -1, 0, 0, -1, 0, 1, 0, -1, 0, 0, 0, 1, 0, 0, 1, 0, -1, 0, 1, 0, 1, 0, 0, 0, 1, 0, -1, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, 1, ]; const ATE_LOOP_COUNT_2_IS_NEGATIVE: bool = false; const TWIST_TYPE: TwistType = TwistType::M; type Fp = Fq; type Fp3Config = Fq3Config; type Fp6Config = Fq6Config; type G1Parameters = g1::Parameters; type G2Parameters = g2::Parameters; } pub type BW6_761 = BW6; pub type G1Affine = bw6::G1Affine; pub type G1Projective = bw6::G1Projective; pub type G2Affine = bw6::G2Affine; pub type G2Projective = bw6::G2Projective;