pub enum TensorView<'a> {
F32(TypedTensorView<'a, f32>),
F64(TypedTensorView<'a, f64>),
I32(TypedTensorView<'a, i32>),
I64(TypedTensorView<'a, i64>),
Bool(TypedTensorView<'a, bool>),
C32(TypedTensorView<'a, Complex<f32>>),
C64(TypedTensorView<'a, Complex<f64>>),
}Expand description
Dynamic read-only borrowed tensor view.
TensorView keeps dtype erased while borrowing typed view metadata and
storage. Use TypedTensorView directly when the scalar type is statically
known.
§Examples
use tenferro_tensor::{DType, TensorView, TypedTensorView};
let data = [1_i32, 2, 3, 4];
let typed = TypedTensorView::from_slice([2, 2], [1, 2], 0, &data)?;
let view = TensorView::I32(typed);
assert_eq!(view.dtype(), DType::I32);
assert_eq!(view.shape(), &[2, 2]);Variants§
F32(TypedTensorView<'a, f32>)
F64(TypedTensorView<'a, f64>)
I32(TypedTensorView<'a, i32>)
I64(TypedTensorView<'a, i64>)
Bool(TypedTensorView<'a, bool>)
C32(TypedTensorView<'a, Complex<f32>>)
C64(TypedTensorView<'a, Complex<f64>>)
Implementations§
Source§impl<'a> TensorView<'a>
impl<'a> TensorView<'a>
Sourcepub fn f32(shape: &'a [usize], data: &'a [f32]) -> Result<TensorView<'a>, Error>
pub fn f32(shape: &'a [usize], data: &'a [f32]) -> Result<TensorView<'a>, Error>
Create a dynamic f32 view over compact column-major host data.
§Examples
use tenferro_tensor::{DType, TensorView};
let data = [1.0_f32, 2.0];
let view = TensorView::f32(&[2], &data)?;
assert_eq!(view.dtype(), DType::F32);Sourcepub fn f64(shape: &'a [usize], data: &'a [f64]) -> Result<TensorView<'a>, Error>
pub fn f64(shape: &'a [usize], data: &'a [f64]) -> Result<TensorView<'a>, Error>
Create a dynamic f64 view over compact column-major host data.
§Examples
use tenferro_tensor::{DType, TensorView};
let data = [1.0_f64, 2.0];
let view = TensorView::f64(&[2], &data)?;
assert_eq!(view.dtype(), DType::F64);Sourcepub fn i64(shape: &'a [usize], data: &'a [i64]) -> Result<TensorView<'a>, Error>
pub fn i64(shape: &'a [usize], data: &'a [i64]) -> Result<TensorView<'a>, Error>
Create a dynamic i64 view over compact column-major host data.
§Examples
use tenferro_tensor::{DType, TensorView};
let data = [1_i64, 2];
let view = TensorView::i64(&[2], &data)?;
assert_eq!(view.dtype(), DType::I64);Sourcepub fn i32(shape: &'a [usize], data: &'a [i32]) -> Result<TensorView<'a>, Error>
pub fn i32(shape: &'a [usize], data: &'a [i32]) -> Result<TensorView<'a>, Error>
Create a dynamic i32 view over compact column-major host data.
§Examples
use tenferro_tensor::{DType, TensorView};
let data = [1_i32, 2];
let view = TensorView::i32(&[2], &data)?;
assert_eq!(view.dtype(), DType::I32);Sourcepub fn bool(
shape: &'a [usize],
data: &'a [bool],
) -> Result<TensorView<'a>, Error>
pub fn bool( shape: &'a [usize], data: &'a [bool], ) -> Result<TensorView<'a>, Error>
Create a dynamic bool view over compact column-major host data.
§Examples
use tenferro_tensor::{DType, TensorView};
let data = [true, false];
let view = TensorView::bool(&[2], &data)?;
assert_eq!(view.dtype(), DType::Bool);Sourcepub fn c32(
shape: &'a [usize],
data: &'a [Complex<f32>],
) -> Result<TensorView<'a>, Error>
pub fn c32( shape: &'a [usize], data: &'a [Complex<f32>], ) -> Result<TensorView<'a>, Error>
Create a dynamic Complex32 view over compact column-major host data.
§Examples
use num_complex::Complex32;
use tenferro_tensor::{DType, TensorView};
let data = [Complex32::new(1.0, 2.0)];
let view = TensorView::c32(&[1], &data)?;
assert_eq!(view.dtype(), DType::C32);Sourcepub fn c64(
shape: &'a [usize],
data: &'a [Complex<f64>],
) -> Result<TensorView<'a>, Error>
pub fn c64( shape: &'a [usize], data: &'a [Complex<f64>], ) -> Result<TensorView<'a>, Error>
Create a dynamic Complex64 view over compact column-major host data.
§Examples
use num_complex::Complex64;
use tenferro_tensor::{DType, TensorView};
let data = [Complex64::new(1.0, 2.0)];
let view = TensorView::c64(&[1], &data)?;
assert_eq!(view.dtype(), DType::C64);pub fn dtype(&self) -> DType
pub fn shape(&self) -> &[usize]
Sourcepub fn to_tensor(&self) -> Result<Tensor, Error>
pub fn to_tensor(&self) -> Result<Tensor, Error>
Materialize this host view into an owned tensor.
This method has no backend context and does not download backend
buffers. Use a backend-specific TensorViewCanonicalization method or
an explicit device transfer before materializing backend views on the
host.
§Examples
use tenferro_tensor::{DType, TensorView};
let data = [1.0_f64, 2.0];
let view = TensorView::f64(&[2], &data)?;
let tensor = view.to_tensor()?;
assert_eq!(tensor.dtype(), DType::F64);Trait Implementations§
Source§impl<'a> Clone for TensorView<'a>
impl<'a> Clone for TensorView<'a>
Source§fn clone(&self) -> TensorView<'a>
fn clone(&self) -> TensorView<'a>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more