Trait Mul

1.0.0 · Source
pub trait Mul<Rhs = Self> {
    type Output;

    // Required method
    fn mul(self, rhs: Rhs) -> Self::Output;
}
Expand description

The multiplication operator *.

Note that Rhs is Self by default, but this is not mandatory.

§Examples

§Multipliable rational numbers

use std::ops::Mul;

// By the fundamental theorem of arithmetic, rational numbers in lowest
// terms are unique. So, by keeping `Rational`s in reduced form, we can
// derive `Eq` and `PartialEq`.
#[derive(Debug, Eq, PartialEq)]
struct Rational {
    numerator: usize,
    denominator: usize,
}

impl Rational {
    fn new(numerator: usize, denominator: usize) -> Self {
        if denominator == 0 {
            panic!("Zero is an invalid denominator!");
        }

        // Reduce to lowest terms by dividing by the greatest common
        // divisor.
        let gcd = gcd(numerator, denominator);
        Self {
            numerator: numerator / gcd,
            denominator: denominator / gcd,
        }
    }
}

impl Mul for Rational {
    // The multiplication of rational numbers is a closed operation.
    type Output = Self;

    fn mul(self, rhs: Self) -> Self {
        let numerator = self.numerator * rhs.numerator;
        let denominator = self.denominator * rhs.denominator;
        Self::new(numerator, denominator)
    }
}

// Euclid's two-thousand-year-old algorithm for finding the greatest common
// divisor.
fn gcd(x: usize, y: usize) -> usize {
    let mut x = x;
    let mut y = y;
    while y != 0 {
        let t = y;
        y = x % y;
        x = t;
    }
    x
}

assert_eq!(Rational::new(1, 2), Rational::new(2, 4));
assert_eq!(Rational::new(2, 3) * Rational::new(3, 4),
           Rational::new(1, 2));

§Multiplying vectors by scalars as in linear algebra

use std::ops::Mul;

struct Scalar { value: usize }

#[derive(Debug, PartialEq)]
struct Vector { value: Vec<usize> }

impl Mul<Scalar> for Vector {
    type Output = Self;

    fn mul(self, rhs: Scalar) -> Self::Output {
        Self { value: self.value.iter().map(|v| v * rhs.value).collect() }
    }
}

let vector = Vector { value: vec![2, 4, 6] };
let scalar = Scalar { value: 3 };
assert_eq!(vector * scalar, Vector { value: vec![6, 12, 18] });

Required Associated Types§

1.0.0 · Source

type Output

The resulting type after applying the * operator.

Required Methods§

1.0.0 · Source

fn mul(self, rhs: Rhs) -> Self::Output

Performs the * operation.

§Example
assert_eq!(12 * 2, 24);

Implementors§

Source§

impl Mul for Sign

1.0.0 · Source§

impl Mul for f16

1.0.0 · Source§

impl Mul for f32

1.0.0 · Source§

impl Mul for f64

1.0.0 · Source§

impl Mul for f128

1.0.0 · Source§

impl Mul for i8

1.0.0 · Source§

impl Mul for i16

1.0.0 · Source§

impl Mul for i32

1.0.0 · Source§

impl Mul for i64

1.0.0 · Source§

impl Mul for i128

1.0.0 · Source§

impl Mul for isize

1.0.0 · Source§

impl Mul for u8

1.0.0 · Source§

impl Mul for u16

1.0.0 · Source§

impl Mul for u32

1.0.0 · Source§

impl Mul for u64

1.0.0 · Source§

impl Mul for u128

1.0.0 · Source§

impl Mul for usize

Source§

impl Mul for Decimal

Source§

impl Mul for I192

Source§

impl Mul for I256

Source§

impl Mul for I320

Source§

impl Mul for I384

Source§

impl Mul for I448

Source§

impl Mul for I512

Source§

impl Mul for I768

Source§

impl Mul for PreciseDecimal

Source§

impl Mul for U192

Source§

impl Mul for U256

Source§

impl Mul for U320

Source§

impl Mul for U384

Source§

impl Mul for U448

Source§

impl Mul for U512

Source§

impl Mul for U768

1.74.0 · Source§

impl Mul for Saturating<i8>

1.74.0 · Source§

impl Mul for Saturating<i16>

1.74.0 · Source§

impl Mul for Saturating<i32>

1.74.0 · Source§

impl Mul for Saturating<i64>

1.74.0 · Source§

impl Mul for Saturating<i128>

1.74.0 · Source§

impl Mul for Saturating<isize>

1.74.0 · Source§

impl Mul for Saturating<u8>

1.74.0 · Source§

impl Mul for Saturating<u16>

1.74.0 · Source§

impl Mul for Saturating<u32>

1.74.0 · Source§

impl Mul for Saturating<u64>

1.74.0 · Source§

impl Mul for Saturating<u128>

1.74.0 · Source§

impl Mul for Saturating<usize>

1.0.0 · Source§

impl Mul for Wrapping<i8>

1.0.0 · Source§

impl Mul for Wrapping<i16>

1.0.0 · Source§

impl Mul for Wrapping<i32>

1.0.0 · Source§

impl Mul for Wrapping<i64>

1.0.0 · Source§

impl Mul for Wrapping<i128>

1.0.0 · Source§

impl Mul for Wrapping<isize>

1.0.0 · Source§

impl Mul for Wrapping<u8>

1.0.0 · Source§

impl Mul for Wrapping<u16>

1.0.0 · Source§

impl Mul for Wrapping<u32>

1.0.0 · Source§

impl Mul for Wrapping<u64>

