Skip to main content

TensorScalar

Trait TensorScalar 

Source
pub trait TensorScalar:
    Copy
    + Clone
    + Send
    + Sync
    + 'static
    + Sealed {
    type Real: TensorScalar;

    // Required methods
    fn dtype() -> DType;
    fn into_tensor(
        shape: SmallVec<[usize; 8]>,
        data: Vec<Self>,
    ) -> Result<Tensor, ValidationError>;
    fn tensor_slice(tensor: &Tensor) -> Option<&[Self]>;
    fn tensor_mut_slice(tensor: &mut Tensor) -> Option<&mut [Self]>;
    fn into_typed(tensor: Tensor) -> Option<HostTensor<Self>>;
}
Expand description

Sealed trait for scalar types supported by the core tensor data model.

§Examples

use tenferro_tensor_core::{DType, TensorScalar};

assert_eq!(f64::dtype(), DType::F64);
assert_eq!(num_complex::Complex64::dtype(), DType::C64);

Required Associated Types§

Source

type Real: TensorScalar

Real-valued counterpart of this scalar type.

Required Methods§

Source

fn dtype() -> DType

Return the scalar dtype tag.

§Examples
use tenferro_tensor_core::{DType, TensorScalar};

assert_eq!(i64::dtype(), DType::I64);
Source

fn into_tensor( shape: SmallVec<[usize; 8]>, data: Vec<Self>, ) -> Result<Tensor, ValidationError>

Build a dynamic tensor from validated column-major data.

§Examples
use tenferro_tensor_core::{DType, ShapeVec, TensorScalar};

let tensor = <f64 as TensorScalar>::into_tensor(ShapeVec::from_slice(&[1]), vec![2.0])?;
assert_eq!(tensor.dtype(), DType::F64);
§Errors

Returns ValidationError::ShapeDataLengthMismatch when the shape product differs from the data length, or ValidationError::IntegerOverflow when validating the shape overflows.

Source

fn tensor_slice(tensor: &Tensor) -> Option<&[Self]>

Source

fn tensor_mut_slice(tensor: &mut Tensor) -> Option<&mut [Self]>

Source

fn into_typed(tensor: Tensor) -> Option<HostTensor<Self>>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl TensorScalar for Complex<f32>

Source§

impl TensorScalar for Complex<f64>

Source§

impl TensorScalar for bool

Source§

impl TensorScalar for f32

Source§

impl TensorScalar for f64

Source§

impl TensorScalar for i32

Source§

impl TensorScalar for i64

Implementors§