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 · 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§

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

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>

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

1.0.0 · Source§

impl Mul<&i8> for i8

1.0.0 · Source§

impl Mul<&i16> for &i16

1.0.0 · Source§

impl Mul<&i16> for i16

1.0.0 · Source§

impl Mul<&i32> for &i32

1.0.0 · Source§

impl Mul<&i32> for i32

1.0.0 · Source§

impl Mul<&i64> for &i64

1.0.0 · Source§

impl Mul<&i64> for i64

1.0.0 · Source§

impl Mul<&i128> for &i128

1.0.0 · Source§

impl Mul<&i128> for i128

1.0.0 · Source§

impl Mul<&isize> for &isize

1.0.0 · Source§

impl Mul<&isize> for isize

1.0.0 · Source§

impl Mul<&u8> for &u8

1.0.0 · Source§

impl Mul<&u8> for u8

1.0.0 · Source§

impl Mul<&u16> for &u16

1.0.0 · Source§

impl Mul<&u16> for u16

1.0.0 · Source§

impl Mul<&u32> for &u32

1.0.0 · Source§

impl Mul<&u32> for u32

1.0.0 · Source§

impl Mul<&u64> for &u64

1.0.0 · Source§

impl Mul<&u64> for u64

1.0.0 · Source§

impl Mul<&u128> for &u128

1.0.0 · Source§

impl Mul<&u128> for u128

1.0.0 · Source§

impl Mul<&usize> for &usize

1.0.0 · Source§

impl Mul<&usize> for usize

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>

1.3.0 · Source§

impl Mul<u32> for Duration

1.31.0 · Source§

impl Mul<Duration> for u32

Source§

impl Mul<Complex<f32>> for f32

Source§

impl Mul<Complex<f64>> for f64

Source§

impl Mul<Complex<i8>> for i8

Source§

impl Mul<Complex<i16>> for i16

Source§

impl Mul<Complex<i32>> for i32

Source§

impl Mul<Complex<i64>> for i64

Source§

impl Mul<Complex<i128>> for i128

Source§

impl Mul<Complex<isize>> for isize

Source§

impl Mul<Complex<u8>> for u8

Source§

impl Mul<Complex<u16>> for u16

Source§

impl Mul<Complex<u32>> for u32

Source§

impl Mul<Complex<u64>> for u64

Source§

impl Mul<Complex<u128>> for u128

Source§

impl Mul<Complex<usize>> for usize

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

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

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<Complex<f32>> for &'a f32

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

impl<'a, 'b> Mul<&'a Complex<f32>> for &'b f32

Source§

impl<'a, 'b> Mul<&'a Complex<f64>> for &'b f64

Source§

impl<'a, 'b> Mul<&'a Complex<i8>> for &'b i8

Source§

impl<'a, 'b> Mul<&'a Complex<i16>> for &'b i16

Source§

impl<'a, 'b> Mul<&'a Complex<i32>> for &'b i32

Source§

impl<'a, 'b> Mul<&'a Complex<i64>> for &'b i64

Source§

impl<'a, 'b> Mul<&'a Complex<i128>> for &'b i128

Source§

impl<'a, 'b> Mul<&'a Complex<isize>> for &'b isize

Source§

impl<'a, 'b> Mul<&'a Complex<u8>> for &'b u8

Source§

impl<'a, 'b> Mul<&'a Complex<u16>> for &'b u16

Source§

impl<'a, 'b> Mul<&'a Complex<u32>> for &'b u32

Source§

impl<'a, 'b> Mul<&'a Complex<u64>> for &'b u64

Source§

impl<'a, 'b> Mul<&'a Complex<u128>> for &'b u128

Source§

impl<'a, 'b> Mul<&'a Complex<usize>> for &'b usize

Source§

impl<'a, 'b, T> Mul<&'b Complex<T>> for &'a Complex<T>
where T: Clone + Num,

Source§

impl<'a, 'b, T> Mul<&'a T> for &'b Complex<T>
where T: Clone + Num,