1.0.0 · Source§

impl Mul for Wrapping<u128>

1.0.0 · Source§

impl Mul for Wrapping<usize>

Source§

impl Mul for blst_fp12

Source§

impl Mul for Scalar

Source§

impl Mul for BigInt

Source§

impl Mul for BigUint

1.0.0 · Source§

impl Mul<&f16> for &f16

1.0.0 · Source§

impl Mul<&f16> for f16

1.0.0 · Source§

impl Mul<&f32> for &f32

1.0.0 · Source§

impl Mul<&f32> for f32

1.0.0 · Source§

impl Mul<&f64> for &f64

1.0.0 · Source§

impl Mul<&f64> for f64

1.0.0 · Source§

impl Mul<&f128> for &f128

1.0.0 · Source§

impl Mul<&f128> for f128

1.0.0 · Source§

impl Mul<&i8> for &i8

Source§

impl Mul<&i8> for &BigInt

1.0.0 · Source§

impl Mul<&i8> for i8

Source§

impl Mul<&i8> for BigInt

1.0.0 · Source§

impl Mul<&i16> for &i16

Source§

impl Mul<&i16> for &BigInt

1.0.0 · Source§

impl Mul<&i16> for i16

Source§

impl Mul<&i16> for BigInt

1.0.0 · Source§

impl Mul<&i32> for &i32

Source§

impl Mul<&i32> for &BigInt

1.0.0 · Source§

impl Mul<&i32> for i32

Source§

impl Mul<&i32> for BigInt

1.0.0 · Source§

impl Mul<&i64> for &i64

Source§

impl Mul<&i64> for &BigInt

1.0.0 · Source§

impl Mul<&i64> for i64

Source§

impl Mul<&i64> for BigInt

1.0.0 · Source§

impl Mul<&i128> for &i128

Source§

impl Mul<&i128> for &BigInt

1.0.0 · Source§

impl Mul<&i128> for i128

Source§

impl Mul<&i128> for BigInt

1.0.0 · Source§

impl Mul<&isize> for &isize

Source§

impl Mul<&isize> for &BigInt

1.0.0 · Source§

impl Mul<&isize> for isize

Source§

impl Mul<&isize> for BigInt

1.0.0 · Source§

impl Mul<&u8> for &u8

Source§

impl Mul<&u8> for &BigInt

Source§

impl Mul<&u8> for &BigUint

1.0.0 · Source§

impl Mul<&u8> for u8

Source§

impl Mul<&u8> for BigInt

Source§

impl Mul<&u8> for BigUint

1.0.0 · Source§

impl Mul<&u16> for &u16

Source§

impl Mul<&u16> for &BigInt

Source§

impl Mul<&u16> for &BigUint

1.0.0 · Source§

impl Mul<&u16> for u16

Source§

impl Mul<&u16> for BigInt

Source§

impl Mul<&u16> for BigUint

1.0.0 · Source§

impl Mul<&u32> for &u32

Source§

impl Mul<&u32> for &BigInt

Source§

impl Mul<&u32> for &BigUint

1.0.0 · Source§

impl Mul<&u32> for u32

Source§

impl Mul<&u32> for BigInt

Source§

impl Mul<&u32> for BigUint

1.0.0 · Source§

impl Mul<&u64> for &u64

Source§

impl Mul<&u64> for &BigInt

Source§

impl Mul<&u64> for &BigUint

1.0.0 · Source§

impl Mul<&u64> for u64

Source§

impl Mul<&u64> for BigInt

Source§

impl Mul<&u64> for BigUint

1.0.0 · Source§

impl Mul<&u128> for &u128

Source§

impl Mul<&u128> for &BigInt

Source§

impl Mul<&u128> for &BigUint

1.0.0 · Source§

impl Mul<&u128> for u128

Source§

impl Mul<&u128> for BigInt

Source§

impl Mul<&u128> for BigUint

1.0.0 · Source§

impl Mul<&usize> for &usize

Source§

impl Mul<&usize> for &BigInt

Source§

impl Mul<&usize> for &BigUint

1.0.0 · Source§

impl Mul<&usize> for usize

Source§

impl Mul<&usize> for BigInt

Source§

impl Mul<&usize> for BigUint

Source§

impl Mul<&I192> for &I192

Source§

impl Mul<&I192> for I192

Source§

impl Mul<&I256> for &I256

Source§

impl Mul<&I256> for I256

Source§

impl Mul<&I320> for &I320

Source§

impl Mul<&I320> for I320

Source§

impl Mul<&I384> for &I384

Source§

impl Mul<&I384> for I384

Source§

impl Mul<&I448> for &I448

Source§

impl Mul<&I448> for I448

Source§

impl Mul<&I512> for &I512

Source§

impl Mul<&I512> for I512

Source§

impl Mul<&I768> for &I768

Source§

impl Mul<&I768> for I768

Source§

impl Mul<&U192> for &U192

Source§

impl Mul<&U192> for U192

Source§

impl Mul<&U256> for &U256

Source§

impl Mul<&U256> for U256

Source§

impl Mul<&U320> for &U320

Source§

impl Mul<&U320> for U320

Source§

impl Mul<&U384> for &U384

Source§

impl Mul<&U384> for U384

Source§

impl Mul<&U448> for &U448

Source§

impl Mul<&U448> for U448

Source§

impl Mul<&U512> for &U512

Source§

impl Mul<&U512> for U512

Source§

impl Mul<&U768> for &U768

Source§

impl Mul<&U768> for U768

1.74.0 · Source§

