1use ark_ec::{AffineCurve, ProjectiveCurve};
2use ark_ff::{PrimeField, UniformRand};
3
4pub fn generate_msm_inputs<A>(
5 size: usize,
6) -> (
7 Vec<<A::Projective as ProjectiveCurve>::Affine>,
8 Vec<<A::ScalarField as PrimeField>::BigInt>,
9)
10where
11 A: AffineCurve,
12{
13 let mut rng = ark_std::test_rng();
14 let scalar_vec = (0..size)
15 .map(|_| A::ScalarField::rand(&mut rng).into_repr())
16 .collect();
17 let point_vec = (0..size)
18 .map(|_| A::Projective::rand(&mut rng))
19 .collect::<Vec<_>>();
20 (
21 <A::Projective as ProjectiveCurve>::batch_normalization_into_affine(&point_vec),
22 scalar_vec,
23 )
24}