Skip to main content

Mul

Trait Mul 

1.0.0 (const: unstable) · 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 (const: unstable) · Source

type Output

The resulting type after applying the * operator.

Required Methods§

1.0.0 (const: unstable) · Source

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

Performs the * operation.

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

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl Mul for BigInt

Source§

impl Mul for BigUint

Source§

impl Mul for Fe32

Source§

impl Mul for Limb

1.74.0 (const: unstable) · Source§

impl Mul for Saturating<i8>

1.74.0 (const: unstable) · Source§

impl Mul for Saturating<i16>

1.74.0 (const: unstable) · Source§

impl Mul for Saturating<i32>

1.74.0 (const: unstable) · Source§

impl Mul for Saturating<i64>

1.74.0 (const: unstable) · Source§

impl Mul for Saturating<i128>

1.74.0 (const: unstable) · Source§

impl Mul for Saturating<isize>

1.74.0 (const: unstable) · Source§

impl Mul for Saturating<u8>

1.74.0 (const: unstable) · Source§

impl Mul for Saturating<u16>

1.74.0 (const: unstable) · Source§

impl Mul for Saturating<u32>

1.74.0 (const: unstable) · Source§

impl Mul for Saturating<u64>

1.74.0 (const: unstable) · Source§

impl Mul for Saturating<u128>

1.74.0 (const: unstable) · Source§

impl Mul for Saturating<usize>

Source§

impl Mul for k256::arithmetic::scalar::Scalar

Source§

impl Mul for Sign

1.0.0 (const: unstable) · Source§

impl Mul for core::num::wrapping::Wrapping<i8>

1.0.0 (const: unstable) · Source§

impl Mul for core::num::wrapping::Wrapping<i16>

1.0.0 (const: unstable) · Source§

impl Mul for core::num::wrapping::Wrapping<i32>

1.0.0 (const: unstable) · Source§

impl Mul for core::num::wrapping::Wrapping<i64>

1.0.0 (const: unstable) · Source§

impl Mul for core::num::wrapping::Wrapping<i128>

1.0.0 (const: unstable) · Source§

impl Mul for core::num::wrapping::Wrapping<isize>

1.0.0 (const: unstable) · Source§

impl Mul for core::num::wrapping::Wrapping<u8>

1.0.0 (const: unstable) · Source§

impl Mul for core::num::wrapping::Wrapping<u16>

1.0.0 (const: unstable) · Source§

impl Mul for core::num::wrapping::Wrapping<u32>

1.0.0 (const: unstable) · Source§

impl Mul for core::num::wrapping::Wrapping<u64>

1.0.0 (const: unstable) · Source§

impl Mul for core::num::wrapping::Wrapping<u128>

1.0.0 (const: unstable) · Source§

impl Mul for core::num::wrapping::Wrapping<usize>

1.0.0 (const: unstable) · Source§

impl Mul for f16

1.0.0 (const: unstable) · Source§

impl Mul for f32

1.0.0 (const: unstable) · Source§

impl Mul for f64

1.0.0 (const: unstable) · Source§

impl Mul for f128

1.0.0 (const: unstable) · Source§

impl Mul for i8

1.0.0 (const: unstable) · Source§

impl Mul for i16

1.0.0 (const: unstable) · Source§

impl Mul for i32

1.0.0 (const: unstable) · Source§

impl Mul for i64

1.0.0 (const: unstable) · Source§

impl Mul for i128

1.0.0 (const: unstable) · Source§

impl Mul for isize

1.0.0 (const: unstable) · Source§

impl Mul for u8

1.0.0 (const: unstable) · Source§

impl Mul for u16

1.0.0 (const: unstable) · Source§

impl Mul for u32

1.0.0 (const: unstable) · Source§

impl Mul for u64

1.0.0 (const: unstable) · Source§

impl Mul for u128

1.0.0 (const: unstable) · Source§

impl Mul for usize

Source§

impl Mul<&<Secp256k1 as CurveArithmetic>::AffinePoint> for &k256::arithmetic::scalar::Scalar

Source§