impl Mul<&Saturating<i8>> for &Saturating<i8>

1.74.0 · Source§

impl Mul<&Saturating<i8>> for Saturating<i8>

1.74.0 · Source§

impl Mul<&Saturating<i16>> for &Saturating<i16>

1.74.0 · Source§

impl Mul<&Saturating<i16>> for Saturating<i16>

1.74.0 · Source§

impl Mul<&Saturating<i32>> for &Saturating<i32>

1.74.0 · Source§

impl Mul<&Saturating<i32>> for Saturating<i32>

1.74.0 · Source§

impl Mul<&Saturating<i64>> for &Saturating<i64>

1.74.0 · Source§

impl Mul<&Saturating<i64>> for Saturating<i64>

1.74.0 · Source§

impl Mul<&Saturating<i128>> for &Saturating<i128>

1.74.0 · Source§

impl Mul<&Saturating<i128>> for Saturating<i128>

1.74.0 · Source§

impl Mul<&Saturating<isize>> for &Saturating<isize>

1.74.0 · Source§

impl Mul<&Saturating<isize>> for Saturating<isize>

1.74.0 · Source§

impl Mul<&Saturating<u8>> for &Saturating<u8>

1.74.0 · Source§

impl Mul<&Saturating<u8>> for Saturating<u8>

1.74.0 · Source§

impl Mul<&Saturating<u16>> for &Saturating<u16>

1.74.0 · Source§

impl Mul<&Saturating<u16>> for Saturating<u16>

1.74.0 · Source§

impl Mul<&Saturating<u32>> for &Saturating<u32>

1.74.0 · Source§

impl Mul<&Saturating<u32>> for Saturating<u32>

1.74.0 · Source§

impl Mul<&Saturating<u64>> for &Saturating<u64>

1.74.0 · Source§

impl Mul<&Saturating<u64>> for Saturating<u64>

1.74.0 · Source§

impl Mul<&Saturating<u128>> for &Saturating<u128>

1.74.0 · Source§

impl Mul<&Saturating<u128>> for Saturating<u128>

1.74.0 · Source§

impl Mul<&Saturating<usize>> for &Saturating<usize>

1.74.0 · Source§

impl Mul<&Saturating<usize>> for Saturating<usize>

1.14.0 · Source§

impl Mul<&Wrapping<i8>> for &Wrapping<i8>

1.14.0 · Source§

impl Mul<&Wrapping<i8>> for Wrapping<i8>

1.14.0 · Source§

impl Mul<&Wrapping<i16>> for &Wrapping<i16>

1.14.0 · Source§

impl Mul<&Wrapping<i16>> for Wrapping<i16>

1.14.0 · Source§

impl Mul<&Wrapping<i32>> for &Wrapping<i32>

1.14.0 · Source§

impl Mul<&Wrapping<i32>> for Wrapping<i32>

1.14.0 · Source§

impl Mul<&Wrapping<i64>> for &Wrapping<i64>

1.14.0 · Source§

impl Mul<&Wrapping<i64>> for Wrapping<i64>

1.14.0 · Source§

impl Mul<&Wrapping<i128>> for &Wrapping<i128>

1.14.0 · Source§

impl Mul<&Wrapping<i128>> for Wrapping<i128>

1.14.0 · Source§

impl Mul<&Wrapping<isize>> for &Wrapping<isize>

1.14.0 · Source§

impl Mul<&Wrapping<isize>> for Wrapping<isize>

1.14.0 · Source§

impl Mul<&Wrapping<u8>> for &Wrapping<u8>

1.14.0 · Source§

impl Mul<&Wrapping<u8>> for Wrapping<u8>

1.14.0 · Source§

impl Mul<&Wrapping<u16>> for &Wrapping<u16>

1.14.0 · Source§

impl Mul<&Wrapping<u16>> for Wrapping<u16>

1.14.0 · Source§

impl Mul<&Wrapping<u32>> for &Wrapping<u32>

1.14.0 · Source§

impl Mul<&Wrapping<u32>> for Wrapping<u32>

1.14.0 · Source§

impl Mul<&Wrapping<u64>> for &Wrapping<u64>

1.14.0 · Source§

impl Mul<&Wrapping<u64>> for Wrapping<u64>

1.14.0 · Source§

impl Mul<&Wrapping<u128>> for &Wrapping<u128>

1.14.0 · Source§

impl Mul<&Wrapping<u128>> for Wrapping<u128>

1.14.0 · Source§

impl Mul<&Wrapping<usize>> for &Wrapping<usize>

1.14.0 · Source§

impl Mul<&Wrapping<usize>> for Wrapping<usize>

Source§

impl Mul<&MontgomeryPoint> for &Scalar

Source§

impl Mul<&Scalar> for &MontgomeryPoint

Multiply this MontgomeryPoint by a Scalar.

Source§

impl Mul<&BigInt> for &i8

Source§

impl Mul<&BigInt> for &i16

Source§

impl Mul<&BigInt> for &i32

Source§

impl Mul<&BigInt> for &i64

Source§

impl Mul<&BigInt> for &i128

Source§

impl Mul<&BigInt> for &isize

Source§

impl Mul<&BigInt> for &u8

Source§

impl Mul<&BigInt> for &u16

Source§

impl Mul<&BigInt> for &u32

Source§

impl Mul<&BigInt> for &u64

Source§

impl Mul<&BigInt> for &u128

Source§

impl Mul<&BigInt> for &usize

Source§

impl Mul<&BigInt> for &BigInt

Source§

impl Mul<&BigInt> for i8

Source§

