Trait pairing::CurveProjective [] [src]

pub trait CurveProjective: PartialEq + Eq + Sized + Copy + Clone + Send + Sync + Debug + Display + Rand + 'static {
    type Engine: Engine<Fr = Self::Scalar>;
    type Scalar: PrimeField + SqrtField;
    type Base: SqrtField;
    type Affine: CurveAffine<Projective = Self, Scalar = Self::Scalar>;
    fn zero() -> Self;
fn one() -> Self;
fn is_zero(&self) -> bool;
fn batch_normalization(v: &mut [Self]);
fn is_normalized(&self) -> bool;
fn double(&mut self);
fn add_assign(&mut self, other: &Self);
fn add_assign_mixed(&mut self, other: &Self::Affine);
fn negate(&mut self);
fn mul_assign<S: Into<<Self::Scalar as PrimeField>::Repr>>(
        &mut self,
        other: S
    );
fn into_affine(&self) -> Self::Affine;
fn recommended_wnaf_for_scalar(
        scalar: <Self::Scalar as PrimeField>::Repr
    ) -> usize;
fn recommended_wnaf_for_num_scalars(num_scalars: usize) -> usize; fn sub_assign(&mut self, other: &Self) { ... } }

Projective representation of an elliptic curve point guaranteed to be in the correct prime order subgroup.

Associated Types

Required Methods

Returns the additive identity.

Returns a fixed generator of unknown exponent.

Determines if this point is the point at infinity.

Normalizes a slice of projective elements so that conversion to affine is cheap.

Checks if the point is already "normalized" so that cheap affine conversion is possible.

Doubles this element.

Adds another element to this element.

Adds an affine element to this element.

Negates this element.

Performs scalar multiplication of this element.

Converts this element into its affine representation.

Recommends a wNAF window table size given a scalar. Always returns a number between 2 and 22, inclusive.

Recommends a wNAF window size given the number of scalars you intend to multiply a base by. Always returns a number between 2 and 22, inclusive.

Provided Methods

Subtracts another element from this element.

Implementors