pub trait Tensor<T: RDSTyped>: Sized {
Show 25 methods
// Required methods
fn from_scalar<R: AsRef<[usize]>>(shape: R, s: T) -> Self;
fn from_tensor<W: Tensor<S>, S: RDSTyped + CastTo<T>>(tensor: &W) -> Self;
fn from_slice<R: AsRef<[usize]>, S: AsRef<[T]>>(shape: R, slice: S) -> Self;
fn from_boxed_slice<R: AsRef<[usize]>>(shape: R, data: Box<[T]>) -> Self;
fn into_boxed_slice(self) -> Box<[T]>;
fn dim(&self) -> usize;
fn shape(&self) -> &[usize];
fn strides(&self) -> &[usize];
fn size(&self) -> usize;
fn rds_type(&self) -> RDSType;
fn get_raw_array(&self) -> &[T];
fn get_raw_array_mut(&mut self) -> &mut [T];
fn insert<W: Tensor<T>>(&mut self, dim: usize, pos: usize, tensor: &W);
fn extract<R: AsRef<[Range<usize>]>>(&self, bounds: R) -> Self;
fn remove<R: AsRef<[Range<usize>]>>(&mut self, bounds: R);
fn assign<R: AsRef<[Range<usize>]>, W: Tensor<T>>(
&mut self,
bounds: R,
tensor: &W,
);
fn transpose(&mut self);
// Provided methods
fn zeros<R: AsRef<[usize]>>(shape: R) -> Self { ... }
fn ones<R: AsRef<[usize]>>(shape: R) -> Self { ... }
fn effective_dim(&self) -> usize { ... }
fn reshape_into_vector<R: AsRef<[usize]>>(self, shape: R) -> Vector<T> { ... }
fn reshape_into_matrix<R: AsRef<[usize]>>(self, shape: R) -> Matrix<T> { ... }
fn reshape_into_tensor<R: AsRef<[usize]>>(self, shape: R) -> TensorN<T> { ... }
fn right_split(&mut self, dim: usize, pos: usize) -> Self { ... }
fn left_split(&mut self, dim: usize, pos: usize) -> Self { ... }
}
Required Methods§
fn from_scalar<R: AsRef<[usize]>>(shape: R, s: T) -> Self
fn from_tensor<W: Tensor<S>, S: RDSTyped + CastTo<T>>(tensor: &W) -> Self
fn from_slice<R: AsRef<[usize]>, S: AsRef<[T]>>(shape: R, slice: S) -> Self
fn from_boxed_slice<R: AsRef<[usize]>>(shape: R, data: Box<[T]>) -> Self
fn into_boxed_slice(self) -> Box<[T]>
fn dim(&self) -> usize
fn shape(&self) -> &[usize]
fn strides(&self) -> &[usize]
fn size(&self) -> usize
fn rds_type(&self) -> RDSType
fn get_raw_array(&self) -> &[T]
fn get_raw_array_mut(&mut self) -> &mut [T]
fn insert<W: Tensor<T>>(&mut self, dim: usize, pos: usize, tensor: &W)
fn extract<R: AsRef<[Range<usize>]>>(&self, bounds: R) -> Self
fn remove<R: AsRef<[Range<usize>]>>(&mut self, bounds: R)
fn assign<R: AsRef<[Range<usize>]>, W: Tensor<T>>( &mut self, bounds: R, tensor: &W, )
fn transpose(&mut self)
Provided Methods§
fn zeros<R: AsRef<[usize]>>(shape: R) -> Self
fn ones<R: AsRef<[usize]>>(shape: R) -> Self
fn effective_dim(&self) -> usize
fn reshape_into_vector<R: AsRef<[usize]>>(self, shape: R) -> Vector<T>
fn reshape_into_matrix<R: AsRef<[usize]>>(self, shape: R) -> Matrix<T>
fn reshape_into_tensor<R: AsRef<[usize]>>(self, shape: R) -> TensorN<T>
fn right_split(&mut self, dim: usize, pos: usize) -> Self
fn left_split(&mut self, dim: usize, pos: usize) -> Self
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.