impl Mul<&BigInt> for i16

Source§

impl Mul<&BigInt> for i32

Source§

impl Mul<&BigInt> for i64

Source§

impl Mul<&BigInt> for i128

Source§

impl Mul<&BigInt> for isize

Source§

impl Mul<&BigInt> for u8

Source§

impl Mul<&BigInt> for u16

Source§

impl Mul<&BigInt> for u32

Source§

impl Mul<&BigInt> for u64

Source§

impl Mul<&BigInt> for u128

Source§

impl Mul<&BigInt> for usize

Source§

impl Mul<&BigInt> for BigInt

Source§

impl Mul<&BigUint> for &u8

Source§

impl Mul<&BigUint> for &u16

Source§

impl Mul<&BigUint> for &u32

Source§

impl Mul<&BigUint> for &u64

Source§

impl Mul<&BigUint> for &u128

Source§

impl Mul<&BigUint> for &usize

Source§

impl Mul<&BigUint> for &BigUint

Source§

impl Mul<&BigUint> for u8

Source§

impl Mul<&BigUint> for u16

Source§

impl Mul<&BigUint> for u32

Source§

impl Mul<&BigUint> for u64

Source§

impl Mul<&BigUint> for u128

Source§

impl Mul<&BigUint> for usize

Source§

impl Mul<&BigUint> for BigUint

Source§

impl Mul<i8> for &BigInt

Source§

impl Mul<i8> for Decimal

Source§

impl Mul<i8> for PreciseDecimal

Source§

impl Mul<i8> for BigInt

Source§

impl Mul<i16> for &BigInt

Source§

impl Mul<i16> for Decimal

Source§

impl Mul<i16> for PreciseDecimal

Source§

impl Mul<i16> for BigInt

Source§

impl Mul<i32> for &BigInt

Source§

impl Mul<i32> for Decimal

Source§

impl Mul<i32> for PreciseDecimal

Source§

impl Mul<i32> for BigInt

Source§

impl Mul<i64> for &BigInt

Source§

impl Mul<i64> for Decimal

Source§

impl Mul<i64> for PreciseDecimal

Source§

impl Mul<i64> for BigInt

Source§

impl Mul<i128> for &BigInt

Source§

impl Mul<i128> for Decimal

Source§

impl Mul<i128> for PreciseDecimal

Source§

impl Mul<i128> for BigInt

Source§

impl Mul<isize> for &BigInt

Source§

impl Mul<isize> for Decimal

Source§

impl Mul<isize> for PreciseDecimal

Source§

impl Mul<isize> for BigInt

Source§

impl Mul<u8> for &BigInt

Source§

impl Mul<u8> for &BigUint

Source§

impl Mul<u8> for Decimal

Source§

impl Mul<u8> for PreciseDecimal

Source§

impl Mul<u8> for BigInt

Source§

impl Mul<u8> for BigUint

Source§

impl Mul<u16> for &BigInt

Source§

impl Mul<u16> for &BigUint

Source§

impl Mul<u16> for Decimal

Source§

impl Mul<u16> for PreciseDecimal

Source§

impl Mul<u16> for BigInt

Source§

impl Mul<u16> for BigUint

Source§

impl Mul<u32> for &BigInt

Source§

impl Mul<u32> for &BigUint

Source§

impl Mul<u32> for Decimal

Source§

impl Mul<u32> for PreciseDecimal

1.3.0 · Source§

impl Mul<u32> for Duration

Source§

impl Mul<u32> for BigInt

Source§

impl Mul<u32> for BigUint

Source§

impl Mul<u64> for &BigInt

Source§

impl Mul<u64> for &BigUint

Source§

impl Mul<u64> for Decimal

Source§

impl Mul<u64> for PreciseDecimal

Source§

impl Mul<u64> for BigInt

Source§

impl Mul<u64> for BigUint

Source§

impl Mul<u128> for &BigInt

Source§

impl Mul<u128> for &BigUint

Source§

impl Mul<u128> for Decimal

Source§

impl Mul<u128> for PreciseDecimal

Source§

impl Mul<u128> for BigInt

Source§

impl Mul<u128> for BigUint

Source§

impl Mul<usize> for &BigInt

Source§

impl Mul<usize> for &BigUint

Source§

impl Mul<usize> for Decimal

Source§

impl Mul<usize> for PreciseDecimal

Source§

impl Mul<usize> for BigInt

Source§

impl Mul<usize> for BigUint

Source§

impl Mul<Decimal> for i8

Source§

impl Mul<Decimal> for i16

Source§

impl Mul<Decimal> for i32

Source§

impl Mul<Decimal> for i64

Source§

impl Mul<Decimal> for i128

Source§

impl Mul<Decimal> for isize

Source§

impl Mul<Decimal> for u8

Source§

impl Mul<Decimal> for u16

Source§

impl Mul<Decimal> for u32

Source§

impl Mul<Decimal> for u64

Source§

impl Mul<Decimal> for u128

Source§

impl Mul<Decimal> for usize

Source§

impl Mul<Decimal> for I192

Source§

impl Mul<Decimal> for I256

Source§

impl Mul<Decimal> for I320

Source§

impl Mul<Decimal> for I448

Source§

impl Mul<Decimal> for I512

Source§

impl Mul<Decimal> for PreciseDecimal

Source§

impl Mul<Decimal> for U192

Source§

impl Mul<Decimal> for U256

Source§

impl Mul<Decimal> for U320

Source§

impl Mul<Decimal> for U448

Source§

impl Mul<Decimal> for U512

Source§

