pub trait MSM<C: CurveAffine>: Clone + Debug + Send + Sync {
    fn append_term(&mut self, scalar: C::Scalar, point: C::CurveExt);
    fn add_msm(&mut self, other: &Self)
    where
        Self: Sized
; fn scale(&mut self, factor: C::Scalar); fn check(&self) -> bool; fn eval(&self) -> C::CurveExt; fn bases(&self) -> Vec<C::CurveExt>; fn scalars(&self) -> Vec<C::Scalar>; }
Expand description

Multi scalar multiplication engine

Required Methods

Add arbitrary term (the scalar and the point)

Add another multiexp into this one

Scale all scalars in the MSM by some scaling factor

Perform multiexp and check that it results in zero

Perform multiexp and return the result

Return base points

Scalars

Implementors