impl Mul<&<Secp256k1 as CurveArithmetic>::AffinePoint> for k256::arithmetic::scalar::Scalar

Source§

impl Mul<&<Secp256k1 as CurveArithmetic>::ProjectivePoint> for &k256::arithmetic::scalar::Scalar

Source§

impl Mul<&<Secp256k1 as CurveArithmetic>::ProjectivePoint> for k256::arithmetic::scalar::Scalar

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<&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 &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<&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<&Fe32> for &Fe32

Source§

impl Mul<&Fe32> for Fe32

Source§

impl Mul<&Limb> for &Limb

Source§

impl Mul<&Limb> for Limb

1.74.0 (const: unstable) · Source§

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

1.74.0 (const: unstable) · Source§

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

1.74.0 (const: unstable) · Source§

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

1.74.0 (const: unstable) · Source§

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

1.74.0 (const: unstable) · Source§

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

1.74.0 (const: unstable) · Source§

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

1.74.0 (const: unstable) · Source§

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

1.74.0 (const: unstable) · Source§

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

1.74.0 (const: unstable) · Source§

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

1.74.0 (const: unstable) · Source§

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

1.74.0 (const: unstable) · Source§

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

1.74.0 (const: unstable) · Source§

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

1.74.0 (const: unstable) · Source§

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

1.74.0 (const: unstable) · Source§

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

1.74.0 (const: unstable) · Source§

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

1.74.0 (const: unstable) · Source§

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

1.74.0 (const: unstable) · Source§

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

1.74.0 (const: unstable) · Source§

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

1.74.0 (const: unstable) · Source§

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

1.74.0 (const: unstable) · Source§

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

1.74.0 (const: unstable) · Source§

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

1.74.0 (const: unstable) · Source§

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

1.74.0 (const: unstable) · Source§

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

1.74.0 (const: unstable) · Source§

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

Source§

impl Mul<&Scalar> for &ProjectivePoint

Source§

impl Mul<&Scalar> for &k256::arithmetic::scalar::Scalar

Source§

impl Mul<&Scalar> for AffinePoint

Source§

impl Mul<&Scalar> for ProjectivePoint

Source§

impl Mul<&Scalar> for k256::arithmetic::scalar::Scalar

1.14.0 (const: unstable) · Source§

impl Mul<&Wrapping<i8>> for &core::num::wrapping::Wrapping<i8>

1.14.0 (const: unstable) · Source§

impl Mul<&Wrapping<i8>> for core::num::wrapping::Wrapping<i8>

1.14.0 (const: unstable) · Source§

impl Mul<&Wrapping<i16>> for &core::num::wrapping::Wrapping<i16>

1.14.0 (const: unstable) · Source§

impl Mul<&Wrapping<i16>> for core::num::wrapping::Wrapping<i16>

1.14.0 (const: unstable) · Source§

impl Mul<&Wrapping<i32>> for &core::num::wrapping::Wrapping<i32>

1.14.0 (const: unstable) · Source§

impl Mul<&Wrapping<i32>> for core::num::wrapping::Wrapping<i32>

1.14.0 (const: unstable) · Source§

impl Mul<&Wrapping<i64>> for &core::num::wrapping::Wrapping<i64>

1.14.0 (const: unstable) · Source§

impl Mul<&Wrapping<i64>> for core::num::wrapping::Wrapping<i64>

1.14.0 (const: unstable) · Source§

impl Mul<&Wrapping<i128>> for &core::num::wrapping::Wrapping<i128>

1.14.0 (const: unstable) · Source§

impl Mul<&Wrapping<i128>> for core::num::wrapping::Wrapping<i128>

1.14.0 (const: unstable) · Source§

impl Mul<&Wrapping<isize>> for &core::num::wrapping::Wrapping<isize>

1.14.0 (const: unstable) · Source§

impl Mul<&Wrapping<isize>> for core::num::wrapping::Wrapping<isize>

1.14.0 (const: unstable) · Source§

impl Mul<&Wrapping<u8>> for &core::num::wrapping::Wrapping<u8>

