pub struct IsogenyMap<'a, Domain: SWCurveConfig, Codomain: SWCurveConfig<BaseField = <Domain as CurveConfig>::BaseField>> {
    pub x_map_numerator: &'a [<Domain as CurveConfig>::BaseField],
    pub x_map_denominator: &'a [<Codomain as CurveConfig>::BaseField],
    pub y_map_numerator: &'a [<Domain as CurveConfig>::BaseField],
    pub y_map_denominator: &'a [<Codomain as CurveConfig>::BaseField],
}
Expand description

IsogenyMap defines an isogeny between curves of form Phi(x, y) := (a(x), b(x)*y). The xcoordinate of the codomain point only depends on thex-coordinate of the domain point, and the y-coordinate of the codomain point is a multiple of the y-coordinate of the domain point. The multiplier depends on the x`-coordinate of the domain point. All isogeny maps of curves of short Weierstrass form can be written in this way. See [[Ga18]]. Theorem 9.7.5 for details.

We assume that Domain and Codomain have the same BaseField but we use both BaseField<Domain> and BaseField<Codomain> in our fields’ definitions to avoid using PhantomData

  • [[Ga18]] Galbraith, S. D. (2018). Mathematics of public key cryptography.

Fields§

§x_map_numerator: &'a [<Domain as CurveConfig>::BaseField]§x_map_denominator: &'a [<Codomain as CurveConfig>::BaseField]§y_map_numerator: &'a [<Domain as CurveConfig>::BaseField]§y_map_denominator: &'a [<Codomain as CurveConfig>::BaseField]

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Should always be Self
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.