pub trait GenericCurveProjective: PartialEq + Eq + Sized + Copy + Clone + Send + Sync + Debug + Display + Rand + 'static {
    type Scalar: PrimeField;
    type Base: SqrtField;
    type Affine: GenericCurveAffine<Projective = Self, Scalar = Self::Scalar, Base = Self::Base>;

Show 18 methods 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) { ... } fn as_xyz(&self) -> (&Self::Base, &Self::Base, &Self::Base) { ... } fn into_xyz_unchecked(self) -> (Self::Base, Self::Base, Self::Base) { ... } fn from_xyz_unchecked(_x: Self::Base, _y: Self::Base, _z: Self::Base) -> Self { ... } fn from_xyz_checked(
        _x: Self::Base,
        _y: Self::Base,
        _z: Self::Base
    ) -> Result<Self, GroupDecodingError> { ... }
}
Expand description

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

Required 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.

Returns references to underlying X, Y and Z coordinates. Users should check for infinity outside of this call

Returns underlying X, Y and Z coordinates. Users should check for infinity outside of this call

Creates a point from raw X, Y and Z coordinates. Point of infinity is encoded as (0,1,0) by default. On-curve check is NOT performed

Creates a point from raw X, Y and Z coordinates. Point of infinity is encoded as (0,1,0) by default. On-curve check is performed

Implementors§