1.14.0 (const: unstable) · Source§

impl Mul<&Wrapping<u8>> for core::num::wrapping::Wrapping<u8>

1.14.0 (const: unstable) · Source§

impl Mul<&Wrapping<u16>> for &core::num::wrapping::Wrapping<u16>

1.14.0 (const: unstable) · Source§

impl Mul<&Wrapping<u16>> for core::num::wrapping::Wrapping<u16>

1.14.0 (const: unstable) · Source§

impl Mul<&Wrapping<u32>> for &core::num::wrapping::Wrapping<u32>

1.14.0 (const: unstable) · Source§

impl Mul<&Wrapping<u32>> for core::num::wrapping::Wrapping<u32>

1.14.0 (const: unstable) · Source§

impl Mul<&Wrapping<u64>> for &core::num::wrapping::Wrapping<u64>

1.14.0 (const: unstable) · Source§

impl Mul<&Wrapping<u64>> for core::num::wrapping::Wrapping<u64>

1.14.0 (const: unstable) · Source§

impl Mul<&Wrapping<u128>> for &core::num::wrapping::Wrapping<u128>

1.14.0 (const: unstable) · Source§

impl Mul<&Wrapping<u128>> for core::num::wrapping::Wrapping<u128>

1.14.0 (const: unstable) · Source§

impl Mul<&Wrapping<usize>> for &core::num::wrapping::Wrapping<usize>

1.14.0 (const: unstable) · Source§

impl Mul<&Wrapping<usize>> for core::num::wrapping::Wrapping<usize>

1.0.0 (const: unstable) · Source§

impl Mul<&f16> for &f16

1.0.0 (const: unstable) · Source§

impl Mul<&f16> for f16

1.0.0 (const: unstable) · Source§

impl Mul<&f32> for &f32

1.0.0 (const: unstable) · Source§

impl Mul<&f32> for f32

1.0.0 (const: unstable) · Source§

impl Mul<&f64> for &f64

1.0.0 (const: unstable) · Source§

impl Mul<&f64> for f64

1.0.0 (const: unstable) · Source§

impl Mul<&f128> for &f128

1.0.0 (const: unstable) · Source§

impl Mul<&f128> for f128

Source§

impl Mul<&i8> for &BigInt

1.0.0 (const: unstable) · Source§

impl Mul<&i8> for &i8

Source§

impl Mul<&i8> for BigInt

1.0.0 (const: unstable) · Source§

impl Mul<&i8> for i8

Source§

impl Mul<&i16> for &BigInt

1.0.0 (const: unstable) · Source§

impl Mul<&i16> for &i16

Source§

impl Mul<&i16> for BigInt

1.0.0 (const: unstable) · Source§

impl Mul<&i16> for i16

Source§

impl Mul<&i32> for &BigInt

1.0.0 (const: unstable) · Source§

impl Mul<&i32> for &i32

Source§

impl Mul<&i32> for BigInt

1.0.0 (const: unstable) · Source§

impl Mul<&i32> for i32

Source§

impl Mul<&i64> for &BigInt

1.0.0 (const: unstable) · Source§

impl Mul<&i64> for &i64

Source§

impl Mul<&i64> for BigInt

1.0.0 (const: unstable) · Source§

impl Mul<&i64> for i64

Source§

impl Mul<&i128> for &BigInt

1.0.0 (const: unstable) · Source§

impl Mul<&i128> for &i128

Source§

impl Mul<&i128> for BigInt

1.0.0 (const: unstable) · Source§

impl Mul<&i128> for i128

Source§

impl Mul<&isize> for &BigInt

1.0.0 (const: unstable) · Source§

impl Mul<&isize> for &isize

Source§

impl Mul<&isize> for BigInt

1.0.0 (const: unstable) · Source§

impl Mul<&isize> for isize

Source§

impl Mul<&u8> for &BigInt

Source§

impl Mul<&u8> for &BigUint

1.0.0 (const: unstable) · Source§

impl Mul<&u8> for &u8

Source§

impl Mul<&u8> for BigInt

Source§

