pub trait MSM<C: CurveAffine>:
Clone
+ Debug
+ Send
+ Sync {
// Required methods
fn append_term(&mut self, scalar: C::Scalar, point: C::Curve);
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::Curve;
fn bases(&self) -> Vec<C::Curve>;
fn scalars(&self) -> Vec<C::Scalar>;
}
Expand description
Multi scalar multiplication engine
Required Methods§
Sourcefn append_term(&mut self, scalar: C::Scalar, point: C::Curve)
fn append_term(&mut self, scalar: C::Scalar, point: C::Curve)
Add arbitrary term (the scalar and the point)
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.