impl Mul<I192> for Decimal

Source§

impl Mul<I192> for PreciseDecimal

Source§

impl Mul<I256> for Decimal

Source§

impl Mul<I256> for PreciseDecimal

Source§

impl Mul<I320> for Decimal

Source§

impl Mul<I320> for PreciseDecimal

Source§

impl Mul<I448> for Decimal

Source§

impl Mul<I448> for PreciseDecimal

Source§

impl Mul<I512> for Decimal

Source§

impl Mul<I512> for PreciseDecimal

Source§

impl Mul<PreciseDecimal> for i8

Source§

impl Mul<PreciseDecimal> for i16

Source§

impl Mul<PreciseDecimal> for i32

Source§

impl Mul<PreciseDecimal> for i64

Source§

impl Mul<PreciseDecimal> for i128

Source§

impl Mul<PreciseDecimal> for isize

Source§

impl Mul<PreciseDecimal> for u8

Source§

impl Mul<PreciseDecimal> for u16

Source§

impl Mul<PreciseDecimal> for u32

Source§

impl Mul<PreciseDecimal> for u64

Source§

impl Mul<PreciseDecimal> for u128

Source§

impl Mul<PreciseDecimal> for usize

Source§

impl Mul<PreciseDecimal> for Decimal

Source§

impl Mul<PreciseDecimal> for I192

Source§

impl Mul<PreciseDecimal> for I256

Source§

impl Mul<PreciseDecimal> for I320

Source§

impl Mul<PreciseDecimal> for I448

Source§

impl Mul<PreciseDecimal> for I512

Source§

impl Mul<PreciseDecimal> for U192

Source§

impl Mul<PreciseDecimal> for U256

Source§

impl Mul<PreciseDecimal> for U320

Source§

impl Mul<PreciseDecimal> for U448

Source§

impl Mul<PreciseDecimal> for U512

Source§

impl Mul<U192> for Decimal

Source§

impl Mul<U192> for PreciseDecimal

Source§

impl Mul<U256> for Decimal

Source§

impl Mul<U256> for PreciseDecimal

Source§

impl Mul<U320> for Decimal

Source§

impl Mul<U320> for PreciseDecimal

Source§

impl Mul<U448> for Decimal

Source§

impl Mul<U448> for PreciseDecimal

Source§

impl Mul<U512> for Decimal

Source§

impl Mul<U512> for PreciseDecimal

1.31.0 · Source§

impl Mul<Duration> for u32

Source§

impl Mul<EdwardsPoint> for Scalar

Source§

impl Mul<MontgomeryPoint> for Scalar

Source§

impl Mul<RistrettoPoint> for Scalar

Source§

impl Mul<Scalar> for EdwardsPoint

Source§

impl Mul<Scalar> for MontgomeryPoint

Source§

impl Mul<Scalar> for RistrettoPoint

Source§

impl Mul<BigInt> for &i8

Source§

impl Mul<BigInt> for &i16

Source§

impl Mul<BigInt> for &i32

Source§

impl Mul<BigInt> for &i64

Source§

impl Mul<BigInt> for &i128

Source§

impl Mul<BigInt> for &isize

Source§

impl Mul<BigInt> for &u8

Source§

impl Mul<BigInt> for &u16

Source§

impl Mul<BigInt> for &u32

Source§

impl Mul<BigInt> for &u64

Source§

impl Mul<BigInt> for &u128

Source§

impl Mul<BigInt> for &usize

Source§

impl Mul<BigInt> for &BigInt

Source§

impl Mul<BigInt> for i8

Source§

impl Mul<BigInt> for i16

Source§

impl Mul<BigInt> for i32

Source§

impl Mul<BigInt> for i64

Source§

impl Mul<BigInt> for i128

Source§

impl Mul<BigInt> for isize

Source§

impl Mul<BigInt> for u8

Source§

impl Mul<BigInt> for u16

Source§

impl Mul<BigInt> for u32

Source§

impl Mul<BigInt> for u64

Source§

impl Mul<BigInt> for u128

Source§

impl Mul<BigInt> for usize

Source§

impl Mul<BigUint> for &u8

Source§

impl Mul<BigUint> for &u16

Source§

impl Mul<BigUint> for &u32

Source§

impl Mul<BigUint> for &u64

Source§

impl Mul<BigUint> for &u128

Source§

impl Mul<BigUint> for &usize

Source§

impl Mul<BigUint> for &BigUint

Source§

impl Mul<BigUint> for u8

Source§

impl Mul<BigUint> for u16

Source§

impl Mul<BigUint> for u32

Source§

impl Mul<BigUint> for u64

Source§

impl Mul<BigUint> for u128

Source§

impl Mul<BigUint> for usize

Source§

impl Mul<ATerm> for Z0

Source§

impl Mul<B0> for UTerm

UTerm * B0 = UTerm

Source§

impl Mul<B1> for UTerm

UTerm * B1 = UTerm

1.0.0 · Source§

impl<'a> Mul<f16> for &'a f16

1.0.0 · Source§

impl<'a> Mul<f32> for &'a f32

1.0.0 · Source§

impl<'a> Mul<f64> for &'a f64

1.0.0 · Source§

impl<'a> Mul<f128> for &'a f128

1.0.0 · Source§

impl<'a> Mul<i8> for &'a i8

1.0.0 · Source§

impl<'a> Mul<i16> for &'a i16

1.0.0 · Source§

impl<'a> Mul<i32> for &'a i32

1.0.0 · Source§

impl<'a> Mul<i64> for &'a i64

1.0.0 · Source§