impl Mul<&u8> for BigUint

1.0.0 (const: unstable) · Source§

impl Mul<&u8> for u8

Source§

impl Mul<&u16> for &BigInt

Source§

impl Mul<&u16> for &BigUint

1.0.0 (const: unstable) · Source§

impl Mul<&u16> for &u16

Source§

impl Mul<&u16> for BigInt

Source§

impl Mul<&u16> for BigUint

1.0.0 (const: unstable) · Source§

impl Mul<&u16> for u16

Source§

impl Mul<&u32> for &BigInt

Source§

impl Mul<&u32> for &BigUint

1.0.0 (const: unstable) · Source§

impl Mul<&u32> for &u32

Source§

impl Mul<&u32> for BigInt

Source§

impl Mul<&u32> for BigUint

1.0.0 (const: unstable) · Source§

impl Mul<&u32> for u32

Source§

impl Mul<&u64> for &BigInt

Source§

impl Mul<&u64> for &BigUint

1.0.0 (const: unstable) · Source§

impl Mul<&u64> for &u64

Source§

impl Mul<&u64> for BigInt

Source§

impl Mul<&u64> for BigUint

1.0.0 (const: unstable) · Source§

impl Mul<&u64> for u64

Source§

impl Mul<&u128> for &BigInt

Source§

impl Mul<&u128> for &BigUint

1.0.0 (const: unstable) · Source§

impl Mul<&u128> for &u128

Source§

impl Mul<&u128> for BigInt

Source§

impl Mul<&u128> for BigUint

1.0.0 (const: unstable) · Source§

impl Mul<&u128> for u128

Source§

impl Mul<&usize> for &BigInt

Source§

impl Mul<&usize> for &BigUint

1.0.0 (const: unstable) · Source§

impl Mul<&usize> for &usize

Source§

impl Mul<&usize> for BigInt

Source§

impl Mul<&usize> for BigUint

1.0.0 (const: unstable) · Source§

impl Mul<&usize> for usize

Source§

impl Mul<<Secp256k1 as CurveArithmetic>::AffinePoint> for &k256::arithmetic::scalar::Scalar

Source§

impl Mul<<Secp256k1 as CurveArithmetic>::AffinePoint> for k256::arithmetic::scalar::Scalar

Source§

impl Mul<<Secp256k1 as CurveArithmetic>::ProjectivePoint> for &k256::arithmetic::scalar::Scalar

Source§

impl Mul<<Secp256k1 as CurveArithmetic>::ProjectivePoint> for k256::arithmetic::scalar::Scalar

Source§

impl Mul<ATerm> for Z0

Source§

impl Mul<B0> for UTerm

UTerm * B0 = UTerm

Source§

impl Mul<B1> for UTerm

UTerm * B1 = UTerm

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 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 &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 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

1.31.0 (const: unstable) · Source§

impl Mul<Duration> for u32

Source§

impl Mul<Fe32> for &Fe32

Source§

impl Mul<Limb> for &Limb

1.74.0 (const: unstable) · Source§

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

1.74.0 (const: unstable) · Source§

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

1.74.0 (const: unstable) · Source§

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

1.74.0 (const: unstable) · Source§

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

1.74.0 (const: unstable) · Source§

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

1.74.0 (const: unstable) · Source§

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

1.74.0 (const: unstable) · Source§

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

1.74.0 (const: unstable) · Source§

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

1.74.0 (const: unstable) · Source§

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

1.74.0 (const: unstable) · Source§

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

1.74.0 (const: unstable) · Source§

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

1.74.0 (const: unstable) · Source§

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

Source§

impl Mul<Scalar> for AffinePoint

Source§

impl Mul<Scalar> for ProjectivePoint

1.14.0 (const: unstable) · Source§

impl Mul<Wrapping<i8>> for &core::num::wrapping::Wrapping<i8>

1.14.0 (const: unstable) · Source§

impl Mul<Wrapping<i16>> for &core::num::wrapping::Wrapping<i16>

1.14.0 (const: unstable) · Source§

