Trait halo2_backend::poly::commitment::MSM
source · pub trait MSM<C: CurveAffine>: Clone + Debug + Send + Sync {
// Required methods
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, engine: &impl MsmAccel<C>) -> bool;
fn eval(&self, engine: &impl MsmAccel<C>) -> C::CurveExt;
fn bases(&self) -> Vec<C::CurveExt>;
fn scalars(&self) -> Vec<C::Scalar>;
}
Expand description
Multiscalar multiplication engine
Required Methods§
sourcefn append_term(&mut self, scalar: C::Scalar, point: C::CurveExt)
fn append_term(&mut self, scalar: C::Scalar, point: C::CurveExt)
Add arbitrary term (the scalar and the point)
sourcefn check(&self, engine: &impl MsmAccel<C>) -> bool
fn check(&self, engine: &impl MsmAccel<C>) -> bool
Perform multiexp and check that it results in zero
Object Safety§
This trait is not object safe.