Source§

impl<'a, A, B, S, S2, D, E> Mul<&'a ArrayBase<S2, E>> for &'a ArrayBase<S, D>
where A: Clone + Mul<B, Output = A>, B: Clone, S: Data<Elem = A>, S2: Data<Elem = B>, D: Dimension + DimMax<E>, E: Dimension,

Perform elementwise multiplication between references self and rhs, and return the result as a new Array.

If their shapes disagree, self and rhs is broadcast to their broadcast shape, cloning the data if needed.

Panics if broadcasting isn’t possible.

Source§

impl<'a, A, B, S, S2, D, E> Mul<&'a ArrayBase<S2, E>> for ArrayBase<S, D>
where A: Clone + Mul<B, Output = A>, B: Clone, S: DataOwned<Elem = A> + DataMut, S2: Data<Elem = B>, D: Dimension + DimMax<E>, E: Dimension,

Perform elementwise multiplication between self and reference rhs, and return the result.

rhs must be an Array or ArcArray.

If their shapes disagree, self is broadcast to their broadcast shape, cloning the data if needed.

Panics if broadcasting isn’t possible.

Source§

type Output = ArrayBase<S, <D as DimMax<E>>::Output>

Source§

impl<'a, A, B, S, S2, D, E> Mul<ArrayBase<S2, E>> for &'a ArrayBase<S, D>
where A: Clone + Mul<B, Output = B>, B: Clone, S: Data<Elem = A>, S2: DataOwned<Elem = B> + DataMut, D: Dimension, E: Dimension + DimMax<D>,

Perform elementwise multiplication between reference self and rhs, and return the result.

rhs must be an Array or ArcArray.

If their shapes disagree, self is broadcast to their broadcast shape, cloning the data if needed.

Panics if broadcasting isn’t possible.

Source§

type Output = ArrayBase<S2, <E as DimMax<D>>::Output>

Source§

impl<'a, A, S, D, B> Mul<B> for &'a ArrayBase<S, D>
where A: Clone + Mul<B, Output = A>, S: Data<Elem = A>, D: Dimension, B: ScalarOperand,

Perform elementwise multiplication between the reference self and the scalar x, and return the result as a new Array.

Source§

impl<'a, S, D> Mul<&'a ArrayBase<S, D>> for f32
where S: Data<Elem = f32>, D: Dimension,

Source§

impl<'a, S, D> Mul<&'a ArrayBase<S, D>> for f64
where S: Data<Elem = f64>, D: Dimension,

Source§

impl<'a, S, D> Mul<&'a ArrayBase<S, D>> for i8
where S: Data<Elem = i8>, D: Dimension,

Source§

impl<'a, S, D> Mul<&'a ArrayBase<S, D>> for i16
where S: Data<Elem = i16>, D: Dimension,

Source§

impl<'a, S, D> Mul<&'a ArrayBase<S, D>> for i32
where S: Data<Elem = i32>, D: Dimension,

Source§

impl<'a, S, D> Mul<&'a ArrayBase<S, D>> for i64
where S: Data<Elem = i64>, D: Dimension,

Source§

impl<'a, S, D> Mul<&'a ArrayBase<S, D>> for i128
where S: Data<Elem = i128>, D: Dimension,

Source§

impl<'a, S, D> Mul<&'a ArrayBase<S, D>> for isize
where S: Data<Elem = isize>, D: Dimension,

Source§

impl<'a, S, D> Mul<&'a ArrayBase<S, D>> for u8
where S: Data<Elem = u8>, D: Dimension,

Source§

impl<'a, S, D> Mul<&'a ArrayBase<S, D>> for u16
where S: Data<Elem = u16>, D: Dimension,

Source§

impl<'a, S, D> Mul<&'a ArrayBase<S, D>> for u32
where S: Data<Elem = u32>, D: Dimension,

Source§

impl<'a, S, D> Mul<&'a ArrayBase<S, D>> for u64
where S: Data<Elem = u64>, D: Dimension,

