Struct ark_ec::models::twisted_edwards_extended::GroupProjective[][src]

#[must_use]pub struct GroupProjective<P: Parameters> {
    pub x: P::BaseField,
    pub y: P::BaseField,
    pub t: P::BaseField,
    pub z: P::BaseField,
    // some fields omitted
}

GroupProjective implements Extended Twisted Edwards Coordinates as described in [HKCD08].

This implementation uses the unified addition formulae from that paper (see Section 3.1).

Fields

x: P::BaseFieldy: P::BaseFieldt: P::BaseFieldz: P::BaseField

Implementations

impl<P: Parameters> GroupProjective<P>[src]

pub fn new(
    x: P::BaseField,
    y: P::BaseField,
    t: P::BaseField,
    z: P::BaseField
) -> Self
[src]

Trait Implementations

impl<'a, P: Parameters> Add<&'a GroupProjective<P>> for GroupProjective<P>[src]

type Output = Self

The resulting type after applying the + operator.

impl<'a, P: Parameters> Add<&'a mut GroupProjective<P>> for GroupProjective<P>[src]

type Output = Self

The resulting type after applying the + operator.

impl<P: Parameters> Add<GroupProjective<P>> for GroupProjective<P>[src]

type Output = Self

The resulting type after applying the + operator.

impl<'a, P: Parameters> AddAssign<&'a GroupProjective<P>> for GroupProjective<P>[src]

impl<'a, P: Parameters> AddAssign<&'a mut GroupProjective<P>> for GroupProjective<P>[src]

impl<P: Parameters> AddAssign<GroupProjective<P>> for GroupProjective<P>[src]

impl<P: Parameters> CanonicalDeserialize for GroupProjective<P>[src]

impl<P: Parameters> CanonicalSerialize for GroupProjective<P>[src]

impl<P: Parameters> Clone for GroupProjective<P> where
    P: Parameters
[src]

impl<P: Parameters> Copy for GroupProjective<P> where
    P: Parameters
[src]

impl<P: Parameters> Debug for GroupProjective<P> where
    P: Parameters
[src]

impl<P: Parameters> Default for GroupProjective<P>[src]

impl<P: Parameters> Display for GroupProjective<P>[src]

impl<P: Parameters> Eq for GroupProjective<P> where
    P: Parameters
[src]

impl<P: Parameters> From<GroupAffine<P>> for GroupProjective<P>[src]

impl<P: Parameters> From<GroupProjective<P>> for GroupAffine<P>[src]

impl<P: Parameters> FromBytes for GroupProjective<P>[src]

impl<P: Parameters> Hash for GroupProjective<P> where
    P: Parameters
[src]

impl<P: Parameters> MulAssign<<P as ModelParameters>::ScalarField> for GroupProjective<P>[src]

impl<P: Parameters> Neg for GroupProjective<P>[src]

type Output = Self

The resulting type after applying the - operator.

impl<P: Parameters> PartialEq<GroupAffine<P>> for GroupProjective<P>[src]

impl<P: Parameters> PartialEq<GroupProjective<P>> for GroupAffine<P>[src]

impl<P: Parameters> PartialEq<GroupProjective<P>> for GroupProjective<P>[src]

impl<P: Parameters> ProjectiveCurve for GroupProjective<P>[src]

type BaseField = P::BaseField

type ScalarField = P::ScalarField

type Affine = GroupAffine<P>

impl<'a, P: Parameters> Sub<&'a GroupProjective<P>> for GroupProjective<P>[src]

type Output = Self

The resulting type after applying the - operator.

impl<'a, P: Parameters> Sub<&'a mut GroupProjective<P>> for GroupProjective<P>[src]

type Output = Self

The resulting type after applying the - operator.

impl<P: Parameters> Sub<GroupProjective<P>> for GroupProjective<P>[src]

type Output = Self

The resulting type after applying the - operator.

impl<'a, P: Parameters> SubAssign<&'a GroupProjective<P>> for GroupProjective<P>[src]

impl<'a, P: Parameters> SubAssign<&'a mut GroupProjective<P>> for GroupProjective<P>[src]

impl<P: Parameters> SubAssign<GroupProjective<P>> for GroupProjective<P>[src]

impl<'a, P: Parameters> Sum<&'a GroupProjective<P>> for GroupProjective<P>[src]

impl<P: Parameters> Sum<GroupProjective<P>> for GroupProjective<P>[src]

impl<P: Parameters> ToBytes for GroupProjective<P>[src]

impl<M: Parameters, ConstraintF: Field> ToConstraintField<ConstraintF> for GroupProjective<M> where
    M::BaseField: ToConstraintField<ConstraintF>, 
[src]

impl<P: Parameters> Zero for GroupProjective<P>[src]

impl<P: Parameters> Zeroize for GroupProjective<P>[src]

Auto Trait Implementations

impl<P> Send for GroupProjective<P>

impl<P> Sync for GroupProjective<P>

impl<P> Unpin for GroupProjective<P> where
    P: Unpin,
    <P as ModelParameters>::BaseField: Unpin

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<C> Group for C where
    C: ProjectiveCurve
[src]

type ScalarField = <C as ProjectiveCurve>::ScalarField

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> UniformRand for T where
    Standard: Distribution<T>, 
[src]

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,