impl Mul<Wrapping<i32>> for &core::num::wrapping::Wrapping<i32>

1.14.0 (const: unstable) · Source§

impl Mul<Wrapping<i64>> for &core::num::wrapping::Wrapping<i64>

1.14.0 (const: unstable) · Source§

impl Mul<Wrapping<i128>> for &core::num::wrapping::Wrapping<i128>

1.14.0 (const: unstable) · Source§

impl Mul<Wrapping<isize>> for &core::num::wrapping::Wrapping<isize>

1.14.0 (const: unstable) · Source§

impl Mul<Wrapping<u8>> for &core::num::wrapping::Wrapping<u8>

1.14.0 (const: unstable) · Source§

impl Mul<Wrapping<u16>> for &core::num::wrapping::Wrapping<u16>

1.14.0 (const: unstable) · Source§

impl Mul<Wrapping<u32>> for &core::num::wrapping::Wrapping<u32>

1.14.0 (const: unstable) · Source§

impl Mul<Wrapping<u64>> for &core::num::wrapping::Wrapping<u64>

1.14.0 (const: unstable) · Source§

impl Mul<Wrapping<u128>> for &core::num::wrapping::Wrapping<u128>

1.14.0 (const: unstable) · Source§

impl Mul<Wrapping<usize>> for &core::num::wrapping::Wrapping<usize>

1.0.0 (const: unstable) · Source§

impl Mul<f16> for &f16

1.0.0 (const: unstable) · Source§

impl Mul<f32> for &f32

1.0.0 (const: unstable) · Source§

impl Mul<f64> for &f64

1.0.0 (const: unstable) · Source§

impl Mul<f128> for &f128

Source§

impl Mul<i8> for &BigInt

1.0.0 (const: unstable) · Source§

impl Mul<i8> for &i8

Source§

impl Mul<i8> for BigInt

Source§

impl Mul<i16> for &BigInt

1.0.0 (const: unstable) · Source§

impl Mul<i16> for &i16

Source§

impl Mul<i16> for BigInt

Source§

impl Mul<i32> for &BigInt

1.0.0 (const: unstable) · Source§

impl Mul<i32> for &i32

Source§

impl Mul<i32> for BigInt

Source§

impl Mul<i64> for &BigInt

1.0.0 (const: unstable) · Source§

impl Mul<i64> for &i64

Source§

impl Mul<i64> for BigInt

Source§

impl Mul<i128> for &BigInt

1.0.0 (const: unstable) · Source§

impl Mul<i128> for &i128

Source§

impl Mul<i128> for BigInt

Source§

impl Mul<isize> for &BigInt

1.0.0 (const: unstable) · Source§

impl Mul<isize> for &isize

Source§

impl Mul<isize> for BigInt

Source§

impl Mul<u8> for &BigInt

Source§

impl Mul<u8> for &BigUint

1.0.0 (const: unstable) · Source§

impl Mul<u8> for &u8

Source§

impl Mul<u8> for BigInt

Source§

impl Mul<u8> for BigUint

Source§

impl Mul<u16> for &BigInt

Source§

impl Mul<u16> for &BigUint

1.0.0 (const: unstable) · Source§

impl Mul<u16> for &u16

Source§

impl Mul<u16> for BigInt

Source§

impl Mul<u16> for BigUint

Source§

impl Mul<u32> for &BigInt

Source§

impl Mul<u32> for &BigUint

1.0.0 (const: unstable) · Source§

impl Mul<u32> for &u32

Source§

impl Mul<u32> for BigInt

Source§

impl Mul<u32> for BigUint

1.3.0 (const: unstable) · Source§

impl Mul<u32> for Duration

Source§

impl Mul<u64> for &BigInt

Source§

impl Mul<u64> for &BigUint

1.0.0 (const: unstable) · Source§

impl Mul<u64> for &u64

Source§

impl Mul<u64> for BigInt

Source§

impl Mul<u64> for BigUint

Source§

impl Mul<u128> for &BigInt

Source§

impl Mul<u128> for &BigUint

1.0.0 (const: unstable) · Source§