Source§

impl<'a, S, D> Mul<&'a ArrayBase<S, D>> for u128
where S: Data<Elem = u128>, D: Dimension,

Source§

impl<'a, S, D> Mul<&'a ArrayBase<S, D>> for usize
where S: Data<Elem = usize>, D: Dimension,

Source§

impl<'a, S, D> Mul<&'a ArrayBase<S, D>> for Complex<f32>
where S: Data<Elem = Complex<f32>>, D: Dimension,

Source§

impl<'a, S, D> Mul<&'a ArrayBase<S, D>> for Complex<f64>
where S: Data<Elem = Complex<f64>>, D: Dimension,

Source§

impl<'a, T> Mul<&'a Complex<T>> for Complex<T>
where T: Clone + Num,

Source§

impl<'a, T> Mul<&'a T> for Complex<T>
where T: Clone + Num,

Source§

impl<'a, T> Mul<Complex<T>> for &'a Complex<T>
where T: Clone + Num,

Source§

impl<'a, T> Mul<T> for &'a Complex<T>
where T: Clone + Num,

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<A, B, S, S2, D, E> Mul<ArrayBase<S2, E>> for ArrayBase<S, D>
where A: Clone + Mul<B, Output = A>, B: Clone, S: DataOwned<Elem = A> + DataMut, S2: Data<Elem = B>, D: Dimension + DimMax<E>, E: Dimension,

Perform elementwise multiplication between self and rhs, and return the result.

self must be an Array or ArcArray.

If their shapes disagree, self is broadcast to their broadcast shape.

Panics if broadcasting isn’t possible.

Source§

type Output = ArrayBase<S, <D as DimMax<E>>::Output>

Source§

impl<A, S, D, B> Mul<B> for ArrayBase<S, D>
where A: Clone + Mul<B, Output = A>, S: DataOwned<Elem = A> + DataMut, D: Dimension, B: ScalarOperand,

Perform elementwise multiplication between self and the scalar x, and return the result (based on self).

self must be an Array or ArcArray.

Source§

impl<E> Mul for Quat<E>
where E: MatEl + NdFloat,

Source§

impl<E> Mul<E> for Quat<E>
where E: MatEl + NdFloat,

Source§

impl<E, const LEN: usize> Mul for Vector<E, LEN>
where E: MatEl + NdFloat,

Source§

type Output = Vector<E, LEN>

Source§

impl<E, const LEN: usize> Mul<E> for Vector<E, LEN>
where E: MatEl + NdFloat,

Source§

type Output = Vector<E, LEN>

Source§

impl<E, const ROWS: usize, const COLS: usize, Descriptor> Mul<&Vector<E, COLS>> for &Mat<ROWS, COLS, E, Descriptor>
where Descriptor: Descriptor, E: MatEl + NdFloat, Mat<ROWS, COLS, E, Descriptor>: Indexable<Index = Ix2> + IndexingRef<Scalar = E>,

Source§

type Output = Vector<E, COLS>

Source§

impl<E, const ROWS: usize, const COLS: usize, Descriptor> Mul<Vector<E, COLS>> for Mat<ROWS, COLS, E, Descriptor>
where Descriptor: Descriptor, E: MatEl + NdFloat, Mat<ROWS, COLS, E, Descriptor>: Indexable<Index = Ix2> + IndexingRef<Scalar = E>,

Source§

type Output = Vector<E, COLS>

Source§

impl<E, const ROWS: usize, const COLS: usize, const COLS2: usize, Descriptor> Mul<&Mat<COLS, COLS2, E, Descriptor>> for &Mat<ROWS, COLS, E, Descriptor>
where Descriptor: Descriptor, E: MatEl + NdFloat, Mat<ROWS, COLS, E, Descriptor>: Indexable<Index = Ix2> + IndexingMut<Scalar = E>, Mat<COLS, COLS2, E, Descriptor>: Indexable<Index = Ix2> + IndexingRef<Scalar = E>, Mat<ROWS, COLS2, E, Descriptor>: Indexable<Index = Ix2> + ScalarMut<Scalar = E>,

