[−][src]Enum modtype::cartridges::AllowFlexibleRhs
Allows flexible RHSes.
use modtype::cartridges::{AllowFlexibleRhs, Field}; use num::{BigInt, BigRational}; #[modtype::use_modtype] type F = modtype::ModType<AllowFlexibleRhs<Field<u64>>, 1_000_000_007u64>; let mut x = F(1); x += F(1); x += 1u64; x += 1i32; x += 1f64; x += BigInt::from(1u32); x += BigRational::new(BigInt::from(1u32), BigInt::from(1u32)); assert_eq!(x, F(7));
Variants
Infallible(Infallible, PhantomData<fn() -> C>)
Trait Implementations
impl<C: Cartridge> Cartridge for AllowFlexibleRhs<C>
[src]
type Target = C::Target
type AssumePrimeModulus = C::AssumePrimeModulus
type AssumeAlwaysAdjusted = C::AssumeAlwaysAdjusted
type Equality = C::Equality
type Order = C::Order
type Deref = C::Deref
type PartialAddition = C::PartialAddition
type PartialSubtraction = C::PartialSubtraction
type PartialMultiplication = C::PartialMultiplication
type PartialDivision = C::PartialDivision
type FlexibleRhs = True
fn new<T: PrimInt>(raw: T, modulus: T) -> T
[src]
fn should_adjust<T: PrimInt>(raw: T, modulus: T) -> bool
[src]
fn adjust<T: PrimInt>(raw: &mut T, modulus: T)
[src]
fn adjusted<T: PrimInt>(raw: T, modulus: T) -> T
[src]
fn sqrt(value: C::Target, modulus: C::Target) -> Option<C::Target> where
C::PartialMultiplication: IsTrue,
[src]
C::PartialMultiplication: IsTrue,
fn from_u8(value: u8, modulus: C::Target) -> C::Target
[src]
fn from_u16(value: u16, modulus: C::Target) -> C::Target
[src]
fn from_u32(value: u32, modulus: C::Target) -> C::Target
[src]
fn from_u64(value: u64, modulus: C::Target) -> C::Target
[src]
fn from_u128(value: u128, modulus: C::Target) -> C::Target
[src]
fn from_usize(value: usize, modulus: C::Target) -> C::Target
[src]
fn from_i8(value: i8, modulus: C::Target) -> C::Target where
C::PartialSubtraction: IsTrue,
[src]
C::PartialSubtraction: IsTrue,
fn from_i16(value: i16, modulus: C::Target) -> C::Target where
C::PartialSubtraction: IsTrue,
[src]
C::PartialSubtraction: IsTrue,
fn from_i32(value: i32, modulus: C::Target) -> C::Target where
C::PartialSubtraction: IsTrue,
[src]
C::PartialSubtraction: IsTrue,
fn from_i64(value: i64, modulus: C::Target) -> C::Target where
C::PartialSubtraction: IsTrue,
[src]
C::PartialSubtraction: IsTrue,
fn from_i128(value: i128, modulus: C::Target) -> C::Target where
C::PartialSubtraction: IsTrue,
[src]
C::PartialSubtraction: IsTrue,
fn from_isize(value: isize, modulus: C::Target) -> C::Target where
C::PartialSubtraction: IsTrue,
[src]
C::PartialSubtraction: IsTrue,
fn from_float_prim<F: FloatPrimitive>(value: F, modulus: C::Target) -> C::Target where
C::AssumePrimeModulus: IsTrue,
C::PartialSubtraction: IsTrue,
C::PartialMultiplication: IsTrue,
C::PartialDivision: IsTrue,
[src]
C::AssumePrimeModulus: IsTrue,
C::PartialSubtraction: IsTrue,
C::PartialMultiplication: IsTrue,
C::PartialDivision: IsTrue,
fn from_biguint(value: BigUint, modulus: C::Target) -> C::Target
[src]
fn from_bigint(value: BigInt, modulus: C::Target) -> C::Target where
C::PartialSubtraction: IsTrue,
[src]
C::PartialSubtraction: IsTrue,
fn from_biguint_ratio(value: Ratio<BigUint>, modulus: C::Target) -> C::Target where
C::AssumePrimeModulus: IsTrue,
C::PartialDivision: IsTrue,
[src]
C::AssumePrimeModulus: IsTrue,
C::PartialDivision: IsTrue,
fn from_bigint_ratio(value: Ratio<BigInt>, modulus: C::Target) -> C::Target where
C::AssumePrimeModulus: IsTrue,
C::PartialSubtraction: IsTrue,
C::PartialDivision: IsTrue,
[src]
C::AssumePrimeModulus: IsTrue,
C::PartialSubtraction: IsTrue,
C::PartialDivision: IsTrue,
fn eq(lhs: C::Target, rhs: C::Target, modulus: C::Target) -> bool where
C::Equality: IsTrue,
[src]
C::Equality: IsTrue,
fn cmp(lhs: C::Target, rhs: C::Target, modulus: C::Target) -> Ordering where
C::Equality: IsTrue,
C::Order: IsTrue,
[src]
C::Equality: IsTrue,
C::Order: IsTrue,
fn fmt_display(
value: C::Target,
modulus: C::Target,
fmt: &mut Formatter
) -> Result
[src]
value: C::Target,
modulus: C::Target,
fmt: &mut Formatter
) -> Result
fn fmt_debug(
value: C::Target,
modulus: C::Target,
ty: &'static str,
fmt: &mut Formatter
) -> Result
[src]
value: C::Target,
modulus: C::Target,
ty: &'static str,
fmt: &mut Formatter
) -> Result
fn from_str(str: &str, modulus: C::Target) -> Result<C::Target, ParseIntError>
[src]
fn neg(value: C::Target, modulus: C::Target) -> C::Target where
C::PartialSubtraction: IsTrue,
[src]
C::PartialSubtraction: IsTrue,
fn add(lhs: C::Target, rhs: C::Target, modulus: C::Target) -> C::Target where
C::PartialAddition: IsTrue,
[src]
C::PartialAddition: IsTrue,
fn sub(lhs: C::Target, rhs: C::Target, modulus: C::Target) -> C::Target where
C::PartialSubtraction: IsTrue,
[src]
C::PartialSubtraction: IsTrue,
fn mul(lhs: C::Target, rhs: C::Target, modulus: C::Target) -> C::Target where
C::PartialMultiplication: IsTrue,
[src]
C::PartialMultiplication: IsTrue,
fn div(lhs: C::Target, rhs: C::Target, modulus: C::Target) -> C::Target where
C::PartialDivision: IsTrue,
[src]
C::PartialDivision: IsTrue,
fn rem(lhs: C::Target, rhs: C::Target, modulus: C::Target) -> C::Target where
C::PartialDivision: IsTrue,
[src]
C::PartialDivision: IsTrue,
fn inv(value: C::Target, modulus: C::Target) -> C::Target where
C::PartialDivision: IsTrue,
[src]
C::PartialDivision: IsTrue,
fn from_str_radix(
str: &str,
radix: u32,
modulus: C::Target
) -> Result<C::Target, ParseIntError> where
C::AssumePrimeModulus: IsTrue,
C::Equality: IsTrue,
C::Order: IsTrue,
C::PartialAddition: IsTrue,
C::PartialSubtraction: IsTrue,
C::PartialMultiplication: IsTrue,
C::PartialDivision: IsTrue,
[src]
str: &str,
radix: u32,
modulus: C::Target
) -> Result<C::Target, ParseIntError> where
C::AssumePrimeModulus: IsTrue,
C::Equality: IsTrue,
C::Order: IsTrue,
C::PartialAddition: IsTrue,
C::PartialSubtraction: IsTrue,
C::PartialMultiplication: IsTrue,
C::PartialDivision: IsTrue,
fn zero(modulus: C::Target) -> C::Target where
C::PartialAddition: IsTrue,
[src]
C::PartialAddition: IsTrue,
fn is_zero(value: C::Target, modulus: C::Target) -> bool where
C::PartialAddition: IsTrue,
[src]
C::PartialAddition: IsTrue,
fn one(modulus: C::Target) -> C::Target where
C::PartialMultiplication: IsTrue,
[src]
C::PartialMultiplication: IsTrue,
fn is_one(value: C::Target, modulus: C::Target) -> bool where
C::Equality: IsTrue,
C::PartialMultiplication: IsTrue,
[src]
C::Equality: IsTrue,
C::PartialMultiplication: IsTrue,
fn checked_neg(value: C::Target, modulus: C::Target) -> Option<C::Target> where
C::PartialSubtraction: IsTrue,
[src]
C::PartialSubtraction: IsTrue,
fn checked_add(
lhs: C::Target,
rhs: C::Target,
modulus: C::Target
) -> Option<C::Target> where
C::PartialAddition: IsTrue,
[src]
lhs: C::Target,
rhs: C::Target,
modulus: C::Target
) -> Option<C::Target> where
C::PartialAddition: IsTrue,
fn checked_sub(
lhs: C::Target,
rhs: C::Target,
modulus: C::Target
) -> Option<C::Target> where
C::PartialSubtraction: IsTrue,
[src]
lhs: C::Target,
rhs: C::Target,
modulus: C::Target
) -> Option<C::Target> where
C::PartialSubtraction: IsTrue,
fn checked_mul(
lhs: C::Target,
rhs: C::Target,
modulus: C::Target
) -> Option<C::Target> where
C::PartialMultiplication: IsTrue,
[src]
lhs: C::Target,
rhs: C::Target,
modulus: C::Target
) -> Option<C::Target> where
C::PartialMultiplication: IsTrue,
fn checked_div(
lhs: C::Target,
rhs: C::Target,
modulus: C::Target
) -> Option<C::Target> where
C::PartialDivision: IsTrue,
[src]
lhs: C::Target,
rhs: C::Target,
modulus: C::Target
) -> Option<C::Target> where
C::PartialDivision: IsTrue,
fn checked_rem(
lhs: C::Target,
rhs: C::Target,
modulus: C::Target
) -> Option<C::Target> where
C::PartialDivision: IsTrue,
[src]
lhs: C::Target,
rhs: C::Target,
modulus: C::Target
) -> Option<C::Target> where
C::PartialDivision: IsTrue,
fn pow_unsigned<E: UnsignedPrimitive>(
base: C::Target,
exp: E,
modulus: C::Target
) -> C::Target where
C::PartialMultiplication: IsTrue,
[src]
base: C::Target,
exp: E,
modulus: C::Target
) -> C::Target where
C::PartialMultiplication: IsTrue,
fn pow_signed<E: SignedPrimitive>(
base: C::Target,
exp: E,
modulus: C::Target
) -> C::Target where
C::AssumePrimeModulus: IsTrue,
C::PartialMultiplication: IsTrue,
C::PartialDivision: IsTrue,
[src]
base: C::Target,
exp: E,
modulus: C::Target
) -> C::Target where
C::AssumePrimeModulus: IsTrue,
C::PartialMultiplication: IsTrue,
C::PartialDivision: IsTrue,
Auto Trait Implementations
impl<C> Unpin for AllowFlexibleRhs<C>
impl<C> Sync for AllowFlexibleRhs<C>
impl<C> Send for AllowFlexibleRhs<C>
impl<C> RefUnwindSafe for AllowFlexibleRhs<C>
impl<C> UnwindSafe for AllowFlexibleRhs<C>
Blanket Implementations
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,