TensorElement

Trait TensorElement 

pub trait TensorElement:
    Copy
    + Send
    + Sync
    + 'static {
    // Required methods
    fn dense_native_tensor_from_col_major(
        data: &[Self],
        dims: &[usize],
    ) -> Result<Tensor, Error>;
    fn diag_native_tensor_from_col_major(
        data: &[Self],
        logical_rank: usize,
    ) -> Result<Tensor, Error>;
    fn scalar_native_tensor(value: Self) -> Result<Tensor, Error>;
    fn dense_values_from_native_col_major(
        tensor: &Tensor,
    ) -> Result<Vec<Self>, Error>;
    fn diag_values_from_native_temp(tensor: &Tensor) -> Result<Vec<Self>, Error>;
}
Expand description

Public scalar element types supported by tensor4all dense/diag constructors.

Required Methods§

fn dense_native_tensor_from_col_major( data: &[Self], dims: &[usize], ) -> Result<Tensor, Error>

Build a native tensor from column-major dense data.

fn diag_native_tensor_from_col_major( data: &[Self], logical_rank: usize, ) -> Result<Tensor, Error>

Build a native diagonal tensor from column-major diagonal payload data.

fn scalar_native_tensor(value: Self) -> Result<Tensor, Error>

Build a rank-0 native tensor.

fn dense_values_from_native_col_major( tensor: &Tensor, ) -> Result<Vec<Self>, Error>

Materialize dense column-major primal values from a native tensor.

fn diag_values_from_native_temp(tensor: &Tensor) -> Result<Vec<Self>, Error>

Materialize diagonal payload values from a native diagonal tensor.

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.

Implementations on Foreign Types§

§

impl TensorElement for f32

§

fn dense_native_tensor_from_col_major( data: &[f32], dims: &[usize], ) -> Result<Tensor, Error>

§

fn diag_native_tensor_from_col_major( data: &[f32], logical_rank: usize, ) -> Result<Tensor, Error>

§

fn scalar_native_tensor(value: f32) -> Result<Tensor, Error>

§

fn dense_values_from_native_col_major( tensor: &Tensor, ) -> Result<Vec<f32>, Error>

§

fn diag_values_from_native_temp(tensor: &Tensor) -> Result<Vec<f32>, Error>

§

impl TensorElement for f64

§

fn dense_native_tensor_from_col_major( data: &[f64], dims: &[usize], ) -> Result<Tensor, Error>

§

fn diag_native_tensor_from_col_major( data: &[f64], logical_rank: usize, ) -> Result<Tensor, Error>

§

fn scalar_native_tensor(value: f64) -> Result<Tensor, Error>

§

fn dense_values_from_native_col_major( tensor: &Tensor, ) -> Result<Vec<f64>, Error>

§

fn diag_values_from_native_temp(tensor: &Tensor) -> Result<Vec<f64>, Error>

§

impl TensorElement for Complex<f32>

§

fn dense_native_tensor_from_col_major( data: &[Complex<f32>], dims: &[usize], ) -> Result<Tensor, Error>

§

fn diag_native_tensor_from_col_major( data: &[Complex<f32>], logical_rank: usize, ) -> Result<Tensor, Error>

§

fn scalar_native_tensor(value: Complex<f32>) -> Result<Tensor, Error>

§

fn dense_values_from_native_col_major( tensor: &Tensor, ) -> Result<Vec<Complex<f32>>, Error>

§

fn diag_values_from_native_temp( tensor: &Tensor, ) -> Result<Vec<Complex<f32>>, Error>

§

impl TensorElement for Complex<f64>

§

fn dense_native_tensor_from_col_major( data: &[Complex<f64>], dims: &[usize], ) -> Result<Tensor, Error>

§

fn diag_native_tensor_from_col_major( data: &[Complex<f64>], logical_rank: usize, ) -> Result<Tensor, Error>

§

fn scalar_native_tensor(value: Complex<f64>) -> Result<Tensor, Error>

§

fn dense_values_from_native_col_major( tensor: &Tensor, ) -> Result<Vec<Complex<f64>>, Error>

§

fn diag_values_from_native_temp( tensor: &Tensor, ) -> Result<Vec<Complex<f64>>, Error>

Implementors§