# [−][src]Struct curve25519_dalek::backend::serial::curve_models::ProjectivePoint

pub struct ProjectivePoint {
pub X: FieldElement51,
pub Y: FieldElement51,
pub Z: FieldElement51,
}

A ProjectivePoint is a point $$(X:Y:Z)$$ on the $$\mathbb P^2$$ model of the curve. A point $$(x,y)$$ in the affine model corresponds to $$(x:y:1)$$.

More details on the relationships between the different curve models can be found in the module-level documentation.

## Fields

X: FieldElement51Y: FieldElement51Z: FieldElement51

## Methods

### impl ProjectivePoint[src]

#### pub fn to_extended(&self) -> EdwardsPoint[src]

Convert this point from the $$\mathbb P^2$$ model to the $$\mathbb P^3$$ model.

This costs $$3 \mathrm M + 1 \mathrm S$$.

### impl ProjectivePoint[src]

#### pub fn double(&self) -> CompletedPoint[src]

Double this point: return self + self

## Blanket Implementations

### impl<T> Same<T> for T

#### type Output = T

Should always be Self

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

#### type Owned = T

The resulting type after obtaining ownership.

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

#### type Error = !

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.