StorageScalar

Trait StorageScalar 

pub trait StorageScalar:
    Clone
    + Send
    + Sync
    + 'static {
    // Required methods
    fn build_dense_storage(
        data: Vec<Self>,
        logical_dims: &[usize],
    ) -> Result<Storage, Error>;
    fn build_diag_storage(
        diag_data: Vec<Self>,
        logical_rank: usize,
    ) -> Result<Storage, Error>;
    fn build_structured_storage(
        data: Vec<Self>,
        payload_dims: Vec<usize>,
        strides: Vec<isize>,
        axis_classes: Vec<usize>,
    ) -> Result<Storage, Error>;
}
Expand description

Trait for scalar types that can be stored in Storage.

This enables generic constructors such as Storage::from_dense_col_major and Storage::from_diag_col_major.

Required Methods§

fn build_dense_storage( data: Vec<Self>, logical_dims: &[usize], ) -> Result<Storage, Error>

Build a dense Storage from column-major data.

fn build_diag_storage( diag_data: Vec<Self>, logical_rank: usize, ) -> Result<Storage, Error>

Build a diagonal Storage from diagonal payload data.

fn build_structured_storage( data: Vec<Self>, payload_dims: Vec<usize>, strides: Vec<isize>, axis_classes: Vec<usize>, ) -> Result<Storage, Error>

Build a structured Storage from explicit payload metadata.

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 StorageScalar for f64

§

fn build_dense_storage( data: Vec<f64>, logical_dims: &[usize], ) -> Result<Storage, Error>

§

fn build_diag_storage( diag_data: Vec<f64>, logical_rank: usize, ) -> Result<Storage, Error>

§

fn build_structured_storage( data: Vec<f64>, payload_dims: Vec<usize>, strides: Vec<isize>, axis_classes: Vec<usize>, ) -> Result<Storage, Error>

§

impl StorageScalar for Complex<f64>

§

fn build_dense_storage( data: Vec<Complex<f64>>, logical_dims: &[usize], ) -> Result<Storage, Error>

§

fn build_diag_storage( diag_data: Vec<Complex<f64>>, logical_rank: usize, ) -> Result<Storage, Error>

§

fn build_structured_storage( data: Vec<Complex<f64>>, payload_dims: Vec<usize>, strides: Vec<isize>, axis_classes: Vec<usize>, ) -> Result<Storage, Error>

Implementors§