Trait tract_core::internal::tract_ndarray::ScalarOperand [−][src]
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.