Struct Jubjub
pub struct Jubjub { /* private fields */ }Expand description
This represents an extended point (U, V, Z, T1, T2)
with Z nonzero, corresponding to the affine point
(U/Z, V/Z). We always have T1 * T2 = UV/Z.
You can do the following things with a point in this form:
- Convert it into a point in the affine form.
- Add it to an
ExtendedPoint,AffineNielsPointorExtendedNielsPoint. - Double it using
double(). - Compare it with another extended point using
PartialEqorct_eq().
Implementations§
§impl JubjubExtended
impl JubjubExtended
pub const fn identity() -> JubjubExtended
pub const fn identity() -> JubjubExtended
Constructs an extended point from the neutral element (0, 1).
pub fn is_identity(&self) -> Choice
pub fn is_identity(&self) -> Choice
Determines if this point is the identity.
pub fn is_small_order(&self) -> Choice
pub fn is_small_order(&self) -> Choice
Determines if this point is of small order.
pub fn is_torsion_free(&self) -> Choice
pub fn is_torsion_free(&self) -> Choice
Determines if this point is torsion free and so is contained in the prime order subgroup.
pub fn is_prime_order(&self) -> Choice
pub fn is_prime_order(&self) -> Choice
Determines if this point is prime order, or in other words that
the smallest scalar multiplied by this point that produces the
identity is r. This is equivalent to checking that the point
is both torsion free and not the identity.
pub fn mul_by_cofactor(&self) -> JubjubExtended
pub fn mul_by_cofactor(&self) -> JubjubExtended
Multiplies this element by the cofactor 8.
pub fn to_niels(&self) -> ExtendedNielsPoint
pub fn to_niels(&self) -> ExtendedNielsPoint
Performs a pre-processing step that produces an ExtendedNielsPoint
for use in multiple additions.
pub fn double(&self) -> JubjubExtended
pub fn double(&self) -> JubjubExtended
Computes the doubling of a point more efficiently than a point can be added to itself.
Trait Implementations§
§impl<'b> Add<&'b ExtendedNielsPoint> for &JubjubExtended
impl<'b> Add<&'b ExtendedNielsPoint> for &JubjubExtended
§type Output = JubjubExtended
type Output = JubjubExtended
+ operator.§fn add(self, other: &'b ExtendedNielsPoint) -> JubjubExtended
fn add(self, other: &'b ExtendedNielsPoint) -> JubjubExtended
+ operation. Read more§impl<'b> Add<&'b ExtendedNielsPoint> for JubjubExtended
impl<'b> Add<&'b ExtendedNielsPoint> for JubjubExtended
§type Output = JubjubExtended
type Output = JubjubExtended
+ operator.§fn add(self, rhs: &'b ExtendedNielsPoint) -> JubjubExtended
fn add(self, rhs: &'b ExtendedNielsPoint) -> JubjubExtended
+ operation. Read more§impl<'b> Add<&'b JubjubAffine> for &JubjubExtended
impl<'b> Add<&'b JubjubAffine> for &JubjubExtended
§type Output = JubjubExtended
type Output = JubjubExtended
+ operator.§fn add(self, other: &'b JubjubAffine) -> JubjubExtended
fn add(self, other: &'b JubjubAffine) -> JubjubExtended
+ operation. Read more§impl<'b> Add<&'b JubjubAffine> for JubjubExtended
impl<'b> Add<&'b JubjubAffine> for JubjubExtended
§type Output = JubjubExtended
type Output = JubjubExtended
+ operator.§fn add(self, rhs: &'b JubjubAffine) -> JubjubExtended
fn add(self, rhs: &'b JubjubAffine) -> JubjubExtended
+ operation. Read more§impl<'b> Add<&'b JubjubAffineNiels> for &JubjubExtended
impl<'b> Add<&'b JubjubAffineNiels> for &JubjubExtended
§type Output = JubjubExtended
type Output = JubjubExtended
+ operator.§fn add(self, other: &'b JubjubAffineNiels) -> JubjubExtended
fn add(self, other: &'b JubjubAffineNiels) -> JubjubExtended
+ operation. Read more§impl<'b> Add<&'b JubjubAffineNiels> for JubjubExtended
impl<'b> Add<&'b JubjubAffineNiels> for JubjubExtended
§type Output = JubjubExtended
type Output = JubjubExtended
+ operator.§fn add(self, rhs: &'b JubjubAffineNiels) -> JubjubExtended
fn add(self, rhs: &'b JubjubAffineNiels) -> JubjubExtended
+ operation. Read more§impl<'b> Add<&'b JubjubExtended> for &JubjubExtended
impl<'b> Add<&'b JubjubExtended> for &JubjubExtended
§type Output = JubjubExtended
type Output = JubjubExtended
+ operator.§fn add(self, other: &'b JubjubExtended) -> JubjubExtended
fn add(self, other: &'b JubjubExtended) -> JubjubExtended
+ operation. Read more§impl<'b> Add<&'b JubjubExtended> for JubjubExtended
impl<'b> Add<&'b JubjubExtended> for JubjubExtended
§type Output = JubjubExtended
type Output = JubjubExtended
+ operator.§fn add(self, rhs: &'b JubjubExtended) -> JubjubExtended
fn add(self, rhs: &'b JubjubExtended) -> JubjubExtended
+ operation. Read more§impl<'b> Add<&'b JubjubSubgroup> for &JubjubExtended
impl<'b> Add<&'b JubjubSubgroup> for &JubjubExtended
§type Output = JubjubExtended
type Output = JubjubExtended
+ operator.§fn add(self, other: &'b JubjubSubgroup) -> JubjubExtended
fn add(self, other: &'b JubjubSubgroup) -> JubjubExtended
+ operation. Read more§impl<'b> Add<&'b JubjubSubgroup> for JubjubExtended
impl<'b> Add<&'b JubjubSubgroup> for JubjubExtended
§type Output = JubjubExtended
type Output = JubjubExtended
+ operator.§fn add(self, rhs: &'b JubjubSubgroup) -> JubjubExtended
fn add(self, rhs: &'b JubjubSubgroup) -> JubjubExtended
+ operation. Read more§impl<'a> Add<ExtendedNielsPoint> for &'a JubjubExtended
impl<'a> Add<ExtendedNielsPoint> for &'a JubjubExtended
§type Output = JubjubExtended
type Output = JubjubExtended
+ operator.§fn add(self, rhs: ExtendedNielsPoint) -> JubjubExtended
fn add(self, rhs: ExtendedNielsPoint) -> JubjubExtended
+ operation. Read more§impl Add<ExtendedNielsPoint> for JubjubExtended
impl Add<ExtendedNielsPoint> for JubjubExtended
§type Output = JubjubExtended
type Output = JubjubExtended
+ operator.§fn add(self, rhs: ExtendedNielsPoint) -> JubjubExtended
fn add(self, rhs: ExtendedNielsPoint) -> JubjubExtended
+ operation. Read more§impl<'a> Add<JubjubAffine> for &'a JubjubExtended
impl<'a> Add<JubjubAffine> for &'a JubjubExtended
§type Output = JubjubExtended
type Output = JubjubExtended
+ operator.§fn add(self, rhs: JubjubAffine) -> JubjubExtended
fn add(self, rhs: JubjubAffine) -> JubjubExtended
+ operation. Read more§impl Add<JubjubAffine> for JubjubExtended
impl Add<JubjubAffine> for JubjubExtended
§type Output = JubjubExtended
type Output = JubjubExtended
+ operator.§fn add(self, rhs: JubjubAffine) -> JubjubExtended
fn add(self, rhs: JubjubAffine) -> JubjubExtended
+ operation. Read more§impl<'a> Add<JubjubAffineNiels> for &'a JubjubExtended
impl<'a> Add<JubjubAffineNiels> for &'a JubjubExtended
§type Output = JubjubExtended
type Output = JubjubExtended
+ operator.§fn add(self, rhs: JubjubAffineNiels) -> JubjubExtended
fn add(self, rhs: JubjubAffineNiels) -> JubjubExtended
+ operation. Read more§impl Add<JubjubAffineNiels> for JubjubExtended
impl Add<JubjubAffineNiels> for JubjubExtended
§type Output = JubjubExtended
type Output = JubjubExtended
+ operator.§fn add(self, rhs: JubjubAffineNiels) -> JubjubExtended
fn add(self, rhs: JubjubAffineNiels) -> JubjubExtended
+ operation. Read more§impl<'a> Add<JubjubExtended> for &'a JubjubExtended
impl<'a> Add<JubjubExtended> for &'a JubjubExtended
§type Output = JubjubExtended
type Output = JubjubExtended
+ operator.§fn add(self, rhs: JubjubExtended) -> JubjubExtended
fn add(self, rhs: JubjubExtended) -> JubjubExtended
+ operation. Read more§impl<'a> Add<JubjubSubgroup> for &'a JubjubExtended
impl<'a> Add<JubjubSubgroup> for &'a JubjubExtended
§type Output = JubjubExtended
type Output = JubjubExtended
+ operator.§fn add(self, rhs: JubjubSubgroup) -> JubjubExtended
fn add(self, rhs: JubjubSubgroup) -> JubjubExtended
+ operation. Read more§impl Add<JubjubSubgroup> for JubjubExtended
impl Add<JubjubSubgroup> for JubjubExtended
§type Output = JubjubExtended
type Output = JubjubExtended
+ operator.§fn add(self, rhs: JubjubSubgroup) -> JubjubExtended
fn add(self, rhs: JubjubSubgroup) -> JubjubExtended
+ operation. Read more§impl Add for JubjubExtended
impl Add for JubjubExtended
§type Output = JubjubExtended
type Output = JubjubExtended
+ operator.§fn add(self, rhs: JubjubExtended) -> JubjubExtended
fn add(self, rhs: JubjubExtended) -> JubjubExtended
+ operation. Read more§impl<'b> AddAssign<&'b ExtendedNielsPoint> for JubjubExtended
impl<'b> AddAssign<&'b ExtendedNielsPoint> for JubjubExtended
§fn add_assign(&mut self, rhs: &'b ExtendedNielsPoint)
fn add_assign(&mut self, rhs: &'b ExtendedNielsPoint)
+= operation. Read more§impl<'b> AddAssign<&'b JubjubAffine> for JubjubExtended
impl<'b> AddAssign<&'b JubjubAffine> for JubjubExtended
§fn add_assign(&mut self, rhs: &'b JubjubAffine)
fn add_assign(&mut self, rhs: &'b JubjubAffine)
+= operation. Read more§impl<'b> AddAssign<&'b JubjubAffineNiels> for JubjubExtended
impl<'b> AddAssign<&'b JubjubAffineNiels> for JubjubExtended
§fn add_assign(&mut self, rhs: &'b JubjubAffineNiels)
fn add_assign(&mut self, rhs: &'b JubjubAffineNiels)
+= operation. Read more§impl<'b> AddAssign<&'b JubjubExtended> for JubjubExtended
impl<'b> AddAssign<&'b JubjubExtended> for JubjubExtended
§fn add_assign(&mut self, rhs: &'b JubjubExtended)
fn add_assign(&mut self, rhs: &'b JubjubExtended)
+= operation. Read more§impl<'b> AddAssign<&'b JubjubSubgroup> for JubjubExtended
impl<'b> AddAssign<&'b JubjubSubgroup> for JubjubExtended
§fn add_assign(&mut self, rhs: &'b JubjubSubgroup)
fn add_assign(&mut self, rhs: &'b JubjubSubgroup)
+= operation. Read more§impl AddAssign<ExtendedNielsPoint> for JubjubExtended
impl AddAssign<ExtendedNielsPoint> for JubjubExtended
§fn add_assign(&mut self, rhs: ExtendedNielsPoint)
fn add_assign(&mut self, rhs: ExtendedNielsPoint)
+= operation. Read more§impl AddAssign<JubjubAffine> for JubjubExtended
impl AddAssign<JubjubAffine> for JubjubExtended
§fn add_assign(&mut self, rhs: JubjubAffine)
fn add_assign(&mut self, rhs: JubjubAffine)
+= operation. Read more§impl AddAssign<JubjubAffineNiels> for JubjubExtended
impl AddAssign<JubjubAffineNiels> for JubjubExtended
§fn add_assign(&mut self, rhs: JubjubAffineNiels)
fn add_assign(&mut self, rhs: JubjubAffineNiels)
+= operation. Read more§impl AddAssign<JubjubSubgroup> for JubjubExtended
impl AddAssign<JubjubSubgroup> for JubjubExtended
§fn add_assign(&mut self, rhs: JubjubSubgroup)
fn add_assign(&mut self, rhs: JubjubSubgroup)
+= operation. Read more§impl AddAssign for JubjubExtended
impl AddAssign for JubjubExtended
§fn add_assign(&mut self, rhs: JubjubExtended)
fn add_assign(&mut self, rhs: JubjubExtended)
+= operation. Read more§impl CircuitCurve for JubjubExtended
impl CircuitCurve for JubjubExtended
§const NUM_BITS_SUBGROUP: u32 = 252
const NUM_BITS_SUBGROUP: u32 = 252
§type CryptographicGroup = JubjubSubgroup
type CryptographicGroup = JubjubSubgroup
§fn coordinates(
&self,
) -> Option<(<JubjubExtended as CircuitCurve>::Base, <JubjubExtended as CircuitCurve>::Base)>
fn coordinates( &self, ) -> Option<(<JubjubExtended as CircuitCurve>::Base, <JubjubExtended as CircuitCurve>::Base)>
§fn from_xy(
x: <JubjubExtended as CircuitCurve>::Base,
y: <JubjubExtended as CircuitCurve>::Base,
) -> Option<JubjubExtended>
fn from_xy( x: <JubjubExtended as CircuitCurve>::Base, y: <JubjubExtended as CircuitCurve>::Base, ) -> Option<JubjubExtended>
§fn into_subgroup(self) -> <JubjubExtended as CircuitCurve>::CryptographicGroup
fn into_subgroup(self) -> <JubjubExtended as CircuitCurve>::CryptographicGroup
§impl Clone for JubjubExtended
impl Clone for JubjubExtended
§fn clone(&self) -> JubjubExtended
fn clone(&self) -> JubjubExtended
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more§impl CofactorCurve for JubjubExtended
impl CofactorCurve for JubjubExtended
type Affine = JubjubAffine
§impl CofactorGroup for JubjubExtended
impl CofactorGroup for JubjubExtended
§type Subgroup = JubjubSubgroup
type Subgroup = JubjubSubgroup
Self implements PrimeGroup, then Self::Subgroup may be Self.§fn clear_cofactor(&self) -> <JubjubExtended as CofactorGroup>::Subgroup
fn clear_cofactor(&self) -> <JubjubExtended as CofactorGroup>::Subgroup
self to the prime-order subgroup by multiplying this element by some
k-multiple of the cofactor. Read more§fn into_subgroup(self) -> CtOption<<JubjubExtended as CofactorGroup>::Subgroup>
fn into_subgroup(self) -> CtOption<<JubjubExtended as CofactorGroup>::Subgroup>
self if it is contained in the prime-order subgroup. Read more§fn is_torsion_free(&self) -> Choice
fn is_torsion_free(&self) -> Choice
§fn is_small_order(&self) -> Choice
fn is_small_order(&self) -> Choice
§impl ConditionallySelectable for JubjubExtended
impl ConditionallySelectable for JubjubExtended
§fn conditional_select(
a: &JubjubExtended,
b: &JubjubExtended,
choice: Choice,
) -> JubjubExtended
fn conditional_select( a: &JubjubExtended, b: &JubjubExtended, choice: Choice, ) -> JubjubExtended
Source§fn conditional_assign(&mut self, other: &Self, choice: Choice)
fn conditional_assign(&mut self, other: &Self, choice: Choice)
Source§fn conditional_swap(a: &mut Self, b: &mut Self, choice: Choice)
fn conditional_swap(a: &mut Self, b: &mut Self, choice: Choice)
self and other if choice == 1; otherwise,
reassign both unto themselves. Read more§impl ConstantTimeEq for JubjubExtended
impl ConstantTimeEq for JubjubExtended
§impl Curve for JubjubExtended
impl Curve for JubjubExtended
§type AffineRepr = JubjubAffine
type AffineRepr = JubjubAffine
§fn batch_normalize(
p: &[JubjubExtended],
q: &mut [<JubjubExtended as Curve>::AffineRepr],
)
fn batch_normalize( p: &[JubjubExtended], q: &mut [<JubjubExtended as Curve>::AffineRepr], )
p.len() != q.len().§fn to_affine(&self) -> <JubjubExtended as Curve>::AffineRepr
fn to_affine(&self) -> <JubjubExtended as Curve>::AffineRepr
§impl Debug for JubjubExtended
impl Debug for JubjubExtended
§impl Default for JubjubExtended
impl Default for JubjubExtended
§fn default() -> JubjubExtended
fn default() -> JubjubExtended
Returns the identity.
§impl Display for JubjubExtended
impl Display for JubjubExtended
§impl EdwardsCurve for JubjubExtended
impl EdwardsCurve for JubjubExtended
§const A: <JubjubExtended as CircuitCurve>::Base
const A: <JubjubExtended as CircuitCurve>::Base
A parameter.§const D: <JubjubExtended as CircuitCurve>::Base
const D: <JubjubExtended as CircuitCurve>::Base
D parameter.§impl<'a> From<&'a JubjubExtended> for JubjubAffine
impl<'a> From<&'a JubjubExtended> for JubjubAffine
§fn from(extended: &'a JubjubExtended) -> JubjubAffine
fn from(extended: &'a JubjubExtended) -> JubjubAffine
Constructs an affine point from an extended point
using the map (U, V, Z, T1, T2) => (U/Z, V/Z)
as Z is always nonzero. This requires a field inversion
and so it is recommended to perform these in a batch
using [batch_normalize] instead.
§impl<'a> From<&'a JubjubSubgroup> for &'a JubjubExtended
impl<'a> From<&'a JubjubSubgroup> for &'a JubjubExtended
§fn from(val: &'a JubjubSubgroup) -> &'a JubjubExtended
fn from(val: &'a JubjubSubgroup) -> &'a JubjubExtended
§impl From<JubjubAffine> for JubjubExtended
impl From<JubjubAffine> for JubjubExtended
§fn from(affine: JubjubAffine) -> JubjubExtended
fn from(affine: JubjubAffine) -> JubjubExtended
Constructs an extended point (with Z = 1) from
an affine point using the map (u, v) => (u, v, 1, u, v).
§impl From<JubjubExtended> for JubjubAffine
impl From<JubjubExtended> for JubjubAffine
§fn from(extended: JubjubExtended) -> JubjubAffine
fn from(extended: JubjubExtended) -> JubjubAffine
§impl From<JubjubSubgroup> for JubjubExtended
impl From<JubjubSubgroup> for JubjubExtended
§fn from(val: JubjubSubgroup) -> JubjubExtended
fn from(val: JubjubSubgroup) -> JubjubExtended
§impl Group for JubjubExtended
impl Group for JubjubExtended
§fn random(rng: impl RngCore) -> JubjubExtended
fn random(rng: impl RngCore) -> JubjubExtended
§fn identity() -> JubjubExtended
fn identity() -> JubjubExtended
§fn generator() -> JubjubExtended
fn generator() -> JubjubExtended
§fn is_identity(&self) -> Choice
fn is_identity(&self) -> Choice
§fn double(&self) -> JubjubExtended
fn double(&self) -> JubjubExtended
§impl GroupEncoding for JubjubExtended
impl GroupEncoding for JubjubExtended
§fn from_bytes(
bytes: &<JubjubExtended as GroupEncoding>::Repr,
) -> CtOption<JubjubExtended>
fn from_bytes( bytes: &<JubjubExtended as GroupEncoding>::Repr, ) -> CtOption<JubjubExtended>
§fn from_bytes_unchecked(
bytes: &<JubjubExtended as GroupEncoding>::Repr,
) -> CtOption<JubjubExtended>
fn from_bytes_unchecked( bytes: &<JubjubExtended as GroupEncoding>::Repr, ) -> CtOption<JubjubExtended>
§fn to_bytes(&self) -> <JubjubExtended as GroupEncoding>::Repr
fn to_bytes(&self) -> <JubjubExtended as GroupEncoding>::Repr
§impl MapToCurveCPU<JubjubExtended> for JubjubExtended
impl MapToCurveCPU<JubjubExtended> for JubjubExtended
§fn map_to_curve(u: &<JubjubExtended as CircuitCurve>::Base) -> JubjubSubgroup
fn map_to_curve(u: &<JubjubExtended as CircuitCurve>::Base) -> JubjubSubgroup
§impl MapToEdwardsParams<Fq> for JubjubExtended
impl MapToEdwardsParams<Fq> for JubjubExtended
§impl<'b> Mul<&'b Fr> for &JubjubExtended
impl<'b> Mul<&'b Fr> for &JubjubExtended
§type Output = JubjubExtended
type Output = JubjubExtended
* operator.§fn mul(self, other: &'b Fr) -> JubjubExtended
fn mul(self, other: &'b Fr) -> JubjubExtended
* operation. Read more§impl<'b> Mul<&'b Fr> for JubjubExtended
impl<'b> Mul<&'b Fr> for JubjubExtended
§type Output = JubjubExtended
type Output = JubjubExtended
* operator.§fn mul(self, rhs: &'b Fr) -> JubjubExtended
fn mul(self, rhs: &'b Fr) -> JubjubExtended
* operation. Read more§impl<'a> Mul<Fr> for &'a JubjubExtended
impl<'a> Mul<Fr> for &'a JubjubExtended
§type Output = JubjubExtended
type Output = JubjubExtended
* operator.§fn mul(self, rhs: Fr) -> JubjubExtended
fn mul(self, rhs: Fr) -> JubjubExtended
* operation. Read more§impl Mul<Fr> for JubjubExtended
impl Mul<Fr> for JubjubExtended
§type Output = JubjubExtended
type Output = JubjubExtended
* operator.§fn mul(self, rhs: Fr) -> JubjubExtended
fn mul(self, rhs: Fr) -> JubjubExtended
* operation. Read more§impl<'b> MulAssign<&'b Fr> for JubjubExtended
impl<'b> MulAssign<&'b Fr> for JubjubExtended
§fn mul_assign(&mut self, rhs: &'b Fr)
fn mul_assign(&mut self, rhs: &'b Fr)
*= operation. Read more§impl MulAssign<Fr> for JubjubExtended
impl MulAssign<Fr> for JubjubExtended
§fn mul_assign(&mut self, rhs: Fr)
fn mul_assign(&mut self, rhs: Fr)
*= operation. Read more§impl Neg for JubjubExtended
impl Neg for JubjubExtended
§fn neg(self) -> JubjubExtended
fn neg(self) -> JubjubExtended
Computes the negation of a point P = (U, V, Z, T)
as -P = (-U, V, Z, -T1, T2). The choice of T1
is made without loss of generality.
§type Output = JubjubExtended
type Output = JubjubExtended
- operator.§impl PartialEq for JubjubExtended
impl PartialEq for JubjubExtended
§impl<'b> Sub<&'b ExtendedNielsPoint> for &JubjubExtended
impl<'b> Sub<&'b ExtendedNielsPoint> for &JubjubExtended
§type Output = JubjubExtended
type Output = JubjubExtended
- operator.§fn sub(self, other: &'b ExtendedNielsPoint) -> JubjubExtended
fn sub(self, other: &'b ExtendedNielsPoint) -> JubjubExtended
- operation. Read more§impl<'b> Sub<&'b ExtendedNielsPoint> for JubjubExtended
impl<'b> Sub<&'b ExtendedNielsPoint> for JubjubExtended
§type Output = JubjubExtended
type Output = JubjubExtended
- operator.§fn sub(self, rhs: &'b ExtendedNielsPoint) -> JubjubExtended
fn sub(self, rhs: &'b ExtendedNielsPoint) -> JubjubExtended
- operation. Read more§impl<'b> Sub<&'b JubjubAffine> for &JubjubExtended
impl<'b> Sub<&'b JubjubAffine> for &JubjubExtended
§type Output = JubjubExtended
type Output = JubjubExtended
- operator.§fn sub(self, other: &'b JubjubAffine) -> JubjubExtended
fn sub(self, other: &'b JubjubAffine) -> JubjubExtended
- operation. Read more§impl<'b> Sub<&'b JubjubAffine> for JubjubExtended
impl<'b> Sub<&'b JubjubAffine> for JubjubExtended
§type Output = JubjubExtended
type Output = JubjubExtended
- operator.§fn sub(self, rhs: &'b JubjubAffine) -> JubjubExtended
fn sub(self, rhs: &'b JubjubAffine) -> JubjubExtended
- operation. Read more§impl<'b> Sub<&'b JubjubAffineNiels> for &JubjubExtended
impl<'b> Sub<&'b JubjubAffineNiels> for &JubjubExtended
§type Output = JubjubExtended
type Output = JubjubExtended
- operator.§fn sub(self, other: &'b JubjubAffineNiels) -> JubjubExtended
fn sub(self, other: &'b JubjubAffineNiels) -> JubjubExtended
- operation. Read more§impl<'b> Sub<&'b JubjubAffineNiels> for JubjubExtended
impl<'b> Sub<&'b JubjubAffineNiels> for JubjubExtended
§type Output = JubjubExtended
type Output = JubjubExtended
- operator.§fn sub(self, rhs: &'b JubjubAffineNiels) -> JubjubExtended
fn sub(self, rhs: &'b JubjubAffineNiels) -> JubjubExtended
- operation. Read more§impl<'b> Sub<&'b JubjubExtended> for &JubjubExtended
impl<'b> Sub<&'b JubjubExtended> for &JubjubExtended
§type Output = JubjubExtended
type Output = JubjubExtended
- operator.§fn sub(self, other: &'b JubjubExtended) -> JubjubExtended
fn sub(self, other: &'b JubjubExtended) -> JubjubExtended
- operation. Read more§impl<'b> Sub<&'b JubjubExtended> for JubjubExtended
impl<'b> Sub<&'b JubjubExtended> for JubjubExtended
§type Output = JubjubExtended
type Output = JubjubExtended
- operator.§fn sub(self, rhs: &'b JubjubExtended) -> JubjubExtended
fn sub(self, rhs: &'b JubjubExtended) -> JubjubExtended
- operation. Read more§impl<'b> Sub<&'b JubjubSubgroup> for &JubjubExtended
impl<'b> Sub<&'b JubjubSubgroup> for &JubjubExtended
§type Output = JubjubExtended
type Output = JubjubExtended
- operator.§fn sub(self, other: &'b JubjubSubgroup) -> JubjubExtended
fn sub(self, other: &'b JubjubSubgroup) -> JubjubExtended
- operation. Read more§impl<'b> Sub<&'b JubjubSubgroup> for JubjubExtended
impl<'b> Sub<&'b JubjubSubgroup> for JubjubExtended
§type Output = JubjubExtended
type Output = JubjubExtended
- operator.§fn sub(self, rhs: &'b JubjubSubgroup) -> JubjubExtended
fn sub(self, rhs: &'b JubjubSubgroup) -> JubjubExtended
- operation. Read more§impl<'a> Sub<ExtendedNielsPoint> for &'a JubjubExtended
impl<'a> Sub<ExtendedNielsPoint> for &'a JubjubExtended
§type Output = JubjubExtended
type Output = JubjubExtended
- operator.§fn sub(self, rhs: ExtendedNielsPoint) -> JubjubExtended
fn sub(self, rhs: ExtendedNielsPoint) -> JubjubExtended
- operation. Read more§impl Sub<ExtendedNielsPoint> for JubjubExtended
impl Sub<ExtendedNielsPoint> for JubjubExtended
§type Output = JubjubExtended
type Output = JubjubExtended
- operator.§fn sub(self, rhs: ExtendedNielsPoint) -> JubjubExtended
fn sub(self, rhs: ExtendedNielsPoint) -> JubjubExtended
- operation. Read more§impl<'a> Sub<JubjubAffine> for &'a JubjubExtended
impl<'a> Sub<JubjubAffine> for &'a JubjubExtended
§type Output = JubjubExtended
type Output = JubjubExtended
- operator.§fn sub(self, rhs: JubjubAffine) -> JubjubExtended
fn sub(self, rhs: JubjubAffine) -> JubjubExtended
- operation. Read more§impl Sub<JubjubAffine> for JubjubExtended
impl Sub<JubjubAffine> for JubjubExtended
§type Output = JubjubExtended
type Output = JubjubExtended
- operator.§fn sub(self, rhs: JubjubAffine) -> JubjubExtended
fn sub(self, rhs: JubjubAffine) -> JubjubExtended
- operation. Read more§impl<'a> Sub<JubjubAffineNiels> for &'a JubjubExtended
impl<'a> Sub<JubjubAffineNiels> for &'a JubjubExtended
§type Output = JubjubExtended
type Output = JubjubExtended
- operator.§fn sub(self, rhs: JubjubAffineNiels) -> JubjubExtended
fn sub(self, rhs: JubjubAffineNiels) -> JubjubExtended
- operation. Read more§impl Sub<JubjubAffineNiels> for JubjubExtended
impl Sub<JubjubAffineNiels> for JubjubExtended
§type Output = JubjubExtended
type Output = JubjubExtended
- operator.§fn sub(self, rhs: JubjubAffineNiels) -> JubjubExtended
fn sub(self, rhs: JubjubAffineNiels) -> JubjubExtended
- operation. Read more§impl<'a> Sub<JubjubExtended> for &'a JubjubExtended
impl<'a> Sub<JubjubExtended> for &'a JubjubExtended
§type Output = JubjubExtended
type Output = JubjubExtended
- operator.§fn sub(self, rhs: JubjubExtended) -> JubjubExtended
fn sub(self, rhs: JubjubExtended) -> JubjubExtended
- operation. Read more§impl<'a> Sub<JubjubSubgroup> for &'a JubjubExtended
impl<'a> Sub<JubjubSubgroup> for &'a JubjubExtended
§type Output = JubjubExtended
type Output = JubjubExtended
- operator.§fn sub(self, rhs: JubjubSubgroup) -> JubjubExtended
fn sub(self, rhs: JubjubSubgroup) -> JubjubExtended
- operation. Read more§impl Sub<JubjubSubgroup> for JubjubExtended
impl Sub<JubjubSubgroup> for JubjubExtended
§type Output = JubjubExtended
type Output = JubjubExtended
- operator.§fn sub(self, rhs: JubjubSubgroup) -> JubjubExtended
fn sub(self, rhs: JubjubSubgroup) -> JubjubExtended
- operation. Read more§impl Sub for JubjubExtended
impl Sub for JubjubExtended
§type Output = JubjubExtended
type Output = JubjubExtended
- operator.§fn sub(self, rhs: JubjubExtended) -> JubjubExtended
fn sub(self, rhs: JubjubExtended) -> JubjubExtended
- operation. Read more§impl<'b> SubAssign<&'b ExtendedNielsPoint> for JubjubExtended
impl<'b> SubAssign<&'b ExtendedNielsPoint> for JubjubExtended
§fn sub_assign(&mut self, rhs: &'b ExtendedNielsPoint)
fn sub_assign(&mut self, rhs: &'b ExtendedNielsPoint)
-= operation. Read more§impl<'b> SubAssign<&'b JubjubAffine> for JubjubExtended
impl<'b> SubAssign<&'b JubjubAffine> for JubjubExtended
§fn sub_assign(&mut self, rhs: &'b JubjubAffine)
fn sub_assign(&mut self, rhs: &'b JubjubAffine)
-= operation. Read more§impl<'b> SubAssign<&'b JubjubAffineNiels> for JubjubExtended
impl<'b> SubAssign<&'b JubjubAffineNiels> for JubjubExtended
§fn sub_assign(&mut self, rhs: &'b JubjubAffineNiels)
fn sub_assign(&mut self, rhs: &'b JubjubAffineNiels)
-= operation. Read more§impl<'b> SubAssign<&'b JubjubExtended> for JubjubExtended
impl<'b> SubAssign<&'b JubjubExtended> for JubjubExtended
§fn sub_assign(&mut self, rhs: &'b JubjubExtended)
fn sub_assign(&mut self, rhs: &'b JubjubExtended)
-= operation. Read more§impl<'b> SubAssign<&'b JubjubSubgroup> for JubjubExtended
impl<'b> SubAssign<&'b JubjubSubgroup> for JubjubExtended
§fn sub_assign(&mut self, rhs: &'b JubjubSubgroup)
fn sub_assign(&mut self, rhs: &'b JubjubSubgroup)
-= operation. Read more§impl SubAssign<ExtendedNielsPoint> for JubjubExtended
impl SubAssign<ExtendedNielsPoint> for JubjubExtended
§fn sub_assign(&mut self, rhs: ExtendedNielsPoint)
fn sub_assign(&mut self, rhs: ExtendedNielsPoint)
-= operation. Read more§impl SubAssign<JubjubAffine> for JubjubExtended
impl SubAssign<JubjubAffine> for JubjubExtended
§fn sub_assign(&mut self, rhs: JubjubAffine)
fn sub_assign(&mut self, rhs: JubjubAffine)
-= operation. Read more§impl SubAssign<JubjubAffineNiels> for JubjubExtended
impl SubAssign<JubjubAffineNiels> for JubjubExtended
§fn sub_assign(&mut self, rhs: JubjubAffineNiels)
fn sub_assign(&mut self, rhs: JubjubAffineNiels)
-= operation. Read more§impl SubAssign<JubjubSubgroup> for JubjubExtended
impl SubAssign<JubjubSubgroup> for JubjubExtended
§fn sub_assign(&mut self, rhs: JubjubSubgroup)
fn sub_assign(&mut self, rhs: JubjubSubgroup)
-= operation. Read more§impl SubAssign for JubjubExtended
impl SubAssign for JubjubExtended
§fn sub_assign(&mut self, rhs: JubjubExtended)
fn sub_assign(&mut self, rhs: JubjubExtended)
-= operation. Read more§impl<T> Sum<T> for JubjubExtendedwhere
T: Borrow<JubjubExtended>,
impl<T> Sum<T> for JubjubExtendedwhere
T: Borrow<JubjubExtended>,
§fn sum<I>(iter: I) -> JubjubExtendedwhere
I: Iterator<Item = T>,
fn sum<I>(iter: I) -> JubjubExtendedwhere
I: Iterator<Item = T>,
Self from the elements by “summing up”
the items.impl Copy for JubjubExtended
impl Eq for JubjubExtended
Auto Trait Implementations§
impl Freeze for JubjubExtended
impl RefUnwindSafe for JubjubExtended
impl Send for JubjubExtended
impl Sync for JubjubExtended
impl Unpin for JubjubExtended
impl UnwindSafe for JubjubExtended
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Conv for T
impl<T> Conv for T
§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,
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,
self to use its Display implementation when
Debug-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
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,
self to use its Pointer implementation when
Debug-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. 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,
§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,
self and passes that borrow into the pipe function. Read more§fn 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,
self and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
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) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.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
.tap_mut() only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.