impl Mul<u128> for &u128

Source§

impl Mul<u128> for BigInt

Source§

impl Mul<u128> for BigUint

Source§

impl Mul<usize> for &BigInt

Source§

impl Mul<usize> for &BigUint

1.0.0 (const: unstable) · Source§

impl Mul<usize> for &usize

Source§

impl Mul<usize> for BigInt

Source§

impl Mul<usize> for BigUint

Source§

impl<'a, P> Mul<&'a mut Fp2<P>> for Fp2<P>
where P: Fp2Parameters,

Source§

impl<'a, P> Mul<&'a mut Fp6<P>> for Fp6<P>
where P: Fp6Parameters,

Source§

impl<'a, P> Mul<&'a mut Fp12<P>> for Fp12<P>
where P: Fp12Parameters,

Source§

impl<'a, P> Mul<&'a mut Fp256<P>> for Fp256<P>
where P: Fp256Parameters,

Source§

impl<'a, P> Mul<&'a mut Fp384<P>> for Fp384<P>
where P: Fp384Parameters,

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>>,

Source§

type Output = Simd<T, N>

Source§

impl<C, P> Mul<&NonIdentity<P>> for &NonZeroScalar<C>
where C: CurveArithmetic, &'a NonIdentity<P>: for<'a> Mul<&'a NonZeroScalar<C>, Output = NonIdentity<P>>,

Source§

impl<C, P> Mul<&NonIdentity<P>> for NonZeroScalar<C>
where C: CurveArithmetic, &'a NonIdentity<P>: for<'a> Mul<NonZeroScalar<C>, Output = NonIdentity<P>>,

Source§

impl<C, P> Mul<&NonZeroScalar<C>> for &NonIdentity<P>
where C: CurveArithmetic, P: Copy + Mul<<C as CurveArithmetic>::Scalar, Output = P>,

Source§

impl<C, P> Mul<&NonZeroScalar<C>> for NonIdentity<P>
where C: CurveArithmetic, P: Copy + Mul<<C as CurveArithmetic>::Scalar, Output = P>,

Source§

impl<C, P> Mul<NonIdentity<P>> for &NonZeroScalar<C>
where C: CurveArithmetic, NonIdentity<P>: for<'a> Mul<&'a NonZeroScalar<C>, Output = NonIdentity<P>>,

Source§

impl<C, P> Mul<NonIdentity<P>> for NonZeroScalar<C>
where C: CurveArithmetic, NonIdentity<P>: Mul<NonZeroScalar<C>, Output = NonIdentity<P>>,

Source§

impl<C, P> Mul<NonZeroScalar<C>> for &NonIdentity<P>
where C: CurveArithmetic, P: Copy + Mul<<C as CurveArithmetic>::Scalar, Output = P>,

Source§

impl<C, P> Mul<NonZeroScalar<C>> for NonIdentity<P>
where C: CurveArithmetic, P: Copy + Mul<<C as CurveArithmetic>::Scalar, Output = P>,

Source§

impl<C> Mul for NonZeroScalar<C>

Source§

impl<C> Mul<&NonZeroScalar<C>> for NonZeroScalar<C>

Source§

impl<E, I> Mul for Integer<E, I>
where E: Environment, I: IntegerType,

Source§

type Output = Integer<E, I>

Source§

impl<E, I> Mul<&Integer<E, I>> for Integer<E, I>
where E: Environment, I: IntegerType,

Source§

type Output = Integer<E, I>

Source§

impl<E> Mul for Field<E>
where E: Environment,

Source§

impl<E> Mul for snarkvm_console_algorithms::Scalar<E>
where E: Environment,

Source§

impl<E> Mul<&Field<E>> for Field<E>
where E: Environment,

Source§

impl<E> Mul<&Group<E>> for snarkvm_console_algorithms::Scalar<E>
where E: Environment,

Source§

impl<E> Mul<&Scalar<E>> for Group<E>
where E: Environment,

Source§

impl<E> Mul<&Scalar<E>> for snarkvm_console_algorithms::Scalar<E>
where E: Environment,

