Trait EndoCurve

Source
pub trait EndoCurve: CommitmentCurve {
    // Provided methods
    fn combine_one(g1: &[Self], g2: &[Self], x2: Self::ScalarField) -> Vec<Self> { ... }
    fn combine_one_endo(
        endo_r: Self::ScalarField,
        _endo_q: Self::BaseField,
        g1: &[Self],
        g2: &[Self],
        x2: ScalarChallenge<Self::ScalarField>,
    ) -> Vec<Self> { ... }
    fn combine(
        g1: &[Self],
        g2: &[Self],
        x1: Self::ScalarField,
        x2: Self::ScalarField,
    ) -> Vec<Self> { ... }
}
Expand description

A trait extending CommitmentCurve for endomorphisms. Unfortunately, we can’t specify that AffineRepr<BaseField : PrimeField>, so usage of this traits must manually bind G::BaseField: PrimeField.

Provided Methods§

Source

fn combine_one(g1: &[Self], g2: &[Self], x2: Self::ScalarField) -> Vec<Self>

Combine where x1 = one

Source

fn combine_one_endo( endo_r: Self::ScalarField, _endo_q: Self::BaseField, g1: &[Self], g2: &[Self], x2: ScalarChallenge<Self::ScalarField>, ) -> Vec<Self>

Combine where x1 = one

Source

fn combine( g1: &[Self], g2: &[Self], x1: Self::ScalarField, x2: Self::ScalarField, ) -> Vec<Self>

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.

Implementations on Foreign Types§

Source§

impl<P: SWCurveConfig + Clone> EndoCurve for Affine<P>

Source§

fn combine_one(g1: &[Self], g2: &[Self], x2: Self::ScalarField) -> Vec<Self>

Source§

fn combine_one_endo( _endo_r: Self::ScalarField, endo_q: Self::BaseField, g1: &[Self], g2: &[Self], x2: ScalarChallenge<Self::ScalarField>, ) -> Vec<Self>

Source§

fn combine( g1: &[Self], g2: &[Self], x1: Self::ScalarField, x2: Self::ScalarField, ) -> Vec<Self>

Implementors§