Source§

type Output = Mat<ROWS, COLS2, E, Descriptor>

Source§

impl<E, const ROWS: usize, const COLS: usize, const COLS2: usize, Descriptor> Mul<Mat<COLS, COLS2, E, Descriptor>> for Mat<ROWS, COLS, E, Descriptor>
where Descriptor: Descriptor, E: MatEl + NdFloat, Mat<ROWS, COLS, E, Descriptor>: Indexable<Index = Ix2> + IndexingMut<Scalar = E>, Mat<COLS, COLS2, E, Descriptor>: Indexable<Index = Ix2> + IndexingRef<Scalar = E>, Mat<ROWS, COLS2, E, Descriptor>: Indexable<Index = Ix2> + ScalarMut<Scalar = E>,

Source§

type Output = Mat<ROWS, COLS2, E, Descriptor>

Source§

impl<I> Mul for Dim<I>
where Dim<I>: Dimension,

Source§

impl<I> Mul<usize> for Dim<I>
where Dim<I>: Dimension,

Source§

impl<S, D> Mul<ArrayBase<S, D>> for f32
where S: DataOwned<Elem = f32> + DataMut, D: Dimension,

Source§

impl<S, D> Mul<ArrayBase<S, D>> for f64
where S: DataOwned<Elem = f64> + DataMut, D: Dimension,

Source§

impl<S, D> Mul<ArrayBase<S, D>> for i8
where S: DataOwned<Elem = i8> + DataMut, D: Dimension,

Source§

impl<S, D> Mul<ArrayBase<S, D>> for i16
where S: DataOwned<Elem = i16> + DataMut, D: Dimension,

Source§

impl<S, D> Mul<ArrayBase<S, D>> for i32
where S: DataOwned<Elem = i32> + DataMut, D: Dimension,

Source§

impl<S, D> Mul<ArrayBase<S, D>> for i64
where S: DataOwned<Elem = i64> + DataMut, D: Dimension,

Source§

impl<S, D> Mul<ArrayBase<S, D>> for i128
where S: DataOwned<Elem = i128> + DataMut, D: Dimension,

Source§

impl<S, D> Mul<ArrayBase<S, D>> for isize
where S: DataOwned<Elem = isize> + DataMut, D: Dimension,

Source§

impl<S, D> Mul<ArrayBase<S, D>> for u8
where S: DataOwned<Elem = u8> + DataMut, D: Dimension,

Source§

impl<S, D> Mul<ArrayBase<S, D>> for u16
where S: DataOwned<Elem = u16> + DataMut, D: Dimension,

Source§

impl<S, D> Mul<ArrayBase<S, D>> for u32
where S: DataOwned<Elem = u32> + DataMut, D: Dimension,

Source§

impl<S, D> Mul<ArrayBase<S, D>> for u64
where S: DataOwned<Elem = u64> + DataMut, D: Dimension,

Source§

impl<S, D> Mul<ArrayBase<S, D>> for u128
where S: DataOwned<Elem = u128> + DataMut, D: Dimension,

Source§

impl<S, D> Mul<ArrayBase<S, D>> for usize
where S: DataOwned<Elem = usize> + DataMut, D: Dimension,

Source§

impl<S, D> Mul<ArrayBase<S, D>> for Complex<f32>
where S: DataOwned<Elem = Complex<f32>> + DataMut, D: Dimension,

Source§

impl<S, D> Mul<ArrayBase<S, D>> for Complex<f64>
where S: DataOwned<Elem = Complex<f64>> + DataMut, D: Dimension,

Source§

impl<T> Mul for Complex<T>
where T: Clone + Num,

Source§

impl<T> Mul<T> for Complex<T>
where T: Clone + Num,

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<const LEN: usize> Mul<Vector<f32, LEN>> for f32

Source§

impl<const LEN: usize> Mul<Vector<f64, LEN>> for f64

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>