[−][src]Struct zerocaf::edwards::AffinePoint
An AffinePoint
represents a point on the Doppio Curve expressed
over the Twisted Edwards Affine Coordinates also known as
cartesian coordinates: (X, Y).
This Twisted Edwards coordinates are ONLY implemented for equalty testing, since all of the Point operations defined over them are much slower than the same ones defined over Extended or Projective coordinates.
Fields
X: FieldElement
Y: FieldElement
Trait Implementations
impl Identity for AffinePoint
[src]
fn identity() -> AffinePoint
[src]
Returns the Edwards Point identity value = (0, 1)
.
impl Default for AffinePoint
[src]
fn default() -> AffinePoint
[src]
Returns the default Twisted Edwards AffinePoint Coordinates: (0, 1).
impl<'a> From<&'a AffinePoint> for EdwardsPoint
[src]
fn from(point: &'a AffinePoint) -> EdwardsPoint
[src]
In affine form, each elliptic curve point has 2 coordinates, like (x,y). In the new projective form, each point will have 3 coordinates, like (X,Y,Z), with the restriction that Z is never zero.
The forward mapping is given by (x,y)→(xz,yz,z), for any non-zero z (usually chosen to be 1 for convenience).
After this is done, we move from Projective to Extended by
setting the new coordinate T = X * Y
.
impl<'a> From<&'a AffinePoint> for ProjectivePoint
[src]
fn from(point: &'a AffinePoint) -> ProjectivePoint
[src]
The key idea of projective coordinates is that instead of performing every division immediately, we defer the divisions by multiplying them into a denominator.
In affine form, each elliptic curve point has 2 coordinates, like (x,y). In the new projective form, each point will have 3 coordinates, like (X,Y,Z), with the restriction that Z is never zero.
The forward mapping is given by (x,y)→(xz,yz,z), for any non-zero z (usually chosen to be 1 for convenience).
impl<'a> From<&'a EdwardsPoint> for AffinePoint
[src]
fn from(point: &'a EdwardsPoint) -> AffinePoint
[src]
Given (X:Y:Z:T) in εε, passing to affine can be performed in 3M+ 1I by computing:
First, move to Projective Coordinates by removing T
.
Then, reduce the point from Projective to Affine coordinates computing: (XZinv, YZinv, Z*Zinv).
And once Z coord = 1
we can simply remove it.
Twisted Edwards Curves Revisited - Huseyin Hisil, Kenneth Koon-Ho Wong, Gary Carter, and Ed Dawson.
impl<'a> From<&'a ProjectivePoint> for AffinePoint
[src]
fn from(point: &'a ProjectivePoint) -> AffinePoint
[src]
Reduce the point from Projective to Affine coordinates computing: (XZinv, YZinv, Z*Zinv).
And once Z coord = 1
we can simply remove it.
Twisted Edwards Curves Revisited - Huseyin Hisil, Kenneth Koon-Ho Wong, Gary Carter, and Ed Dawson.
impl PartialEq<AffinePoint> for AffinePoint
[src]
fn eq(&self, other: &Self) -> bool
[src]
#[must_use]
fn ne(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests for !=
.
impl Eq for AffinePoint
[src]
impl Debug for AffinePoint
[src]
impl<'a> Neg for &'a AffinePoint
[src]
type Output = AffinePoint
The resulting type after applying the -
operator.
fn neg(self) -> AffinePoint
[src]
Negates an AffinePoint
giving it as a result.
Since the negative of a point is (-X:Y), it
gives as a result: (-X, Y)
.
impl Neg for AffinePoint
[src]
type Output = AffinePoint
The resulting type after applying the -
operator.
fn neg(self) -> AffinePoint
[src]
Negates an AffinePoint
giving it as a result.
Since the negative of a point is (-X:Y), it
gives as a result: (-X, Y)
.
impl ConstantTimeEq for AffinePoint
[src]
Auto Trait Implementations
impl Unpin for AffinePoint
impl Sync for AffinePoint
impl Send for AffinePoint
impl UnwindSafe for AffinePoint
impl RefUnwindSafe for AffinePoint
Blanket Implementations
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Clear for T where
T: InitializableFromZeroed + ?Sized,
T: InitializableFromZeroed + ?Sized,
fn clear(&mut self)
impl<T> InitializableFromZeroed for T where
T: Default,
T: Default,
unsafe fn initialize(place: *mut T)
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,