Struct crypto_bigint::modular::ConstMontyForm
source · pub struct ConstMontyForm<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> { /* private fields */ }
Expand description
An integer in Montgomery form modulo MOD
, represented using LIMBS
limbs.
The modulus is constant, so it cannot be set at runtime.
Internally, the value is stored in Montgomery form (multiplied by MOD::ONE) until it is retrieved.
Implementations§
source§impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> ConstMontyForm<MOD, LIMBS>
impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> ConstMontyForm<MOD, LIMBS>
sourcepub const fn add(&self, rhs: &ConstMontyForm<MOD, LIMBS>) -> Self
pub const fn add(&self, rhs: &ConstMontyForm<MOD, LIMBS>) -> Self
Adds rhs
.
source§impl<MOD: ConstMontyParams<SAT_LIMBS>, const SAT_LIMBS: usize, const UNSAT_LIMBS: usize> ConstMontyForm<MOD, SAT_LIMBS>where
Odd<Uint<SAT_LIMBS>>: PrecomputeInverter<Inverter = BernsteinYangInverter<SAT_LIMBS, UNSAT_LIMBS>, Output = Uint<SAT_LIMBS>>,
impl<MOD: ConstMontyParams<SAT_LIMBS>, const SAT_LIMBS: usize, const UNSAT_LIMBS: usize> ConstMontyForm<MOD, SAT_LIMBS>where
Odd<Uint<SAT_LIMBS>>: PrecomputeInverter<Inverter = BernsteinYangInverter<SAT_LIMBS, UNSAT_LIMBS>, Output = Uint<SAT_LIMBS>>,
sourcepub const fn inv(&self) -> ConstCtOption<Self>
pub const fn inv(&self) -> ConstCtOption<Self>
Computes self^-1
representing the multiplicative inverse of self
.
I.e. self * self^-1 = 1
.
If the number was invertible, the second element of the tuple is the truthy value,
otherwise it is the falsy value (in which case the first element’s value is unspecified).
source§impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> ConstMontyForm<MOD, LIMBS>
impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> ConstMontyForm<MOD, LIMBS>
source§impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> ConstMontyForm<MOD, LIMBS>
impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> ConstMontyForm<MOD, LIMBS>
source§impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> ConstMontyForm<MOD, LIMBS>
impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> ConstMontyForm<MOD, LIMBS>
sourcepub const fn pow<const RHS_LIMBS: usize>(
&self,
exponent: &Uint<RHS_LIMBS>
) -> ConstMontyForm<MOD, LIMBS>
pub const fn pow<const RHS_LIMBS: usize>( &self, exponent: &Uint<RHS_LIMBS> ) -> ConstMontyForm<MOD, LIMBS>
Raises to the exponent
power.
sourcepub const fn pow_bounded_exp<const RHS_LIMBS: usize>(
&self,
exponent: &Uint<RHS_LIMBS>,
exponent_bits: u32
) -> ConstMontyForm<MOD, LIMBS>
pub const fn pow_bounded_exp<const RHS_LIMBS: usize>( &self, exponent: &Uint<RHS_LIMBS>, exponent_bits: u32 ) -> ConstMontyForm<MOD, LIMBS>
Raises to the exponent
power,
with exponent_bits
representing the number of (least significant) bits
to take into account for the exponent.
NOTE: exponent_bits
may be leaked in the time pattern.
source§impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> ConstMontyForm<MOD, LIMBS>
impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> ConstMontyForm<MOD, LIMBS>
source§impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> ConstMontyForm<MOD, LIMBS>
impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> ConstMontyForm<MOD, LIMBS>
sourcepub const fn new(integer: &Uint<LIMBS>) -> Self
pub const fn new(integer: &Uint<LIMBS>) -> Self
Instantiates a new ConstMontyForm
that represents this integer
mod MOD
.
sourcepub const fn retrieve(&self) -> Uint<LIMBS>
pub const fn retrieve(&self) -> Uint<LIMBS>
Retrieves the integer currently encoded in this ConstMontyForm
, guaranteed to be reduced.
sourcepub const fn as_montgomery(&self) -> &Uint<LIMBS>
pub const fn as_montgomery(&self) -> &Uint<LIMBS>
Access the ConstMontyForm
value in Montgomery form.
sourcepub fn as_montgomery_mut(&mut self) -> &mut Uint<LIMBS>
pub fn as_montgomery_mut(&mut self) -> &mut Uint<LIMBS>
Mutably access the ConstMontyForm
value in Montgomery form.
sourcepub const fn from_montgomery(integer: Uint<LIMBS>) -> Self
pub const fn from_montgomery(integer: Uint<LIMBS>) -> Self
Create a ConstMontyForm
from a value in Montgomery form.
sourcepub const fn to_montgomery(&self) -> Uint<LIMBS>
pub const fn to_montgomery(&self) -> Uint<LIMBS>
Extract the value from the ConstMontyForm
in Montgomery form.
Trait Implementations§
source§impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> Add<&ConstMontyForm<MOD, LIMBS>> for &ConstMontyForm<MOD, LIMBS>
impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> Add<&ConstMontyForm<MOD, LIMBS>> for &ConstMontyForm<MOD, LIMBS>
§type Output = ConstMontyForm<MOD, LIMBS>
type Output = ConstMontyForm<MOD, LIMBS>
+
operator.source§fn add(self, rhs: &ConstMontyForm<MOD, LIMBS>) -> ConstMontyForm<MOD, LIMBS>
fn add(self, rhs: &ConstMontyForm<MOD, LIMBS>) -> ConstMontyForm<MOD, LIMBS>
+
operation. Read moresource§impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> Add<&ConstMontyForm<MOD, LIMBS>> for ConstMontyForm<MOD, LIMBS>
impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> Add<&ConstMontyForm<MOD, LIMBS>> for ConstMontyForm<MOD, LIMBS>
§type Output = ConstMontyForm<MOD, LIMBS>
type Output = ConstMontyForm<MOD, LIMBS>
+
operator.source§fn add(self, rhs: &ConstMontyForm<MOD, LIMBS>) -> ConstMontyForm<MOD, LIMBS>
fn add(self, rhs: &ConstMontyForm<MOD, LIMBS>) -> ConstMontyForm<MOD, LIMBS>
+
operation. Read moresource§impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> Add<ConstMontyForm<MOD, LIMBS>> for &ConstMontyForm<MOD, LIMBS>
impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> Add<ConstMontyForm<MOD, LIMBS>> for &ConstMontyForm<MOD, LIMBS>
§type Output = ConstMontyForm<MOD, LIMBS>
type Output = ConstMontyForm<MOD, LIMBS>
+
operator.source§fn add(self, rhs: ConstMontyForm<MOD, LIMBS>) -> ConstMontyForm<MOD, LIMBS>
fn add(self, rhs: ConstMontyForm<MOD, LIMBS>) -> ConstMontyForm<MOD, LIMBS>
+
operation. Read moresource§impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> Add for ConstMontyForm<MOD, LIMBS>
impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> Add for ConstMontyForm<MOD, LIMBS>
§type Output = ConstMontyForm<MOD, LIMBS>
type Output = ConstMontyForm<MOD, LIMBS>
+
operator.source§fn add(self, rhs: ConstMontyForm<MOD, LIMBS>) -> ConstMontyForm<MOD, LIMBS>
fn add(self, rhs: ConstMontyForm<MOD, LIMBS>) -> ConstMontyForm<MOD, LIMBS>
+
operation. Read moresource§impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> AddAssign<&ConstMontyForm<MOD, LIMBS>> for ConstMontyForm<MOD, LIMBS>
impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> AddAssign<&ConstMontyForm<MOD, LIMBS>> for ConstMontyForm<MOD, LIMBS>
source§fn add_assign(&mut self, rhs: &Self)
fn add_assign(&mut self, rhs: &Self)
+=
operation. Read moresource§impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> AddAssign for ConstMontyForm<MOD, LIMBS>
impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> AddAssign for ConstMontyForm<MOD, LIMBS>
source§fn add_assign(&mut self, rhs: Self)
fn add_assign(&mut self, rhs: Self)
+=
operation. Read moresource§impl<MOD: Clone + ConstMontyParams<LIMBS>, const LIMBS: usize> Clone for ConstMontyForm<MOD, LIMBS>
impl<MOD: Clone + ConstMontyParams<LIMBS>, const LIMBS: usize> Clone for ConstMontyForm<MOD, LIMBS>
source§fn clone(&self) -> ConstMontyForm<MOD, LIMBS>
fn clone(&self) -> ConstMontyForm<MOD, LIMBS>
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl<MOD: ConstMontyParams<LIMBS> + Copy, const LIMBS: usize> ConditionallySelectable for ConstMontyForm<MOD, LIMBS>
impl<MOD: ConstMontyParams<LIMBS> + Copy, const LIMBS: usize> ConditionallySelectable for ConstMontyForm<MOD, LIMBS>
source§impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> ConstZero for ConstMontyForm<MOD, LIMBS>
impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> ConstZero for ConstMontyForm<MOD, LIMBS>
source§impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> ConstantTimeEq for ConstMontyForm<MOD, LIMBS>
impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> ConstantTimeEq for ConstMontyForm<MOD, LIMBS>
source§impl<MOD: Debug + ConstMontyParams<LIMBS>, const LIMBS: usize> Debug for ConstMontyForm<MOD, LIMBS>
impl<MOD: Debug + ConstMontyParams<LIMBS>, const LIMBS: usize> Debug for ConstMontyForm<MOD, LIMBS>
source§impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> Default for ConstMontyForm<MOD, LIMBS>
impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> Default for ConstMontyForm<MOD, LIMBS>
source§impl<'de, MOD, const LIMBS: usize> Deserialize<'de> for ConstMontyForm<MOD, LIMBS>
Available on crate feature serde
only.
impl<'de, MOD, const LIMBS: usize> Deserialize<'de> for ConstMontyForm<MOD, LIMBS>
serde
only.source§fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
source§impl<const LIMBS: usize, P: ConstMontyParams<LIMBS>> From<&ConstMontyForm<P, LIMBS>> for MontyForm<LIMBS>
impl<const LIMBS: usize, P: ConstMontyParams<LIMBS>> From<&ConstMontyForm<P, LIMBS>> for MontyForm<LIMBS>
source§fn from(const_monty_form: &ConstMontyForm<P, LIMBS>) -> Self
fn from(const_monty_form: &ConstMontyForm<P, LIMBS>) -> Self
source§impl<MOD: ConstMontyParams<SAT_LIMBS>, const SAT_LIMBS: usize, const UNSAT_LIMBS: usize> Invert for ConstMontyForm<MOD, SAT_LIMBS>where
Odd<Uint<SAT_LIMBS>>: PrecomputeInverter<Inverter = BernsteinYangInverter<SAT_LIMBS, UNSAT_LIMBS>, Output = Uint<SAT_LIMBS>>,
impl<MOD: ConstMontyParams<SAT_LIMBS>, const SAT_LIMBS: usize, const UNSAT_LIMBS: usize> Invert for ConstMontyForm<MOD, SAT_LIMBS>where
Odd<Uint<SAT_LIMBS>>: PrecomputeInverter<Inverter = BernsteinYangInverter<SAT_LIMBS, UNSAT_LIMBS>, Output = Uint<SAT_LIMBS>>,
source§impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> Mul<&ConstMontyForm<MOD, LIMBS>> for &ConstMontyForm<MOD, LIMBS>
impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> Mul<&ConstMontyForm<MOD, LIMBS>> for &ConstMontyForm<MOD, LIMBS>
§type Output = ConstMontyForm<MOD, LIMBS>
type Output = ConstMontyForm<MOD, LIMBS>
*
operator.source§fn mul(self, rhs: &ConstMontyForm<MOD, LIMBS>) -> ConstMontyForm<MOD, LIMBS>
fn mul(self, rhs: &ConstMontyForm<MOD, LIMBS>) -> ConstMontyForm<MOD, LIMBS>
*
operation. Read moresource§impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> Mul<&ConstMontyForm<MOD, LIMBS>> for ConstMontyForm<MOD, LIMBS>
impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> Mul<&ConstMontyForm<MOD, LIMBS>> for ConstMontyForm<MOD, LIMBS>
§type Output = ConstMontyForm<MOD, LIMBS>
type Output = ConstMontyForm<MOD, LIMBS>
*
operator.source§fn mul(self, rhs: &ConstMontyForm<MOD, LIMBS>) -> ConstMontyForm<MOD, LIMBS>
fn mul(self, rhs: &ConstMontyForm<MOD, LIMBS>) -> ConstMontyForm<MOD, LIMBS>
*
operation. Read moresource§impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> Mul<ConstMontyForm<MOD, LIMBS>> for &ConstMontyForm<MOD, LIMBS>
impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> Mul<ConstMontyForm<MOD, LIMBS>> for &ConstMontyForm<MOD, LIMBS>
§type Output = ConstMontyForm<MOD, LIMBS>
type Output = ConstMontyForm<MOD, LIMBS>
*
operator.source§fn mul(self, rhs: ConstMontyForm<MOD, LIMBS>) -> ConstMontyForm<MOD, LIMBS>
fn mul(self, rhs: ConstMontyForm<MOD, LIMBS>) -> ConstMontyForm<MOD, LIMBS>
*
operation. Read moresource§impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> Mul for ConstMontyForm<MOD, LIMBS>
impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> Mul for ConstMontyForm<MOD, LIMBS>
§type Output = ConstMontyForm<MOD, LIMBS>
type Output = ConstMontyForm<MOD, LIMBS>
*
operator.source§fn mul(self, rhs: ConstMontyForm<MOD, LIMBS>) -> ConstMontyForm<MOD, LIMBS>
fn mul(self, rhs: ConstMontyForm<MOD, LIMBS>) -> ConstMontyForm<MOD, LIMBS>
*
operation. Read moresource§impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> MulAssign<&ConstMontyForm<MOD, LIMBS>> for ConstMontyForm<MOD, LIMBS>
impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> MulAssign<&ConstMontyForm<MOD, LIMBS>> for ConstMontyForm<MOD, LIMBS>
source§fn mul_assign(&mut self, rhs: &ConstMontyForm<MOD, LIMBS>)
fn mul_assign(&mut self, rhs: &ConstMontyForm<MOD, LIMBS>)
*=
operation. Read moresource§impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> MulAssign for ConstMontyForm<MOD, LIMBS>
impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> MulAssign for ConstMontyForm<MOD, LIMBS>
source§fn mul_assign(&mut self, rhs: Self)
fn mul_assign(&mut self, rhs: Self)
*=
operation. Read moresource§impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize, const RHS_LIMBS: usize> MultiExponentiateBoundedExp<Uint<RHS_LIMBS>, [(ConstMontyForm<MOD, LIMBS>, Uint<RHS_LIMBS>)]> for ConstMontyForm<MOD, LIMBS>
Available on crate feature alloc
only.
impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize, const RHS_LIMBS: usize> MultiExponentiateBoundedExp<Uint<RHS_LIMBS>, [(ConstMontyForm<MOD, LIMBS>, Uint<RHS_LIMBS>)]> for ConstMontyForm<MOD, LIMBS>
alloc
only.source§fn multi_exponentiate_bounded_exp(
bases_and_exponents: &[(Self, Uint<RHS_LIMBS>)],
exponent_bits: u32
) -> Self
fn multi_exponentiate_bounded_exp( bases_and_exponents: &[(Self, Uint<RHS_LIMBS>)], exponent_bits: u32 ) -> Self
x1 ^ k1 * ... * xn ^ kn
.source§impl<const N: usize, MOD: ConstMontyParams<LIMBS>, const LIMBS: usize, const RHS_LIMBS: usize> MultiExponentiateBoundedExp<Uint<RHS_LIMBS>, [(ConstMontyForm<MOD, LIMBS>, Uint<RHS_LIMBS>); N]> for ConstMontyForm<MOD, LIMBS>
impl<const N: usize, MOD: ConstMontyParams<LIMBS>, const LIMBS: usize, const RHS_LIMBS: usize> MultiExponentiateBoundedExp<Uint<RHS_LIMBS>, [(ConstMontyForm<MOD, LIMBS>, Uint<RHS_LIMBS>); N]> for ConstMontyForm<MOD, LIMBS>
source§impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> Neg for &ConstMontyForm<MOD, LIMBS>
impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> Neg for &ConstMontyForm<MOD, LIMBS>
§type Output = ConstMontyForm<MOD, LIMBS>
type Output = ConstMontyForm<MOD, LIMBS>
-
operator.source§fn neg(self) -> ConstMontyForm<MOD, LIMBS>
fn neg(self) -> ConstMontyForm<MOD, LIMBS>
-
operation. Read moresource§impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> Neg for ConstMontyForm<MOD, LIMBS>
impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> Neg for ConstMontyForm<MOD, LIMBS>
source§impl<MOD: PartialEq + ConstMontyParams<LIMBS>, const LIMBS: usize> PartialEq for ConstMontyForm<MOD, LIMBS>
impl<MOD: PartialEq + ConstMontyParams<LIMBS>, const LIMBS: usize> PartialEq for ConstMontyForm<MOD, LIMBS>
source§fn eq(&self, other: &ConstMontyForm<MOD, LIMBS>) -> bool
fn eq(&self, other: &ConstMontyForm<MOD, LIMBS>) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize, const RHS_LIMBS: usize> PowBoundedExp<Uint<RHS_LIMBS>> for ConstMontyForm<MOD, LIMBS>
impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize, const RHS_LIMBS: usize> PowBoundedExp<Uint<RHS_LIMBS>> for ConstMontyForm<MOD, LIMBS>
source§impl<MOD, const LIMBS: usize> Random for ConstMontyForm<MOD, LIMBS>where
MOD: ConstMontyParams<LIMBS>,
Available on crate feature rand_core
only.
impl<MOD, const LIMBS: usize> Random for ConstMontyForm<MOD, LIMBS>where
MOD: ConstMontyParams<LIMBS>,
rand_core
only.source§fn random(rng: &mut impl CryptoRngCore) -> Self
fn random(rng: &mut impl CryptoRngCore) -> Self
source§impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> Retrieve for ConstMontyForm<MOD, LIMBS>
impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> Retrieve for ConstMontyForm<MOD, LIMBS>
source§impl<MOD, const LIMBS: usize> Serialize for ConstMontyForm<MOD, LIMBS>
Available on crate feature serde
only.
impl<MOD, const LIMBS: usize> Serialize for ConstMontyForm<MOD, LIMBS>
serde
only.source§impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> Square for ConstMontyForm<MOD, LIMBS>
impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> Square for ConstMontyForm<MOD, LIMBS>
source§impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> Sub<&ConstMontyForm<MOD, LIMBS>> for &ConstMontyForm<MOD, LIMBS>
impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> Sub<&ConstMontyForm<MOD, LIMBS>> for &ConstMontyForm<MOD, LIMBS>
§type Output = ConstMontyForm<MOD, LIMBS>
type Output = ConstMontyForm<MOD, LIMBS>
-
operator.source§fn sub(self, rhs: &ConstMontyForm<MOD, LIMBS>) -> ConstMontyForm<MOD, LIMBS>
fn sub(self, rhs: &ConstMontyForm<MOD, LIMBS>) -> ConstMontyForm<MOD, LIMBS>
-
operation. Read moresource§impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> Sub<&ConstMontyForm<MOD, LIMBS>> for ConstMontyForm<MOD, LIMBS>
impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> Sub<&ConstMontyForm<MOD, LIMBS>> for ConstMontyForm<MOD, LIMBS>
§type Output = ConstMontyForm<MOD, LIMBS>
type Output = ConstMontyForm<MOD, LIMBS>
-
operator.source§fn sub(self, rhs: &ConstMontyForm<MOD, LIMBS>) -> ConstMontyForm<MOD, LIMBS>
fn sub(self, rhs: &ConstMontyForm<MOD, LIMBS>) -> ConstMontyForm<MOD, LIMBS>
-
operation. Read moresource§impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> Sub<ConstMontyForm<MOD, LIMBS>> for &ConstMontyForm<MOD, LIMBS>
impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> Sub<ConstMontyForm<MOD, LIMBS>> for &ConstMontyForm<MOD, LIMBS>
§type Output = ConstMontyForm<MOD, LIMBS>
type Output = ConstMontyForm<MOD, LIMBS>
-
operator.source§fn sub(self, rhs: ConstMontyForm<MOD, LIMBS>) -> ConstMontyForm<MOD, LIMBS>
fn sub(self, rhs: ConstMontyForm<MOD, LIMBS>) -> ConstMontyForm<MOD, LIMBS>
-
operation. Read moresource§impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> Sub for ConstMontyForm<MOD, LIMBS>
impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> Sub for ConstMontyForm<MOD, LIMBS>
§type Output = ConstMontyForm<MOD, LIMBS>
type Output = ConstMontyForm<MOD, LIMBS>
-
operator.source§fn sub(self, rhs: ConstMontyForm<MOD, LIMBS>) -> ConstMontyForm<MOD, LIMBS>
fn sub(self, rhs: ConstMontyForm<MOD, LIMBS>) -> ConstMontyForm<MOD, LIMBS>
-
operation. Read moresource§impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> SubAssign<&ConstMontyForm<MOD, LIMBS>> for ConstMontyForm<MOD, LIMBS>
impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> SubAssign<&ConstMontyForm<MOD, LIMBS>> for ConstMontyForm<MOD, LIMBS>
source§fn sub_assign(&mut self, rhs: &Self)
fn sub_assign(&mut self, rhs: &Self)
-=
operation. Read moresource§impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> SubAssign for ConstMontyForm<MOD, LIMBS>
impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> SubAssign for ConstMontyForm<MOD, LIMBS>
source§fn sub_assign(&mut self, rhs: Self)
fn sub_assign(&mut self, rhs: Self)
-=
operation. Read moreimpl<MOD: Copy + ConstMontyParams<LIMBS>, const LIMBS: usize> Copy for ConstMontyForm<MOD, LIMBS>
impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> DefaultIsZeroes for ConstMontyForm<MOD, LIMBS>
zeroize
only.impl<MOD: Eq + ConstMontyParams<LIMBS>, const LIMBS: usize> Eq for ConstMontyForm<MOD, LIMBS>
impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> StructuralEq for ConstMontyForm<MOD, LIMBS>
impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> StructuralPartialEq for ConstMontyForm<MOD, LIMBS>
Auto Trait Implementations§
impl<MOD, const LIMBS: usize> RefUnwindSafe for ConstMontyForm<MOD, LIMBS>where
MOD: RefUnwindSafe,
impl<MOD, const LIMBS: usize> Send for ConstMontyForm<MOD, LIMBS>
impl<MOD, const LIMBS: usize> Sync for ConstMontyForm<MOD, LIMBS>
impl<MOD, const LIMBS: usize> Unpin for ConstMontyForm<MOD, LIMBS>where
MOD: Unpin,
impl<MOD, const LIMBS: usize> UnwindSafe for ConstMontyForm<MOD, LIMBS>where
MOD: UnwindSafe,
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> ConditionallyNegatable for T
impl<T> ConditionallyNegatable for T
source§fn conditional_negate(&mut self, choice: Choice)
fn conditional_negate(&mut self, choice: Choice)
source§impl<T> ConstantTimeSelect for Twhere
T: ConditionallySelectable,
impl<T> ConstantTimeSelect for Twhere
T: ConditionallySelectable,
source§impl<T, Exponent, BasesAndExponents> MultiExponentiate<Exponent, BasesAndExponents> for Twhere
T: MultiExponentiateBoundedExp<Exponent, BasesAndExponents>,
Exponent: Bounded,
BasesAndExponents: AsRef<[(T, Exponent)]> + ?Sized,
impl<T, Exponent, BasesAndExponents> MultiExponentiate<Exponent, BasesAndExponents> for Twhere
T: MultiExponentiateBoundedExp<Exponent, BasesAndExponents>,
Exponent: Bounded,
BasesAndExponents: AsRef<[(T, Exponent)]> + ?Sized,
source§fn multi_exponentiate(bases_and_exponents: &BasesAndExponents) -> T
fn multi_exponentiate(bases_and_exponents: &BasesAndExponents) -> T
x1 ^ k1 * ... * xn ^ kn
.