impl<'a> Mul<i128> for &'a i128

1.0.0 · Source§

impl<'a> Mul<isize> for &'a isize

1.0.0 · Source§

impl<'a> Mul<u8> for &'a u8

1.0.0 · Source§

impl<'a> Mul<u16> for &'a u16

1.0.0 · Source§

impl<'a> Mul<u32> for &'a u32

1.0.0 · Source§

impl<'a> Mul<u64> for &'a u64

1.0.0 · Source§

impl<'a> Mul<u128> for &'a u128

1.0.0 · Source§

impl<'a> Mul<usize> for &'a usize

Source§

impl<'a> Mul<I192> for &'a I192

Source§

impl<'a> Mul<I256> for &'a I256

Source§

impl<'a> Mul<I320> for &'a I320

Source§

impl<'a> Mul<I384> for &'a I384

Source§

impl<'a> Mul<I448> for &'a I448

Source§

impl<'a> Mul<I512> for &'a I512

Source§

impl<'a> Mul<I768> for &'a I768

Source§

impl<'a> Mul<U192> for &'a U192

Source§

impl<'a> Mul<U256> for &'a U256

Source§

impl<'a> Mul<U320> for &'a U320

Source§

impl<'a> Mul<U384> for &'a U384

Source§

impl<'a> Mul<U448> for &'a U448

Source§

impl<'a> Mul<U512> for &'a U512

Source§

impl<'a> Mul<U768> for &'a U768

1.74.0 · Source§

impl<'a> Mul<Saturating<i8>> for &'a Saturating<i8>

1.74.0 · Source§

impl<'a> Mul<Saturating<i16>> for &'a Saturating<i16>

1.74.0 · Source§

impl<'a> Mul<Saturating<i32>> for &'a Saturating<i32>

1.74.0 · Source§

impl<'a> Mul<Saturating<i64>> for &'a Saturating<i64>

1.74.0 · Source§

impl<'a> Mul<Saturating<i128>> for &'a Saturating<i128>

1.74.0 · Source§

impl<'a> Mul<Saturating<isize>> for &'a Saturating<isize>

1.74.0 · Source§

impl<'a> Mul<Saturating<u8>> for &'a Saturating<u8>

1.74.0 · Source§

impl<'a> Mul<Saturating<u16>> for &'a Saturating<u16>

1.74.0 · Source§

impl<'a> Mul<Saturating<u32>> for &'a Saturating<u32>

1.74.0 · Source§

impl<'a> Mul<Saturating<u64>> for &'a Saturating<u64>

1.74.0 · Source§

impl<'a> Mul<Saturating<u128>> for &'a Saturating<u128>

1.74.0 · Source§

impl<'a> Mul<Saturating<usize>> for &'a Saturating<usize>

1.14.0 · Source§

impl<'a> Mul<Wrapping<i8>> for &'a Wrapping<i8>

1.14.0 · Source§

impl<'a> Mul<Wrapping<i16>> for &'a Wrapping<i16>

1.14.0 · Source§

impl<'a> Mul<Wrapping<i32>> for &'a Wrapping<i32>

1.14.0 · Source§

impl<'a> Mul<Wrapping<i64>> for &'a Wrapping<i64>

1.14.0 · Source§

impl<'a> Mul<Wrapping<i128>> for &'a Wrapping<i128>

1.14.0 · Source§

impl<'a> Mul<Wrapping<isize>> for &'a Wrapping<isize>

1.14.0 · Source§

impl<'a> Mul<Wrapping<u8>> for &'a Wrapping<u8>

1.14.0 · Source§

impl<'a> Mul<Wrapping<u16>> for &'a Wrapping<u16>

1.14.0 · Source§

impl<'a> Mul<Wrapping<u32>> for &'a Wrapping<u32>

1.14.0 · Source§

impl<'a> Mul<Wrapping<u64>> for &'a Wrapping<u64>

1.14.0 · Source§

impl<'a> Mul<Wrapping<u128>> for &'a Wrapping<u128>

1.14.0 · Source§

impl<'a> Mul<Wrapping<usize>> for &'a Wrapping<usize>

Source§

impl<'a> Mul<EdwardsPoint> for &'a Scalar

Source§

impl<'a> Mul<MontgomeryPoint> for &'a Scalar

Source§

impl<'a> Mul<RistrettoPoint> for &'a Scalar

Source§

impl<'a> Mul<Scalar> for &'a EdwardsPoint

Source§

impl<'a> Mul<Scalar> for &'a MontgomeryPoint

Source§

impl<'a> Mul<Scalar> for &'a RistrettoPoint

Source§

impl<'a> Mul<Scalar> for &'a Scalar

Source§

impl<'a, 'b> Mul<&'a EdwardsBasepointTable> for &'b Scalar

Source§

impl<'a, 'b> Mul<&'a EdwardsBasepointTableRadix32> for &'b Scalar

Source§

impl<'a, 'b> Mul<&'a EdwardsBasepointTableRadix64> for &'b Scalar

Source§

impl<'a, 'b> Mul<&'a EdwardsBasepointTableRadix128> for &'b Scalar

Source§

impl<'a, 'b> Mul<&'a EdwardsBasepointTableRadix256> for &'b Scalar

Source§

impl<'a, 'b> Mul<&'a RistrettoBasepointTable> for &'b Scalar

Source§

impl<'a, 'b> Mul<&'b EdwardsPoint> for &'a Scalar

Source§

impl<'a, 'b> Mul<&'b RistrettoPoint> for &'a Scalar

Source§

