pub trait ProjectiveCurve: CanonicalSerialize + CanonicalDeserialize + Copy + Clone + Debug + Display + Default + FromBytes + Send + Sync + 'static + Eq + Hash + Neg<Output = Self> + Uniform + Zero + Add<Self, Output = Self> + Sub<Self, Output = Self> + Mul<Self::ScalarField, Output = Self> + AddAssign<Self> + SubAssign<Self> + MulAssign<Self::ScalarField> + for<'a> Add<&'a Self, Output = Self> + for<'a> Sub<&'a Self, Output = Self> + for<'a> AddAssign<&'a Self> + for<'a> SubAssign<&'a Self> + PartialEq<Self::Affine> + Sized + ToBytes + Sum + From<Self::Affine> {
    type Affine: AffineCurve<Projective = Self, ScalarField = Self::ScalarField> + From<Self> + Into<Self>;
    type BaseField: Field;
    type ScalarField: PrimeField + SquareRootField + Into<<Self::ScalarField as PrimeField>::BigInteger>;

    fn prime_subgroup_generator() -> Self;
    fn batch_normalization(v: &mut [Self]);
    fn is_normalized(&self) -> bool;
    fn add_assign_mixed(&mut self, other: &Self::Affine);
    fn double(&self) -> Self;
    fn double_in_place(&mut self);
    fn to_affine(&self) -> Self::Affine;

    fn batch_normalization_into_affine(v: Vec<Self>) -> Vec<Self::Affine> { ... }
    fn add_mixed(&self, other: &Self::Affine) -> Self { ... }
    fn sub_assign_mixed(&mut self, other: &Self::Affine) { ... }
}
Expand description

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

Required Associated Types§

Required Methods§

Returns a fixed generator of unknown exponent.

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.

Adds an affine element to this element.

Returns self + self.

Sets self := self + self.

Converts this element into its affine representation.

Provided Methods§

Normalizes a slice of projective elements and outputs a vector containing the affine equivalents.

Adds an affine element to this element.

Adds an affine element to this element.

Implementors§