Source§

impl<E> Mul<Group<E>> for snarkvm_console_algorithms::Scalar<E>
where E: Environment,

Source§

impl<E> Mul<Scalar<E>> for Group<E>
where E: Environment,

Source§

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

Z0 * I = Z0

Source§

impl<MOD, const LIMBS: usize> Mul for ConstMontyForm<MOD, LIMBS>
where MOD: ConstMontyParams<LIMBS>,

Source§

type Output = ConstMontyForm<MOD, LIMBS>

Source§

impl<MOD, const LIMBS: usize> Mul<&ConstMontyForm<MOD, LIMBS>> for &ConstMontyForm<MOD, LIMBS>
where MOD: ConstMontyParams<LIMBS>,

Source§

type Output = ConstMontyForm<MOD, LIMBS>

Source§

impl<MOD, const LIMBS: usize> Mul<&ConstMontyForm<MOD, LIMBS>> for ConstMontyForm<MOD, LIMBS>
where MOD: ConstMontyParams<LIMBS>,

Source§

type Output = ConstMontyForm<MOD, LIMBS>

Source§

impl<MOD, const LIMBS: usize> Mul<ConstMontyForm<MOD, LIMBS>> for &ConstMontyForm<MOD, LIMBS>
where MOD: ConstMontyParams<LIMBS>,

Source§

type Output = ConstMontyForm<MOD, LIMBS>

Source§

impl<P> Mul for Fp2<P>
where P: Fp2Parameters,

Source§

impl<P> Mul for Fp6<P>
where P: Fp6Parameters,

Source§

impl<P> Mul for Fp12<P>
where P: Fp12Parameters,

Source§

impl<P> Mul for Fp256<P>
where P: Fp256Parameters,

Source§

impl<P> Mul for Fp384<P>
where P: Fp384Parameters,

Source§

impl<P> Mul<&&Fp2<P>> for Fp2<P>
where P: Fp2Parameters,

Source§

impl<P> Mul<&&Fp6<P>> for Fp6<P>
where P: Fp6Parameters,

Source§

impl<P> Mul<&&Fp12<P>> for Fp12<P>
where P: Fp12Parameters,

Source§

impl<P> Mul<&&Fp256<P>> for Fp256<P>
where P: Fp256Parameters,

Source§

impl<P> Mul<&&Fp384<P>> for Fp384<P>
where P: Fp384Parameters,

Source§

impl<P> Mul<&Fp2<P>> for Fp2<P>
where P: Fp2Parameters,

Source§

impl<P> Mul<&Fp6<P>> for Fp6<P>
where P: Fp6Parameters,

Source§

impl<P> Mul<&Fp12<P>> for Fp12<P>
where P: Fp12Parameters,

Source§

impl<P> Mul<&Fp256<P>> for Fp256<P>
where P: Fp256Parameters,

Source§

impl<P> Mul<&Fp384<P>> for Fp384<P>
where P: Fp384Parameters,

Source§

impl<P> Mul<<P as ModelParameters>::ScalarField> for snarkvm_curves::templates::short_weierstrass_jacobian::affine::Affine<P>

Source§

impl<P> Mul<<P as ModelParameters>::ScalarField> for snarkvm_curves::templates::twisted_edwards_extended::affine::Affine<P>

Source§

impl<P> Mul<<P as ModelParameters>::ScalarField> for snarkvm_curves::templates::short_weierstrass_jacobian::projective::Projective<P>

Source§

impl<P> Mul<<P as ModelParameters>::ScalarField> for snarkvm_curves::templates::twisted_edwards_extended::projective::Projective<P>

Source§

impl<Rhs> Mul<Rhs> for ATerm

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>>,

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>>,

Source§

type Output = Simd<T, N>

Source§

impl<T> Mul for Checked<T>

Source§

impl<T> Mul for NonZero<T>
where T: Mul<Output = T>,

Any non-zero integer multiplied by another non-zero integer is definitionally non-zero.

Source§

impl<T> Mul for Odd<T>
where T: Mul<Output = T>,