impl<'a, 'b> Mul<&'b Scalar> for &'a EdwardsBasepointTable

Source§

impl<'a, 'b> Mul<&'b Scalar> for &'a EdwardsBasepointTableRadix32

Source§

impl<'a, 'b> Mul<&'b Scalar> for &'a EdwardsBasepointTableRadix64

Source§

impl<'a, 'b> Mul<&'b Scalar> for &'a EdwardsBasepointTableRadix128

Source§

impl<'a, 'b> Mul<&'b Scalar> for &'a EdwardsBasepointTableRadix256

Source§

impl<'a, 'b> Mul<&'b Scalar> for &'a EdwardsPoint

Source§

impl<'a, 'b> Mul<&'b Scalar> for &'a RistrettoBasepointTable

Source§

impl<'a, 'b> Mul<&'b Scalar> for &'a RistrettoPoint

Source§

impl<'a, 'b> Mul<&'b Scalar> for &'a Scalar

Source§

impl<'b> Mul<&'b EdwardsPoint> for Scalar

Source§

impl<'b> Mul<&'b MontgomeryPoint> for Scalar

Source§

impl<'b> Mul<&'b RistrettoPoint> for Scalar

Source§

impl<'b> Mul<&'b Scalar> for EdwardsPoint

Source§

impl<'b> Mul<&'b Scalar> for MontgomeryPoint

Source§

impl<'b> Mul<&'b Scalar> for RistrettoPoint

Source§

impl<'b> Mul<&'b Scalar> for Scalar

Source§

impl<'lhs, 'rhs, T, const N: usize> Mul<&'rhs Simd<T, N>> for &'lhs Simd<T, N>
where T: SimdElement, Simd<T, N>: Mul<Output = Simd<T, N>>, LaneCount<N>: SupportedLaneCount,

Source§

type Output = Simd<T, N>

Source§

impl<I> Mul<I> for Z0
where I: Integer,

Z0 * I = Z0

Source§

impl<Rhs> Mul<Rhs> for ATerm

Source§

impl<T> Mul<T> for F32
where T: Into<F32>,

Source§

impl<T> Mul<T> for F64
where T: Into<F64>,

Source§

impl<T, const N: usize> Mul<&Simd<T, N>> for Simd<T, N>
where T: SimdElement, Simd<T, N>: Mul<Output = Simd<T, N>>, LaneCount<N>: SupportedLaneCount,

Source§

type Output = Simd<T, N>

Source§

impl<T, const N: usize> Mul<Simd<T, N>> for &Simd<T, N>
where T: SimdElement, Simd<T, N>: Mul<Output = Simd<T, N>>, LaneCount<N>: SupportedLaneCount,

Source§

type Output = Simd<T, N>

Source§

impl<U> Mul<ATerm> for NInt<U>
where U: Unsigned + NonZero,

Source§

impl<U> Mul<ATerm> for PInt<U>
where U: Unsigned + NonZero,

Source§

impl<U> Mul<Z0> for NInt<U>
where U: Unsigned + NonZero,

N * Z0 = Z0

Source§

impl<U> Mul<Z0> for PInt<U>
where U: Unsigned + NonZero,

P * Z0 = Z0

Source§

impl<U> Mul<U> for UTerm
where U: Unsigned,

UTerm * U = UTerm

Source§

impl<U, B> Mul<B0> for UInt<U, B>
where U: Unsigned, B: Bit,

UInt * B0 = UTerm

Source§

impl<U, B> Mul<B1> for UInt<U, B>
where U: Unsigned, B: Bit,

UInt * B1 = UInt

Source§

type Output = UInt<U, B>

Source§

impl<U, B> Mul<UTerm> for UInt<U, B>
where U: Unsigned, B: Bit,

UInt<U, B> * UTerm = UTerm

Source§

impl<Ul, B, Ur> Mul<UInt<Ur, B>> for UInt<Ul, B0>
where Ul: Unsigned + Mul<UInt<Ur, B>>, B: Bit, Ur: Unsigned,

UInt<Ul, B0> * UInt<Ur, B> = UInt<(Ul * UInt<Ur, B>), B0>

Source§

type Output = UInt<<Ul as Mul<UInt<Ur, B>>>::Output, B0>

Source§

impl<Ul, B, Ur> Mul<UInt<Ur, B>> for UInt<Ul, B1>
where Ul: Unsigned + Mul<UInt<Ur, B>>, B: Bit, Ur: Unsigned, UInt<<Ul as Mul<UInt<Ur, B>>>::Output, B0>: Add<UInt<Ur, B>>,

UInt<Ul, B1> * UInt<Ur, B> = UInt<(Ul * UInt<Ur, B>), B0> + UInt<Ur, B>

Source§

type Output = <UInt<<Ul as Mul<UInt<Ur, B>>>::Output, B0> as Add<UInt<Ur, B>>>::Output

Source§

impl<Ul, Ur> Mul<NInt<Ur>> for NInt<Ul>
where Ul: Unsigned + NonZero + Mul<Ur>, Ur: Unsigned + NonZero, <Ul as Mul<Ur>>::Output: Unsigned + NonZero,

N(Ul) * N(Ur) = P(Ul * Ur)

Source§

type Output = PInt<<Ul as Mul<Ur>>::Output>

Source§

impl<Ul, Ur> Mul<NInt<Ur>> for PInt<Ul>
where Ul: Unsigned + NonZero + Mul<Ur>, Ur: Unsigned + NonZero, <Ul as Mul<Ur>>::Output: Unsigned + NonZero,

