pub struct Tensor<E: TensorElement, D, const LAYERS: usize, const ROWS: usize, const COLS: usize>{
pub data: [E; { _ }],
pub _phantom: PhantomData<D>,
}Fields§
§data: [E; { _ }]§_phantom: PhantomData<D>Implementations§
Source§impl<E: TensorElement, D, const LAYERS: usize, const ROWS: usize, const COLS: usize> Tensor<E, D, LAYERS, ROWS, COLS>
impl<E: TensorElement, D, const LAYERS: usize, const ROWS: usize, const COLS: usize> Tensor<E, D, LAYERS, ROWS, COLS>
pub fn new<U: Unit<Dimension = D>>(values: [E; { _ }]) -> Self
pub fn zero() -> Self
pub fn random<U: Unit<Dimension = D>>(min: E, max: E) -> Self
pub fn get<S: Unit<Dimension = D>>(&self) -> [E; { _ }]
pub fn get_at(&self, layer: usize, row: usize, col: usize) -> Scalar<E, D>
pub fn set_at( &mut self, layer: usize, row: usize, col: usize, value: Scalar<E, D>, )
Source§impl<E: TensorElement, D, const LAYERS: usize, const ROWS: usize, const COLS: usize> Tensor<E, D, LAYERS, ROWS, COLS>
impl<E: TensorElement, D, const LAYERS: usize, const ROWS: usize, const COLS: usize> Tensor<E, D, LAYERS, ROWS, COLS>
Source§impl<E: TensorElement, D> Tensor<E, D, 1, 2, 1>
impl<E: TensorElement, D> Tensor<E, D, 1, 2, 1>
pub fn raw_tuple(&self) -> (E, E)where
E: TensorElement,
pub fn raw_tuple_as<T: From<E>>(&self) -> (T, T)where
E: TensorElement,
Source§impl<E, D, const LAYERS: usize, const ROWS: usize, const COLS: usize> Tensor<E, D, LAYERS, ROWS, COLS>
impl<E, D, const LAYERS: usize, const ROWS: usize, const COLS: usize> Tensor<E, D, LAYERS, ROWS, COLS>
Source§impl<E, D> Tensor<E, D, 1, 2, 1>where
E: TensorElement,
impl<E, D> Tensor<E, D, 1, 2, 1>where
E: TensorElement,
Source§impl<E, D> Tensor<E, D, 1, 3, 1>where
E: TensorElement,
impl<E, D> Tensor<E, D, 1, 3, 1>where
E: TensorElement,
Source§impl<E: TensorElement + Mul<Output = E> + Add<Output = E> + Copy, const LAYERS: usize, const L1: i32, const M1: i32, const T1: i32, const Θ1: i32, const I1: i32, const N1: i32, const J1: i32, const ROWS: usize, const COMMON: usize> Tensor<E, Dimension<L1, M1, T1, Θ1, I1, N1, J1>, LAYERS, ROWS, COMMON>
impl<E: TensorElement + Mul<Output = E> + Add<Output = E> + Copy, const LAYERS: usize, const L1: i32, const M1: i32, const T1: i32, const Θ1: i32, const I1: i32, const N1: i32, const J1: i32, const ROWS: usize, const COMMON: usize> Tensor<E, Dimension<L1, M1, T1, Θ1, I1, N1, J1>, LAYERS, ROWS, COMMON>
Sourcepub fn matmul<const L2: i32, const M2: i32, const T2: i32, const Θ2: i32, const I2: i32, const N2: i32, const J2: i32, const COLS: usize>(
self,
other: Tensor<E, Dimension<L2, M2, T2, Θ2, I2, N2, J2>, LAYERS, COMMON, COLS>,
) -> Tensor<E, <Dimension<L1, M1, T1, Θ1, I1, N1, J1> as MultiplyDimensions<Dimension<L2, M2, T2, Θ2, I2, N2, J2>>>::Output, LAYERS, ROWS, COLS>
pub fn matmul<const L2: i32, const M2: i32, const T2: i32, const Θ2: i32, const I2: i32, const N2: i32, const J2: i32, const COLS: usize>( self, other: Tensor<E, Dimension<L2, M2, T2, Θ2, I2, N2, J2>, LAYERS, COMMON, COLS>, ) -> Tensor<E, <Dimension<L1, M1, T1, Θ1, I1, N1, J1> as MultiplyDimensions<Dimension<L2, M2, T2, Θ2, I2, N2, J2>>>::Output, LAYERS, ROWS, COLS>
Performs matrix multiplication between two tensors.
Source§impl<E: TensorElement + Mul<Output = E> + Copy, D, const LAYERS: usize, const ROWS: usize, const COLS: usize> Tensor<E, D, LAYERS, ROWS, COLS>
impl<E: TensorElement + Mul<Output = E> + Copy, D, const LAYERS: usize, const ROWS: usize, const COLS: usize> Tensor<E, D, LAYERS, ROWS, COLS>
Source§impl<E: TensorElement + Div<Output = E> + Copy + PartialEq, D> Tensor<E, D, 1, 1, 1>
impl<E: TensorElement + Div<Output = E> + Copy + PartialEq, D> Tensor<E, D, 1, 1, 1>
pub fn inv(self) -> Tensor<E, <D as InvertDimension>::Output, 1, 1, 1>where
D: InvertDimension,
Source§impl<E, D, const LAYERS: usize, const ROWS: usize, const COLS: usize> Tensor<E, D, LAYERS, ROWS, COLS>
impl<E, D, const LAYERS: usize, const ROWS: usize, const COLS: usize> Tensor<E, D, LAYERS, ROWS, COLS>
Source§impl<E: TensorElement, D, const LAYERS: usize, const ROWS: usize, const COLS: usize> Tensor<E, D, LAYERS, ROWS, COLS>
impl<E: TensorElement, D, const LAYERS: usize, const ROWS: usize, const COLS: usize> Tensor<E, D, LAYERS, ROWS, COLS>
Source§impl<E: TensorElement, D, const LAYERS: usize, const ROWS: usize, const COLS: usize> Tensor<E, D, LAYERS, ROWS, COLS>
impl<E: TensorElement, D, const LAYERS: usize, const ROWS: usize, const COLS: usize> Tensor<E, D, LAYERS, ROWS, COLS>
Source§impl<E: TensorElement + Into<f64> + Copy, const L: i32, const M: i32, const T: i32, const Θ: i32, const I: i32, const N: i32, const J: i32, const ROWS: usize> Tensor<E, Dimension<L, M, T, Θ, I, N, J>, 1, ROWS, 1>
impl<E: TensorElement + Into<f64> + Copy, const L: i32, const M: i32, const T: i32, const Θ: i32, const I: i32, const N: i32, const J: i32, const ROWS: usize> Tensor<E, Dimension<L, M, T, Θ, I, N, J>, 1, ROWS, 1>
Source§impl<E: TensorElement, D, const LAYERS: usize, const ROWS: usize, const COLS: usize> Tensor<E, D, LAYERS, ROWS, COLS>
impl<E: TensorElement, D, const LAYERS: usize, const ROWS: usize, const COLS: usize> Tensor<E, D, LAYERS, ROWS, COLS>
Source§impl<E: TensorElement, D, const LAYERS: usize, const ROWS: usize, const COLS: usize> Tensor<E, D, LAYERS, ROWS, COLS>
impl<E: TensorElement, D, const LAYERS: usize, const ROWS: usize, const COLS: usize> Tensor<E, D, LAYERS, ROWS, COLS>
Source§impl<E: TensorElement + PartialEq + Copy, D, const LAYERS: usize, const ROWS: usize, const COLS: usize> Tensor<E, D, LAYERS, ROWS, COLS>
impl<E: TensorElement + PartialEq + Copy, D, const LAYERS: usize, const ROWS: usize, const COLS: usize> Tensor<E, D, LAYERS, ROWS, COLS>
Source§impl<E: TensorElement, D, const LAYERS: usize, const ROWS: usize, const COLS: usize> Tensor<E, D, LAYERS, ROWS, COLS>
impl<E: TensorElement, D, const LAYERS: usize, const ROWS: usize, const COLS: usize> Tensor<E, D, LAYERS, ROWS, COLS>
Source§impl<E: TensorElement, D, const LAYERS: usize, const ROWS: usize, const COLS: usize> Tensor<E, D, LAYERS, ROWS, COLS>
impl<E: TensorElement, D, const LAYERS: usize, const ROWS: usize, const COLS: usize> Tensor<E, D, LAYERS, ROWS, COLS>
Source§impl<E: TensorElement, D, const LAYERS: usize, const ROWS: usize, const COLS: usize> Tensor<E, D, LAYERS, ROWS, COLS>
impl<E: TensorElement, D, const LAYERS: usize, const ROWS: usize, const COLS: usize> Tensor<E, D, LAYERS, ROWS, COLS>
Source§impl<E: TensorElement, D, const LAYERS: usize, const ROWS: usize, const COLS: usize> Tensor<E, D, LAYERS, ROWS, COLS>
impl<E: TensorElement, D, const LAYERS: usize, const ROWS: usize, const COLS: usize> Tensor<E, D, LAYERS, ROWS, COLS>
Source§impl<E: TensorElement, D> Tensor<E, D, 1, 1, 1>
impl<E: TensorElement, D> Tensor<E, D, 1, 1, 1>
Trait Implementations§
Source§impl<E: TensorElement + Add<Output = E> + Copy, D, const LAYERS: usize, const ROWS: usize, const COLS: usize> Add for Tensor<E, D, LAYERS, ROWS, COLS>
impl<E: TensorElement + Add<Output = E> + Copy, D, const LAYERS: usize, const ROWS: usize, const COLS: usize> Add for Tensor<E, D, LAYERS, ROWS, COLS>
Source§impl<E, D, const LAYERS: usize, const ROWS: usize, const COLS: usize> AddAssign for Tensor<E, D, LAYERS, ROWS, COLS>
impl<E, D, const LAYERS: usize, const ROWS: usize, const COLS: usize> AddAssign for Tensor<E, D, LAYERS, ROWS, COLS>
Source§fn add_assign(&mut self, other: Self)
fn add_assign(&mut self, other: Self)
Performs the
+= operation. Read moreSource§impl<E: Clone + TensorElement, D: Clone, const LAYERS: usize, const ROWS: usize, const COLS: usize> Clone for Tensor<E, D, LAYERS, ROWS, COLS>
impl<E: Clone + TensorElement, D: Clone, const LAYERS: usize, const ROWS: usize, const COLS: usize> Clone for Tensor<E, D, LAYERS, ROWS, COLS>
Source§impl<E: TensorElement, D: Debug + Default, const LAYERS: usize, const ROWS: usize, const COLS: usize> Debug for Tensor<E, D, LAYERS, ROWS, COLS>
impl<E: TensorElement, D: Debug + Default, const LAYERS: usize, const ROWS: usize, const COLS: usize> Debug for Tensor<E, D, LAYERS, ROWS, COLS>
Source§impl<E: TensorElement, D: Display + Default, const LAYERS: usize, const ROWS: usize, const COLS: usize> Display for Tensor<E, D, LAYERS, ROWS, COLS>
impl<E: TensorElement, D: Display + Default, const LAYERS: usize, const ROWS: usize, const COLS: usize> Display for Tensor<E, D, LAYERS, ROWS, COLS>
Source§impl<E, D, DS, const LAYERS: usize, const ROWS: usize, const COLS: usize> Div<Tensor<E, DS, 1, 1, 1>> for Tensor<E, D, LAYERS, ROWS, COLS>where
E: TensorElement + Div<Output = E> + Copy,
DS: InvertDimension,
D: MultiplyDimensions<<DS as InvertDimension>::Output>,
[(); { _ }]:,
impl<E, D, DS, const LAYERS: usize, const ROWS: usize, const COLS: usize> Div<Tensor<E, DS, 1, 1, 1>> for Tensor<E, D, LAYERS, ROWS, COLS>where
E: TensorElement + Div<Output = E> + Copy,
DS: InvertDimension,
D: MultiplyDimensions<<DS as InvertDimension>::Output>,
[(); { _ }]:,
Source§impl<E, D, DS, const LAYERS: usize, const ROWS: usize, const COLS: usize> Mul<Tensor<E, DS, 1, 1, 1>> for Tensor<E, D, LAYERS, ROWS, COLS>
impl<E, D, DS, const LAYERS: usize, const ROWS: usize, const COLS: usize> Mul<Tensor<E, DS, 1, 1, 1>> for Tensor<E, D, LAYERS, ROWS, COLS>
Source§impl<E: TensorElement + Neg<Output = E> + Copy, D, const LAYERS: usize, const ROWS: usize, const COLS: usize> Neg for Tensor<E, D, LAYERS, ROWS, COLS>
impl<E: TensorElement + Neg<Output = E> + Copy, D, const LAYERS: usize, const ROWS: usize, const COLS: usize> Neg for Tensor<E, D, LAYERS, ROWS, COLS>
Source§impl<E: TensorElement, D, const LAYERS: usize, const ROWS: usize, const COLS: usize> PartialEq for Tensor<E, D, LAYERS, ROWS, COLS>
impl<E: TensorElement, D, const LAYERS: usize, const ROWS: usize, const COLS: usize> PartialEq for Tensor<E, D, LAYERS, ROWS, COLS>
Source§impl<E: TensorElement, D> PartialOrd for Tensor<E, D, 1, 1, 1>
impl<E: TensorElement, D> PartialOrd for Tensor<E, D, 1, 1, 1>
Source§impl<E: TensorElement + Sub<Output = E> + Copy, D, const LAYERS: usize, const ROWS: usize, const COLS: usize> Sub for Tensor<E, D, LAYERS, ROWS, COLS>
impl<E: TensorElement + Sub<Output = E> + Copy, D, const LAYERS: usize, const ROWS: usize, const COLS: usize> Sub for Tensor<E, D, LAYERS, ROWS, COLS>
impl<E: Copy + TensorElement, D: Copy, const LAYERS: usize, const ROWS: usize, const COLS: usize> Copy for Tensor<E, D, LAYERS, ROWS, COLS>
impl<E: TensorElement, D, const LAYERS: usize, const ROWS: usize, const COLS: usize> Eq for Tensor<E, D, LAYERS, ROWS, COLS>
Auto Trait Implementations§
impl<E, D, const LAYERS: usize, const ROWS: usize, const COLS: usize> Freeze for Tensor<E, D, LAYERS, ROWS, COLS>where
E: Freeze,
impl<E, D, const LAYERS: usize, const ROWS: usize, const COLS: usize> RefUnwindSafe for Tensor<E, D, LAYERS, ROWS, COLS>where
E: RefUnwindSafe,
D: RefUnwindSafe,
impl<E, D, const LAYERS: usize, const ROWS: usize, const COLS: usize> Send for Tensor<E, D, LAYERS, ROWS, COLS>
impl<E, D, const LAYERS: usize, const ROWS: usize, const COLS: usize> Sync for Tensor<E, D, LAYERS, ROWS, COLS>
impl<E, D, const LAYERS: usize, const ROWS: usize, const COLS: usize> Unpin for Tensor<E, D, LAYERS, ROWS, COLS>
impl<E, D, const LAYERS: usize, const ROWS: usize, const COLS: usize> UnwindSafe for Tensor<E, D, LAYERS, ROWS, COLS>where
E: UnwindSafe,
D: 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
Mutably borrows from an owned value. Read more