Trait halo2_middleware::zal::traits::MsmAccel

source ·
pub trait MsmAccel<C: CurveAffine> {
    type CoeffsDescriptor<'c>;
    type BaseDescriptor<'b>;

    // Required methods
    fn msm(&self, coeffs: &[C::Scalar], base: &[C]) -> C::Curve;
    fn get_coeffs_descriptor<'c>(
        &self,
        coeffs: &'c [C::Scalar]
    ) -> Self::CoeffsDescriptor<'c>;
    fn get_base_descriptor<'b>(&self, base: &'b [C]) -> Self::BaseDescriptor<'b>;
    fn msm_with_cached_scalars(
        &self,
        coeffs: &Self::CoeffsDescriptor<'_>,
        base: &[C]
    ) -> C::Curve;
    fn msm_with_cached_base(
        &self,
        coeffs: &[C::Scalar],
        base: &Self::BaseDescriptor<'_>
    ) -> C::Curve;
    fn msm_with_cached_inputs(
        &self,
        coeffs: &Self::CoeffsDescriptor<'_>,
        base: &Self::BaseDescriptor<'_>
    ) -> C::Curve;
}

Required Associated Types§

Required Methods§

source

fn msm(&self, coeffs: &[C::Scalar], base: &[C]) -> C::Curve

source

fn get_coeffs_descriptor<'c>( &self, coeffs: &'c [C::Scalar] ) -> Self::CoeffsDescriptor<'c>

source

fn get_base_descriptor<'b>(&self, base: &'b [C]) -> Self::BaseDescriptor<'b>

source

fn msm_with_cached_scalars( &self, coeffs: &Self::CoeffsDescriptor<'_>, base: &[C] ) -> C::Curve

source

fn msm_with_cached_base( &self, coeffs: &[C::Scalar], base: &Self::BaseDescriptor<'_> ) -> C::Curve

source

fn msm_with_cached_inputs( &self, coeffs: &Self::CoeffsDescriptor<'_>, base: &Self::BaseDescriptor<'_> ) -> C::Curve

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<C: CurveAffine> MsmAccel<C> for H2cEngine