Struct easy_ml::tensors::views::TensorExpansion
source · pub struct TensorExpansion<T, S, const D: usize, const I: usize> { /* private fields */ }
Expand description
A combination of dimension names and a tensor. The provided dimensions increase the dimensionality of the TensorRef exposed to more than the dimensionality of the TensorRef this is created from, by adding additional dimensions with a length of one.
use easy_ml::tensors::Tensor;
use easy_ml::tensors::views::{TensorView, TensorExpansion};
let vector = Tensor::from([("a", 2)], vec![ 16, 8 ]);
let matrix = vector.expand([(1, "b")]);
let also_matrix = TensorView::from(TensorExpansion::from(&vector, [(1, "b")]));
assert_eq!(matrix, also_matrix);
assert_eq!(matrix, Tensor::from([("a", 2), ("b", 1)], vec![ 16, 8 ]));
Note: due to limitations in Rust’s const generics support, TensorExpansion only implements
TensorRef for D from 1
to 6
.
Implementations§
source§impl<T, S, const D: usize, const I: usize> TensorExpansion<T, S, D, I>where
S: TensorRef<T, D>,
impl<T, S, const D: usize, const I: usize> TensorExpansion<T, S, D, I>where
S: TensorRef<T, D>,
sourcepub fn from(
source: S,
extra_dimension_names: [(usize, Dimension); I],
) -> TensorExpansion<T, S, D, I>
pub fn from( source: S, extra_dimension_names: [(usize, Dimension); I], ) -> TensorExpansion<T, S, D, I>
Creates a TensorExpansion from a source and extra dimension names inserted into the shape at the provided indexes.
Each extra dimension name adds a dimension to the tensor with a length of 1 so they do not change the total number of elements. Hence, a vector can be viewed as a matrix if you provide an extra row/column dimension. More generally, the tensor the TensorExpansion exposes will have a dimensionality of D + I, where D is the dimensionality of the source, and I is the dimensionality of the extra dimensions.
The extra dimension names can be added before any dimensions in the source’s shape, in the range 0 inclusive to D inclusive. It is possible to add multiple dimension names before an existing dimension.
§Panics
- If any extra dimension name is already in use
- If any dimension number
d
to insert an extra dimension name into is not 0 <=d
<= D - If the extra dimension names are not unique
pub fn source(self) -> S
pub fn source_ref(&self) -> &S
Trait Implementations§
source§impl<T: Clone, S: Clone, const D: usize, const I: usize> Clone for TensorExpansion<T, S, D, I>
impl<T: Clone, S: Clone, const D: usize, const I: usize> Clone for TensorExpansion<T, S, D, I>
source§fn clone(&self) -> TensorExpansion<T, S, D, I>
fn clone(&self) -> TensorExpansion<T, S, D, I>
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl<T: Debug, S: Debug, const D: usize, const I: usize> Debug for TensorExpansion<T, S, D, I>
impl<T: Debug, S: Debug, const D: usize, const I: usize> Debug for TensorExpansion<T, S, D, I>
source§impl<T, S> TensorMut<T, { $d + $i }> for TensorExpansion<T, S, 0, 1>where
S: TensorMut<T, 0>,
impl<T, S> TensorMut<T, { $d + $i }> for TensorExpansion<T, S, 0, 1>where
S: TensorMut<T, 0>,
source§fn get_reference_mut(&mut self, indexes: [usize; 1]) -> Option<&mut T>
fn get_reference_mut(&mut self, indexes: [usize; 1]) -> Option<&mut T>
source§unsafe fn get_reference_unchecked_mut(&mut self, indexes: [usize; 1]) -> &mut T
unsafe fn get_reference_unchecked_mut(&mut self, indexes: [usize; 1]) -> &mut T
source§impl<T, S> TensorMut<T, { $d + $i }> for TensorExpansion<T, S, 0, 2>where
S: TensorMut<T, 0>,
impl<T, S> TensorMut<T, { $d + $i }> for TensorExpansion<T, S, 0, 2>where
S: TensorMut<T, 0>,
source§fn get_reference_mut(&mut self, indexes: [usize; 2]) -> Option<&mut T>
fn get_reference_mut(&mut self, indexes: [usize; 2]) -> Option<&mut T>
source§unsafe fn get_reference_unchecked_mut(&mut self, indexes: [usize; 2]) -> &mut T
unsafe fn get_reference_unchecked_mut(&mut self, indexes: [usize; 2]) -> &mut T
source§impl<T, S> TensorMut<T, { $d + $i }> for TensorExpansion<T, S, 0, 3>where
S: TensorMut<T, 0>,
impl<T, S> TensorMut<T, { $d + $i }> for TensorExpansion<T, S, 0, 3>where
S: TensorMut<T, 0>,
source§fn get_reference_mut(&mut self, indexes: [usize; 3]) -> Option<&mut T>
fn get_reference_mut(&mut self, indexes: [usize; 3]) -> Option<&mut T>
source§unsafe fn get_reference_unchecked_mut(&mut self, indexes: [usize; 3]) -> &mut T
unsafe fn get_reference_unchecked_mut(&mut self, indexes: [usize; 3]) -> &mut T
source§impl<T, S> TensorMut<T, { $d + $i }> for TensorExpansion<T, S, 0, 4>where
S: TensorMut<T, 0>,
impl<T, S> TensorMut<T, { $d + $i }> for TensorExpansion<T, S, 0, 4>where
S: TensorMut<T, 0>,
source§fn get_reference_mut(&mut self, indexes: [usize; 4]) -> Option<&mut T>
fn get_reference_mut(&mut self, indexes: [usize; 4]) -> Option<&mut T>
source§unsafe fn get_reference_unchecked_mut(&mut self, indexes: [usize; 4]) -> &mut T
unsafe fn get_reference_unchecked_mut(&mut self, indexes: [usize; 4]) -> &mut T
source§impl<T, S> TensorMut<T, { $d + $i }> for TensorExpansion<T, S, 0, 5>where
S: TensorMut<T, 0>,
impl<T, S> TensorMut<T, { $d + $i }> for TensorExpansion<T, S, 0, 5>where
S: TensorMut<T, 0>,
source§fn get_reference_mut(&mut self, indexes: [usize; 5]) -> Option<&mut T>
fn get_reference_mut(&mut self, indexes: [usize; 5]) -> Option<&mut T>
source§unsafe fn get_reference_unchecked_mut(&mut self, indexes: [usize; 5]) -> &mut T
unsafe fn get_reference_unchecked_mut(&mut self, indexes: [usize; 5]) -> &mut T
source§impl<T, S> TensorMut<T, { $d + $i }> for TensorExpansion<T, S, 0, 6>where
S: TensorMut<T, 0>,
impl<T, S> TensorMut<T, { $d + $i }> for TensorExpansion<T, S, 0, 6>where
S: TensorMut<T, 0>,
source§fn get_reference_mut(&mut self, indexes: [usize; 6]) -> Option<&mut T>
fn get_reference_mut(&mut self, indexes: [usize; 6]) -> Option<&mut T>
source§unsafe fn get_reference_unchecked_mut(&mut self, indexes: [usize; 6]) -> &mut T
unsafe fn get_reference_unchecked_mut(&mut self, indexes: [usize; 6]) -> &mut T
source§impl<T, S> TensorMut<T, { $d + $i }> for TensorExpansion<T, S, 1, 1>where
S: TensorMut<T, 1>,
impl<T, S> TensorMut<T, { $d + $i }> for TensorExpansion<T, S, 1, 1>where
S: TensorMut<T, 1>,
source§fn get_reference_mut(&mut self, indexes: [usize; 2]) -> Option<&mut T>
fn get_reference_mut(&mut self, indexes: [usize; 2]) -> Option<&mut T>
source§unsafe fn get_reference_unchecked_mut(&mut self, indexes: [usize; 2]) -> &mut T
unsafe fn get_reference_unchecked_mut(&mut self, indexes: [usize; 2]) -> &mut T
source§impl<T, S> TensorMut<T, { $d + $i }> for TensorExpansion<T, S, 1, 2>where
S: TensorMut<T, 1>,
impl<T, S> TensorMut<T, { $d + $i }> for TensorExpansion<T, S, 1, 2>where
S: TensorMut<T, 1>,
source§fn get_reference_mut(&mut self, indexes: [usize; 3]) -> Option<&mut T>
fn get_reference_mut(&mut self, indexes: [usize; 3]) -> Option<&mut T>
source§unsafe fn get_reference_unchecked_mut(&mut self, indexes: [usize; 3]) -> &mut T
unsafe fn get_reference_unchecked_mut(&mut self, indexes: [usize; 3]) -> &mut T
source§impl<T, S> TensorMut<T, { $d + $i }> for TensorExpansion<T, S, 1, 3>where
S: TensorMut<T, 1>,
impl<T, S> TensorMut<T, { $d + $i }> for TensorExpansion<T, S, 1, 3>where
S: TensorMut<T, 1>,
source§fn get_reference_mut(&mut self, indexes: [usize; 4]) -> Option<&mut T>
fn get_reference_mut(&mut self, indexes: [usize; 4]) -> Option<&mut T>
source§unsafe fn get_reference_unchecked_mut(&mut self, indexes: [usize; 4]) -> &mut T
unsafe fn get_reference_unchecked_mut(&mut self, indexes: [usize; 4]) -> &mut T
source§impl<T, S> TensorMut<T, { $d + $i }> for TensorExpansion<T, S, 1, 4>where
S: TensorMut<T, 1>,
impl<T, S> TensorMut<T, { $d + $i }> for TensorExpansion<T, S, 1, 4>where
S: TensorMut<T, 1>,
source§fn get_reference_mut(&mut self, indexes: [usize; 5]) -> Option<&mut T>
fn get_reference_mut(&mut self, indexes: [usize; 5]) -> Option<&mut T>
source§unsafe fn get_reference_unchecked_mut(&mut self, indexes: [usize; 5]) -> &mut T
unsafe fn get_reference_unchecked_mut(&mut self, indexes: [usize; 5]) -> &mut T
source§impl<T, S> TensorMut<T, { $d + $i }> for TensorExpansion<T, S, 1, 5>where
S: TensorMut<T, 1>,
impl<T, S> TensorMut<T, { $d + $i }> for TensorExpansion<T, S, 1, 5>where
S: TensorMut<T, 1>,
source§fn get_reference_mut(&mut self, indexes: [usize; 6]) -> Option<&mut T>
fn get_reference_mut(&mut self, indexes: [usize; 6]) -> Option<&mut T>
source§unsafe fn get_reference_unchecked_mut(&mut self, indexes: [usize; 6]) -> &mut T
unsafe fn get_reference_unchecked_mut(&mut self, indexes: [usize; 6]) -> &mut T
source§impl<T, S> TensorMut<T, { $d + $i }> for TensorExpansion<T, S, 2, 1>where
S: TensorMut<T, 2>,
impl<T, S> TensorMut<T, { $d + $i }> for TensorExpansion<T, S, 2, 1>where
S: TensorMut<T, 2>,
source§fn get_reference_mut(&mut self, indexes: [usize; 3]) -> Option<&mut T>
fn get_reference_mut(&mut self, indexes: [usize; 3]) -> Option<&mut T>
source§unsafe fn get_reference_unchecked_mut(&mut self, indexes: [usize; 3]) -> &mut T
unsafe fn get_reference_unchecked_mut(&mut self, indexes: [usize; 3]) -> &mut T
source§impl<T, S> TensorMut<T, { $d + $i }> for TensorExpansion<T, S, 2, 2>where
S: TensorMut<T, 2>,
impl<T, S> TensorMut<T, { $d + $i }> for TensorExpansion<T, S, 2, 2>where
S: TensorMut<T, 2>,
source§fn get_reference_mut(&mut self, indexes: [usize; 4]) -> Option<&mut T>
fn get_reference_mut(&mut self, indexes: [usize; 4]) -> Option<&mut T>
source§unsafe fn get_reference_unchecked_mut(&mut self, indexes: [usize; 4]) -> &mut T
unsafe fn get_reference_unchecked_mut(&mut self, indexes: [usize; 4]) -> &mut T
source§impl<T, S> TensorMut<T, { $d + $i }> for TensorExpansion<T, S, 2, 3>where
S: TensorMut<T, 2>,
impl<T, S> TensorMut<T, { $d + $i }> for TensorExpansion<T, S, 2, 3>where
S: TensorMut<T, 2>,
source§fn get_reference_mut(&mut self, indexes: [usize; 5]) -> Option<&mut T>
fn get_reference_mut(&mut self, indexes: [usize; 5]) -> Option<&mut T>
source§unsafe fn get_reference_unchecked_mut(&mut self, indexes: [usize; 5]) -> &mut T
unsafe fn get_reference_unchecked_mut(&mut self, indexes: [usize; 5]) -> &mut T
source§impl<T, S> TensorMut<T, { $d + $i }> for TensorExpansion<T, S, 2, 4>where
S: TensorMut<T, 2>,
impl<T, S> TensorMut<T, { $d + $i }> for TensorExpansion<T, S, 2, 4>where
S: TensorMut<T, 2>,
source§fn get_reference_mut(&mut self, indexes: [usize; 6]) -> Option<&mut T>
fn get_reference_mut(&mut self, indexes: [usize; 6]) -> Option<&mut T>
source§unsafe fn get_reference_unchecked_mut(&mut self, indexes: [usize; 6]) -> &mut T
unsafe fn get_reference_unchecked_mut(&mut self, indexes: [usize; 6]) -> &mut T
source§impl<T, S> TensorMut<T, { $d + $i }> for TensorExpansion<T, S, 3, 1>where
S: TensorMut<T, 3>,
impl<T, S> TensorMut<T, { $d + $i }> for TensorExpansion<T, S, 3, 1>where
S: TensorMut<T, 3>,
source§fn get_reference_mut(&mut self, indexes: [usize; 4]) -> Option<&mut T>
fn get_reference_mut(&mut self, indexes: [usize; 4]) -> Option<&mut T>
source§unsafe fn get_reference_unchecked_mut(&mut self, indexes: [usize; 4]) -> &mut T
unsafe fn get_reference_unchecked_mut(&mut self, indexes: [usize; 4]) -> &mut T
source§impl<T, S> TensorMut<T, { $d + $i }> for TensorExpansion<T, S, 3, 2>where
S: TensorMut<T, 3>,
impl<T, S> TensorMut<T, { $d + $i }> for TensorExpansion<T, S, 3, 2>where
S: TensorMut<T, 3>,
source§fn get_reference_mut(&mut self, indexes: [usize; 5]) -> Option<&mut T>
fn get_reference_mut(&mut self, indexes: [usize; 5]) -> Option<&mut T>
source§unsafe fn get_reference_unchecked_mut(&mut self, indexes: [usize; 5]) -> &mut T
unsafe fn get_reference_unchecked_mut(&mut self, indexes: [usize; 5]) -> &mut T
source§impl<T, S> TensorMut<T, { $d + $i }> for TensorExpansion<T, S, 3, 3>where
S: TensorMut<T, 3>,
impl<T, S> TensorMut<T, { $d + $i }> for TensorExpansion<T, S, 3, 3>where
S: TensorMut<T, 3>,
source§fn get_reference_mut(&mut self, indexes: [usize; 6]) -> Option<&mut T>
fn get_reference_mut(&mut self, indexes: [usize; 6]) -> Option<&mut T>
source§unsafe fn get_reference_unchecked_mut(&mut self, indexes: [usize; 6]) -> &mut T
unsafe fn get_reference_unchecked_mut(&mut self, indexes: [usize; 6]) -> &mut T
source§impl<T, S> TensorMut<T, { $d + $i }> for TensorExpansion<T, S, 4, 1>where
S: TensorMut<T, 4>,
impl<T, S> TensorMut<T, { $d + $i }> for TensorExpansion<T, S, 4, 1>where
S: TensorMut<T, 4>,
source§fn get_reference_mut(&mut self, indexes: [usize; 5]) -> Option<&mut T>
fn get_reference_mut(&mut self, indexes: [usize; 5]) -> Option<&mut T>
source§unsafe fn get_reference_unchecked_mut(&mut self, indexes: [usize; 5]) -> &mut T
unsafe fn get_reference_unchecked_mut(&mut self, indexes: [usize; 5]) -> &mut T
source§impl<T, S> TensorMut<T, { $d + $i }> for TensorExpansion<T, S, 4, 2>where
S: TensorMut<T, 4>,
impl<T, S> TensorMut<T, { $d + $i }> for TensorExpansion<T, S, 4, 2>where
S: TensorMut<T, 4>,
source§fn get_reference_mut(&mut self, indexes: [usize; 6]) -> Option<&mut T>
fn get_reference_mut(&mut self, indexes: [usize; 6]) -> Option<&mut T>
source§unsafe fn get_reference_unchecked_mut(&mut self, indexes: [usize; 6]) -> &mut T
unsafe fn get_reference_unchecked_mut(&mut self, indexes: [usize; 6]) -> &mut T
source§impl<T, S> TensorMut<T, { $d + $i }> for TensorExpansion<T, S, 5, 1>where
S: TensorMut<T, 5>,
impl<T, S> TensorMut<T, { $d + $i }> for TensorExpansion<T, S, 5, 1>where
S: TensorMut<T, 5>,
source§fn get_reference_mut(&mut self, indexes: [usize; 6]) -> Option<&mut T>
fn get_reference_mut(&mut self, indexes: [usize; 6]) -> Option<&mut T>
source§unsafe fn get_reference_unchecked_mut(&mut self, indexes: [usize; 6]) -> &mut T
unsafe fn get_reference_unchecked_mut(&mut self, indexes: [usize; 6]) -> &mut T
source§impl<T, S> TensorRef<T, { $d + $i }> for TensorExpansion<T, S, 0, 1>where
S: TensorRef<T, 0>,
impl<T, S> TensorRef<T, { $d + $i }> for TensorExpansion<T, S, 0, 1>where
S: TensorRef<T, 0>,
source§fn get_reference(&self, indexes: [usize; 1]) -> Option<&T>
fn get_reference(&self, indexes: [usize; 1]) -> Option<&T>
source§fn view_shape(&self) -> [(Dimension, usize); 1]
fn view_shape(&self) -> [(Dimension, usize); 1]
source§unsafe fn get_reference_unchecked(&self, indexes: [usize; 1]) -> &T
unsafe fn get_reference_unchecked(&self, indexes: [usize; 1]) -> &T
source§fn data_layout(&self) -> DataLayout<{ _ }>
fn data_layout(&self) -> DataLayout<{ _ }>
source§impl<T, S> TensorRef<T, { $d + $i }> for TensorExpansion<T, S, 0, 2>where
S: TensorRef<T, 0>,
impl<T, S> TensorRef<T, { $d + $i }> for TensorExpansion<T, S, 0, 2>where
S: TensorRef<T, 0>,
source§fn get_reference(&self, indexes: [usize; 2]) -> Option<&T>
fn get_reference(&self, indexes: [usize; 2]) -> Option<&T>
source§fn view_shape(&self) -> [(Dimension, usize); 2]
fn view_shape(&self) -> [(Dimension, usize); 2]
source§unsafe fn get_reference_unchecked(&self, indexes: [usize; 2]) -> &T
unsafe fn get_reference_unchecked(&self, indexes: [usize; 2]) -> &T
source§fn data_layout(&self) -> DataLayout<{ _ }>
fn data_layout(&self) -> DataLayout<{ _ }>
source§impl<T, S> TensorRef<T, { $d + $i }> for TensorExpansion<T, S, 0, 3>where
S: TensorRef<T, 0>,
impl<T, S> TensorRef<T, { $d + $i }> for TensorExpansion<T, S, 0, 3>where
S: TensorRef<T, 0>,
source§fn get_reference(&self, indexes: [usize; 3]) -> Option<&T>
fn get_reference(&self, indexes: [usize; 3]) -> Option<&T>
source§fn view_shape(&self) -> [(Dimension, usize); 3]
fn view_shape(&self) -> [(Dimension, usize); 3]
source§unsafe fn get_reference_unchecked(&self, indexes: [usize; 3]) -> &T
unsafe fn get_reference_unchecked(&self, indexes: [usize; 3]) -> &T
source§fn data_layout(&self) -> DataLayout<{ _ }>
fn data_layout(&self) -> DataLayout<{ _ }>
source§impl<T, S> TensorRef<T, { $d + $i }> for TensorExpansion<T, S, 0, 4>where
S: TensorRef<T, 0>,
impl<T, S> TensorRef<T, { $d + $i }> for TensorExpansion<T, S, 0, 4>where
S: TensorRef<T, 0>,
source§fn get_reference(&self, indexes: [usize; 4]) -> Option<&T>
fn get_reference(&self, indexes: [usize; 4]) -> Option<&T>
source§fn view_shape(&self) -> [(Dimension, usize); 4]
fn view_shape(&self) -> [(Dimension, usize); 4]
source§unsafe fn get_reference_unchecked(&self, indexes: [usize; 4]) -> &T
unsafe fn get_reference_unchecked(&self, indexes: [usize; 4]) -> &T
source§fn data_layout(&self) -> DataLayout<{ _ }>
fn data_layout(&self) -> DataLayout<{ _ }>
source§impl<T, S> TensorRef<T, { $d + $i }> for TensorExpansion<T, S, 0, 5>where
S: TensorRef<T, 0>,
impl<T, S> TensorRef<T, { $d + $i }> for TensorExpansion<T, S, 0, 5>where
S: TensorRef<T, 0>,
source§fn get_reference(&self, indexes: [usize; 5]) -> Option<&T>
fn get_reference(&self, indexes: [usize; 5]) -> Option<&T>
source§fn view_shape(&self) -> [(Dimension, usize); 5]
fn view_shape(&self) -> [(Dimension, usize); 5]
source§unsafe fn get_reference_unchecked(&self, indexes: [usize; 5]) -> &T
unsafe fn get_reference_unchecked(&self, indexes: [usize; 5]) -> &T
source§fn data_layout(&self) -> DataLayout<{ _ }>
fn data_layout(&self) -> DataLayout<{ _ }>
source§impl<T, S> TensorRef<T, { $d + $i }> for TensorExpansion<T, S, 0, 6>where
S: TensorRef<T, 0>,
impl<T, S> TensorRef<T, { $d + $i }> for TensorExpansion<T, S, 0, 6>where
S: TensorRef<T, 0>,
source§fn get_reference(&self, indexes: [usize; 6]) -> Option<&T>
fn get_reference(&self, indexes: [usize; 6]) -> Option<&T>
source§fn view_shape(&self) -> [(Dimension, usize); 6]
fn view_shape(&self) -> [(Dimension, usize); 6]
source§unsafe fn get_reference_unchecked(&self, indexes: [usize; 6]) -> &T
unsafe fn get_reference_unchecked(&self, indexes: [usize; 6]) -> &T
source§fn data_layout(&self) -> DataLayout<{ _ }>
fn data_layout(&self) -> DataLayout<{ _ }>
source§impl<T, S> TensorRef<T, { $d + $i }> for TensorExpansion<T, S, 1, 1>where
S: TensorRef<T, 1>,
impl<T, S> TensorRef<T, { $d + $i }> for TensorExpansion<T, S, 1, 1>where
S: TensorRef<T, 1>,
source§fn get_reference(&self, indexes: [usize; 2]) -> Option<&T>
fn get_reference(&self, indexes: [usize; 2]) -> Option<&T>
source§fn view_shape(&self) -> [(Dimension, usize); 2]
fn view_shape(&self) -> [(Dimension, usize); 2]
source§unsafe fn get_reference_unchecked(&self, indexes: [usize; 2]) -> &T
unsafe fn get_reference_unchecked(&self, indexes: [usize; 2]) -> &T
source§fn data_layout(&self) -> DataLayout<{ _ }>
fn data_layout(&self) -> DataLayout<{ _ }>
source§impl<T, S> TensorRef<T, { $d + $i }> for TensorExpansion<T, S, 1, 2>where
S: TensorRef<T, 1>,
impl<T, S> TensorRef<T, { $d + $i }> for TensorExpansion<T, S, 1, 2>where
S: TensorRef<T, 1>,
source§fn get_reference(&self, indexes: [usize; 3]) -> Option<&T>
fn get_reference(&self, indexes: [usize; 3]) -> Option<&T>
source§fn view_shape(&self) -> [(Dimension, usize); 3]
fn view_shape(&self) -> [(Dimension, usize); 3]
source§unsafe fn get_reference_unchecked(&self, indexes: [usize; 3]) -> &T
unsafe fn get_reference_unchecked(&self, indexes: [usize; 3]) -> &T
source§fn data_layout(&self) -> DataLayout<{ _ }>
fn data_layout(&self) -> DataLayout<{ _ }>
source§impl<T, S> TensorRef<T, { $d + $i }> for TensorExpansion<T, S, 1, 3>where
S: TensorRef<T, 1>,
impl<T, S> TensorRef<T, { $d + $i }> for TensorExpansion<T, S, 1, 3>where
S: TensorRef<T, 1>,
source§fn get_reference(&self, indexes: [usize; 4]) -> Option<&T>
fn get_reference(&self, indexes: [usize; 4]) -> Option<&T>
source§fn view_shape(&self) -> [(Dimension, usize); 4]
fn view_shape(&self) -> [(Dimension, usize); 4]
source§unsafe fn get_reference_unchecked(&self, indexes: [usize; 4]) -> &T
unsafe fn get_reference_unchecked(&self, indexes: [usize; 4]) -> &T
source§fn data_layout(&self) -> DataLayout<{ _ }>
fn data_layout(&self) -> DataLayout<{ _ }>
source§impl<T, S> TensorRef<T, { $d + $i }> for TensorExpansion<T, S, 1, 4>where
S: TensorRef<T, 1>,
impl<T, S> TensorRef<T, { $d + $i }> for TensorExpansion<T, S, 1, 4>where
S: TensorRef<T, 1>,
source§fn get_reference(&self, indexes: [usize; 5]) -> Option<&T>
fn get_reference(&self, indexes: [usize; 5]) -> Option<&T>
source§fn view_shape(&self) -> [(Dimension, usize); 5]
fn view_shape(&self) -> [(Dimension, usize); 5]
source§unsafe fn get_reference_unchecked(&self, indexes: [usize; 5]) -> &T
unsafe fn get_reference_unchecked(&self, indexes: [usize; 5]) -> &T
source§fn data_layout(&self) -> DataLayout<{ _ }>
fn data_layout(&self) -> DataLayout<{ _ }>
source§impl<T, S> TensorRef<T, { $d + $i }> for TensorExpansion<T, S, 1, 5>where
S: TensorRef<T, 1>,
impl<T, S> TensorRef<T, { $d + $i }> for TensorExpansion<T, S, 1, 5>where
S: TensorRef<T, 1>,
source§fn get_reference(&self, indexes: [usize; 6]) -> Option<&T>
fn get_reference(&self, indexes: [usize; 6]) -> Option<&T>
source§fn view_shape(&self) -> [(Dimension, usize); 6]
fn view_shape(&self) -> [(Dimension, usize); 6]
source§unsafe fn get_reference_unchecked(&self, indexes: [usize; 6]) -> &T
unsafe fn get_reference_unchecked(&self, indexes: [usize; 6]) -> &T
source§fn data_layout(&self) -> DataLayout<{ _ }>
fn data_layout(&self) -> DataLayout<{ _ }>
source§impl<T, S> TensorRef<T, { $d + $i }> for TensorExpansion<T, S, 2, 1>where
S: TensorRef<T, 2>,
impl<T, S> TensorRef<T, { $d + $i }> for TensorExpansion<T, S, 2, 1>where
S: TensorRef<T, 2>,
source§fn get_reference(&self, indexes: [usize; 3]) -> Option<&T>
fn get_reference(&self, indexes: [usize; 3]) -> Option<&T>
source§fn view_shape(&self) -> [(Dimension, usize); 3]
fn view_shape(&self) -> [(Dimension, usize); 3]
source§unsafe fn get_reference_unchecked(&self, indexes: [usize; 3]) -> &T
unsafe fn get_reference_unchecked(&self, indexes: [usize; 3]) -> &T
source§fn data_layout(&self) -> DataLayout<{ _ }>
fn data_layout(&self) -> DataLayout<{ _ }>
source§impl<T, S> TensorRef<T, { $d + $i }> for TensorExpansion<T, S, 2, 2>where
S: TensorRef<T, 2>,
impl<T, S> TensorRef<T, { $d + $i }> for TensorExpansion<T, S, 2, 2>where
S: TensorRef<T, 2>,
source§fn get_reference(&self, indexes: [usize; 4]) -> Option<&T>
fn get_reference(&self, indexes: [usize; 4]) -> Option<&T>
source§fn view_shape(&self) -> [(Dimension, usize); 4]
fn view_shape(&self) -> [(Dimension, usize); 4]
source§unsafe fn get_reference_unchecked(&self, indexes: [usize; 4]) -> &T
unsafe fn get_reference_unchecked(&self, indexes: [usize; 4]) -> &T
source§fn data_layout(&self) -> DataLayout<{ _ }>
fn data_layout(&self) -> DataLayout<{ _ }>
source§impl<T, S> TensorRef<T, { $d + $i }> for TensorExpansion<T, S, 2, 3>where
S: TensorRef<T, 2>,
impl<T, S> TensorRef<T, { $d + $i }> for TensorExpansion<T, S, 2, 3>where
S: TensorRef<T, 2>,
source§fn get_reference(&self, indexes: [usize; 5]) -> Option<&T>
fn get_reference(&self, indexes: [usize; 5]) -> Option<&T>
source§fn view_shape(&self) -> [(Dimension, usize); 5]
fn view_shape(&self) -> [(Dimension, usize); 5]
source§unsafe fn get_reference_unchecked(&self, indexes: [usize; 5]) -> &T
unsafe fn get_reference_unchecked(&self, indexes: [usize; 5]) -> &T
source§fn data_layout(&self) -> DataLayout<{ _ }>
fn data_layout(&self) -> DataLayout<{ _ }>
source§impl<T, S> TensorRef<T, { $d + $i }> for TensorExpansion<T, S, 2, 4>where
S: TensorRef<T, 2>,
impl<T, S> TensorRef<T, { $d + $i }> for TensorExpansion<T, S, 2, 4>where
S: TensorRef<T, 2>,
source§fn get_reference(&self, indexes: [usize; 6]) -> Option<&T>
fn get_reference(&self, indexes: [usize; 6]) -> Option<&T>
source§fn view_shape(&self) -> [(Dimension, usize); 6]
fn view_shape(&self) -> [(Dimension, usize); 6]
source§unsafe fn get_reference_unchecked(&self, indexes: [usize; 6]) -> &T
unsafe fn get_reference_unchecked(&self, indexes: [usize; 6]) -> &T
source§fn data_layout(&self) -> DataLayout<{ _ }>
fn data_layout(&self) -> DataLayout<{ _ }>
source§impl<T, S> TensorRef<T, { $d + $i }> for TensorExpansion<T, S, 3, 1>where
S: TensorRef<T, 3>,
impl<T, S> TensorRef<T, { $d + $i }> for TensorExpansion<T, S, 3, 1>where
S: TensorRef<T, 3>,
source§fn get_reference(&self, indexes: [usize; 4]) -> Option<&T>
fn get_reference(&self, indexes: [usize; 4]) -> Option<&T>
source§fn view_shape(&self) -> [(Dimension, usize); 4]
fn view_shape(&self) -> [(Dimension, usize); 4]
source§unsafe fn get_reference_unchecked(&self, indexes: [usize; 4]) -> &T
unsafe fn get_reference_unchecked(&self, indexes: [usize; 4]) -> &T
source§fn data_layout(&self) -> DataLayout<{ _ }>
fn data_layout(&self) -> DataLayout<{ _ }>
source§impl<T, S> TensorRef<T, { $d + $i }> for TensorExpansion<T, S, 3, 2>where
S: TensorRef<T, 3>,
impl<T, S> TensorRef<T, { $d + $i }> for TensorExpansion<T, S, 3, 2>where
S: TensorRef<T, 3>,
source§fn get_reference(&self, indexes: [usize; 5]) -> Option<&T>
fn get_reference(&self, indexes: [usize; 5]) -> Option<&T>
source§fn view_shape(&self) -> [(Dimension, usize); 5]
fn view_shape(&self) -> [(Dimension, usize); 5]
source§unsafe fn get_reference_unchecked(&self, indexes: [usize; 5]) -> &T
unsafe fn get_reference_unchecked(&self, indexes: [usize; 5]) -> &T
source§fn data_layout(&self) -> DataLayout<{ _ }>
fn data_layout(&self) -> DataLayout<{ _ }>
source§impl<T, S> TensorRef<T, { $d + $i }> for TensorExpansion<T, S, 3, 3>where
S: TensorRef<T, 3>,
impl<T, S> TensorRef<T, { $d + $i }> for TensorExpansion<T, S, 3, 3>where
S: TensorRef<T, 3>,
source§fn get_reference(&self, indexes: [usize; 6]) -> Option<&T>
fn get_reference(&self, indexes: [usize; 6]) -> Option<&T>
source§fn view_shape(&self) -> [(Dimension, usize); 6]
fn view_shape(&self) -> [(Dimension, usize); 6]
source§unsafe fn get_reference_unchecked(&self, indexes: [usize; 6]) -> &T
unsafe fn get_reference_unchecked(&self, indexes: [usize; 6]) -> &T
source§fn data_layout(&self) -> DataLayout<{ _ }>
fn data_layout(&self) -> DataLayout<{ _ }>
source§impl<T, S> TensorRef<T, { $d + $i }> for TensorExpansion<T, S, 4, 1>where
S: TensorRef<T, 4>,
impl<T, S> TensorRef<T, { $d + $i }> for TensorExpansion<T, S, 4, 1>where
S: TensorRef<T, 4>,
source§fn get_reference(&self, indexes: [usize; 5]) -> Option<&T>
fn get_reference(&self, indexes: [usize; 5]) -> Option<&T>
source§fn view_shape(&self) -> [(Dimension, usize); 5]
fn view_shape(&self) -> [(Dimension, usize); 5]
source§unsafe fn get_reference_unchecked(&self, indexes: [usize; 5]) -> &T
unsafe fn get_reference_unchecked(&self, indexes: [usize; 5]) -> &T
source§fn data_layout(&self) -> DataLayout<{ _ }>
fn data_layout(&self) -> DataLayout<{ _ }>
source§impl<T, S> TensorRef<T, { $d + $i }> for TensorExpansion<T, S, 4, 2>where
S: TensorRef<T, 4>,
impl<T, S> TensorRef<T, { $d + $i }> for TensorExpansion<T, S, 4, 2>where
S: TensorRef<T, 4>,
source§fn get_reference(&self, indexes: [usize; 6]) -> Option<&T>
fn get_reference(&self, indexes: [usize; 6]) -> Option<&T>
source§fn view_shape(&self) -> [(Dimension, usize); 6]
fn view_shape(&self) -> [(Dimension, usize); 6]
source§unsafe fn get_reference_unchecked(&self, indexes: [usize; 6]) -> &T
unsafe fn get_reference_unchecked(&self, indexes: [usize; 6]) -> &T
source§fn data_layout(&self) -> DataLayout<{ _ }>
fn data_layout(&self) -> DataLayout<{ _ }>
source§impl<T, S> TensorRef<T, { $d + $i }> for TensorExpansion<T, S, 5, 1>where
S: TensorRef<T, 5>,
impl<T, S> TensorRef<T, { $d + $i }> for TensorExpansion<T, S, 5, 1>where
S: TensorRef<T, 5>,
source§fn get_reference(&self, indexes: [usize; 6]) -> Option<&T>
fn get_reference(&self, indexes: [usize; 6]) -> Option<&T>
source§fn view_shape(&self) -> [(Dimension, usize); 6]
fn view_shape(&self) -> [(Dimension, usize); 6]
source§unsafe fn get_reference_unchecked(&self, indexes: [usize; 6]) -> &T
unsafe fn get_reference_unchecked(&self, indexes: [usize; 6]) -> &T
source§fn data_layout(&self) -> DataLayout<{ _ }>
fn data_layout(&self) -> DataLayout<{ _ }>
Auto Trait Implementations§
impl<T, S, const D: usize, const I: usize> Freeze for TensorExpansion<T, S, D, I>where
S: Freeze,
impl<T, S, const D: usize, const I: usize> RefUnwindSafe for TensorExpansion<T, S, D, I>where
S: RefUnwindSafe,
T: RefUnwindSafe,
impl<T, S, const D: usize, const I: usize> Send for TensorExpansion<T, S, D, I>
impl<T, S, const D: usize, const I: usize> Sync for TensorExpansion<T, S, D, I>
impl<T, S, const D: usize, const I: usize> Unpin for TensorExpansion<T, S, D, I>
impl<T, S, const D: usize, const I: usize> UnwindSafe for TensorExpansion<T, S, D, I>where
S: UnwindSafe,
T: UnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)