ark-msm 0.3.0-alpha.1

An optimized multi-scalar muliplication (MSM) library based on arkworks
Documentation
use ark_bls12_381::G1Affine;
use ark_ec::{
    AffineCurve,
    models::ModelParameters
};
use ark_ff::{FpParameters, PrimeField};

pub const G1_SCALAR_SIZE: u32 =
    <<<G1Affine as AffineCurve>::ScalarField as PrimeField>::Params as FpParameters>::MODULUS_BITS
        as u32;
pub const G1_SCALAR_SIZE_GLV: u32 = 128u32;
pub const GROUP_SIZE_IN_BITS: usize = 6;
pub const GROUP_SIZE: usize = 1 << GROUP_SIZE_IN_BITS;

pub type G1BigInt = <<G1Affine as AffineCurve>::ScalarField as PrimeField>::BigInt;
pub type G1Projective = <G1Affine as AffineCurve>::Projective;
pub type G1ScalarField = <G1Affine as AffineCurve>::ScalarField;
pub type G1BaseField = <G1Affine as AffineCurve>::BaseField;

pub type BigInt<P> = <<P as ModelParameters>::ScalarField as PrimeField>::BigInt;