Any odd integer multiplied by another odd integer is definitionally odd.

Source§

impl<T> Mul for crypto_bigint::wrapping::Wrapping<T>
where T: WrappingMul,

Source§

impl<T> Mul<&Checked<T>> for &Checked<T>

Source§

impl<T> Mul<&Checked<T>> for Checked<T>

Source§

impl<T> Mul<&Wrapping<T>> for &crypto_bigint::wrapping::Wrapping<T>
where T: WrappingMul,

Source§

impl<T> Mul<&Wrapping<T>> for crypto_bigint::wrapping::Wrapping<T>
where T: WrappingMul,

Source§

impl<T> Mul<Checked<T>> for &Checked<T>

Source§

impl<T> Mul<Wrapping<T>> for &crypto_bigint::wrapping::Wrapping<T>
where T: WrappingMul,

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<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<U> for UTerm
where U: Unsigned,

UTerm * U = UTerm

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<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, 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<V, A> Mul<TArr<V, A>> for Z0
where Z0: Mul<A>,

Source§

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

Source§

impl<const LIMBS: usize, const RHS_LIMBS: usize> Mul<&Int<RHS_LIMBS>> for &Int<LIMBS>

Source§

type Output = Int<LIMBS>

Source§

impl<const LIMBS: usize, const RHS_LIMBS: usize> Mul<&Int<RHS_LIMBS>> for Int<LIMBS>

Source§

type Output = Int<LIMBS>

Source§

impl<const LIMBS: usize, const RHS_LIMBS: usize> Mul<&Uint<RHS_LIMBS>> for &Int<LIMBS>

Source§

type Output = Int<LIMBS>

Source§

impl<const LIMBS: usize, const RHS_LIMBS: usize> Mul<&Uint<RHS_LIMBS>> for &Uint<LIMBS>

Source§

type Output = Uint<LIMBS>

Source§

impl<const LIMBS: usize, const RHS_LIMBS: usize> Mul<&Uint<RHS_LIMBS>> for Int<LIMBS>

Source§

type Output = Int<LIMBS>

Source§

impl<const LIMBS: usize, const RHS_LIMBS: usize> Mul<&Uint<RHS_LIMBS>> for Uint<LIMBS>

Source§

type Output = Uint<LIMBS>

Source§

impl<const LIMBS: usize, const RHS_LIMBS: usize> Mul<Int<RHS_LIMBS>> for &Int<LIMBS>

Source§

type Output = Int<LIMBS>

Source§

impl<const LIMBS: usize, const RHS_LIMBS: usize> Mul<Int<RHS_LIMBS>> for Int<LIMBS>

Source§

type Output = Int<LIMBS>

Source§

impl<const LIMBS: usize, const RHS_LIMBS: usize> Mul<Uint<RHS_LIMBS>> for &Int<LIMBS>

Source§

type Output = Int<LIMBS>

Source§

impl<const LIMBS: usize, const RHS_LIMBS: usize> Mul<Uint<RHS_LIMBS>> for &Uint<LIMBS>

Source§

type Output = Uint<LIMBS>

Source§

impl<const LIMBS: usize, const RHS_LIMBS: usize> Mul<Uint<RHS_LIMBS>> for Int<LIMBS>

Source§

type Output = Int<LIMBS>

Source§

impl<const LIMBS: usize, const RHS_LIMBS: usize> Mul<Uint<RHS_LIMBS>> for Uint<LIMBS>

Source§

type Output = Uint<LIMBS>

Source§

impl<const LIMBS: usize> Mul for FixedMontyForm<LIMBS>

Source§

impl<const LIMBS: usize> Mul<&FixedMontyForm<LIMBS>> for &FixedMontyForm<LIMBS>

Source§

impl<const LIMBS: usize> Mul<&FixedMontyForm<LIMBS>> for FixedMontyForm<LIMBS>

Source§

impl<const LIMBS: usize> Mul<FixedMontyForm<LIMBS>> for &FixedMontyForm<LIMBS>

Source§

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

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>
where i8: SimdElement,

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>
where u8: SimdElement,

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>