Coverage Report

Created: 2026-03-11 07:34

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/rust/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.17.2/src/impl_ops.rs
Line
Count
Source
1
// Copyright 2014-2016 bluss and ndarray developers.
2
//
3
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
4
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
5
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
6
// option. This file may not be copied, modified, or distributed
7
// except according to those terms.
8
9
use crate::dimension::DimMax;
10
use crate::Zip;
11
use num_complex::Complex;
12
13
/// Elements that can be used as direct operands in arithmetic with arrays.
14
///
15
/// For example, `f64` is a `ScalarOperand` which means that for an array `a`,
16
/// arithmetic like `a + 1.0`, and, `a * 2.`, and `a += 3.` are allowed.
17
///
18
/// In the description below, let `A` be an array or array view,
19
/// let `B` be an array with owned data,
20
/// and let `C` be an array with mutable data.
21
///
22
/// `ScalarOperand` determines for which scalars `K` operations `&A @ K`, and `B @ K`,
23
/// and `C @= K` are defined, as ***right hand side operands***, for applicable
24
/// arithmetic operators (denoted `@`).
25
///
26
/// ***Left hand side*** scalar operands are not related to this trait
27
/// (they need one `impl` per concrete scalar type); but they are still
28
/// implemented for the same types, allowing operations
29
/// `K @ &A`, and `K @ B` for primitive numeric types `K`.
30
///
31
/// This trait ***does not*** limit which elements can be stored in an array in general.
32
/// Non-`ScalarOperand` types can still participate in arithmetic as array elements in
33
/// in array-array operations.
34
pub trait ScalarOperand: 'static + Clone {}
35
impl ScalarOperand for bool {}
36
impl ScalarOperand for i8 {}
37
impl ScalarOperand for u8 {}
38
impl ScalarOperand for i16 {}
39
impl ScalarOperand for u16 {}
40
impl ScalarOperand for i32 {}
41
impl ScalarOperand for u32 {}
42
impl ScalarOperand for i64 {}
43
impl ScalarOperand for u64 {}
44
impl ScalarOperand for i128 {}
45
impl ScalarOperand for u128 {}
46
impl ScalarOperand for isize {}
47
impl ScalarOperand for usize {}
48
impl ScalarOperand for f32 {}
49
impl ScalarOperand for f64 {}
50
impl ScalarOperand for Complex<f32> {}
51
impl ScalarOperand for Complex<f64> {}
52
53
macro_rules! impl_binary_op(
54
    ($trt:ident, $operator:tt, $mth:ident, $iop:tt, $doc:expr) => (
55
/// Perform elementwise
56
#[doc=$doc]
57
/// between `self` and `rhs`,
58
/// and return the result.
59
///
60
/// `self` must be an `Array` or `ArcArray`.
61
///
62
/// If their shapes disagree, `self` is broadcast to their broadcast shape.
63
///
64
/// **Panics** if broadcasting isn’t possible.
65
impl<A, B, S, S2, D, E> $trt<ArrayBase<S2, E>> for ArrayBase<S, D>
66
where
67
    A: Clone + $trt<B, Output=A>,
68
    B: Clone,
69
    S: DataOwned<Elem=A> + DataMut,
70
    S2: Data<Elem=B>,
71
    D: Dimension + DimMax<E>,
72
    E: Dimension,
73
{
74
    type Output = ArrayBase<S, <D as DimMax<E>>::Output>;
75
76
    #[track_caller]
77
0
    fn $mth(self, rhs: ArrayBase<S2, E>) -> Self::Output
78
    {
79
0
        self.$mth(&rhs)
80
0
    }
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::bit::BitOr<ndarray::ArrayBase<_, _, _>>>::bitor
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::bit::BitXor<ndarray::ArrayBase<_, _, _>>>::bitxor
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::bit::Shl<ndarray::ArrayBase<_, _, _>>>::shl
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::bit::Shr<ndarray::ArrayBase<_, _, _>>>::shr
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::arith::Add<ndarray::ArrayBase<_, _, _>>>::add
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::arith::Rem<ndarray::ArrayBase<_, _, _>>>::rem
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::bit::BitAnd<ndarray::ArrayBase<_, _, _>>>::bitand
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::arith::Sub<ndarray::ArrayBase<_, _, _>>>::sub
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::arith::Mul<ndarray::ArrayBase<_, _, _>>>::mul
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::arith::Div<ndarray::ArrayBase<_, _, _>>>::div
81
}
82
83
/// Perform elementwise
84
#[doc=$doc]
85
/// between `self` and reference `rhs`,
86
/// and return the result.
87
///
88
/// `rhs` must be an `Array` or `ArcArray`.
89
///
90
/// If their shapes disagree, `self` is broadcast to their broadcast shape,
91
/// cloning the data if needed.
92
///
93
/// **Panics** if broadcasting isn’t possible.
94
impl<'a, A, B, S, S2, D, E> $trt<&'a ArrayBase<S2, E>> for ArrayBase<S, D>
95
where
96
    A: Clone + $trt<B, Output=A>,
97
    B: Clone,
98
    S: DataOwned<Elem=A> + DataMut,
99
    S2: Data<Elem=B>,
100
    D: Dimension + DimMax<E>,
101
    E: Dimension,
102
{
103
    type Output = ArrayBase<S, <D as DimMax<E>>::Output>;
104
105
    #[track_caller]
106
0
    fn $mth(self, rhs: &ArrayBase<S2, E>) -> Self::Output
107
    {
108
0
        self.$mth(&**rhs)
109
0
    }
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::bit::BitOr<&ndarray::ArrayBase<_, _, _>>>::bitor
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::bit::BitXor<&ndarray::ArrayBase<_, _, _>>>::bitxor
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::bit::Shl<&ndarray::ArrayBase<_, _, _>>>::shl
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::bit::Shr<&ndarray::ArrayBase<_, _, _>>>::shr
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::arith::Add<&ndarray::ArrayBase<_, _, _>>>::add
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::arith::Rem<&ndarray::ArrayBase<_, _, _>>>::rem
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::bit::BitAnd<&ndarray::ArrayBase<_, _, _>>>::bitand
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::arith::Sub<&ndarray::ArrayBase<_, _, _>>>::sub
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::arith::Mul<&ndarray::ArrayBase<_, _, _>>>::mul
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::arith::Div<&ndarray::ArrayBase<_, _, _>>>::div
110
}
111
112
/// Perform elementwise
113
#[doc=$doc]
114
/// between `self` and reference `rhs`,
115
/// and return the result.
116
///
117
/// `rhs` must be an `Array` or `ArcArray`.
118
///
119
/// If their shapes disagree, `self` is broadcast to their broadcast shape,
120
/// cloning the data if needed.
121
///
122
/// **Panics** if broadcasting isn’t possible.
123
impl<'a, A, B, S, D, E> $trt<&'a ArrayRef<B, E>> for ArrayBase<S, D>
124
where
125
    A: Clone + $trt<B, Output=A>,
126
    B: Clone,
127
    S: DataOwned<Elem=A> + DataMut,
128
    D: Dimension + DimMax<E>,
129
    E: Dimension,
130
{
131
    type Output = ArrayBase<S, <D as DimMax<E>>::Output>;
132
133
    #[track_caller]
134
0
    fn $mth(self, rhs: &ArrayRef<B, E>) -> Self::Output
135
    {
136
0
        if self.ndim() == rhs.ndim() && self.shape() == rhs.shape() {
137
0
            let mut out = self.into_dimensionality::<<D as DimMax<E>>::Output>().unwrap();
138
0
            out.zip_mut_with_same_shape(rhs, clone_iopf(A::$mth));
139
0
            out
140
        } else {
141
0
            let (lhs_view, rhs_view) = self.broadcast_with(&rhs).unwrap();
142
0
            if lhs_view.shape() == self.shape() {
143
0
                let mut out = self.into_dimensionality::<<D as DimMax<E>>::Output>().unwrap();
144
0
                out.zip_mut_with_same_shape(&rhs_view, clone_iopf(A::$mth));
145
0
                out
146
            } else {
147
0
                Zip::from(&lhs_view).and(&rhs_view).map_collect_owned(clone_opf(A::$mth))
148
            }
149
        }
150
0
    }
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::bit::BitOr<&ndarray::ArrayRef<_, _>>>::bitor
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::bit::BitXor<&ndarray::ArrayRef<_, _>>>::bitxor
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::bit::Shl<&ndarray::ArrayRef<_, _>>>::shl
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::bit::Shr<&ndarray::ArrayRef<_, _>>>::shr
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::arith::Add<&ndarray::ArrayRef<_, _>>>::add
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::arith::Div<&ndarray::ArrayRef<_, _>>>::div
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::arith::Rem<&ndarray::ArrayRef<_, _>>>::rem
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::bit::BitAnd<&ndarray::ArrayRef<_, _>>>::bitand
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::arith::Sub<&ndarray::ArrayRef<_, _>>>::sub
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::arith::Mul<&ndarray::ArrayRef<_, _>>>::mul
151
}
152
153
/// Perform elementwise
154
#[doc=$doc]
155
/// between reference `self` and `rhs`,
156
/// and return the result.
157
///
158
/// `rhs` must be an `Array` or `ArcArray`.
159
///
160
/// If their shapes disagree, `self` is broadcast to their broadcast shape,
161
/// cloning the data if needed.
162
///
163
/// **Panics** if broadcasting isn’t possible.
164
impl<'a, A, B, S, S2, D, E> $trt<ArrayBase<S2, E>> for &'a ArrayBase<S, D>
165
where
166
    A: Clone + $trt<B, Output=B>,
167
    B: Clone,
168
    S: Data<Elem=A>,
169
    S2: DataOwned<Elem=B> + DataMut,
170
    D: Dimension,
171
    E: Dimension + DimMax<D>,
172
{
173
    type Output = ArrayBase<S2, <E as DimMax<D>>::Output>;
174
175
    #[track_caller]
176
0
    fn $mth(self, rhs: ArrayBase<S2, E>) -> Self::Output
177
0
    where
178
    {
179
0
        (&**self).$mth(rhs)
180
0
    }
Unexecuted instantiation: <&ndarray::ArrayBase<_, _, _> as core::ops::bit::BitOr<ndarray::ArrayBase<_, _, _>>>::bitor
Unexecuted instantiation: <&ndarray::ArrayBase<_, _, _> as core::ops::bit::BitXor<ndarray::ArrayBase<_, _, _>>>::bitxor
Unexecuted instantiation: <&ndarray::ArrayBase<_, _, _> as core::ops::bit::Shl<ndarray::ArrayBase<_, _, _>>>::shl
Unexecuted instantiation: <&ndarray::ArrayBase<_, _, _> as core::ops::bit::Shr<ndarray::ArrayBase<_, _, _>>>::shr
Unexecuted instantiation: <&ndarray::ArrayBase<_, _, _> as core::ops::arith::Add<ndarray::ArrayBase<_, _, _>>>::add
Unexecuted instantiation: <&ndarray::ArrayBase<_, _, _> as core::ops::arith::Div<ndarray::ArrayBase<_, _, _>>>::div
Unexecuted instantiation: <&ndarray::ArrayBase<_, _, _> as core::ops::arith::Rem<ndarray::ArrayBase<_, _, _>>>::rem
Unexecuted instantiation: <&ndarray::ArrayBase<_, _, _> as core::ops::bit::BitAnd<ndarray::ArrayBase<_, _, _>>>::bitand
Unexecuted instantiation: <&ndarray::ArrayBase<_, _, _> as core::ops::arith::Sub<ndarray::ArrayBase<_, _, _>>>::sub
Unexecuted instantiation: <&ndarray::ArrayBase<_, _, _> as core::ops::arith::Mul<ndarray::ArrayBase<_, _, _>>>::mul
181
}
182
183
/// Perform elementwise
184
#[doc=$doc]
185
/// between reference `self` and `rhs`,
186
/// and return the result.
187
///
188
/// `rhs` must be an `Array` or `ArcArray`.
189
///
190
/// If their shapes disagree, `self` is broadcast to their broadcast shape,
191
/// cloning the data if needed.
192
///
193
/// **Panics** if broadcasting isn’t possible.
194
impl<'a, A, B, S2, D, E> $trt<ArrayBase<S2, E>> for &'a ArrayRef<A, D>
195
where
196
    A: Clone + $trt<B, Output=B>,
197
    B: Clone,
198
    S2: DataOwned<Elem=B> + DataMut,
199
    D: Dimension,
200
    E: Dimension + DimMax<D>,
201
{
202
    type Output = ArrayBase<S2, <E as DimMax<D>>::Output>;
203
204
    #[track_caller]
205
0
    fn $mth(self, rhs: ArrayBase<S2, E>) -> Self::Output
206
0
    where
207
    {
208
0
        if self.ndim() == rhs.ndim() && self.shape() == rhs.shape() {
209
0
            let mut out = rhs.into_dimensionality::<<E as DimMax<D>>::Output>().unwrap();
210
0
            out.zip_mut_with_same_shape(self, clone_iopf_rev(A::$mth));
211
0
            out
212
        } else {
213
0
            let (rhs_view, lhs_view) = rhs.broadcast_with(self).unwrap();
214
0
            if rhs_view.shape() == rhs.shape() {
215
0
                let mut out = rhs.into_dimensionality::<<E as DimMax<D>>::Output>().unwrap();
216
0
                out.zip_mut_with_same_shape(&lhs_view, clone_iopf_rev(A::$mth));
217
0
                out
218
            } else {
219
0
                Zip::from(&lhs_view).and(&rhs_view).map_collect_owned(clone_opf(A::$mth))
220
            }
221
        }
222
0
    }
Unexecuted instantiation: <&ndarray::ArrayRef<_, _> as core::ops::bit::BitOr<ndarray::ArrayBase<_, _, _>>>::bitor
Unexecuted instantiation: <&ndarray::ArrayRef<_, _> as core::ops::bit::Shr<ndarray::ArrayBase<_, _, _>>>::shr
Unexecuted instantiation: <&ndarray::ArrayRef<_, _> as core::ops::bit::BitXor<ndarray::ArrayBase<_, _, _>>>::bitxor
Unexecuted instantiation: <&ndarray::ArrayRef<_, _> as core::ops::bit::Shl<ndarray::ArrayBase<_, _, _>>>::shl
Unexecuted instantiation: <&ndarray::ArrayRef<_, _> as core::ops::arith::Add<ndarray::ArrayBase<_, _, _>>>::add
Unexecuted instantiation: <&ndarray::ArrayRef<_, _> as core::ops::arith::Div<ndarray::ArrayBase<_, _, _>>>::div
Unexecuted instantiation: <&ndarray::ArrayRef<_, _> as core::ops::arith::Rem<ndarray::ArrayBase<_, _, _>>>::rem
Unexecuted instantiation: <&ndarray::ArrayRef<_, _> as core::ops::bit::BitAnd<ndarray::ArrayBase<_, _, _>>>::bitand
Unexecuted instantiation: <&ndarray::ArrayRef<_, _> as core::ops::arith::Sub<ndarray::ArrayBase<_, _, _>>>::sub
Unexecuted instantiation: <&ndarray::ArrayRef<_, _> as core::ops::arith::Mul<ndarray::ArrayBase<_, _, _>>>::mul
223
}
224
225
/// Perform elementwise
226
#[doc=$doc]
227
/// between references `self` and `rhs`,
228
/// and return the result as a new `Array`.
229
///
230
/// If their shapes disagree, `self` and `rhs` is broadcast to their broadcast shape,
231
/// cloning the data if needed.
232
///
233
/// **Panics** if broadcasting isn’t possible.
234
impl<'a, A, B, S, S2, D, E> $trt<&'a ArrayBase<S2, E>> for &'a ArrayBase<S, D>
235
where
236
    A: Clone + $trt<B, Output=A>,
237
    B: Clone,
238
    S: Data<Elem=A>,
239
    S2: Data<Elem=B>,
240
    D: Dimension + DimMax<E>,
241
    E: Dimension,
242
{
243
    type Output = Array<A, <D as DimMax<E>>::Output>;
244
245
    #[track_caller]
246
0
    fn $mth(self, rhs: &'a ArrayBase<S2, E>) -> Self::Output {
247
0
        (&**self).$mth(&**rhs)
248
0
    }
Unexecuted instantiation: <&ndarray::ArrayBase<ndarray::data_repr::OwnedRepr<f64>, ndarray::dimension::dim::Dim<[usize; 1]>, f64> as core::ops::arith::Mul>::mul
Unexecuted instantiation: <&ndarray::ArrayBase<ndarray::data_repr::OwnedRepr<f32>, ndarray::dimension::dim::Dim<[usize; 1]>, f32> as core::ops::arith::Mul>::mul
Unexecuted instantiation: <&ndarray::ArrayBase<_, _, _> as core::ops::bit::BitOr<&ndarray::ArrayBase<_, _, _>>>::bitor
Unexecuted instantiation: <&ndarray::ArrayBase<_, _, _> as core::ops::bit::Shr<&ndarray::ArrayBase<_, _, _>>>::shr
Unexecuted instantiation: <&ndarray::ArrayBase<_, _, _> as core::ops::bit::BitXor<&ndarray::ArrayBase<_, _, _>>>::bitxor
Unexecuted instantiation: <&ndarray::ArrayBase<_, _, _> as core::ops::bit::Shl<&ndarray::ArrayBase<_, _, _>>>::shl
Unexecuted instantiation: <&ndarray::ArrayBase<_, _, _> as core::ops::arith::Add<&ndarray::ArrayBase<_, _, _>>>::add
Unexecuted instantiation: <&ndarray::ArrayBase<_, _, _> as core::ops::arith::Div<&ndarray::ArrayBase<_, _, _>>>::div
Unexecuted instantiation: <&ndarray::ArrayBase<_, _, _> as core::ops::arith::Rem<&ndarray::ArrayBase<_, _, _>>>::rem
Unexecuted instantiation: <&ndarray::ArrayBase<_, _, _> as core::ops::bit::BitAnd<&ndarray::ArrayBase<_, _, _>>>::bitand
Unexecuted instantiation: <&ndarray::ArrayBase<_, _, _> as core::ops::arith::Sub<&ndarray::ArrayBase<_, _, _>>>::sub
Unexecuted instantiation: <&ndarray::ArrayBase<_, _, _> as core::ops::arith::Mul<&ndarray::ArrayBase<_, _, _>>>::mul
249
}
250
251
/// Perform elementwise
252
#[doc=$doc]
253
/// between references `self` and `rhs`,
254
/// and return the result as a new `Array`.
255
///
256
/// If their shapes disagree, `self` and `rhs` is broadcast to their broadcast shape,
257
/// cloning the data if needed.
258
///
259
/// **Panics** if broadcasting isn’t possible.
260
impl<'a, A, B, D, E> $trt<&'a ArrayRef<B, E>> for &'a ArrayRef<A, D>
261
where
262
    A: Clone + $trt<B, Output=A>,
263
    B: Clone,
264
    D: Dimension + DimMax<E>,
265
    E: Dimension,
266
{
267
    type Output = Array<A, <D as DimMax<E>>::Output>;
268
269
    #[track_caller]
270
0
    fn $mth(self, rhs: &'a ArrayRef<B, E>) -> Self::Output {
271
0
        let (lhs, rhs) = if self.ndim() == rhs.ndim() && self.shape() == rhs.shape() {
272
0
            let lhs = self.view().into_dimensionality::<<D as DimMax<E>>::Output>().unwrap();
273
0
            let rhs = rhs.view().into_dimensionality::<<D as DimMax<E>>::Output>().unwrap();
274
0
            (lhs, rhs)
275
        } else {
276
0
            self.broadcast_with(rhs).unwrap()
277
        };
278
0
        Zip::from(lhs).and(rhs).map_collect(clone_opf(A::$mth))
279
0
    }
Unexecuted instantiation: <&ndarray::ArrayRef<f64, ndarray::dimension::dim::Dim<[usize; 1]>> as core::ops::arith::Mul>::mul
Unexecuted instantiation: <&ndarray::ArrayRef<f32, ndarray::dimension::dim::Dim<[usize; 1]>> as core::ops::arith::Mul>::mul
Unexecuted instantiation: <&ndarray::ArrayRef<_, _> as core::ops::bit::BitOr<&ndarray::ArrayRef<_, _>>>::bitor
Unexecuted instantiation: <&ndarray::ArrayRef<_, _> as core::ops::bit::Shr<&ndarray::ArrayRef<_, _>>>::shr
Unexecuted instantiation: <&ndarray::ArrayRef<_, _> as core::ops::bit::BitXor<&ndarray::ArrayRef<_, _>>>::bitxor
Unexecuted instantiation: <&ndarray::ArrayRef<_, _> as core::ops::bit::Shl<&ndarray::ArrayRef<_, _>>>::shl
Unexecuted instantiation: <&ndarray::ArrayRef<_, _> as core::ops::arith::Div<&ndarray::ArrayRef<_, _>>>::div
Unexecuted instantiation: <&ndarray::ArrayRef<_, _> as core::ops::arith::Rem<&ndarray::ArrayRef<_, _>>>::rem
Unexecuted instantiation: <&ndarray::ArrayRef<_, _> as core::ops::bit::BitAnd<&ndarray::ArrayRef<_, _>>>::bitand
Unexecuted instantiation: <&ndarray::ArrayRef<_, _> as core::ops::arith::Add<&ndarray::ArrayRef<_, _>>>::add
Unexecuted instantiation: <&ndarray::ArrayRef<_, _> as core::ops::arith::Sub<&ndarray::ArrayRef<_, _>>>::sub
Unexecuted instantiation: <&ndarray::ArrayRef<_, _> as core::ops::arith::Mul<&ndarray::ArrayRef<_, _>>>::mul
280
}
281
282
/// Perform elementwise
283
#[doc=$doc]
284
/// between `self` and the scalar `x`,
285
/// and return the result (based on `self`).
286
///
287
/// `self` must be an `Array` or `ArcArray`.
288
impl<A, S, D, B> $trt<B> for ArrayBase<S, D>
289
    where A: Clone + $trt<B, Output=A>,
290
          S: DataOwned<Elem=A> + DataMut,
291
          D: Dimension,
292
          B: ScalarOperand,
293
{
294
    type Output = ArrayBase<S, D>;
295
0
    fn $mth(mut self, x: B) -> ArrayBase<S, D> {
296
0
        self.map_inplace(move |elt| {
297
0
            *elt = elt.clone() $operator x.clone();
298
0
        });
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::bit::BitOr<_>>::bitor::{closure#0}
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::bit::Shr<_>>::shr::{closure#0}
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::bit::BitXor<_>>::bitxor::{closure#0}
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::bit::Shl<_>>::shl::{closure#0}
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::arith::Div<_>>::div::{closure#0}
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::arith::Rem<_>>::rem::{closure#0}
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::bit::BitAnd<_>>::bitand::{closure#0}
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::arith::Add<_>>::add::{closure#0}
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::arith::Sub<_>>::sub::{closure#0}
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::arith::Mul<_>>::mul::{closure#0}
299
0
        self
300
0
    }
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::bit::BitOr<_>>::bitor
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::bit::Shr<_>>::shr
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::bit::BitXor<_>>::bitxor
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::bit::Shl<_>>::shl
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::arith::Div<_>>::div
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::arith::Rem<_>>::rem
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::bit::BitAnd<_>>::bitand
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::arith::Add<_>>::add
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::arith::Sub<_>>::sub
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::arith::Mul<_>>::mul
301
}
302
303
/// Perform elementwise
304
#[doc=$doc]
305
/// between the reference `self` and the scalar `x`,
306
/// and return the result as a new `Array`.
307
impl<'a, A, S, D, B> $trt<B> for &'a ArrayBase<S, D>
308
    where A: Clone + $trt<B, Output=A>,
309
          S: Data<Elem=A>,
310
          D: Dimension,
311
          B: ScalarOperand,
312
{
313
    type Output = Array<A, D>;
314
315
0
    fn $mth(self, x: B) -> Self::Output {
316
0
        (&**self).$mth(x)
317
0
    }
Unexecuted instantiation: <&ndarray::ArrayBase<_, _, _> as core::ops::bit::BitAnd<_>>::bitand
Unexecuted instantiation: <&ndarray::ArrayBase<_, _, _> as core::ops::bit::Shr<_>>::shr
Unexecuted instantiation: <&ndarray::ArrayBase<_, _, _> as core::ops::bit::BitOr<_>>::bitor
Unexecuted instantiation: <&ndarray::ArrayBase<_, _, _> as core::ops::bit::BitXor<_>>::bitxor
Unexecuted instantiation: <&ndarray::ArrayBase<_, _, _> as core::ops::bit::Shl<_>>::shl
Unexecuted instantiation: <&ndarray::ArrayBase<_, _, _> as core::ops::arith::Div<_>>::div
Unexecuted instantiation: <&ndarray::ArrayBase<_, _, _> as core::ops::arith::Rem<_>>::rem
Unexecuted instantiation: <&ndarray::ArrayBase<_, _, _> as core::ops::arith::Add<_>>::add
Unexecuted instantiation: <&ndarray::ArrayBase<_, _, _> as core::ops::arith::Sub<_>>::sub
Unexecuted instantiation: <&ndarray::ArrayBase<_, _, _> as core::ops::arith::Mul<_>>::mul
318
}
319
320
/// Perform elementwise
321
#[doc=$doc]
322
/// between the reference `self` and the scalar `x`,
323
/// and return the result as a new `Array`.
324
impl<'a, A, D, B> $trt<B> for &'a ArrayRef<A, D>
325
    where A: Clone + $trt<B, Output=A>,
326
          D: Dimension,
327
          B: ScalarOperand,
328
{
329
    type Output = Array<A, D>;
330
331
0
    fn $mth(self, x: B) -> Self::Output {
332
0
        self.map(move |elt| elt.clone() $operator x.clone())
Unexecuted instantiation: <&ndarray::ArrayRef<_, _> as core::ops::bit::BitAnd<_>>::bitand::{closure#0}
Unexecuted instantiation: <&ndarray::ArrayRef<_, _> as core::ops::bit::Shr<_>>::shr::{closure#0}
Unexecuted instantiation: <&ndarray::ArrayRef<_, _> as core::ops::bit::BitOr<_>>::bitor::{closure#0}
Unexecuted instantiation: <&ndarray::ArrayRef<_, _> as core::ops::bit::BitXor<_>>::bitxor::{closure#0}
Unexecuted instantiation: <&ndarray::ArrayRef<_, _> as core::ops::bit::Shl<_>>::shl::{closure#0}
Unexecuted instantiation: <&ndarray::ArrayRef<_, _> as core::ops::arith::Div<_>>::div::{closure#0}
Unexecuted instantiation: <&ndarray::ArrayRef<_, _> as core::ops::arith::Rem<_>>::rem::{closure#0}
Unexecuted instantiation: <&ndarray::ArrayRef<_, _> as core::ops::arith::Add<_>>::add::{closure#0}
Unexecuted instantiation: <&ndarray::ArrayRef<_, _> as core::ops::arith::Sub<_>>::sub::{closure#0}
Unexecuted instantiation: <&ndarray::ArrayRef<_, _> as core::ops::arith::Mul<_>>::mul::{closure#0}
333
0
    }
Unexecuted instantiation: <&ndarray::ArrayRef<_, _> as core::ops::bit::BitAnd<_>>::bitand
Unexecuted instantiation: <&ndarray::ArrayRef<_, _> as core::ops::bit::Shr<_>>::shr
Unexecuted instantiation: <&ndarray::ArrayRef<_, _> as core::ops::bit::BitOr<_>>::bitor
Unexecuted instantiation: <&ndarray::ArrayRef<_, _> as core::ops::bit::BitXor<_>>::bitxor
Unexecuted instantiation: <&ndarray::ArrayRef<_, _> as core::ops::bit::Shl<_>>::shl
Unexecuted instantiation: <&ndarray::ArrayRef<_, _> as core::ops::arith::Div<_>>::div
Unexecuted instantiation: <&ndarray::ArrayRef<_, _> as core::ops::arith::Rem<_>>::rem
Unexecuted instantiation: <&ndarray::ArrayRef<_, _> as core::ops::arith::Add<_>>::add
Unexecuted instantiation: <&ndarray::ArrayRef<_, _> as core::ops::arith::Sub<_>>::sub
Unexecuted instantiation: <&ndarray::ArrayRef<_, _> as core::ops::arith::Mul<_>>::mul
334
}
335
    );
336
);
337
338
// Pick the expression $a for commutative and $b for ordered binop
339
macro_rules! if_commutative {
340
    (Commute { $a:expr } or { $b:expr }) => {
341
        $a
342
    };
343
    (Ordered { $a:expr } or { $b:expr }) => {
344
        $b
345
    };
346
}
347
348
macro_rules! impl_scalar_lhs_op {
349
    // $commutative flag. Reuse the self + scalar impl if we can.
350
    // We can do this safely since these are the primitive numeric types
351
    ($scalar:ty, $commutative:ident, $operator:tt, $trt:ident, $mth:ident, $doc:expr) => (
352
// these have no doc -- they are not visible in rustdoc
353
// Perform elementwise
354
// between the scalar `self` and array `rhs`,
355
// and return the result (based on `self`).
356
impl<S, D> $trt<ArrayBase<S, D>> for $scalar
357
    where S: DataOwned<Elem=$scalar> + DataMut,
358
          D: Dimension,
359
{
360
    type Output = ArrayBase<S, D>;
361
0
    fn $mth(self, rhs: ArrayBase<S, D>) -> ArrayBase<S, D> {
362
        if_commutative!($commutative {
363
0
            rhs.$mth(self)
364
        } or {{
365
0
            let mut rhs = rhs;
366
0
            rhs.map_inplace(move |elt| {
367
0
                *elt = self $operator *elt;
368
0
            });
Unexecuted instantiation: <i8 as core::ops::arith::Sub<ndarray::ArrayBase<_, _, i8>>>::sub::{closure#0}
Unexecuted instantiation: <i8 as core::ops::arith::Div<ndarray::ArrayBase<_, _, i8>>>::div::{closure#0}
Unexecuted instantiation: <i8 as core::ops::arith::Rem<ndarray::ArrayBase<_, _, i8>>>::rem::{closure#0}
Unexecuted instantiation: <i8 as core::ops::bit::Shl<ndarray::ArrayBase<_, _, i8>>>::shl::{closure#0}
Unexecuted instantiation: <i8 as core::ops::bit::Shr<ndarray::ArrayBase<_, _, i8>>>::shr::{closure#0}
Unexecuted instantiation: <u8 as core::ops::bit::Shr<ndarray::ArrayBase<_, _, u8>>>::shr::{closure#0}
Unexecuted instantiation: <i16 as core::ops::arith::Sub<ndarray::ArrayBase<_, _, i16>>>::sub::{closure#0}
Unexecuted instantiation: <i16 as core::ops::arith::Div<ndarray::ArrayBase<_, _, i16>>>::div::{closure#0}
Unexecuted instantiation: <i16 as core::ops::arith::Rem<ndarray::ArrayBase<_, _, i16>>>::rem::{closure#0}
Unexecuted instantiation: <u8 as core::ops::arith::Sub<ndarray::ArrayBase<_, _, u8>>>::sub::{closure#0}
Unexecuted instantiation: <u8 as core::ops::arith::Div<ndarray::ArrayBase<_, _, u8>>>::div::{closure#0}
Unexecuted instantiation: <u8 as core::ops::arith::Rem<ndarray::ArrayBase<_, _, u8>>>::rem::{closure#0}
Unexecuted instantiation: <u8 as core::ops::bit::Shl<ndarray::ArrayBase<_, _, u8>>>::shl::{closure#0}
Unexecuted instantiation: <i16 as core::ops::bit::Shl<ndarray::ArrayBase<_, _, i16>>>::shl::{closure#0}
Unexecuted instantiation: <i16 as core::ops::bit::Shr<ndarray::ArrayBase<_, _, i16>>>::shr::{closure#0}
Unexecuted instantiation: <i32 as core::ops::arith::Sub<ndarray::ArrayBase<_, _, i32>>>::sub::{closure#0}
Unexecuted instantiation: <i32 as core::ops::arith::Div<ndarray::ArrayBase<_, _, i32>>>::div::{closure#0}
Unexecuted instantiation: <i32 as core::ops::arith::Rem<ndarray::ArrayBase<_, _, i32>>>::rem::{closure#0}
Unexecuted instantiation: <u16 as core::ops::arith::Sub<ndarray::ArrayBase<_, _, u16>>>::sub::{closure#0}
Unexecuted instantiation: <u16 as core::ops::arith::Div<ndarray::ArrayBase<_, _, u16>>>::div::{closure#0}
Unexecuted instantiation: <u16 as core::ops::arith::Rem<ndarray::ArrayBase<_, _, u16>>>::rem::{closure#0}
Unexecuted instantiation: <u16 as core::ops::bit::Shl<ndarray::ArrayBase<_, _, u16>>>::shl::{closure#0}
Unexecuted instantiation: <u16 as core::ops::bit::Shr<ndarray::ArrayBase<_, _, u16>>>::shr::{closure#0}
Unexecuted instantiation: <i32 as core::ops::bit::Shl<ndarray::ArrayBase<_, _, i32>>>::shl::{closure#0}
Unexecuted instantiation: <i32 as core::ops::bit::Shr<ndarray::ArrayBase<_, _, i32>>>::shr::{closure#0}
Unexecuted instantiation: <u32 as core::ops::arith::Sub<ndarray::ArrayBase<_, _, u32>>>::sub::{closure#0}
Unexecuted instantiation: <i64 as core::ops::arith::Sub<ndarray::ArrayBase<_, _, i64>>>::sub::{closure#0}
Unexecuted instantiation: <i64 as core::ops::arith::Div<ndarray::ArrayBase<_, _, i64>>>::div::{closure#0}
Unexecuted instantiation: <i64 as core::ops::arith::Rem<ndarray::ArrayBase<_, _, i64>>>::rem::{closure#0}
Unexecuted instantiation: <i64 as core::ops::bit::Shl<ndarray::ArrayBase<_, _, i64>>>::shl::{closure#0}
Unexecuted instantiation: <u32 as core::ops::arith::Div<ndarray::ArrayBase<_, _, u32>>>::div::{closure#0}
Unexecuted instantiation: <u32 as core::ops::arith::Rem<ndarray::ArrayBase<_, _, u32>>>::rem::{closure#0}
Unexecuted instantiation: <u32 as core::ops::bit::Shl<ndarray::ArrayBase<_, _, u32>>>::shl::{closure#0}
Unexecuted instantiation: <u32 as core::ops::bit::Shr<ndarray::ArrayBase<_, _, u32>>>::shr::{closure#0}
Unexecuted instantiation: <i64 as core::ops::bit::Shr<ndarray::ArrayBase<_, _, i64>>>::shr::{closure#0}
Unexecuted instantiation: <u64 as core::ops::arith::Sub<ndarray::ArrayBase<_, _, u64>>>::sub::{closure#0}
Unexecuted instantiation: <isize as core::ops::arith::Sub<ndarray::ArrayBase<_, _, isize>>>::sub::{closure#0}
Unexecuted instantiation: <isize as core::ops::arith::Div<ndarray::ArrayBase<_, _, isize>>>::div::{closure#0}
Unexecuted instantiation: <isize as core::ops::arith::Rem<ndarray::ArrayBase<_, _, isize>>>::rem::{closure#0}
Unexecuted instantiation: <isize as core::ops::bit::Shl<ndarray::ArrayBase<_, _, isize>>>::shl::{closure#0}
Unexecuted instantiation: <isize as core::ops::bit::Shr<ndarray::ArrayBase<_, _, isize>>>::shr::{closure#0}
Unexecuted instantiation: <u64 as core::ops::arith::Div<ndarray::ArrayBase<_, _, u64>>>::div::{closure#0}
Unexecuted instantiation: <u64 as core::ops::arith::Rem<ndarray::ArrayBase<_, _, u64>>>::rem::{closure#0}
Unexecuted instantiation: <u64 as core::ops::bit::Shl<ndarray::ArrayBase<_, _, u64>>>::shl::{closure#0}
Unexecuted instantiation: <u64 as core::ops::bit::Shr<ndarray::ArrayBase<_, _, u64>>>::shr::{closure#0}
Unexecuted instantiation: <usize as core::ops::arith::Sub<ndarray::ArrayBase<_, _, usize>>>::sub::{closure#0}
Unexecuted instantiation: <i128 as core::ops::arith::Div<ndarray::ArrayBase<_, _, i128>>>::div::{closure#0}
Unexecuted instantiation: <i128 as core::ops::arith::Rem<ndarray::ArrayBase<_, _, i128>>>::rem::{closure#0}
Unexecuted instantiation: <i128 as core::ops::bit::Shl<ndarray::ArrayBase<_, _, i128>>>::shl::{closure#0}
Unexecuted instantiation: <i128 as core::ops::bit::Shr<ndarray::ArrayBase<_, _, i128>>>::shr::{closure#0}
Unexecuted instantiation: <usize as core::ops::arith::Div<ndarray::ArrayBase<_, _, usize>>>::div::{closure#0}
Unexecuted instantiation: <usize as core::ops::arith::Rem<ndarray::ArrayBase<_, _, usize>>>::rem::{closure#0}
Unexecuted instantiation: <usize as core::ops::bit::Shl<ndarray::ArrayBase<_, _, usize>>>::shl::{closure#0}
Unexecuted instantiation: <usize as core::ops::bit::Shr<ndarray::ArrayBase<_, _, usize>>>::shr::{closure#0}
Unexecuted instantiation: <i128 as core::ops::arith::Sub<ndarray::ArrayBase<_, _, i128>>>::sub::{closure#0}
Unexecuted instantiation: <u128 as core::ops::arith::Sub<ndarray::ArrayBase<_, _, u128>>>::sub::{closure#0}
Unexecuted instantiation: <u128 as core::ops::arith::Div<ndarray::ArrayBase<_, _, u128>>>::div::{closure#0}
Unexecuted instantiation: <f32 as core::ops::arith::Sub<ndarray::ArrayBase<_, _, f32>>>::sub::{closure#0}
Unexecuted instantiation: <f32 as core::ops::arith::Div<ndarray::ArrayBase<_, _, f32>>>::div::{closure#0}
Unexecuted instantiation: <f32 as core::ops::arith::Rem<ndarray::ArrayBase<_, _, f32>>>::rem::{closure#0}
Unexecuted instantiation: <f64 as core::ops::arith::Sub<ndarray::ArrayBase<_, _, f64>>>::sub::{closure#0}
Unexecuted instantiation: <u128 as core::ops::arith::Rem<ndarray::ArrayBase<_, _, u128>>>::rem::{closure#0}
Unexecuted instantiation: <u128 as core::ops::bit::Shl<ndarray::ArrayBase<_, _, u128>>>::shl::{closure#0}
Unexecuted instantiation: <u128 as core::ops::bit::Shr<ndarray::ArrayBase<_, _, u128>>>::shr::{closure#0}
Unexecuted instantiation: <f64 as core::ops::arith::Div<ndarray::ArrayBase<_, _, f64>>>::div::{closure#0}
Unexecuted instantiation: <f64 as core::ops::arith::Rem<ndarray::ArrayBase<_, _, f64>>>::rem::{closure#0}
Unexecuted instantiation: <num_complex::Complex<f32> as core::ops::arith::Sub<ndarray::ArrayBase<_, _, num_complex::Complex<f32>>>>::sub::{closure#0}
Unexecuted instantiation: <num_complex::Complex<f32> as core::ops::arith::Div<ndarray::ArrayBase<_, _, num_complex::Complex<f32>>>>::div::{closure#0}
Unexecuted instantiation: <num_complex::Complex<f64> as core::ops::arith::Sub<ndarray::ArrayBase<_, _, num_complex::Complex<f64>>>>::sub::{closure#0}
Unexecuted instantiation: <num_complex::Complex<f64> as core::ops::arith::Div<ndarray::ArrayBase<_, _, num_complex::Complex<f64>>>>::div::{closure#0}
369
0
            rhs
370
        }})
371
0
    }
Unexecuted instantiation: <i8 as core::ops::arith::Add<ndarray::ArrayBase<_, _, i8>>>::add
Unexecuted instantiation: <i8 as core::ops::arith::Sub<ndarray::ArrayBase<_, _, i8>>>::sub
Unexecuted instantiation: <i8 as core::ops::arith::Mul<ndarray::ArrayBase<_, _, i8>>>::mul
Unexecuted instantiation: <i8 as core::ops::arith::Div<ndarray::ArrayBase<_, _, i8>>>::div
Unexecuted instantiation: <i8 as core::ops::arith::Rem<ndarray::ArrayBase<_, _, i8>>>::rem
Unexecuted instantiation: <i8 as core::ops::bit::BitAnd<ndarray::ArrayBase<_, _, i8>>>::bitand
Unexecuted instantiation: <i8 as core::ops::bit::BitOr<ndarray::ArrayBase<_, _, i8>>>::bitor
Unexecuted instantiation: <i8 as core::ops::bit::BitXor<ndarray::ArrayBase<_, _, i8>>>::bitxor
Unexecuted instantiation: <i8 as core::ops::bit::Shl<ndarray::ArrayBase<_, _, i8>>>::shl
Unexecuted instantiation: <i8 as core::ops::bit::Shr<ndarray::ArrayBase<_, _, i8>>>::shr
Unexecuted instantiation: <u8 as core::ops::bit::Shr<ndarray::ArrayBase<_, _, u8>>>::shr
Unexecuted instantiation: <i16 as core::ops::arith::Add<ndarray::ArrayBase<_, _, i16>>>::add
Unexecuted instantiation: <i16 as core::ops::arith::Sub<ndarray::ArrayBase<_, _, i16>>>::sub
Unexecuted instantiation: <i16 as core::ops::arith::Mul<ndarray::ArrayBase<_, _, i16>>>::mul
Unexecuted instantiation: <i16 as core::ops::arith::Div<ndarray::ArrayBase<_, _, i16>>>::div
Unexecuted instantiation: <i16 as core::ops::arith::Rem<ndarray::ArrayBase<_, _, i16>>>::rem
Unexecuted instantiation: <i16 as core::ops::bit::BitAnd<ndarray::ArrayBase<_, _, i16>>>::bitand
Unexecuted instantiation: <i16 as core::ops::bit::BitOr<ndarray::ArrayBase<_, _, i16>>>::bitor
Unexecuted instantiation: <i16 as core::ops::bit::BitXor<ndarray::ArrayBase<_, _, i16>>>::bitxor
Unexecuted instantiation: <u8 as core::ops::arith::Add<ndarray::ArrayBase<_, _, u8>>>::add
Unexecuted instantiation: <u8 as core::ops::arith::Sub<ndarray::ArrayBase<_, _, u8>>>::sub
Unexecuted instantiation: <u8 as core::ops::arith::Mul<ndarray::ArrayBase<_, _, u8>>>::mul
Unexecuted instantiation: <u8 as core::ops::arith::Div<ndarray::ArrayBase<_, _, u8>>>::div
Unexecuted instantiation: <u8 as core::ops::arith::Rem<ndarray::ArrayBase<_, _, u8>>>::rem
Unexecuted instantiation: <u8 as core::ops::bit::BitAnd<ndarray::ArrayBase<_, _, u8>>>::bitand
Unexecuted instantiation: <u8 as core::ops::bit::BitOr<ndarray::ArrayBase<_, _, u8>>>::bitor
Unexecuted instantiation: <u8 as core::ops::bit::BitXor<ndarray::ArrayBase<_, _, u8>>>::bitxor
Unexecuted instantiation: <u8 as core::ops::bit::Shl<ndarray::ArrayBase<_, _, u8>>>::shl
Unexecuted instantiation: <i16 as core::ops::bit::Shl<ndarray::ArrayBase<_, _, i16>>>::shl
Unexecuted instantiation: <i16 as core::ops::bit::Shr<ndarray::ArrayBase<_, _, i16>>>::shr
Unexecuted instantiation: <u16 as core::ops::arith::Add<ndarray::ArrayBase<_, _, u16>>>::add
Unexecuted instantiation: <i32 as core::ops::arith::Add<ndarray::ArrayBase<_, _, i32>>>::add
Unexecuted instantiation: <i32 as core::ops::arith::Sub<ndarray::ArrayBase<_, _, i32>>>::sub
Unexecuted instantiation: <i32 as core::ops::arith::Mul<ndarray::ArrayBase<_, _, i32>>>::mul
Unexecuted instantiation: <i32 as core::ops::arith::Div<ndarray::ArrayBase<_, _, i32>>>::div
Unexecuted instantiation: <i32 as core::ops::arith::Rem<ndarray::ArrayBase<_, _, i32>>>::rem
Unexecuted instantiation: <i32 as core::ops::bit::BitAnd<ndarray::ArrayBase<_, _, i32>>>::bitand
Unexecuted instantiation: <i32 as core::ops::bit::BitOr<ndarray::ArrayBase<_, _, i32>>>::bitor
Unexecuted instantiation: <i32 as core::ops::bit::BitXor<ndarray::ArrayBase<_, _, i32>>>::bitxor
Unexecuted instantiation: <u16 as core::ops::arith::Sub<ndarray::ArrayBase<_, _, u16>>>::sub
Unexecuted instantiation: <u16 as core::ops::arith::Mul<ndarray::ArrayBase<_, _, u16>>>::mul
Unexecuted instantiation: <u16 as core::ops::arith::Div<ndarray::ArrayBase<_, _, u16>>>::div
Unexecuted instantiation: <u16 as core::ops::arith::Rem<ndarray::ArrayBase<_, _, u16>>>::rem
Unexecuted instantiation: <u16 as core::ops::bit::BitAnd<ndarray::ArrayBase<_, _, u16>>>::bitand
Unexecuted instantiation: <u16 as core::ops::bit::BitOr<ndarray::ArrayBase<_, _, u16>>>::bitor
Unexecuted instantiation: <u16 as core::ops::bit::BitXor<ndarray::ArrayBase<_, _, u16>>>::bitxor
Unexecuted instantiation: <u16 as core::ops::bit::Shl<ndarray::ArrayBase<_, _, u16>>>::shl
Unexecuted instantiation: <u16 as core::ops::bit::Shr<ndarray::ArrayBase<_, _, u16>>>::shr
Unexecuted instantiation: <i32 as core::ops::bit::Shl<ndarray::ArrayBase<_, _, i32>>>::shl
Unexecuted instantiation: <i32 as core::ops::bit::Shr<ndarray::ArrayBase<_, _, i32>>>::shr
Unexecuted instantiation: <u32 as core::ops::arith::Add<ndarray::ArrayBase<_, _, u32>>>::add
Unexecuted instantiation: <u32 as core::ops::arith::Sub<ndarray::ArrayBase<_, _, u32>>>::sub
Unexecuted instantiation: <i64 as core::ops::arith::Add<ndarray::ArrayBase<_, _, i64>>>::add
Unexecuted instantiation: <i64 as core::ops::arith::Sub<ndarray::ArrayBase<_, _, i64>>>::sub
Unexecuted instantiation: <i64 as core::ops::arith::Mul<ndarray::ArrayBase<_, _, i64>>>::mul
Unexecuted instantiation: <i64 as core::ops::arith::Div<ndarray::ArrayBase<_, _, i64>>>::div
Unexecuted instantiation: <i64 as core::ops::arith::Rem<ndarray::ArrayBase<_, _, i64>>>::rem
Unexecuted instantiation: <i64 as core::ops::bit::BitAnd<ndarray::ArrayBase<_, _, i64>>>::bitand
Unexecuted instantiation: <i64 as core::ops::bit::BitOr<ndarray::ArrayBase<_, _, i64>>>::bitor
Unexecuted instantiation: <i64 as core::ops::bit::BitXor<ndarray::ArrayBase<_, _, i64>>>::bitxor
Unexecuted instantiation: <i64 as core::ops::bit::Shl<ndarray::ArrayBase<_, _, i64>>>::shl
Unexecuted instantiation: <u32 as core::ops::arith::Mul<ndarray::ArrayBase<_, _, u32>>>::mul
Unexecuted instantiation: <u32 as core::ops::arith::Div<ndarray::ArrayBase<_, _, u32>>>::div
Unexecuted instantiation: <u32 as core::ops::arith::Rem<ndarray::ArrayBase<_, _, u32>>>::rem
Unexecuted instantiation: <u32 as core::ops::bit::BitAnd<ndarray::ArrayBase<_, _, u32>>>::bitand
Unexecuted instantiation: <u32 as core::ops::bit::BitOr<ndarray::ArrayBase<_, _, u32>>>::bitor
Unexecuted instantiation: <u32 as core::ops::bit::BitXor<ndarray::ArrayBase<_, _, u32>>>::bitxor
Unexecuted instantiation: <u32 as core::ops::bit::Shl<ndarray::ArrayBase<_, _, u32>>>::shl
Unexecuted instantiation: <u32 as core::ops::bit::Shr<ndarray::ArrayBase<_, _, u32>>>::shr
Unexecuted instantiation: <i64 as core::ops::bit::Shr<ndarray::ArrayBase<_, _, i64>>>::shr
Unexecuted instantiation: <u64 as core::ops::arith::Add<ndarray::ArrayBase<_, _, u64>>>::add
Unexecuted instantiation: <u64 as core::ops::arith::Sub<ndarray::ArrayBase<_, _, u64>>>::sub
Unexecuted instantiation: <isize as core::ops::arith::Sub<ndarray::ArrayBase<_, _, isize>>>::sub
Unexecuted instantiation: <isize as core::ops::arith::Mul<ndarray::ArrayBase<_, _, isize>>>::mul
Unexecuted instantiation: <isize as core::ops::arith::Div<ndarray::ArrayBase<_, _, isize>>>::div
Unexecuted instantiation: <isize as core::ops::arith::Rem<ndarray::ArrayBase<_, _, isize>>>::rem
Unexecuted instantiation: <isize as core::ops::bit::BitAnd<ndarray::ArrayBase<_, _, isize>>>::bitand
Unexecuted instantiation: <isize as core::ops::bit::BitOr<ndarray::ArrayBase<_, _, isize>>>::bitor
Unexecuted instantiation: <isize as core::ops::bit::BitXor<ndarray::ArrayBase<_, _, isize>>>::bitxor
Unexecuted instantiation: <isize as core::ops::bit::Shl<ndarray::ArrayBase<_, _, isize>>>::shl
Unexecuted instantiation: <isize as core::ops::bit::Shr<ndarray::ArrayBase<_, _, isize>>>::shr
Unexecuted instantiation: <u64 as core::ops::arith::Mul<ndarray::ArrayBase<_, _, u64>>>::mul
Unexecuted instantiation: <u64 as core::ops::arith::Div<ndarray::ArrayBase<_, _, u64>>>::div
Unexecuted instantiation: <u64 as core::ops::arith::Rem<ndarray::ArrayBase<_, _, u64>>>::rem
Unexecuted instantiation: <u64 as core::ops::bit::BitAnd<ndarray::ArrayBase<_, _, u64>>>::bitand
Unexecuted instantiation: <u64 as core::ops::bit::BitOr<ndarray::ArrayBase<_, _, u64>>>::bitor
Unexecuted instantiation: <u64 as core::ops::bit::BitXor<ndarray::ArrayBase<_, _, u64>>>::bitxor
Unexecuted instantiation: <u64 as core::ops::bit::Shl<ndarray::ArrayBase<_, _, u64>>>::shl
Unexecuted instantiation: <u64 as core::ops::bit::Shr<ndarray::ArrayBase<_, _, u64>>>::shr
Unexecuted instantiation: <isize as core::ops::arith::Add<ndarray::ArrayBase<_, _, isize>>>::add
Unexecuted instantiation: <usize as core::ops::arith::Add<ndarray::ArrayBase<_, _, usize>>>::add
Unexecuted instantiation: <usize as core::ops::arith::Sub<ndarray::ArrayBase<_, _, usize>>>::sub
Unexecuted instantiation: <usize as core::ops::arith::Mul<ndarray::ArrayBase<_, _, usize>>>::mul
Unexecuted instantiation: <i128 as core::ops::arith::Mul<ndarray::ArrayBase<_, _, i128>>>::mul
Unexecuted instantiation: <i128 as core::ops::arith::Div<ndarray::ArrayBase<_, _, i128>>>::div
Unexecuted instantiation: <i128 as core::ops::arith::Rem<ndarray::ArrayBase<_, _, i128>>>::rem
Unexecuted instantiation: <i128 as core::ops::bit::BitAnd<ndarray::ArrayBase<_, _, i128>>>::bitand
Unexecuted instantiation: <i128 as core::ops::bit::BitOr<ndarray::ArrayBase<_, _, i128>>>::bitor
Unexecuted instantiation: <i128 as core::ops::bit::BitXor<ndarray::ArrayBase<_, _, i128>>>::bitxor
Unexecuted instantiation: <i128 as core::ops::bit::Shl<ndarray::ArrayBase<_, _, i128>>>::shl
Unexecuted instantiation: <i128 as core::ops::bit::Shr<ndarray::ArrayBase<_, _, i128>>>::shr
Unexecuted instantiation: <usize as core::ops::arith::Div<ndarray::ArrayBase<_, _, usize>>>::div
Unexecuted instantiation: <usize as core::ops::arith::Rem<ndarray::ArrayBase<_, _, usize>>>::rem
Unexecuted instantiation: <usize as core::ops::bit::BitAnd<ndarray::ArrayBase<_, _, usize>>>::bitand
Unexecuted instantiation: <usize as core::ops::bit::BitOr<ndarray::ArrayBase<_, _, usize>>>::bitor
Unexecuted instantiation: <usize as core::ops::bit::BitXor<ndarray::ArrayBase<_, _, usize>>>::bitxor
Unexecuted instantiation: <usize as core::ops::bit::Shl<ndarray::ArrayBase<_, _, usize>>>::shl
Unexecuted instantiation: <usize as core::ops::bit::Shr<ndarray::ArrayBase<_, _, usize>>>::shr
Unexecuted instantiation: <i128 as core::ops::arith::Add<ndarray::ArrayBase<_, _, i128>>>::add
Unexecuted instantiation: <i128 as core::ops::arith::Sub<ndarray::ArrayBase<_, _, i128>>>::sub
Unexecuted instantiation: <u128 as core::ops::arith::Add<ndarray::ArrayBase<_, _, u128>>>::add
Unexecuted instantiation: <u128 as core::ops::arith::Sub<ndarray::ArrayBase<_, _, u128>>>::sub
Unexecuted instantiation: <u128 as core::ops::arith::Mul<ndarray::ArrayBase<_, _, u128>>>::mul
Unexecuted instantiation: <u128 as core::ops::arith::Div<ndarray::ArrayBase<_, _, u128>>>::div
Unexecuted instantiation: <bool as core::ops::bit::BitXor<ndarray::ArrayBase<_, _, bool>>>::bitxor
Unexecuted instantiation: <f32 as core::ops::arith::Add<ndarray::ArrayBase<_, _, f32>>>::add
Unexecuted instantiation: <f32 as core::ops::arith::Sub<ndarray::ArrayBase<_, _, f32>>>::sub
Unexecuted instantiation: <f32 as core::ops::arith::Mul<ndarray::ArrayBase<_, _, f32>>>::mul
Unexecuted instantiation: <f32 as core::ops::arith::Div<ndarray::ArrayBase<_, _, f32>>>::div
Unexecuted instantiation: <f32 as core::ops::arith::Rem<ndarray::ArrayBase<_, _, f32>>>::rem
Unexecuted instantiation: <f64 as core::ops::arith::Add<ndarray::ArrayBase<_, _, f64>>>::add
Unexecuted instantiation: <f64 as core::ops::arith::Sub<ndarray::ArrayBase<_, _, f64>>>::sub
Unexecuted instantiation: <f64 as core::ops::arith::Mul<ndarray::ArrayBase<_, _, f64>>>::mul
Unexecuted instantiation: <u128 as core::ops::arith::Rem<ndarray::ArrayBase<_, _, u128>>>::rem
Unexecuted instantiation: <u128 as core::ops::bit::BitAnd<ndarray::ArrayBase<_, _, u128>>>::bitand
Unexecuted instantiation: <u128 as core::ops::bit::BitOr<ndarray::ArrayBase<_, _, u128>>>::bitor
Unexecuted instantiation: <u128 as core::ops::bit::BitXor<ndarray::ArrayBase<_, _, u128>>>::bitxor
Unexecuted instantiation: <u128 as core::ops::bit::Shl<ndarray::ArrayBase<_, _, u128>>>::shl
Unexecuted instantiation: <u128 as core::ops::bit::Shr<ndarray::ArrayBase<_, _, u128>>>::shr
Unexecuted instantiation: <bool as core::ops::bit::BitAnd<ndarray::ArrayBase<_, _, bool>>>::bitand
Unexecuted instantiation: <bool as core::ops::bit::BitOr<ndarray::ArrayBase<_, _, bool>>>::bitor
Unexecuted instantiation: <f64 as core::ops::arith::Div<ndarray::ArrayBase<_, _, f64>>>::div
Unexecuted instantiation: <f64 as core::ops::arith::Rem<ndarray::ArrayBase<_, _, f64>>>::rem
Unexecuted instantiation: <num_complex::Complex<f32> as core::ops::arith::Add<ndarray::ArrayBase<_, _, num_complex::Complex<f32>>>>::add
Unexecuted instantiation: <num_complex::Complex<f32> as core::ops::arith::Sub<ndarray::ArrayBase<_, _, num_complex::Complex<f32>>>>::sub
Unexecuted instantiation: <num_complex::Complex<f32> as core::ops::arith::Mul<ndarray::ArrayBase<_, _, num_complex::Complex<f32>>>>::mul
Unexecuted instantiation: <num_complex::Complex<f32> as core::ops::arith::Div<ndarray::ArrayBase<_, _, num_complex::Complex<f32>>>>::div
Unexecuted instantiation: <num_complex::Complex<f64> as core::ops::arith::Add<ndarray::ArrayBase<_, _, num_complex::Complex<f64>>>>::add
Unexecuted instantiation: <num_complex::Complex<f64> as core::ops::arith::Sub<ndarray::ArrayBase<_, _, num_complex::Complex<f64>>>>::sub
Unexecuted instantiation: <num_complex::Complex<f64> as core::ops::arith::Mul<ndarray::ArrayBase<_, _, num_complex::Complex<f64>>>>::mul
Unexecuted instantiation: <num_complex::Complex<f64> as core::ops::arith::Div<ndarray::ArrayBase<_, _, num_complex::Complex<f64>>>>::div
372
}
373
374
// Perform elementwise
375
// between the scalar `self` and array `rhs`,
376
// and return the result as a new `Array`.
377
impl<'a, S, D> $trt<&'a ArrayBase<S, D>> for $scalar
378
    where S: Data<Elem=$scalar>,
379
          D: Dimension,
380
{
381
    type Output = Array<$scalar, D>;
382
383
0
    fn $mth(self, rhs: &ArrayBase<S, D>) -> Self::Output {
384
0
        self.$mth(&**rhs)
385
0
    }
Unexecuted instantiation: <i8 as core::ops::arith::Add<&ndarray::ArrayBase<_, _, i8>>>::add
Unexecuted instantiation: <i8 as core::ops::arith::Sub<&ndarray::ArrayBase<_, _, i8>>>::sub
Unexecuted instantiation: <i8 as core::ops::arith::Mul<&ndarray::ArrayBase<_, _, i8>>>::mul
Unexecuted instantiation: <i8 as core::ops::arith::Div<&ndarray::ArrayBase<_, _, i8>>>::div
Unexecuted instantiation: <i8 as core::ops::arith::Rem<&ndarray::ArrayBase<_, _, i8>>>::rem
Unexecuted instantiation: <i8 as core::ops::bit::BitAnd<&ndarray::ArrayBase<_, _, i8>>>::bitand
Unexecuted instantiation: <i8 as core::ops::bit::BitOr<&ndarray::ArrayBase<_, _, i8>>>::bitor
Unexecuted instantiation: <i8 as core::ops::bit::BitXor<&ndarray::ArrayBase<_, _, i8>>>::bitxor
Unexecuted instantiation: <i8 as core::ops::bit::Shl<&ndarray::ArrayBase<_, _, i8>>>::shl
Unexecuted instantiation: <i8 as core::ops::bit::Shr<&ndarray::ArrayBase<_, _, i8>>>::shr
Unexecuted instantiation: <u8 as core::ops::bit::Shr<&ndarray::ArrayBase<_, _, u8>>>::shr
Unexecuted instantiation: <i16 as core::ops::arith::Add<&ndarray::ArrayBase<_, _, i16>>>::add
Unexecuted instantiation: <i16 as core::ops::arith::Sub<&ndarray::ArrayBase<_, _, i16>>>::sub
Unexecuted instantiation: <i16 as core::ops::arith::Mul<&ndarray::ArrayBase<_, _, i16>>>::mul
Unexecuted instantiation: <i16 as core::ops::arith::Div<&ndarray::ArrayBase<_, _, i16>>>::div
Unexecuted instantiation: <i16 as core::ops::arith::Rem<&ndarray::ArrayBase<_, _, i16>>>::rem
Unexecuted instantiation: <i16 as core::ops::bit::BitAnd<&ndarray::ArrayBase<_, _, i16>>>::bitand
Unexecuted instantiation: <i16 as core::ops::bit::BitOr<&ndarray::ArrayBase<_, _, i16>>>::bitor
Unexecuted instantiation: <u8 as core::ops::arith::Add<&ndarray::ArrayBase<_, _, u8>>>::add
Unexecuted instantiation: <u8 as core::ops::arith::Sub<&ndarray::ArrayBase<_, _, u8>>>::sub
Unexecuted instantiation: <u8 as core::ops::arith::Mul<&ndarray::ArrayBase<_, _, u8>>>::mul
Unexecuted instantiation: <u8 as core::ops::arith::Div<&ndarray::ArrayBase<_, _, u8>>>::div
Unexecuted instantiation: <u8 as core::ops::arith::Rem<&ndarray::ArrayBase<_, _, u8>>>::rem
Unexecuted instantiation: <u8 as core::ops::bit::BitAnd<&ndarray::ArrayBase<_, _, u8>>>::bitand
Unexecuted instantiation: <u8 as core::ops::bit::BitOr<&ndarray::ArrayBase<_, _, u8>>>::bitor
Unexecuted instantiation: <u8 as core::ops::bit::BitXor<&ndarray::ArrayBase<_, _, u8>>>::bitxor
Unexecuted instantiation: <u8 as core::ops::bit::Shl<&ndarray::ArrayBase<_, _, u8>>>::shl
Unexecuted instantiation: <i16 as core::ops::bit::BitXor<&ndarray::ArrayBase<_, _, i16>>>::bitxor
Unexecuted instantiation: <i16 as core::ops::bit::Shl<&ndarray::ArrayBase<_, _, i16>>>::shl
Unexecuted instantiation: <i16 as core::ops::bit::Shr<&ndarray::ArrayBase<_, _, i16>>>::shr
Unexecuted instantiation: <u16 as core::ops::arith::Add<&ndarray::ArrayBase<_, _, u16>>>::add
Unexecuted instantiation: <u16 as core::ops::bit::Shr<&ndarray::ArrayBase<_, _, u16>>>::shr
Unexecuted instantiation: <i32 as core::ops::arith::Add<&ndarray::ArrayBase<_, _, i32>>>::add
Unexecuted instantiation: <i32 as core::ops::arith::Sub<&ndarray::ArrayBase<_, _, i32>>>::sub
Unexecuted instantiation: <i32 as core::ops::arith::Mul<&ndarray::ArrayBase<_, _, i32>>>::mul
Unexecuted instantiation: <i32 as core::ops::arith::Div<&ndarray::ArrayBase<_, _, i32>>>::div
Unexecuted instantiation: <i32 as core::ops::arith::Rem<&ndarray::ArrayBase<_, _, i32>>>::rem
Unexecuted instantiation: <i32 as core::ops::bit::BitAnd<&ndarray::ArrayBase<_, _, i32>>>::bitand
Unexecuted instantiation: <i32 as core::ops::bit::BitOr<&ndarray::ArrayBase<_, _, i32>>>::bitor
Unexecuted instantiation: <i32 as core::ops::bit::BitXor<&ndarray::ArrayBase<_, _, i32>>>::bitxor
Unexecuted instantiation: <u16 as core::ops::arith::Sub<&ndarray::ArrayBase<_, _, u16>>>::sub
Unexecuted instantiation: <u16 as core::ops::arith::Mul<&ndarray::ArrayBase<_, _, u16>>>::mul
Unexecuted instantiation: <u16 as core::ops::arith::Div<&ndarray::ArrayBase<_, _, u16>>>::div
Unexecuted instantiation: <u16 as core::ops::arith::Rem<&ndarray::ArrayBase<_, _, u16>>>::rem
Unexecuted instantiation: <u16 as core::ops::bit::BitAnd<&ndarray::ArrayBase<_, _, u16>>>::bitand
Unexecuted instantiation: <u16 as core::ops::bit::BitOr<&ndarray::ArrayBase<_, _, u16>>>::bitor
Unexecuted instantiation: <u16 as core::ops::bit::BitXor<&ndarray::ArrayBase<_, _, u16>>>::bitxor
Unexecuted instantiation: <u16 as core::ops::bit::Shl<&ndarray::ArrayBase<_, _, u16>>>::shl
Unexecuted instantiation: <i32 as core::ops::bit::Shl<&ndarray::ArrayBase<_, _, i32>>>::shl
Unexecuted instantiation: <i32 as core::ops::bit::Shr<&ndarray::ArrayBase<_, _, i32>>>::shr
Unexecuted instantiation: <u32 as core::ops::arith::Add<&ndarray::ArrayBase<_, _, u32>>>::add
Unexecuted instantiation: <i64 as core::ops::arith::Add<&ndarray::ArrayBase<_, _, i64>>>::add
Unexecuted instantiation: <i64 as core::ops::arith::Sub<&ndarray::ArrayBase<_, _, i64>>>::sub
Unexecuted instantiation: <i64 as core::ops::arith::Mul<&ndarray::ArrayBase<_, _, i64>>>::mul
Unexecuted instantiation: <i64 as core::ops::arith::Div<&ndarray::ArrayBase<_, _, i64>>>::div
Unexecuted instantiation: <i64 as core::ops::arith::Rem<&ndarray::ArrayBase<_, _, i64>>>::rem
Unexecuted instantiation: <i64 as core::ops::bit::BitAnd<&ndarray::ArrayBase<_, _, i64>>>::bitand
Unexecuted instantiation: <i64 as core::ops::bit::BitOr<&ndarray::ArrayBase<_, _, i64>>>::bitor
Unexecuted instantiation: <i64 as core::ops::bit::BitXor<&ndarray::ArrayBase<_, _, i64>>>::bitxor
Unexecuted instantiation: <i64 as core::ops::bit::Shl<&ndarray::ArrayBase<_, _, i64>>>::shl
Unexecuted instantiation: <u32 as core::ops::arith::Sub<&ndarray::ArrayBase<_, _, u32>>>::sub
Unexecuted instantiation: <u32 as core::ops::arith::Mul<&ndarray::ArrayBase<_, _, u32>>>::mul
Unexecuted instantiation: <u32 as core::ops::arith::Div<&ndarray::ArrayBase<_, _, u32>>>::div
Unexecuted instantiation: <u32 as core::ops::arith::Rem<&ndarray::ArrayBase<_, _, u32>>>::rem
Unexecuted instantiation: <u32 as core::ops::bit::BitAnd<&ndarray::ArrayBase<_, _, u32>>>::bitand
Unexecuted instantiation: <u32 as core::ops::bit::BitOr<&ndarray::ArrayBase<_, _, u32>>>::bitor
Unexecuted instantiation: <u32 as core::ops::bit::BitXor<&ndarray::ArrayBase<_, _, u32>>>::bitxor
Unexecuted instantiation: <u32 as core::ops::bit::Shl<&ndarray::ArrayBase<_, _, u32>>>::shl
Unexecuted instantiation: <u32 as core::ops::bit::Shr<&ndarray::ArrayBase<_, _, u32>>>::shr
Unexecuted instantiation: <i64 as core::ops::bit::Shr<&ndarray::ArrayBase<_, _, i64>>>::shr
Unexecuted instantiation: <u64 as core::ops::arith::Add<&ndarray::ArrayBase<_, _, u64>>>::add
Unexecuted instantiation: <u64 as core::ops::arith::Sub<&ndarray::ArrayBase<_, _, u64>>>::sub
Unexecuted instantiation: <isize as core::ops::arith::Sub<&ndarray::ArrayBase<_, _, isize>>>::sub
Unexecuted instantiation: <isize as core::ops::arith::Mul<&ndarray::ArrayBase<_, _, isize>>>::mul
Unexecuted instantiation: <isize as core::ops::arith::Div<&ndarray::ArrayBase<_, _, isize>>>::div
Unexecuted instantiation: <isize as core::ops::arith::Rem<&ndarray::ArrayBase<_, _, isize>>>::rem
Unexecuted instantiation: <isize as core::ops::bit::BitAnd<&ndarray::ArrayBase<_, _, isize>>>::bitand
Unexecuted instantiation: <isize as core::ops::bit::BitOr<&ndarray::ArrayBase<_, _, isize>>>::bitor
Unexecuted instantiation: <isize as core::ops::bit::BitXor<&ndarray::ArrayBase<_, _, isize>>>::bitxor
Unexecuted instantiation: <isize as core::ops::bit::Shl<&ndarray::ArrayBase<_, _, isize>>>::shl
Unexecuted instantiation: <u64 as core::ops::arith::Mul<&ndarray::ArrayBase<_, _, u64>>>::mul
Unexecuted instantiation: <u64 as core::ops::arith::Div<&ndarray::ArrayBase<_, _, u64>>>::div
Unexecuted instantiation: <u64 as core::ops::arith::Rem<&ndarray::ArrayBase<_, _, u64>>>::rem
Unexecuted instantiation: <u64 as core::ops::bit::BitAnd<&ndarray::ArrayBase<_, _, u64>>>::bitand
Unexecuted instantiation: <u64 as core::ops::bit::BitOr<&ndarray::ArrayBase<_, _, u64>>>::bitor
Unexecuted instantiation: <u64 as core::ops::bit::BitXor<&ndarray::ArrayBase<_, _, u64>>>::bitxor
Unexecuted instantiation: <u64 as core::ops::bit::Shl<&ndarray::ArrayBase<_, _, u64>>>::shl
Unexecuted instantiation: <u64 as core::ops::bit::Shr<&ndarray::ArrayBase<_, _, u64>>>::shr
Unexecuted instantiation: <isize as core::ops::arith::Add<&ndarray::ArrayBase<_, _, isize>>>::add
Unexecuted instantiation: <isize as core::ops::bit::Shr<&ndarray::ArrayBase<_, _, isize>>>::shr
Unexecuted instantiation: <usize as core::ops::arith::Add<&ndarray::ArrayBase<_, _, usize>>>::add
Unexecuted instantiation: <usize as core::ops::arith::Sub<&ndarray::ArrayBase<_, _, usize>>>::sub
Unexecuted instantiation: <usize as core::ops::arith::Mul<&ndarray::ArrayBase<_, _, usize>>>::mul
Unexecuted instantiation: <i128 as core::ops::arith::Sub<&ndarray::ArrayBase<_, _, i128>>>::sub
Unexecuted instantiation: <i128 as core::ops::arith::Mul<&ndarray::ArrayBase<_, _, i128>>>::mul
Unexecuted instantiation: <i128 as core::ops::arith::Div<&ndarray::ArrayBase<_, _, i128>>>::div
Unexecuted instantiation: <i128 as core::ops::arith::Rem<&ndarray::ArrayBase<_, _, i128>>>::rem
Unexecuted instantiation: <i128 as core::ops::bit::BitAnd<&ndarray::ArrayBase<_, _, i128>>>::bitand
Unexecuted instantiation: <i128 as core::ops::bit::BitOr<&ndarray::ArrayBase<_, _, i128>>>::bitor
Unexecuted instantiation: <i128 as core::ops::bit::BitXor<&ndarray::ArrayBase<_, _, i128>>>::bitxor
Unexecuted instantiation: <i128 as core::ops::bit::Shl<&ndarray::ArrayBase<_, _, i128>>>::shl
Unexecuted instantiation: <i128 as core::ops::bit::Shr<&ndarray::ArrayBase<_, _, i128>>>::shr
Unexecuted instantiation: <usize as core::ops::arith::Div<&ndarray::ArrayBase<_, _, usize>>>::div
Unexecuted instantiation: <usize as core::ops::arith::Rem<&ndarray::ArrayBase<_, _, usize>>>::rem
Unexecuted instantiation: <usize as core::ops::bit::BitAnd<&ndarray::ArrayBase<_, _, usize>>>::bitand
Unexecuted instantiation: <usize as core::ops::bit::BitOr<&ndarray::ArrayBase<_, _, usize>>>::bitor
Unexecuted instantiation: <usize as core::ops::bit::BitXor<&ndarray::ArrayBase<_, _, usize>>>::bitxor
Unexecuted instantiation: <usize as core::ops::bit::Shl<&ndarray::ArrayBase<_, _, usize>>>::shl
Unexecuted instantiation: <usize as core::ops::bit::Shr<&ndarray::ArrayBase<_, _, usize>>>::shr
Unexecuted instantiation: <i128 as core::ops::arith::Add<&ndarray::ArrayBase<_, _, i128>>>::add
Unexecuted instantiation: <u128 as core::ops::arith::Add<&ndarray::ArrayBase<_, _, u128>>>::add
Unexecuted instantiation: <u128 as core::ops::arith::Sub<&ndarray::ArrayBase<_, _, u128>>>::sub
Unexecuted instantiation: <u128 as core::ops::arith::Mul<&ndarray::ArrayBase<_, _, u128>>>::mul
Unexecuted instantiation: <bool as core::ops::bit::BitXor<&ndarray::ArrayBase<_, _, bool>>>::bitxor
Unexecuted instantiation: <f32 as core::ops::arith::Add<&ndarray::ArrayBase<_, _, f32>>>::add
Unexecuted instantiation: <f32 as core::ops::arith::Sub<&ndarray::ArrayBase<_, _, f32>>>::sub
Unexecuted instantiation: <f32 as core::ops::arith::Mul<&ndarray::ArrayBase<_, _, f32>>>::mul
Unexecuted instantiation: <f32 as core::ops::arith::Div<&ndarray::ArrayBase<_, _, f32>>>::div
Unexecuted instantiation: <f32 as core::ops::arith::Rem<&ndarray::ArrayBase<_, _, f32>>>::rem
Unexecuted instantiation: <f64 as core::ops::arith::Add<&ndarray::ArrayBase<_, _, f64>>>::add
Unexecuted instantiation: <f64 as core::ops::arith::Sub<&ndarray::ArrayBase<_, _, f64>>>::sub
Unexecuted instantiation: <f64 as core::ops::arith::Mul<&ndarray::ArrayBase<_, _, f64>>>::mul
Unexecuted instantiation: <u128 as core::ops::arith::Div<&ndarray::ArrayBase<_, _, u128>>>::div
Unexecuted instantiation: <u128 as core::ops::arith::Rem<&ndarray::ArrayBase<_, _, u128>>>::rem
Unexecuted instantiation: <u128 as core::ops::bit::BitAnd<&ndarray::ArrayBase<_, _, u128>>>::bitand
Unexecuted instantiation: <u128 as core::ops::bit::BitOr<&ndarray::ArrayBase<_, _, u128>>>::bitor
Unexecuted instantiation: <u128 as core::ops::bit::BitXor<&ndarray::ArrayBase<_, _, u128>>>::bitxor
Unexecuted instantiation: <u128 as core::ops::bit::Shl<&ndarray::ArrayBase<_, _, u128>>>::shl
Unexecuted instantiation: <u128 as core::ops::bit::Shr<&ndarray::ArrayBase<_, _, u128>>>::shr
Unexecuted instantiation: <bool as core::ops::bit::BitAnd<&ndarray::ArrayBase<_, _, bool>>>::bitand
Unexecuted instantiation: <bool as core::ops::bit::BitOr<&ndarray::ArrayBase<_, _, bool>>>::bitor
Unexecuted instantiation: <f64 as core::ops::arith::Div<&ndarray::ArrayBase<_, _, f64>>>::div
Unexecuted instantiation: <f64 as core::ops::arith::Rem<&ndarray::ArrayBase<_, _, f64>>>::rem
Unexecuted instantiation: <num_complex::Complex<f32> as core::ops::arith::Add<&ndarray::ArrayBase<_, _, num_complex::Complex<f32>>>>::add
Unexecuted instantiation: <num_complex::Complex<f32> as core::ops::arith::Sub<&ndarray::ArrayBase<_, _, num_complex::Complex<f32>>>>::sub
Unexecuted instantiation: <num_complex::Complex<f32> as core::ops::arith::Mul<&ndarray::ArrayBase<_, _, num_complex::Complex<f32>>>>::mul
Unexecuted instantiation: <num_complex::Complex<f32> as core::ops::arith::Div<&ndarray::ArrayBase<_, _, num_complex::Complex<f32>>>>::div
Unexecuted instantiation: <num_complex::Complex<f64> as core::ops::arith::Add<&ndarray::ArrayBase<_, _, num_complex::Complex<f64>>>>::add
Unexecuted instantiation: <num_complex::Complex<f64> as core::ops::arith::Sub<&ndarray::ArrayBase<_, _, num_complex::Complex<f64>>>>::sub
Unexecuted instantiation: <num_complex::Complex<f64> as core::ops::arith::Mul<&ndarray::ArrayBase<_, _, num_complex::Complex<f64>>>>::mul
Unexecuted instantiation: <num_complex::Complex<f64> as core::ops::arith::Div<&ndarray::ArrayBase<_, _, num_complex::Complex<f64>>>>::div
386
}
387
388
// Perform elementwise
389
// between the scalar `self` and array `rhs`,
390
// and return the result as a new `Array`.
391
impl<'a, D> $trt<&'a ArrayRef<$scalar, D>> for $scalar
392
    where D: Dimension
393
{
394
    type Output = Array<$scalar, D>;
395
396
0
    fn $mth(self, rhs: &ArrayRef<$scalar, D>) -> Self::Output {
397
        if_commutative!($commutative {
398
0
            rhs.$mth(self)
399
        } or {
400
0
            rhs.map(move |elt| self.clone() $operator elt.clone())
Unexecuted instantiation: <i8 as core::ops::arith::Sub<&ndarray::ArrayRef<i8, _>>>::sub::{closure#0}
Unexecuted instantiation: <i8 as core::ops::arith::Div<&ndarray::ArrayRef<i8, _>>>::div::{closure#0}
Unexecuted instantiation: <i8 as core::ops::arith::Rem<&ndarray::ArrayRef<i8, _>>>::rem::{closure#0}
Unexecuted instantiation: <i8 as core::ops::bit::Shl<&ndarray::ArrayRef<i8, _>>>::shl::{closure#0}
Unexecuted instantiation: <i8 as core::ops::bit::Shr<&ndarray::ArrayRef<i8, _>>>::shr::{closure#0}
Unexecuted instantiation: <u8 as core::ops::bit::Shl<&ndarray::ArrayRef<u8, _>>>::shl::{closure#0}
Unexecuted instantiation: <u8 as core::ops::bit::Shr<&ndarray::ArrayRef<u8, _>>>::shr::{closure#0}
Unexecuted instantiation: <i16 as core::ops::arith::Sub<&ndarray::ArrayRef<i16, _>>>::sub::{closure#0}
Unexecuted instantiation: <i16 as core::ops::arith::Div<&ndarray::ArrayRef<i16, _>>>::div::{closure#0}
Unexecuted instantiation: <i16 as core::ops::arith::Rem<&ndarray::ArrayRef<i16, _>>>::rem::{closure#0}
Unexecuted instantiation: <u8 as core::ops::arith::Sub<&ndarray::ArrayRef<u8, _>>>::sub::{closure#0}
Unexecuted instantiation: <u8 as core::ops::arith::Div<&ndarray::ArrayRef<u8, _>>>::div::{closure#0}
Unexecuted instantiation: <u8 as core::ops::arith::Rem<&ndarray::ArrayRef<u8, _>>>::rem::{closure#0}
Unexecuted instantiation: <i16 as core::ops::bit::Shl<&ndarray::ArrayRef<i16, _>>>::shl::{closure#0}
Unexecuted instantiation: <i16 as core::ops::bit::Shr<&ndarray::ArrayRef<i16, _>>>::shr::{closure#0}
Unexecuted instantiation: <u16 as core::ops::bit::Shr<&ndarray::ArrayRef<u16, _>>>::shr::{closure#0}
Unexecuted instantiation: <i32 as core::ops::arith::Sub<&ndarray::ArrayRef<i32, _>>>::sub::{closure#0}
Unexecuted instantiation: <i32 as core::ops::arith::Div<&ndarray::ArrayRef<i32, _>>>::div::{closure#0}
Unexecuted instantiation: <i32 as core::ops::arith::Rem<&ndarray::ArrayRef<i32, _>>>::rem::{closure#0}
Unexecuted instantiation: <u16 as core::ops::arith::Sub<&ndarray::ArrayRef<u16, _>>>::sub::{closure#0}
Unexecuted instantiation: <u16 as core::ops::arith::Div<&ndarray::ArrayRef<u16, _>>>::div::{closure#0}
Unexecuted instantiation: <u16 as core::ops::arith::Rem<&ndarray::ArrayRef<u16, _>>>::rem::{closure#0}
Unexecuted instantiation: <u16 as core::ops::bit::Shl<&ndarray::ArrayRef<u16, _>>>::shl::{closure#0}
Unexecuted instantiation: <i32 as core::ops::bit::Shl<&ndarray::ArrayRef<i32, _>>>::shl::{closure#0}
Unexecuted instantiation: <i32 as core::ops::bit::Shr<&ndarray::ArrayRef<i32, _>>>::shr::{closure#0}
Unexecuted instantiation: <i64 as core::ops::arith::Sub<&ndarray::ArrayRef<i64, _>>>::sub::{closure#0}
Unexecuted instantiation: <i64 as core::ops::arith::Div<&ndarray::ArrayRef<i64, _>>>::div::{closure#0}
Unexecuted instantiation: <i64 as core::ops::arith::Rem<&ndarray::ArrayRef<i64, _>>>::rem::{closure#0}
Unexecuted instantiation: <u32 as core::ops::arith::Sub<&ndarray::ArrayRef<u32, _>>>::sub::{closure#0}
Unexecuted instantiation: <u32 as core::ops::arith::Div<&ndarray::ArrayRef<u32, _>>>::div::{closure#0}
Unexecuted instantiation: <u32 as core::ops::arith::Rem<&ndarray::ArrayRef<u32, _>>>::rem::{closure#0}
Unexecuted instantiation: <u32 as core::ops::bit::Shl<&ndarray::ArrayRef<u32, _>>>::shl::{closure#0}
Unexecuted instantiation: <u32 as core::ops::bit::Shr<&ndarray::ArrayRef<u32, _>>>::shr::{closure#0}
Unexecuted instantiation: <i64 as core::ops::bit::Shl<&ndarray::ArrayRef<i64, _>>>::shl::{closure#0}
Unexecuted instantiation: <i64 as core::ops::bit::Shr<&ndarray::ArrayRef<i64, _>>>::shr::{closure#0}
Unexecuted instantiation: <u64 as core::ops::arith::Sub<&ndarray::ArrayRef<u64, _>>>::sub::{closure#0}
Unexecuted instantiation: <isize as core::ops::arith::Sub<&ndarray::ArrayRef<isize, _>>>::sub::{closure#0}
Unexecuted instantiation: <isize as core::ops::arith::Div<&ndarray::ArrayRef<isize, _>>>::div::{closure#0}
Unexecuted instantiation: <isize as core::ops::arith::Rem<&ndarray::ArrayRef<isize, _>>>::rem::{closure#0}
Unexecuted instantiation: <isize as core::ops::bit::Shl<&ndarray::ArrayRef<isize, _>>>::shl::{closure#0}
Unexecuted instantiation: <u64 as core::ops::arith::Div<&ndarray::ArrayRef<u64, _>>>::div::{closure#0}
Unexecuted instantiation: <u64 as core::ops::arith::Rem<&ndarray::ArrayRef<u64, _>>>::rem::{closure#0}
Unexecuted instantiation: <u64 as core::ops::bit::Shl<&ndarray::ArrayRef<u64, _>>>::shl::{closure#0}
Unexecuted instantiation: <u64 as core::ops::bit::Shr<&ndarray::ArrayRef<u64, _>>>::shr::{closure#0}
Unexecuted instantiation: <isize as core::ops::bit::Shr<&ndarray::ArrayRef<isize, _>>>::shr::{closure#0}
Unexecuted instantiation: <usize as core::ops::arith::Sub<&ndarray::ArrayRef<usize, _>>>::sub::{closure#0}
Unexecuted instantiation: <i128 as core::ops::arith::Sub<&ndarray::ArrayRef<i128, _>>>::sub::{closure#0}
Unexecuted instantiation: <i128 as core::ops::arith::Div<&ndarray::ArrayRef<i128, _>>>::div::{closure#0}
Unexecuted instantiation: <i128 as core::ops::arith::Rem<&ndarray::ArrayRef<i128, _>>>::rem::{closure#0}
Unexecuted instantiation: <i128 as core::ops::bit::Shl<&ndarray::ArrayRef<i128, _>>>::shl::{closure#0}
Unexecuted instantiation: <i128 as core::ops::bit::Shr<&ndarray::ArrayRef<i128, _>>>::shr::{closure#0}
Unexecuted instantiation: <usize as core::ops::arith::Div<&ndarray::ArrayRef<usize, _>>>::div::{closure#0}
Unexecuted instantiation: <usize as core::ops::arith::Rem<&ndarray::ArrayRef<usize, _>>>::rem::{closure#0}
Unexecuted instantiation: <usize as core::ops::bit::Shl<&ndarray::ArrayRef<usize, _>>>::shl::{closure#0}
Unexecuted instantiation: <usize as core::ops::bit::Shr<&ndarray::ArrayRef<usize, _>>>::shr::{closure#0}
Unexecuted instantiation: <u128 as core::ops::arith::Sub<&ndarray::ArrayRef<u128, _>>>::sub::{closure#0}
Unexecuted instantiation: <f32 as core::ops::arith::Sub<&ndarray::ArrayRef<f32, _>>>::sub::{closure#0}
Unexecuted instantiation: <f32 as core::ops::arith::Div<&ndarray::ArrayRef<f32, _>>>::div::{closure#0}
Unexecuted instantiation: <f32 as core::ops::arith::Rem<&ndarray::ArrayRef<f32, _>>>::rem::{closure#0}
Unexecuted instantiation: <f64 as core::ops::arith::Sub<&ndarray::ArrayRef<f64, _>>>::sub::{closure#0}
Unexecuted instantiation: <u128 as core::ops::arith::Div<&ndarray::ArrayRef<u128, _>>>::div::{closure#0}
Unexecuted instantiation: <u128 as core::ops::arith::Rem<&ndarray::ArrayRef<u128, _>>>::rem::{closure#0}
Unexecuted instantiation: <u128 as core::ops::bit::Shl<&ndarray::ArrayRef<u128, _>>>::shl::{closure#0}
Unexecuted instantiation: <u128 as core::ops::bit::Shr<&ndarray::ArrayRef<u128, _>>>::shr::{closure#0}
Unexecuted instantiation: <f64 as core::ops::arith::Div<&ndarray::ArrayRef<f64, _>>>::div::{closure#0}
Unexecuted instantiation: <f64 as core::ops::arith::Rem<&ndarray::ArrayRef<f64, _>>>::rem::{closure#0}
Unexecuted instantiation: <num_complex::Complex<f32> as core::ops::arith::Sub<&ndarray::ArrayRef<num_complex::Complex<f32>, _>>>::sub::{closure#0}
Unexecuted instantiation: <num_complex::Complex<f32> as core::ops::arith::Div<&ndarray::ArrayRef<num_complex::Complex<f32>, _>>>::div::{closure#0}
Unexecuted instantiation: <num_complex::Complex<f64> as core::ops::arith::Sub<&ndarray::ArrayRef<num_complex::Complex<f64>, _>>>::sub::{closure#0}
Unexecuted instantiation: <num_complex::Complex<f64> as core::ops::arith::Div<&ndarray::ArrayRef<num_complex::Complex<f64>, _>>>::div::{closure#0}
401
        })
402
0
    }
Unexecuted instantiation: <i8 as core::ops::arith::Add<&ndarray::ArrayRef<i8, _>>>::add
Unexecuted instantiation: <i8 as core::ops::arith::Sub<&ndarray::ArrayRef<i8, _>>>::sub
Unexecuted instantiation: <i8 as core::ops::arith::Mul<&ndarray::ArrayRef<i8, _>>>::mul
Unexecuted instantiation: <i8 as core::ops::arith::Div<&ndarray::ArrayRef<i8, _>>>::div
Unexecuted instantiation: <i8 as core::ops::arith::Rem<&ndarray::ArrayRef<i8, _>>>::rem
Unexecuted instantiation: <i8 as core::ops::bit::BitAnd<&ndarray::ArrayRef<i8, _>>>::bitand
Unexecuted instantiation: <i8 as core::ops::bit::BitOr<&ndarray::ArrayRef<i8, _>>>::bitor
Unexecuted instantiation: <i8 as core::ops::bit::BitXor<&ndarray::ArrayRef<i8, _>>>::bitxor
Unexecuted instantiation: <i8 as core::ops::bit::Shl<&ndarray::ArrayRef<i8, _>>>::shl
Unexecuted instantiation: <i8 as core::ops::bit::Shr<&ndarray::ArrayRef<i8, _>>>::shr
Unexecuted instantiation: <u8 as core::ops::bit::Shl<&ndarray::ArrayRef<u8, _>>>::shl
Unexecuted instantiation: <u8 as core::ops::bit::Shr<&ndarray::ArrayRef<u8, _>>>::shr
Unexecuted instantiation: <i16 as core::ops::arith::Add<&ndarray::ArrayRef<i16, _>>>::add
Unexecuted instantiation: <i16 as core::ops::arith::Sub<&ndarray::ArrayRef<i16, _>>>::sub
Unexecuted instantiation: <i16 as core::ops::arith::Mul<&ndarray::ArrayRef<i16, _>>>::mul
Unexecuted instantiation: <i16 as core::ops::arith::Div<&ndarray::ArrayRef<i16, _>>>::div
Unexecuted instantiation: <i16 as core::ops::arith::Rem<&ndarray::ArrayRef<i16, _>>>::rem
Unexecuted instantiation: <i16 as core::ops::bit::BitAnd<&ndarray::ArrayRef<i16, _>>>::bitand
Unexecuted instantiation: <i16 as core::ops::bit::BitOr<&ndarray::ArrayRef<i16, _>>>::bitor
Unexecuted instantiation: <u8 as core::ops::arith::Add<&ndarray::ArrayRef<u8, _>>>::add
Unexecuted instantiation: <u8 as core::ops::arith::Sub<&ndarray::ArrayRef<u8, _>>>::sub
Unexecuted instantiation: <u8 as core::ops::arith::Mul<&ndarray::ArrayRef<u8, _>>>::mul
Unexecuted instantiation: <u8 as core::ops::arith::Div<&ndarray::ArrayRef<u8, _>>>::div
Unexecuted instantiation: <u8 as core::ops::arith::Rem<&ndarray::ArrayRef<u8, _>>>::rem
Unexecuted instantiation: <u8 as core::ops::bit::BitAnd<&ndarray::ArrayRef<u8, _>>>::bitand
Unexecuted instantiation: <u8 as core::ops::bit::BitOr<&ndarray::ArrayRef<u8, _>>>::bitor
Unexecuted instantiation: <u8 as core::ops::bit::BitXor<&ndarray::ArrayRef<u8, _>>>::bitxor
Unexecuted instantiation: <i16 as core::ops::bit::BitXor<&ndarray::ArrayRef<i16, _>>>::bitxor
Unexecuted instantiation: <i16 as core::ops::bit::Shl<&ndarray::ArrayRef<i16, _>>>::shl
Unexecuted instantiation: <i16 as core::ops::bit::Shr<&ndarray::ArrayRef<i16, _>>>::shr
Unexecuted instantiation: <u16 as core::ops::bit::Shr<&ndarray::ArrayRef<u16, _>>>::shr
Unexecuted instantiation: <i32 as core::ops::arith::Add<&ndarray::ArrayRef<i32, _>>>::add
Unexecuted instantiation: <i32 as core::ops::arith::Sub<&ndarray::ArrayRef<i32, _>>>::sub
Unexecuted instantiation: <i32 as core::ops::arith::Mul<&ndarray::ArrayRef<i32, _>>>::mul
Unexecuted instantiation: <i32 as core::ops::arith::Div<&ndarray::ArrayRef<i32, _>>>::div
Unexecuted instantiation: <i32 as core::ops::arith::Rem<&ndarray::ArrayRef<i32, _>>>::rem
Unexecuted instantiation: <i32 as core::ops::bit::BitAnd<&ndarray::ArrayRef<i32, _>>>::bitand
Unexecuted instantiation: <i32 as core::ops::bit::BitOr<&ndarray::ArrayRef<i32, _>>>::bitor
Unexecuted instantiation: <i32 as core::ops::bit::BitXor<&ndarray::ArrayRef<i32, _>>>::bitxor
Unexecuted instantiation: <u16 as core::ops::arith::Add<&ndarray::ArrayRef<u16, _>>>::add
Unexecuted instantiation: <u16 as core::ops::arith::Sub<&ndarray::ArrayRef<u16, _>>>::sub
Unexecuted instantiation: <u16 as core::ops::arith::Mul<&ndarray::ArrayRef<u16, _>>>::mul
Unexecuted instantiation: <u16 as core::ops::arith::Div<&ndarray::ArrayRef<u16, _>>>::div
Unexecuted instantiation: <u16 as core::ops::arith::Rem<&ndarray::ArrayRef<u16, _>>>::rem
Unexecuted instantiation: <u16 as core::ops::bit::BitAnd<&ndarray::ArrayRef<u16, _>>>::bitand
Unexecuted instantiation: <u16 as core::ops::bit::BitOr<&ndarray::ArrayRef<u16, _>>>::bitor
Unexecuted instantiation: <u16 as core::ops::bit::BitXor<&ndarray::ArrayRef<u16, _>>>::bitxor
Unexecuted instantiation: <u16 as core::ops::bit::Shl<&ndarray::ArrayRef<u16, _>>>::shl
Unexecuted instantiation: <i32 as core::ops::bit::Shl<&ndarray::ArrayRef<i32, _>>>::shl
Unexecuted instantiation: <i32 as core::ops::bit::Shr<&ndarray::ArrayRef<i32, _>>>::shr
Unexecuted instantiation: <u32 as core::ops::arith::Add<&ndarray::ArrayRef<u32, _>>>::add
Unexecuted instantiation: <i64 as core::ops::arith::Add<&ndarray::ArrayRef<i64, _>>>::add
Unexecuted instantiation: <i64 as core::ops::arith::Sub<&ndarray::ArrayRef<i64, _>>>::sub
Unexecuted instantiation: <i64 as core::ops::arith::Mul<&ndarray::ArrayRef<i64, _>>>::mul
Unexecuted instantiation: <i64 as core::ops::arith::Div<&ndarray::ArrayRef<i64, _>>>::div
Unexecuted instantiation: <i64 as core::ops::arith::Rem<&ndarray::ArrayRef<i64, _>>>::rem
Unexecuted instantiation: <i64 as core::ops::bit::BitAnd<&ndarray::ArrayRef<i64, _>>>::bitand
Unexecuted instantiation: <i64 as core::ops::bit::BitOr<&ndarray::ArrayRef<i64, _>>>::bitor
Unexecuted instantiation: <i64 as core::ops::bit::BitXor<&ndarray::ArrayRef<i64, _>>>::bitxor
Unexecuted instantiation: <u32 as core::ops::arith::Sub<&ndarray::ArrayRef<u32, _>>>::sub
Unexecuted instantiation: <u32 as core::ops::arith::Mul<&ndarray::ArrayRef<u32, _>>>::mul
Unexecuted instantiation: <u32 as core::ops::arith::Div<&ndarray::ArrayRef<u32, _>>>::div
Unexecuted instantiation: <u32 as core::ops::arith::Rem<&ndarray::ArrayRef<u32, _>>>::rem
Unexecuted instantiation: <u32 as core::ops::bit::BitAnd<&ndarray::ArrayRef<u32, _>>>::bitand
Unexecuted instantiation: <u32 as core::ops::bit::BitOr<&ndarray::ArrayRef<u32, _>>>::bitor
Unexecuted instantiation: <u32 as core::ops::bit::BitXor<&ndarray::ArrayRef<u32, _>>>::bitxor
Unexecuted instantiation: <u32 as core::ops::bit::Shl<&ndarray::ArrayRef<u32, _>>>::shl
Unexecuted instantiation: <u32 as core::ops::bit::Shr<&ndarray::ArrayRef<u32, _>>>::shr
Unexecuted instantiation: <i64 as core::ops::bit::Shl<&ndarray::ArrayRef<i64, _>>>::shl
Unexecuted instantiation: <i64 as core::ops::bit::Shr<&ndarray::ArrayRef<i64, _>>>::shr
Unexecuted instantiation: <u64 as core::ops::arith::Add<&ndarray::ArrayRef<u64, _>>>::add
Unexecuted instantiation: <u64 as core::ops::arith::Sub<&ndarray::ArrayRef<u64, _>>>::sub
Unexecuted instantiation: <isize as core::ops::arith::Add<&ndarray::ArrayRef<isize, _>>>::add
Unexecuted instantiation: <isize as core::ops::arith::Sub<&ndarray::ArrayRef<isize, _>>>::sub
Unexecuted instantiation: <isize as core::ops::arith::Mul<&ndarray::ArrayRef<isize, _>>>::mul
Unexecuted instantiation: <isize as core::ops::arith::Div<&ndarray::ArrayRef<isize, _>>>::div
Unexecuted instantiation: <isize as core::ops::arith::Rem<&ndarray::ArrayRef<isize, _>>>::rem
Unexecuted instantiation: <isize as core::ops::bit::BitAnd<&ndarray::ArrayRef<isize, _>>>::bitand
Unexecuted instantiation: <isize as core::ops::bit::BitOr<&ndarray::ArrayRef<isize, _>>>::bitor
Unexecuted instantiation: <isize as core::ops::bit::BitXor<&ndarray::ArrayRef<isize, _>>>::bitxor
Unexecuted instantiation: <isize as core::ops::bit::Shl<&ndarray::ArrayRef<isize, _>>>::shl
Unexecuted instantiation: <u64 as core::ops::arith::Mul<&ndarray::ArrayRef<u64, _>>>::mul
Unexecuted instantiation: <u64 as core::ops::arith::Div<&ndarray::ArrayRef<u64, _>>>::div
Unexecuted instantiation: <u64 as core::ops::arith::Rem<&ndarray::ArrayRef<u64, _>>>::rem
Unexecuted instantiation: <u64 as core::ops::bit::BitAnd<&ndarray::ArrayRef<u64, _>>>::bitand
Unexecuted instantiation: <u64 as core::ops::bit::BitOr<&ndarray::ArrayRef<u64, _>>>::bitor
Unexecuted instantiation: <u64 as core::ops::bit::BitXor<&ndarray::ArrayRef<u64, _>>>::bitxor
Unexecuted instantiation: <u64 as core::ops::bit::Shl<&ndarray::ArrayRef<u64, _>>>::shl
Unexecuted instantiation: <u64 as core::ops::bit::Shr<&ndarray::ArrayRef<u64, _>>>::shr
Unexecuted instantiation: <isize as core::ops::bit::Shr<&ndarray::ArrayRef<isize, _>>>::shr
Unexecuted instantiation: <usize as core::ops::arith::Add<&ndarray::ArrayRef<usize, _>>>::add
Unexecuted instantiation: <usize as core::ops::arith::Sub<&ndarray::ArrayRef<usize, _>>>::sub
Unexecuted instantiation: <i128 as core::ops::arith::Sub<&ndarray::ArrayRef<i128, _>>>::sub
Unexecuted instantiation: <i128 as core::ops::arith::Mul<&ndarray::ArrayRef<i128, _>>>::mul
Unexecuted instantiation: <i128 as core::ops::arith::Div<&ndarray::ArrayRef<i128, _>>>::div
Unexecuted instantiation: <i128 as core::ops::arith::Rem<&ndarray::ArrayRef<i128, _>>>::rem
Unexecuted instantiation: <i128 as core::ops::bit::BitAnd<&ndarray::ArrayRef<i128, _>>>::bitand
Unexecuted instantiation: <i128 as core::ops::bit::BitOr<&ndarray::ArrayRef<i128, _>>>::bitor
Unexecuted instantiation: <i128 as core::ops::bit::BitXor<&ndarray::ArrayRef<i128, _>>>::bitxor
Unexecuted instantiation: <i128 as core::ops::bit::Shl<&ndarray::ArrayRef<i128, _>>>::shl
Unexecuted instantiation: <i128 as core::ops::bit::Shr<&ndarray::ArrayRef<i128, _>>>::shr
Unexecuted instantiation: <usize as core::ops::arith::Mul<&ndarray::ArrayRef<usize, _>>>::mul
Unexecuted instantiation: <usize as core::ops::arith::Div<&ndarray::ArrayRef<usize, _>>>::div
Unexecuted instantiation: <usize as core::ops::arith::Rem<&ndarray::ArrayRef<usize, _>>>::rem
Unexecuted instantiation: <usize as core::ops::bit::BitAnd<&ndarray::ArrayRef<usize, _>>>::bitand
Unexecuted instantiation: <usize as core::ops::bit::BitOr<&ndarray::ArrayRef<usize, _>>>::bitor
Unexecuted instantiation: <usize as core::ops::bit::BitXor<&ndarray::ArrayRef<usize, _>>>::bitxor
Unexecuted instantiation: <usize as core::ops::bit::Shl<&ndarray::ArrayRef<usize, _>>>::shl
Unexecuted instantiation: <usize as core::ops::bit::Shr<&ndarray::ArrayRef<usize, _>>>::shr
Unexecuted instantiation: <i128 as core::ops::arith::Add<&ndarray::ArrayRef<i128, _>>>::add
Unexecuted instantiation: <u128 as core::ops::arith::Add<&ndarray::ArrayRef<u128, _>>>::add
Unexecuted instantiation: <u128 as core::ops::arith::Sub<&ndarray::ArrayRef<u128, _>>>::sub
Unexecuted instantiation: <u128 as core::ops::arith::Mul<&ndarray::ArrayRef<u128, _>>>::mul
Unexecuted instantiation: <bool as core::ops::bit::BitXor<&ndarray::ArrayRef<bool, _>>>::bitxor
Unexecuted instantiation: <f32 as core::ops::arith::Add<&ndarray::ArrayRef<f32, _>>>::add
Unexecuted instantiation: <f32 as core::ops::arith::Sub<&ndarray::ArrayRef<f32, _>>>::sub
Unexecuted instantiation: <f32 as core::ops::arith::Mul<&ndarray::ArrayRef<f32, _>>>::mul
Unexecuted instantiation: <f32 as core::ops::arith::Div<&ndarray::ArrayRef<f32, _>>>::div
Unexecuted instantiation: <f32 as core::ops::arith::Rem<&ndarray::ArrayRef<f32, _>>>::rem
Unexecuted instantiation: <f64 as core::ops::arith::Add<&ndarray::ArrayRef<f64, _>>>::add
Unexecuted instantiation: <f64 as core::ops::arith::Sub<&ndarray::ArrayRef<f64, _>>>::sub
Unexecuted instantiation: <u128 as core::ops::arith::Div<&ndarray::ArrayRef<u128, _>>>::div
Unexecuted instantiation: <u128 as core::ops::arith::Rem<&ndarray::ArrayRef<u128, _>>>::rem
Unexecuted instantiation: <u128 as core::ops::bit::BitAnd<&ndarray::ArrayRef<u128, _>>>::bitand
Unexecuted instantiation: <u128 as core::ops::bit::BitOr<&ndarray::ArrayRef<u128, _>>>::bitor
Unexecuted instantiation: <u128 as core::ops::bit::BitXor<&ndarray::ArrayRef<u128, _>>>::bitxor
Unexecuted instantiation: <u128 as core::ops::bit::Shl<&ndarray::ArrayRef<u128, _>>>::shl
Unexecuted instantiation: <u128 as core::ops::bit::Shr<&ndarray::ArrayRef<u128, _>>>::shr
Unexecuted instantiation: <bool as core::ops::bit::BitAnd<&ndarray::ArrayRef<bool, _>>>::bitand
Unexecuted instantiation: <bool as core::ops::bit::BitOr<&ndarray::ArrayRef<bool, _>>>::bitor
Unexecuted instantiation: <f64 as core::ops::arith::Mul<&ndarray::ArrayRef<f64, _>>>::mul
Unexecuted instantiation: <f64 as core::ops::arith::Div<&ndarray::ArrayRef<f64, _>>>::div
Unexecuted instantiation: <f64 as core::ops::arith::Rem<&ndarray::ArrayRef<f64, _>>>::rem
Unexecuted instantiation: <num_complex::Complex<f32> as core::ops::arith::Add<&ndarray::ArrayRef<num_complex::Complex<f32>, _>>>::add
Unexecuted instantiation: <num_complex::Complex<f32> as core::ops::arith::Sub<&ndarray::ArrayRef<num_complex::Complex<f32>, _>>>::sub
Unexecuted instantiation: <num_complex::Complex<f32> as core::ops::arith::Mul<&ndarray::ArrayRef<num_complex::Complex<f32>, _>>>::mul
Unexecuted instantiation: <num_complex::Complex<f32> as core::ops::arith::Div<&ndarray::ArrayRef<num_complex::Complex<f32>, _>>>::div
Unexecuted instantiation: <num_complex::Complex<f64> as core::ops::arith::Add<&ndarray::ArrayRef<num_complex::Complex<f64>, _>>>::add
Unexecuted instantiation: <num_complex::Complex<f64> as core::ops::arith::Sub<&ndarray::ArrayRef<num_complex::Complex<f64>, _>>>::sub
Unexecuted instantiation: <num_complex::Complex<f64> as core::ops::arith::Mul<&ndarray::ArrayRef<num_complex::Complex<f64>, _>>>::mul
Unexecuted instantiation: <num_complex::Complex<f64> as core::ops::arith::Div<&ndarray::ArrayRef<num_complex::Complex<f64>, _>>>::div
403
}
404
    );
405
}
406
407
mod arithmetic_ops
408
{
409
    use super::*;
410
    use crate::imp_prelude::*;
411
412
    use std::ops::*;
413
414
0
    fn clone_opf<A: Clone, B: Clone, C>(f: impl Fn(A, B) -> C) -> impl FnMut(&A, &B) -> C
415
    {
416
0
        move |x, y| f(x.clone(), y.clone())
Unexecuted instantiation: ndarray::impl_ops::arithmetic_ops::clone_opf::<f64, f64, f64, <f64 as core::ops::arith::Mul>::mul>::{closure#0}
Unexecuted instantiation: ndarray::impl_ops::arithmetic_ops::clone_opf::<f32, f32, f32, <f32 as core::ops::arith::Mul>::mul>::{closure#0}
Unexecuted instantiation: ndarray::impl_ops::arithmetic_ops::clone_opf::<_, _, _, _>::{closure#0}
417
0
    }
Unexecuted instantiation: ndarray::impl_ops::arithmetic_ops::clone_opf::<f64, f64, f64, <f64 as core::ops::arith::Mul>::mul>
Unexecuted instantiation: ndarray::impl_ops::arithmetic_ops::clone_opf::<f32, f32, f32, <f32 as core::ops::arith::Mul>::mul>
Unexecuted instantiation: ndarray::impl_ops::arithmetic_ops::clone_opf::<_, _, _, _>
418
419
0
    fn clone_iopf<A: Clone, B: Clone>(f: impl Fn(A, B) -> A) -> impl FnMut(&mut A, &B)
420
    {
421
0
        move |x, y| *x = f(x.clone(), y.clone())
422
0
    }
423
424
0
    fn clone_iopf_rev<A: Clone, B: Clone>(f: impl Fn(A, B) -> B) -> impl FnMut(&mut B, &A)
425
    {
426
0
        move |x, y| *x = f(y.clone(), x.clone())
427
0
    }
428
429
    impl_binary_op!(Add, +, add, +=, "addition");
430
    impl_binary_op!(Sub, -, sub, -=, "subtraction");
431
    impl_binary_op!(Mul, *, mul, *=, "multiplication");
432
    impl_binary_op!(Div, /, div, /=, "division");
433
    impl_binary_op!(Rem, %, rem, %=, "remainder");
434
    impl_binary_op!(BitAnd, &, bitand, &=, "bit and");
435
    impl_binary_op!(BitOr, |, bitor, |=, "bit or");
436
    impl_binary_op!(BitXor, ^, bitxor, ^=, "bit xor");
437
    impl_binary_op!(Shl, <<, shl, <<=, "left shift");
438
    impl_binary_op!(Shr, >>, shr, >>=, "right shift");
439
440
    macro_rules! all_scalar_ops {
441
        ($int_scalar:ty) => (
442
            impl_scalar_lhs_op!($int_scalar, Commute, +, Add, add, "addition");
443
            impl_scalar_lhs_op!($int_scalar, Ordered, -, Sub, sub, "subtraction");
444
            impl_scalar_lhs_op!($int_scalar, Commute, *, Mul, mul, "multiplication");
445
            impl_scalar_lhs_op!($int_scalar, Ordered, /, Div, div, "division");
446
            impl_scalar_lhs_op!($int_scalar, Ordered, %, Rem, rem, "remainder");
447
            impl_scalar_lhs_op!($int_scalar, Commute, &, BitAnd, bitand, "bit and");
448
            impl_scalar_lhs_op!($int_scalar, Commute, |, BitOr, bitor, "bit or");
449
            impl_scalar_lhs_op!($int_scalar, Commute, ^, BitXor, bitxor, "bit xor");
450
            impl_scalar_lhs_op!($int_scalar, Ordered, <<, Shl, shl, "left shift");
451
            impl_scalar_lhs_op!($int_scalar, Ordered, >>, Shr, shr, "right shift");
452
        );
453
    }
454
    all_scalar_ops!(i8);
455
    all_scalar_ops!(u8);
456
    all_scalar_ops!(i16);
457
    all_scalar_ops!(u16);
458
    all_scalar_ops!(i32);
459
    all_scalar_ops!(u32);
460
    all_scalar_ops!(i64);
461
    all_scalar_ops!(u64);
462
    all_scalar_ops!(isize);
463
    all_scalar_ops!(usize);
464
    all_scalar_ops!(i128);
465
    all_scalar_ops!(u128);
466
467
    impl_scalar_lhs_op!(bool, Commute, &, BitAnd, bitand, "bit and");
468
    impl_scalar_lhs_op!(bool, Commute, |, BitOr, bitor, "bit or");
469
    impl_scalar_lhs_op!(bool, Commute, ^, BitXor, bitxor, "bit xor");
470
471
    impl_scalar_lhs_op!(f32, Commute, +, Add, add, "addition");
472
    impl_scalar_lhs_op!(f32, Ordered, -, Sub, sub, "subtraction");
473
    impl_scalar_lhs_op!(f32, Commute, *, Mul, mul, "multiplication");
474
    impl_scalar_lhs_op!(f32, Ordered, /, Div, div, "division");
475
    impl_scalar_lhs_op!(f32, Ordered, %, Rem, rem, "remainder");
476
477
    impl_scalar_lhs_op!(f64, Commute, +, Add, add, "addition");
478
    impl_scalar_lhs_op!(f64, Ordered, -, Sub, sub, "subtraction");
479
    impl_scalar_lhs_op!(f64, Commute, *, Mul, mul, "multiplication");
480
    impl_scalar_lhs_op!(f64, Ordered, /, Div, div, "division");
481
    impl_scalar_lhs_op!(f64, Ordered, %, Rem, rem, "remainder");
482
483
    impl_scalar_lhs_op!(Complex<f32>, Commute, +, Add, add, "addition");
484
    impl_scalar_lhs_op!(Complex<f32>, Ordered, -, Sub, sub, "subtraction");
485
    impl_scalar_lhs_op!(Complex<f32>, Commute, *, Mul, mul, "multiplication");
486
    impl_scalar_lhs_op!(Complex<f32>, Ordered, /, Div, div, "division");
487
488
    impl_scalar_lhs_op!(Complex<f64>, Commute, +, Add, add, "addition");
489
    impl_scalar_lhs_op!(Complex<f64>, Ordered, -, Sub, sub, "subtraction");
490
    impl_scalar_lhs_op!(Complex<f64>, Commute, *, Mul, mul, "multiplication");
491
    impl_scalar_lhs_op!(Complex<f64>, Ordered, /, Div, div, "division");
492
493
    impl<A, S, D> Neg for ArrayBase<S, D>
494
    where
495
        A: Clone + Neg<Output = A>,
496
        S: DataOwned<Elem = A> + DataMut,
497
        D: Dimension,
498
    {
499
        type Output = Self;
500
501
        /// Perform an elementwise negation of `self` and return the result.
502
0
        fn neg(mut self) -> Self
503
        {
504
0
            self.map_inplace(|elt| {
505
0
                *elt = -elt.clone();
506
0
            });
507
0
            self
508
0
        }
509
    }
510
511
    impl<'a, A, S, D> Neg for &'a ArrayBase<S, D>
512
    where
513
        &'a A: 'a + Neg<Output = A>,
514
        S: Data<Elem = A>,
515
        D: Dimension,
516
    {
517
        type Output = Array<A, D>;
518
519
        /// Perform an elementwise negation of reference `self` and return the
520
        /// result as a new `Array`.
521
0
        fn neg(self) -> Array<A, D>
522
        {
523
0
            (&**self).neg()
524
0
        }
525
    }
526
527
    impl<'a, A, D> Neg for &'a ArrayRef<A, D>
528
    where
529
        &'a A: 'a + Neg<Output = A>,
530
        D: Dimension,
531
    {
532
        type Output = Array<A, D>;
533
534
        /// Perform an elementwise negation of reference `self` and return the
535
        /// result as a new `Array`.
536
0
        fn neg(self) -> Array<A, D>
537
        {
538
0
            self.map(Neg::neg)
539
0
        }
540
    }
541
542
    impl<A, S, D> Not for ArrayBase<S, D>
543
    where
544
        A: Clone + Not<Output = A>,
545
        S: DataOwned<Elem = A> + DataMut,
546
        D: Dimension,
547
    {
548
        type Output = Self;
549
550
        /// Perform an elementwise unary not of `self` and return the result.
551
0
        fn not(mut self) -> Self
552
        {
553
0
            self.map_inplace(|elt| {
554
0
                *elt = !elt.clone();
555
0
            });
556
0
            self
557
0
        }
558
    }
559
560
    impl<'a, A, S, D> Not for &'a ArrayBase<S, D>
561
    where
562
        &'a A: 'a + Not<Output = A>,
563
        S: Data<Elem = A>,
564
        D: Dimension,
565
    {
566
        type Output = Array<A, D>;
567
568
        /// Perform an elementwise unary not of reference `self` and return the
569
        /// result as a new `Array`.
570
0
        fn not(self) -> Array<A, D>
571
        {
572
0
            (&**self).not()
573
0
        }
574
    }
575
576
    impl<'a, A, D> Not for &'a ArrayRef<A, D>
577
    where
578
        &'a A: 'a + Not<Output = A>,
579
        D: Dimension,
580
    {
581
        type Output = Array<A, D>;
582
583
        /// Perform an elementwise unary not of reference `self` and return the
584
        /// result as a new `Array`.
585
0
        fn not(self) -> Array<A, D>
586
        {
587
0
            self.map(Not::not)
588
0
        }
589
    }
590
}
591
592
mod assign_ops
593
{
594
    use super::*;
595
    use crate::imp_prelude::*;
596
597
    macro_rules! impl_assign_op {
598
        ($trt:ident, $method:ident, $doc:expr) => {
599
            use std::ops::$trt;
600
601
            #[doc=$doc]
602
            /// If their shapes disagree, `rhs` is broadcast to the shape of `self`.
603
            ///
604
            /// **Panics** if broadcasting isn’t possible.
605
            impl<'a, A, S, S2, D, E> $trt<&'a ArrayBase<S2, E>> for ArrayBase<S, D>
606
            where
607
                A: Clone + $trt<A>,
608
                S: DataMut<Elem = A>,
609
                S2: Data<Elem = A>,
610
                D: Dimension,
611
                E: Dimension,
612
            {
613
                #[track_caller]
614
0
                fn $method(&mut self, rhs: &ArrayBase<S2, E>) {
615
0
                    (**self).$method(&**rhs)
616
0
                }
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::arith::AddAssign<&ndarray::ArrayBase<_, _, _>>>::add_assign
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::arith::SubAssign<&ndarray::ArrayBase<_, _, _>>>::sub_assign
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::arith::MulAssign<&ndarray::ArrayBase<_, _, _>>>::mul_assign
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::arith::DivAssign<&ndarray::ArrayBase<_, _, _>>>::div_assign
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::arith::RemAssign<&ndarray::ArrayBase<_, _, _>>>::rem_assign
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::bit::BitAndAssign<&ndarray::ArrayBase<_, _, _>>>::bitand_assign
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::bit::BitOrAssign<&ndarray::ArrayBase<_, _, _>>>::bitor_assign
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::bit::BitXorAssign<&ndarray::ArrayBase<_, _, _>>>::bitxor_assign
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::bit::ShlAssign<&ndarray::ArrayBase<_, _, _>>>::shl_assign
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::bit::ShrAssign<&ndarray::ArrayBase<_, _, _>>>::shr_assign
617
            }
618
619
            #[doc=$doc]
620
            /// If their shapes disagree, `rhs` is broadcast to the shape of `self`.
621
            ///
622
            /// **Panics** if broadcasting isn’t possible.
623
            impl<'a, A, D, E> $trt<&'a ArrayRef<A, E>> for ArrayRef<A, D>
624
            where
625
                A: Clone + $trt<A>,
626
                D: Dimension,
627
                E: Dimension,
628
            {
629
                #[track_caller]
630
0
                fn $method(&mut self, rhs: &ArrayRef<A, E>) {
631
0
                    self.zip_mut_with(rhs, |x, y| {
632
0
                        x.$method(y.clone());
633
0
                    });
Unexecuted instantiation: <ndarray::ArrayRef<_, _> as core::ops::arith::SubAssign<&ndarray::ArrayRef<_, _>>>::sub_assign::{closure#0}
Unexecuted instantiation: <ndarray::ArrayRef<_, _> as core::ops::arith::MulAssign<&ndarray::ArrayRef<_, _>>>::mul_assign::{closure#0}
Unexecuted instantiation: <ndarray::ArrayRef<_, _> as core::ops::arith::AddAssign<&ndarray::ArrayRef<_, _>>>::add_assign::{closure#0}
Unexecuted instantiation: <ndarray::ArrayRef<_, _> as core::ops::arith::DivAssign<&ndarray::ArrayRef<_, _>>>::div_assign::{closure#0}
Unexecuted instantiation: <ndarray::ArrayRef<_, _> as core::ops::arith::RemAssign<&ndarray::ArrayRef<_, _>>>::rem_assign::{closure#0}
Unexecuted instantiation: <ndarray::ArrayRef<_, _> as core::ops::bit::BitAndAssign<&ndarray::ArrayRef<_, _>>>::bitand_assign::{closure#0}
Unexecuted instantiation: <ndarray::ArrayRef<_, _> as core::ops::bit::BitOrAssign<&ndarray::ArrayRef<_, _>>>::bitor_assign::{closure#0}
Unexecuted instantiation: <ndarray::ArrayRef<_, _> as core::ops::bit::BitXorAssign<&ndarray::ArrayRef<_, _>>>::bitxor_assign::{closure#0}
Unexecuted instantiation: <ndarray::ArrayRef<_, _> as core::ops::bit::ShlAssign<&ndarray::ArrayRef<_, _>>>::shl_assign::{closure#0}
Unexecuted instantiation: <ndarray::ArrayRef<_, _> as core::ops::bit::ShrAssign<&ndarray::ArrayRef<_, _>>>::shr_assign::{closure#0}
634
0
                }
Unexecuted instantiation: <ndarray::ArrayRef<_, _> as core::ops::arith::SubAssign<&ndarray::ArrayRef<_, _>>>::sub_assign
Unexecuted instantiation: <ndarray::ArrayRef<_, _> as core::ops::arith::MulAssign<&ndarray::ArrayRef<_, _>>>::mul_assign
Unexecuted instantiation: <ndarray::ArrayRef<_, _> as core::ops::arith::AddAssign<&ndarray::ArrayRef<_, _>>>::add_assign
Unexecuted instantiation: <ndarray::ArrayRef<_, _> as core::ops::arith::DivAssign<&ndarray::ArrayRef<_, _>>>::div_assign
Unexecuted instantiation: <ndarray::ArrayRef<_, _> as core::ops::arith::RemAssign<&ndarray::ArrayRef<_, _>>>::rem_assign
Unexecuted instantiation: <ndarray::ArrayRef<_, _> as core::ops::bit::BitAndAssign<&ndarray::ArrayRef<_, _>>>::bitand_assign
Unexecuted instantiation: <ndarray::ArrayRef<_, _> as core::ops::bit::BitOrAssign<&ndarray::ArrayRef<_, _>>>::bitor_assign
Unexecuted instantiation: <ndarray::ArrayRef<_, _> as core::ops::bit::BitXorAssign<&ndarray::ArrayRef<_, _>>>::bitxor_assign
Unexecuted instantiation: <ndarray::ArrayRef<_, _> as core::ops::bit::ShlAssign<&ndarray::ArrayRef<_, _>>>::shl_assign
Unexecuted instantiation: <ndarray::ArrayRef<_, _> as core::ops::bit::ShrAssign<&ndarray::ArrayRef<_, _>>>::shr_assign
635
            }
636
637
            #[doc=$doc]
638
            impl<A, S, D> $trt<A> for ArrayBase<S, D>
639
            where
640
                A: ScalarOperand + $trt<A>,
641
                S: DataMut<Elem = A>,
642
                D: Dimension,
643
            {
644
0
                fn $method(&mut self, rhs: A) {
645
0
                    (**self).$method(rhs)
646
0
                }
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::arith::AddAssign<_>>::add_assign
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::arith::SubAssign<_>>::sub_assign
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::arith::MulAssign<_>>::mul_assign
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::bit::ShrAssign<_>>::shr_assign
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::arith::DivAssign<_>>::div_assign
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::arith::RemAssign<_>>::rem_assign
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::bit::BitAndAssign<_>>::bitand_assign
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::bit::BitOrAssign<_>>::bitor_assign
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::bit::BitXorAssign<_>>::bitxor_assign
Unexecuted instantiation: <ndarray::ArrayBase<_, _, _> as core::ops::bit::ShlAssign<_>>::shl_assign
647
            }
648
649
            #[doc=$doc]
650
            impl<A, D> $trt<A> for ArrayRef<A, D>
651
            where
652
                A: ScalarOperand + $trt<A>,
653
                D: Dimension,
654
            {
655
0
                fn $method(&mut self, rhs: A) {
656
0
                    self.map_inplace(move |elt| {
657
0
                        elt.$method(rhs.clone());
658
0
                    });
Unexecuted instantiation: <ndarray::ArrayRef<_, _> as core::ops::arith::AddAssign<_>>::add_assign::{closure#0}
Unexecuted instantiation: <ndarray::ArrayRef<_, _> as core::ops::arith::SubAssign<_>>::sub_assign::{closure#0}
Unexecuted instantiation: <ndarray::ArrayRef<_, _> as core::ops::arith::MulAssign<_>>::mul_assign::{closure#0}
Unexecuted instantiation: <ndarray::ArrayRef<_, _> as core::ops::bit::ShrAssign<_>>::shr_assign::{closure#0}
Unexecuted instantiation: <ndarray::ArrayRef<_, _> as core::ops::arith::DivAssign<_>>::div_assign::{closure#0}
Unexecuted instantiation: <ndarray::ArrayRef<_, _> as core::ops::arith::RemAssign<_>>::rem_assign::{closure#0}
Unexecuted instantiation: <ndarray::ArrayRef<_, _> as core::ops::bit::BitAndAssign<_>>::bitand_assign::{closure#0}
Unexecuted instantiation: <ndarray::ArrayRef<_, _> as core::ops::bit::BitOrAssign<_>>::bitor_assign::{closure#0}
Unexecuted instantiation: <ndarray::ArrayRef<_, _> as core::ops::bit::BitXorAssign<_>>::bitxor_assign::{closure#0}
Unexecuted instantiation: <ndarray::ArrayRef<_, _> as core::ops::bit::ShlAssign<_>>::shl_assign::{closure#0}
659
0
                }
Unexecuted instantiation: <ndarray::ArrayRef<_, _> as core::ops::arith::AddAssign<_>>::add_assign
Unexecuted instantiation: <ndarray::ArrayRef<_, _> as core::ops::arith::SubAssign<_>>::sub_assign
Unexecuted instantiation: <ndarray::ArrayRef<_, _> as core::ops::arith::MulAssign<_>>::mul_assign
Unexecuted instantiation: <ndarray::ArrayRef<_, _> as core::ops::bit::ShrAssign<_>>::shr_assign
Unexecuted instantiation: <ndarray::ArrayRef<_, _> as core::ops::arith::DivAssign<_>>::div_assign
Unexecuted instantiation: <ndarray::ArrayRef<_, _> as core::ops::arith::RemAssign<_>>::rem_assign
Unexecuted instantiation: <ndarray::ArrayRef<_, _> as core::ops::bit::BitAndAssign<_>>::bitand_assign
Unexecuted instantiation: <ndarray::ArrayRef<_, _> as core::ops::bit::BitOrAssign<_>>::bitor_assign
Unexecuted instantiation: <ndarray::ArrayRef<_, _> as core::ops::bit::BitXorAssign<_>>::bitxor_assign
Unexecuted instantiation: <ndarray::ArrayRef<_, _> as core::ops::bit::ShlAssign<_>>::shl_assign
660
            }
661
        };
662
    }
663
664
    impl_assign_op!(
665
        AddAssign,
666
        add_assign,
667
        "Perform `self += rhs` as elementwise addition (in place).\n"
668
    );
669
    impl_assign_op!(
670
        SubAssign,
671
        sub_assign,
672
        "Perform `self -= rhs` as elementwise subtraction (in place).\n"
673
    );
674
    impl_assign_op!(
675
        MulAssign,
676
        mul_assign,
677
        "Perform `self *= rhs` as elementwise multiplication (in place).\n"
678
    );
679
    impl_assign_op!(
680
        DivAssign,
681
        div_assign,
682
        "Perform `self /= rhs` as elementwise division (in place).\n"
683
    );
684
    impl_assign_op!(
685
        RemAssign,
686
        rem_assign,
687
        "Perform `self %= rhs` as elementwise remainder (in place).\n"
688
    );
689
    impl_assign_op!(
690
        BitAndAssign,
691
        bitand_assign,
692
        "Perform `self &= rhs` as elementwise bit and (in place).\n"
693
    );
694
    impl_assign_op!(
695
        BitOrAssign,
696
        bitor_assign,
697
        "Perform `self |= rhs` as elementwise bit or (in place).\n"
698
    );
699
    impl_assign_op!(
700
        BitXorAssign,
701
        bitxor_assign,
702
        "Perform `self ^= rhs` as elementwise bit xor (in place).\n"
703
    );
704
    impl_assign_op!(
705
        ShlAssign,
706
        shl_assign,
707
        "Perform `self <<= rhs` as elementwise left shift (in place).\n"
708
    );
709
    impl_assign_op!(
710
        ShrAssign,
711
        shr_assign,
712
        "Perform `self >>= rhs` as elementwise right shift (in place).\n"
713
    );
714
}