Struct halo2curves::pasta::Eq
[−]pub struct Eq { /* private fields */ }
Expand description
Represents a point in the projective coordinate space.
Implementations
impl Eq
impl Eq
pub const ISOGENY_CONSTANTS: [Fq; 13] = [Fq::from_raw([4885634597527748609, 145765906404906522, 10248191152060862009,
4099276460824344803]),
Fq::from_raw([10058163780392828101, 2408168379919809885,
12460599317356087714, 2131137516597099799]),
Fq::from_raw([12586549115398679101, 15392463302893882129,
17113367052010622863, 1762610045819474445]),
Fq::from_raw([18109988328118943787, 16268446232600150870,
2049638230412172401, 3586866903221301703]),
Fq::from_raw([13197886113531929321, 11794196803601433811,
1464929413947479730, 733493575664346581]),
Fq::from_raw([17395647824788665445, 3516587091042095669,
892308561548026922, 1473611052851931000]),
Fq::from_raw([7777459557079100075, 6197503326704819379,
15713893099826655080, 1366425486941448267]),
Fq::from_raw([10083094360519466595, 2438999016919511837,
15453671695532819665, 3371411767512243851]),
Fq::from_raw([5298081692966465588, 10926799618036066915,
7408780302910295652, 1851217482910685064]),
Fq::from_raw([10332528771039843635, 10070942905895331491,
4782489204295068937, 2220441416279853435]),
Fq::from_raw([6404097566911394910, 479465958652205996,
11420766157775995404, 3406083372710213823]),
Fq::from_raw([15293455326946893103, 10549761273126287009,
2676925684644080766, 4420833158555793000]),
Fq::from_raw([10108024940646104549, 2469829653919213789, 0,
4611686018427387904])]
pub const ISOGENY_CONSTANTS: [Fq; 13] = [Fq::from_raw([4885634597527748609, 145765906404906522, 10248191152060862009, 4099276460824344803]), Fq::from_raw([10058163780392828101, 2408168379919809885, 12460599317356087714, 2131137516597099799]), Fq::from_raw([12586549115398679101, 15392463302893882129, 17113367052010622863, 1762610045819474445]), Fq::from_raw([18109988328118943787, 16268446232600150870, 2049638230412172401, 3586866903221301703]), Fq::from_raw([13197886113531929321, 11794196803601433811, 1464929413947479730, 733493575664346581]), Fq::from_raw([17395647824788665445, 3516587091042095669, 892308561548026922, 1473611052851931000]), Fq::from_raw([7777459557079100075, 6197503326704819379, 15713893099826655080, 1366425486941448267]), Fq::from_raw([10083094360519466595, 2438999016919511837, 15453671695532819665, 3371411767512243851]), Fq::from_raw([5298081692966465588, 10926799618036066915, 7408780302910295652, 1851217482910685064]), Fq::from_raw([10332528771039843635, 10070942905895331491, 4782489204295068937, 2220441416279853435]), Fq::from_raw([6404097566911394910, 479465958652205996, 11420766157775995404, 3406083372710213823]), Fq::from_raw([15293455326946893103, 10549761273126287009, 2676925684644080766, 4420833158555793000]), Fq::from_raw([10108024940646104549, 2469829653919213789, 0, 4611686018427387904])]
Constants used for computing the isogeny from IsoEq to Eq.
Trait Implementations
impl<'b> AddAssign<&'b Eq> for Eq
impl<'b> AddAssign<&'b Eq> for Eq
fn add_assign(&mut self, rhs: &'b Eq)
fn add_assign(&mut self, rhs: &'b Eq)
Performs the
+=
operation. Read moreimpl<'b> AddAssign<&'b EqAffine> for Eq
impl<'b> AddAssign<&'b EqAffine> for Eq
fn add_assign(&mut self, rhs: &'b EqAffine)
fn add_assign(&mut self, rhs: &'b EqAffine)
Performs the
+=
operation. Read moreimpl AddAssign<EqAffine> for Eq
impl AddAssign<EqAffine> for Eq
fn add_assign(&mut self, rhs: EqAffine)
fn add_assign(&mut self, rhs: EqAffine)
Performs the
+=
operation. Read moreimpl CofactorGroup for Eq
impl CofactorGroup for Eq
type Subgroup = Eq
type Subgroup = Eq
The large prime-order subgroup in which cryptographic operations are performed.
If
Self
implements PrimeGroup
, then Self::Subgroup
may be Self
. Read morefn clear_cofactor(&self) -> Eq
fn clear_cofactor(&self) -> Eq
Maps
self
to the prime-order subgroup by multiplying this element by some
k
-multiple of the cofactor. Read morefn into_subgroup(self) -> CtOption<<Eq as CofactorGroup>::Subgroup>
fn into_subgroup(self) -> CtOption<<Eq as CofactorGroup>::Subgroup>
Returns
self
if it is contained in the prime-order subgroup. Read morefn is_torsion_free(&self) -> Choice
fn is_torsion_free(&self) -> Choice
Determines if this element is “torsion free”, i.e., is contained in the
prime-order subgroup. Read more
fn is_small_order(&self) -> Choice
fn is_small_order(&self) -> Choice
Determines if this element is of small order. Read more
impl ConditionallySelectable for Eq
impl ConditionallySelectable for Eq
fn conditional_select(a: &Eq, b: &Eq, choice: Choice) -> Eq
fn conditional_select(a: &Eq, b: &Eq, choice: Choice) -> Eq
sourcefn conditional_assign(&mut self, other: &Self, choice: Choice)
fn conditional_assign(&mut self, other: &Self, choice: Choice)
impl ConstantTimeEq for Eq
impl ConstantTimeEq for Eq
impl Curve for Eq
impl Curve for Eq
type AffineRepr = EqAffine
type AffineRepr = EqAffine
The affine representation for this elliptic curve.
fn batch_normalize(p: &[Eq], q: &mut [<Eq as Curve>::AffineRepr])
fn batch_normalize(p: &[Eq], q: &mut [<Eq as Curve>::AffineRepr])
Converts a batch of projective elements into affine elements. This function will
panic if
p.len() != q.len()
. Read moreimpl CurveExt for Eq
impl CurveExt for Eq
fn endo(&self) -> Eq
fn endo(&self) -> Eq
Apply the curve endomorphism by multiplying the x-coordinate by an element of multiplicative order 3.
fn hash_to_curve(domain_prefix: &'a str) -> Box<dyn Fn(&[u8]) + 'a, Global>
fn hash_to_curve(domain_prefix: &'a str) -> Box<dyn Fn(&[u8]) + 'a, Global>
Requests a hasher that accepts messages and returns near-uniformly
distributed elements in the group, given domain prefix
domain_prefix
. Read morefn new_jacobian(
x: <Eq as CurveExt>::Base,
y: <Eq as CurveExt>::Base,
z: <Eq as CurveExt>::Base
) -> CtOption<Eq>
fn new_jacobian(
x: <Eq as CurveExt>::Base,
y: <Eq as CurveExt>::Base,
z: <Eq as CurveExt>::Base
) -> CtOption<Eq>
Obtains a point given Jacobian coordinates $X : Y : Z$, failing
if the coordinates are not on the curve. Read more
fn jacobian_coordinates(&self) -> (Fq, Fq, Fq)
fn jacobian_coordinates(&self) -> (Fq, Fq, Fq)
Return the Jacobian coordinates of this point.
fn is_on_curve(&self) -> Choice
fn is_on_curve(&self) -> Choice
Returns whether or not this element is on the curve; should
always be true unless an “unchecked” API was used. Read more
impl Group for Eq
impl Group for Eq
impl Group for Eq
impl Group for Eq
type Scalar = Fp
type Scalar = Fp
The group is assumed to be of prime order $p$.
Scalar
is the
associated scalar field of size $p$. Read morefn group_zero() -> Eq
fn group_zero() -> Eq
Returns the additive identity of the group.
fn group_scale(&mut self, by: &<Eq as Group>::Scalar)
fn group_scale(&mut self, by: &<Eq as Group>::Scalar)
Scales this group element by a scalar.
impl GroupEncoding for Eq
impl GroupEncoding for Eq
fn from_bytes(bytes: &<Eq as GroupEncoding>::Repr) -> CtOption<Eq>
fn from_bytes(bytes: &<Eq as GroupEncoding>::Repr) -> CtOption<Eq>
Attempts to deserialize a group element from its encoding.
fn from_bytes_unchecked(bytes: &<Eq as GroupEncoding>::Repr) -> CtOption<Eq>
fn from_bytes_unchecked(bytes: &<Eq as GroupEncoding>::Repr) -> CtOption<Eq>
Attempts to deserialize a group element, not checking if the element is valid. Read more
impl<'b> MulAssign<&'b Fp> for Eq
impl<'b> MulAssign<&'b Fp> for Eq
fn mul_assign(&mut self, rhs: &'b Fp)
fn mul_assign(&mut self, rhs: &'b Fp)
Performs the
*=
operation. Read moreimpl<'b> SubAssign<&'b Eq> for Eq
impl<'b> SubAssign<&'b Eq> for Eq
fn sub_assign(&mut self, rhs: &'b Eq)
fn sub_assign(&mut self, rhs: &'b Eq)
Performs the
-=
operation. Read moreimpl<'b> SubAssign<&'b EqAffine> for Eq
impl<'b> SubAssign<&'b EqAffine> for Eq
fn sub_assign(&mut self, rhs: &'b EqAffine)
fn sub_assign(&mut self, rhs: &'b EqAffine)
Performs the
-=
operation. Read moreimpl SubAssign<EqAffine> for Eq
impl SubAssign<EqAffine> for Eq
fn sub_assign(&mut self, rhs: EqAffine)
fn sub_assign(&mut self, rhs: EqAffine)
Performs the
-=
operation. Read moreimpl WnafGroup for Eq
impl WnafGroup for Eq
fn recommended_wnaf_for_num_scalars(num_scalars: usize) -> usize
fn recommended_wnaf_for_num_scalars(num_scalars: usize) -> usize
Recommends a wNAF window size given the number of scalars you intend to multiply
a base by. Always returns a number between 2 and 22, inclusive. Read more
impl Copy for Eq
impl Eq for Eq
impl PrimeGroup for Eq
Auto Trait Implementations
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ConditionallyNegatable for Twhere
T: ConditionallySelectable,
&'a T: for<'a> Neg<Output = T>,
impl<T> ConditionallyNegatable for Twhere
T: ConditionallySelectable,
&'a T: for<'a> Neg<Output = T>,
sourcefn conditional_negate(&mut self, choice: Choice)
fn conditional_negate(&mut self, choice: Choice)
impl<T> FmtForward for T
impl<T> FmtForward for T
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
Causes
self
to use its Binary
implementation when Debug
-formatted.fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
Causes
self
to use its Octal
implementation when Debug
-formatted.fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
Formats each item in a sequence. Read more
impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Pipes by value. This is generally the method you want to use. Read more
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
Borrows
self
and passes that borrow into the pipe function. Read morefn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
Mutably borrows
self
and passes that borrow into the pipe function. Read morefn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> Rwhere
Self: Borrow<B>,
B: 'a + ?Sized,
R: 'a,
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> Rwhere
Self: Borrow<B>,
B: 'a + ?Sized,
R: 'a,
fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R
) -> Rwhere
Self: BorrowMut<B>,
B: 'a + ?Sized,
R: 'a,
fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R
) -> Rwhere
Self: BorrowMut<B>,
B: 'a + ?Sized,
R: 'a,
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere
Self: AsRef<U>,
U: 'a + ?Sized,
R: 'a,
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere
Self: AsRef<U>,
U: 'a + ?Sized,
R: 'a,
Borrows
self
, then passes self.as_ref()
into the pipe function.fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> Rwhere
Self: AsMut<U>,
U: 'a + ?Sized,
R: 'a,
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> Rwhere
Self: AsMut<U>,
U: 'a + ?Sized,
R: 'a,
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> Rwhere
Self: Deref<Target = T>,
T: 'a + ?Sized,
R: 'a,
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> Rwhere
Self: Deref<Target = T>,
T: 'a + ?Sized,
R: 'a,
Borrows
self
, then passes self.deref()
into the pipe function.impl<T> Tap for T
impl<T> Tap for T
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
Immutable access to the
Borrow<B>
of a value. Read morefn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
Mutable access to the
BorrowMut<B>
of a value. Read morefn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
Immutable access to the
AsRef<R>
view of a value. Read morefn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
Mutable access to the
AsMut<R>
view of a value. Read morefn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere
Self: Deref<Target = T>,
T: ?Sized,
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere
Self: Deref<Target = T>,
T: ?Sized,
Immutable access to the
Deref::Target
of a value. Read morefn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
Mutable access to the
Deref::Target
of a value. Read morefn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
Calls
.tap()
only in debug builds, and is erased in release builds.fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
Calls
.tap_mut()
only in debug builds, and is erased in release
builds. Read morefn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
Calls
.tap_borrow()
only in debug builds, and is erased in release
builds. Read morefn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
Calls
.tap_borrow_mut()
only in debug builds, and is erased in release
builds. Read morefn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
Calls
.tap_ref()
only in debug builds, and is erased in release
builds. Read morefn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
Calls
.tap_ref_mut()
only in debug builds, and is erased in release
builds. Read more