#![allow(clippy::unusual_byte_groupings)]
pub(crate) mod affine;
pub(crate) mod field;
pub(crate) mod projective;
pub(crate) mod scalar;
use affine::AffinePoint;
use field::{FieldElement, MODULUS};
use projective::ProjectivePoint;
use scalar::Scalar;
#[cfg(target_pointer_width = "32")]
const LIMBS: usize = 12;
#[cfg(target_pointer_width = "64")]
const LIMBS: usize = 6;
#[cfg(target_pointer_width = "32")]
const CURVE_EQUATION_A: FieldElement = FieldElement([
0xfffffffc, 0x00000003, 0x00000000, 0xfffffffc, 0xfffffffb, 0xffffffff, 0xffffffff, 0xffffffff,
0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
]);
#[cfg(target_pointer_width = "64")]
const CURVE_EQUATION_A: FieldElement = FieldElement([
0x00000003_fffffffc,
0xfffffffc_00000000,
0xffffffff_fffffffb,
0xffffffff_ffffffff,
0xffffffff_ffffffff,
0xffffffff_ffffffff,
]);
#[cfg(target_pointer_width = "32")]
const CURVE_EQUATION_B: FieldElement = FieldElement([
0x9d412dcc, 0x08118871, 0x7a4c32ec, 0xf729add8, 0x1920022e, 0x77f2209b, 0x94938ae2, 0xe3374bee,
0x1f022094, 0xb62b21f4, 0x604fbff9, 0xcd08114b,
]);
#[cfg(target_pointer_width = "64")]
const CURVE_EQUATION_B: FieldElement = FieldElement([
0x08118871_9d412dcc,
0xf729add8_7a4c32ec,
0x77f2209b_1920022e,
0xe3374bee_94938ae2,
0xb62b21f4_1f022094,
0xcd08114b_604fbff9,
]);