P(Ul) * N(Ur) = N(Ul * Ur)

Source§

type Output = NInt<<Ul as Mul<Ur>>::Output>

Source§

impl<Ul, Ur> Mul<PInt<Ur>> for NInt<Ul>
where Ul: Unsigned + NonZero + Mul<Ur>, Ur: Unsigned + NonZero, <Ul as Mul<Ur>>::Output: Unsigned + NonZero,

N(Ul) * P(Ur) = N(Ul * Ur)

Source§

type Output = NInt<<Ul as Mul<Ur>>::Output>

Source§

impl<Ul, Ur> Mul<PInt<Ur>> for PInt<Ul>
where Ul: Unsigned + NonZero + Mul<Ur>, Ur: Unsigned + NonZero, <Ul as Mul<Ur>>::Output: Unsigned + NonZero,

P(Ul) * P(Ur) = P(Ul * Ur)

Source§

type Output = PInt<<Ul as Mul<Ur>>::Output>

Source§

impl<V, A> Mul<TArr<V, A>> for Z0
where Z0: Mul<A>,

Source§

type Output = TArr<Z0, <Z0 as Mul<A>>::Output>

Source§

impl<V, A, Rhs> Mul<Rhs> for TArr<V, A>
where V: Mul<Rhs>, A: Mul<Rhs>, Rhs: Copy,

Source§

type Output = TArr<<V as Mul<Rhs>>::Output, <A as Mul<Rhs>>::Output>

Source§

impl<V, A, U> Mul<TArr<V, A>> for NInt<U>
where U: Unsigned + NonZero, NInt<U>: Mul<A> + Mul<V>,

Source§

type Output = TArr<<NInt<U> as Mul<V>>::Output, <NInt<U> as Mul<A>>::Output>

Source§

impl<V, A, U> Mul<TArr<V, A>> for PInt<U>
where U: Unsigned + NonZero, PInt<U>: Mul<A> + Mul<V>,

Source§

type Output = TArr<<PInt<U> as Mul<V>>::Output, <PInt<U> as Mul<A>>::Output>

Source§

impl<const N: usize> Mul for Simd<f32, N>

Source§

impl<const N: usize> Mul for Simd<f64, N>

Source§

impl<const N: usize> Mul for Simd<i8, N>

Source§

impl<const N: usize> Mul for Simd<i16, N>

Source§

impl<const N: usize> Mul for Simd<i32, N>

Source§

impl<const N: usize> Mul for Simd<i64, N>

Source§

impl<const N: usize> Mul for Simd<isize, N>

Source§

impl<const N: usize> Mul for Simd<u8, N>

Source§

impl<const N: usize> Mul for Simd<u16, N>

Source§

impl<const N: usize> Mul for Simd<u32, N>

Source§

impl<const N: usize> Mul for Simd<u64, N>

Source§

impl<const N: usize> Mul for Simd<usize, N>

Source§

impl<const N: usize> Mul for BInt<N>

Source§

impl<const N: usize> Mul for BIntD8<N>

Source§

impl<const N: usize> Mul for BIntD16<N>

Source§

impl<const N: usize> Mul for BIntD32<N>

Source§

impl<const N: usize> Mul for BUint<N>

Source§

impl<const N: usize> Mul for BUintD8<N>

Source§

impl<const N: usize> Mul for BUintD16<N>

Source§

impl<const N: usize> Mul for BUintD32<N>

Source§

impl<const N: usize> Mul<&BInt<N>> for &BInt<N>

Source§

impl<const N: usize> Mul<&BInt<N>> for BInt<N>

Source§

impl<const N: usize> Mul<&BIntD8<N>> for &BIntD8<N>

Source§

impl<const N: usize> Mul<&BIntD8<N>> for BIntD8<N>

Source§

impl<const N: usize> Mul<&BIntD16<N>> for &BIntD16<N>

Source§

impl<const N: usize> Mul<&BIntD16<N>> for BIntD16<N>

Source§

impl<const N: usize> Mul<&BIntD32<N>> for &BIntD32<N>

Source§

impl<const N: usize> Mul<&BIntD32<N>> for BIntD32<N>

Source§

impl<const N: usize> Mul<&BUint<N>> for &BUint<N>

Source§

impl<const N: usize> Mul<&BUint<N>> for BUint<N>

Source§

impl<const N: usize> Mul<&BUintD8<N>> for &BUintD8<N>

Source§

impl<const N: usize> Mul<&BUintD8<N>> for BUintD8<N>

Source§

impl<const N: usize> Mul<&BUintD16<N>> for &BUintD16<N>

Source§

impl<const N: usize> Mul<&BUintD16<N>> for BUintD16<N>

Source§

impl<const N: usize> Mul<&BUintD32<N>> for &BUintD32<N>

Source§

impl<const N: usize> Mul<&BUintD32<N>> for BUintD32<N>

Source§

impl<const N: usize> Mul<BInt<N>> for &BInt<N>

Source§

impl<const N: usize> Mul<BIntD8<N>> for &BIntD8<N>

Source§

impl<const N: usize> Mul<BIntD16<N>> for &BIntD16<N>

Source§

impl<const N: usize> Mul<BIntD32<N>> for &BIntD32<N>

Source§

impl<const N: usize> Mul<BUint<N>> for &BUint<N>

Source§

impl<const N: usize> Mul<BUintD8<N>> for &BUintD8<N>

Source§

impl<const N: usize> Mul<BUintD16<N>> for &BUintD16<N>

Source§

impl<const N: usize> Mul<BUintD32<N>> for &BUintD32<N>