# Trait ndarray::ScalarOperand
[−]
[src]

pub trait ScalarOperand: 'static + Clone { }

Elements that can be used as direct operands in arithmetic with arrays.

For example, `f64`

is a `ScalarOperand`

which means that for an array `a`

,
arithmetic like `a + 1.0`

, and, `a * 2.`

, and `a += 3.`

are allowed.

In the description below, let `A`

be an array or array view,
let `B`

be an array with owned data,
and let `C`

be an array with mutable data.

`ScalarOperand`

determines for which scalars `K`

operations `&A @ K`

, and `B @ K`

,
and `C @= K`

are defined, as ** right hand side operands**, for applicable
arithmetic operators (denoted

`@`

).** Left hand side** scalar operands are not related to this trait
(they need one

`impl`

per concrete scalar type); but they are still
implemented for the same types, allowing operations
`K @ &A`

, and `K @ B`

for primitive numeric types `K`

.This trait ** does not** limit which elements can be stored in an array in general.
Non-

`ScalarOperand`

types can still participate in arithmetic as array elements in
in array-array operations.## Implementors

`impl ScalarOperand for bool`

`impl ScalarOperand for i8`

`impl ScalarOperand for u8`

`impl ScalarOperand for i16`

`impl ScalarOperand for u16`

`impl ScalarOperand for i32`

`impl ScalarOperand for u32`

`impl ScalarOperand for i64`

`impl ScalarOperand for u64`

`impl ScalarOperand for isize`

`impl ScalarOperand for usize`

`impl ScalarOperand for f32`

`impl ScalarOperand for f64`

`impl ScalarOperand for Complex<f32>`

`impl ScalarOperand for Complex<f64>`