Trait Add

1.0.0 (const: unstable) · Source
pub trait Add<Rhs = Self> {
    type Output;

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

The addition operator +.

Note that Rhs is Self by default, but this is not mandatory. For example, std::time::SystemTime implements Add<Duration>, which permits operations of the form SystemTime = SystemTime + Duration.

§Examples

§Addable points

use std::ops::Add;

#[derive(Debug, Copy, Clone, PartialEq)]
struct Point {
    x: i32,
    y: i32,
}

impl Add for Point {
    type Output = Self;

    fn add(self, other: Self) -> Self {
        Self {
            x: self.x + other.x,
            y: self.y + other.y,
        }
    }
}

assert_eq!(Point { x: 1, y: 0 } + Point { x: 2, y: 3 },
           Point { x: 3, y: 3 });

§Implementing Add with generics

Here is an example of the same Point struct implementing the Add trait using generics.

use std::ops::Add;

#[derive(Debug, Copy, Clone, PartialEq)]
struct Point<T> {
    x: T,
    y: T,
}

// Notice that the implementation uses the associated type `Output`.
impl<T: Add<Output = T>> Add for Point<T> {
    type Output = Self;

    fn add(self, other: Self) -> Self::Output {
        Self {
            x: self.x + other.x,
            y: self.y + other.y,
        }
    }
}

assert_eq!(Point { x: 1, y: 0 } + Point { x: 2, y: 3 },
           Point { x: 3, y: 3 });

Required Associated Types§

1.0.0 · Source

type Output

The resulting type after applying the + operator.

Required Methods§

1.0.0 · Source

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

Performs the + operation.

§Example
assert_eq!(12 + 1, 13);

Implementors§

1.0.0 (const: unstable) · Source§

impl Add for f16

1.0.0 (const: unstable) · Source§

impl Add for f32

1.0.0 (const: unstable) · Source§

impl Add for f64

1.0.0 (const: unstable) · Source§

impl Add for f128

1.0.0 (const: unstable) · Source§

impl Add for i8

1.0.0 (const: unstable) · Source§

impl Add for i16

1.0.0 (const: unstable) · Source§

impl Add for i32

1.0.0 (const: unstable) · Source§

impl Add for i64

1.0.0 (const: unstable) · Source§

impl Add for i128

1.0.0 (const: unstable) · Source§

impl Add for isize

1.0.0 (const: unstable) · Source§

impl Add for u8

1.0.0 (const: unstable) · Source§

impl Add for u16

1.0.0 (const: unstable) · Source§

impl Add for u32

1.0.0 (const: unstable) · Source§

impl Add for u64

1.0.0 (const: unstable) · Source§

impl Add for u128

1.0.0 (const: unstable) · Source§

impl Add for usize

Source§

impl Add for Assume

1.74.0 · Source§

impl Add for Saturating<i8>

1.74.0 · Source§

impl Add for Saturating<i16>

1.74.0 · Source§

impl Add for Saturating<i32>

1.74.0 · Source§

impl Add for Saturating<i64>

1.74.0 · Source§

impl Add for Saturating<i128>

1.74.0 · Source§

impl Add for Saturating<isize>

1.74.0 · Source§

impl Add for Saturating<u8>

1.74.0 · Source§

impl Add for Saturating<u16>

1.74.0 · Source§

impl Add for Saturating<u32>

1.74.0 · Source§

impl Add for Saturating<u64>

1.74.0 · Source§

impl Add for Saturating<u128>

1.74.0 · Source§

impl Add for Saturating<usize>

1.0.0 · Source§

impl Add for Wrapping<i8>

1.0.0 · Source§

impl Add for Wrapping<i16>

1.0.0 · Source§

impl Add for Wrapping<i32>

1.0.0 · Source§

impl Add for Wrapping<i64>

1.0.0 · Source§

impl Add for Wrapping<i128>

1.0.0 · Source§

impl Add for Wrapping<isize>

1.0.0 · Source§

impl Add for Wrapping<u8>

1.0.0 · Source§

impl Add for Wrapping<u16>

1.0.0 · Source§

impl Add for Wrapping<u32>

1.0.0 · Source§

impl Add for Wrapping<u64>

1.0.0 · Source§

impl Add for Wrapping<u128>

1.0.0 · Source§

impl Add for Wrapping<usize>

1.3.0 · Source§

impl Add for Duration

1.0.0 · Source§

impl Add<&f16> for &f16

1.0.0 · Source§

impl Add<&f16> for f16

1.0.0 · Source§

impl Add<&f32> for &f32

1.0.0 · Source§

impl Add<&f32> for f32

1.0.0 · Source§

impl Add<&f64> for &f64

1.0.0 · Source§

impl Add<&f64> for f64

1.0.0 · Source§

impl Add<&f128> for &f128

1.0.0 · Source§

impl Add<&f128> for f128

1.0.0 · Source§

impl Add<&i8> for &i8

1.0.0 · Source§

impl Add<&i8> for i8

1.0.0 · Source§

impl Add<&i16> for &i16

1.0.0 · Source§

impl Add<&i16> for i16

1.0.0 · Source§

impl Add<&i32> for &i32

1.0.0 · Source§

impl Add<&i32> for i32

1.0.0 · Source§

impl Add<&i64> for &i64

1.0.0 · Source§

impl Add<&i64> for i64

1.0.0 · Source§

impl Add<&i128> for &i128

1.0.0 · Source§

impl Add<&i128> for i128

1.0.0 · Source§

impl Add<&isize> for &isize

1.0.0 · Source§

impl Add<&isize> for isize

1.0.0 · Source§

impl Add<&str> for String

Implements the + operator for concatenating two strings.

This consumes the String on the left-hand side and re-uses its buffer (growing it if necessary). This is done to avoid allocating a new String and copying the entire contents on every operation, which would lead to O(n^2) running time when building an n-byte string by repeated concatenation.

The string on the right-hand side is only borrowed; its contents are copied into the returned String.

§Examples

Concatenating two Strings takes the first by value and borrows the second:

let a = String::from("hello");
let b = String::from(" world");
let c = a + &b;
// `a` is moved and can no longer be used here.

If you want to keep using the first String, you can clone it and append to the clone instead:

let a = String::from("hello");
let b = String::from(" world");
let c = a.clone() + &b;
// `a` is still valid here.

Concatenating &str slices can be done by converting the first to a String:

let a = "hello";
let b = " world";
let c = a.to_string() + b;
1.0.0 · Source§

impl Add<&u8> for &u8

1.0.0 · Source§

impl Add<&u8> for u8

1.0.0 · Source§

impl Add<&u16> for &u16

1.0.0 · Source§

impl Add<&u16> for u16

1.0.0 · Source§

impl Add<&u32> for &u32

1.0.0 · Source§

impl Add<&u32> for u32

1.0.0 · Source§

impl Add<&u64> for &u64

1.0.0 · Source§

impl Add<&u64> for u64

1.0.0 · Source§

impl Add<&u128> for &u128

1.0.0 · Source§

impl Add<&u128> for u128

1.0.0 · Source§

impl Add<&usize> for &usize

1.0.0 · Source§

impl Add<&usize> for usize

1.74.0 · Source§

impl Add<&Saturating<i8>> for &Saturating<i8>

1.74.0 · Source§

impl Add<&Saturating<i8>> for Saturating<i8>

1.74.0 · Source§

impl Add<&Saturating<i16>> for &Saturating<i16>

1.74.0 · Source§

impl Add<&Saturating<i16>> for Saturating<i16>

1.74.0 · Source§

impl Add<&Saturating<i32>> for &Saturating<i32>

1.74.0 · Source§

impl Add<&Saturating<i32>> for Saturating<i32>

1.74.0 · Source§

impl Add<&Saturating<i64>> for &Saturating<i64>

1.74.0 · Source§

impl Add<&Saturating<i64>> for Saturating<i64>

1.74.0 · Source§

impl Add<&Saturating<i128>> for &Saturating<i128>

1.74.0 · Source§

impl Add<&Saturating<i128>> for Saturating<i128>

1.74.0 · Source§

impl Add<&Saturating<isize>> for &Saturating<isize>

1.74.0 · Source§

impl Add<&Saturating<isize>> for Saturating<isize>

1.74.0 · Source§

impl Add<&Saturating<u8>> for &Saturating<u8>

1.74.0 · Source§

impl Add<&Saturating<u8>> for Saturating<u8>

1.74.0 · Source§

impl Add<&Saturating<u16>> for &Saturating<u16>

1.74.0 · Source§

impl Add<&Saturating<u16>> for Saturating<u16>

1.74.0 · Source§

impl Add<&Saturating<u32>> for &Saturating<u32>

1.74.0 · Source§

impl Add<&Saturating<u32>> for Saturating<u32>

1.74.0 · Source§

impl Add<&Saturating<u64>> for &Saturating<u64>

1.74.0 · Source§

impl Add<&Saturating<u64>> for Saturating<u64>

1.74.0 · Source§

impl Add<&Saturating<u128>> for &Saturating<u128>

1.74.0 · Source§

impl Add<&Saturating<u128>> for Saturating<u128>

1.74.0 · Source§

impl Add<&Saturating<usize>> for &Saturating<usize>

1.74.0 · Source§

impl Add<&Saturating<usize>> for Saturating<usize>

1.14.0 · Source§

impl Add<&Wrapping<i8>> for &Wrapping<i8>

1.14.0 · Source§

impl Add<&Wrapping<i8>> for Wrapping<i8>

1.14.0 · Source§

impl Add<&Wrapping<i16>> for &Wrapping<i16>

1.14.0 · Source§

impl Add<&Wrapping<i16>> for Wrapping<i16>

1.14.0 · Source§

impl Add<&Wrapping<i32>> for &Wrapping<i32>

1.14.0 · Source§

impl Add<&Wrapping<i32>> for Wrapping<i32>

1.14.0 · Source§

impl Add<&Wrapping<i64>> for &Wrapping<i64>

1.14.0 · Source§

impl Add<&Wrapping<i64>> for Wrapping<i64>

1.14.0 · Source§

impl Add<&Wrapping<i128>> for &Wrapping<i128>

1.14.0 · Source§

impl Add<&Wrapping<i128>> for Wrapping<i128>

1.14.0 · Source§

impl Add<&Wrapping<isize>> for &Wrapping<isize>

1.14.0 · Source§

impl Add<&Wrapping<isize>> for Wrapping<isize>

1.14.0 · Source§

impl Add<&Wrapping<u8>> for &Wrapping<u8>

1.14.0 · Source§

impl Add<&Wrapping<u8>> for Wrapping<u8>

1.14.0 · Source§

impl Add<&Wrapping<u16>> for &Wrapping<u16>

1.14.0 · Source§

impl Add<&Wrapping<u16>> for Wrapping<u16>

1.14.0 · Source§

impl Add<&Wrapping<u32>> for &Wrapping<u32>

1.14.0 · Source§

impl Add<&Wrapping<u32>> for Wrapping<u32>

1.14.0 · Source§

impl Add<&Wrapping<u64>> for &Wrapping<u64>

1.14.0 · Source§

impl Add<&Wrapping<u64>> for Wrapping<u64>

1.14.0 · Source§

impl Add<&Wrapping<u128>> for &Wrapping<u128>

1.14.0 · Source§

impl Add<&Wrapping<u128>> for Wrapping<u128>

1.14.0 · Source§

impl Add<&Wrapping<usize>> for &Wrapping<usize>

1.14.0 · Source§

impl Add<&Wrapping<usize>> for Wrapping<usize>

Source§

impl Add<usize> for Dim<[usize; 1]>

1.8.0 · Source§

impl Add<Duration> for Instant

1.8.0 · Source§

impl Add<Duration> for SystemTime

Source§

impl Add<Complex<f32>> for f32

Source§

impl Add<Complex<f64>> for f64

Source§

impl Add<Complex<i8>> for i8

Source§

impl Add<Complex<i16>> for i16

Source§

impl Add<Complex<i32>> for i32

Source§

impl Add<Complex<i64>> for i64

Source§

impl Add<Complex<i128>> for i128

Source§

impl Add<Complex<isize>> for isize

Source§

impl Add<Complex<u8>> for u8

Source§

impl Add<Complex<u16>> for u16

Source§

impl Add<Complex<u32>> for u32

Source§

impl Add<Complex<u64>> for u64

Source§

impl Add<Complex<u128>> for u128

Source§

impl Add<Complex<usize>> for usize

1.14.0 · Source§

impl<'a> Add for Cow<'a, str>

Source§

type Output = Cow<'a, str>

1.14.0 · Source§

impl<'a> Add<&'a str> for Cow<'a, str>

Source§

type Output = Cow<'a, str>

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

1.0.0 · Source§

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

1.0.0 · Source§

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

1.0.0 · Source§

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

1.0.0 · Source§

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

1.0.0 · Source§

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

1.0.0 · Source§

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

1.0.0 · Source§

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

1.0.0 · Source§

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

1.0.0 · Source§

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

1.0.0 · Source§

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

1.0.0 · Source§

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

1.0.0 · Source§

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

1.0.0 · Source§

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

1.0.0 · Source§

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

1.0.0 · Source§

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

1.0.0 · Source§

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

1.74.0 · Source§

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

1.74.0 · Source§

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

1.74.0 · Source§

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

1.74.0 · Source§

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

1.74.0 · Source§

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

1.74.0 · Source§

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

1.74.0 · Source§

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

1.74.0 · Source§

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

1.74.0 · Source§

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

1.74.0 · Source§

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

1.74.0 · Source§

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

1.74.0 · Source§

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

1.14.0 · Source§

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

1.14.0 · Source§

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

1.14.0 · Source§

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

1.14.0 · Source§

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

1.14.0 · Source§

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

1.14.0 · Source§

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

1.14.0 · Source§

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

1.14.0 · Source§

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

1.14.0 · Source§

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

1.14.0 · Source§

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

1.14.0 · Source§

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

1.14.0 · Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Perform elementwise addition 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> Add<&'a ArrayBase<S2, E>> for ArrayBase<S, D>
where A: Clone + Add<B, Output = A>, B: Clone, S: DataOwned<Elem = A> + DataMut, S2: Data<Elem = B>, D: Dimension + DimMax<E>, E: Dimension,

Perform elementwise addition 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> Add<ArrayBase<S2, E>> for &'a ArrayBase<S, D>
where A: Clone + Add<B, Output = B>, B: Clone, S: Data<Elem = A>, S2: DataOwned<Elem = B> + DataMut, D: Dimension, E: Dimension + DimMax<D>,

Perform elementwise addition 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> Add<B> for &'a ArrayBase<S, D>
where A: Clone + Add<B, Output = A>, S: Data<Elem = A>, D: Dimension, B: ScalarOperand,

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

type Output = Simd<T, N>

Source§

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

Perform elementwise addition 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> Add<B> for ArrayBase<S, D>
where A: Clone + Add<B, Output = A>, S: DataOwned<Elem = A> + DataMut, D: Dimension, B: ScalarOperand,

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

self must be an Array or ArcArray.

Source§

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

Source§

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

Source§

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

Source§

type Output = Vector<E, LEN>

Source§

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

Source§

type Output = Vector<E, LEN>

Source§

impl<E, const LEN: usize> Add<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> Add for Mat<ROWS, COLS, E, Descriptor>
where E: MatEl + NdFloat, Descriptor: Descriptor, Mat<ROWS, COLS, E, Descriptor>: Indexable<Index = Ix2> + IndexingMut<Scalar = E>,

Source§

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

Source§

impl<E, const ROWS: usize, const COLS: usize, Descriptor> Add<&Mat<ROWS, COLS, 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>,

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

type Output = Simd<T, N>

Source§

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

Source§

type Output = Simd<T, N>

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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