Skip to main content

with_scalar_read

Macro with_scalar_read 

Source
macro_rules! with_scalar_read {
    ($read:expr, all, backend = $backend:expr, op = $op:expr, |$view:ident| $(-> $ret:ty)? $body:block) => { ... };
    ($read:expr, numeric, backend = $backend:expr, op = $op:expr, |$view:ident| $(-> $ret:ty)? $body:block) => { ... };
    ($read:expr, float_complex, backend = $backend:expr, op = $op:expr, |$view:ident| $(-> $ret:ty)? $body:block) => { ... };
    ($read:expr, float_only, backend = $backend:expr, op = $op:expr, |$view:ident| $(-> $ret:ty)? $body:block) => { ... };
}
Expand description

Dispatch a TensorRead to a typed tensor view body.

ยงExamples

use tenferro_tensor::{BackendId, Tensor, TensorRead};

let tensor = Tensor::from_vec_col_major(vec![2], vec![1.0_f32, 2.0])?;
let read = TensorRead::from_tensor(&tensor);
let shape = tenferro_tensor::with_scalar_read!(
    read,
    float_only,
    backend = BackendId::Cpu,
    op = "shape_probe",
    |view| -> tenferro_tensor::Result<Vec<usize>> { Ok(view.shape().to_vec()) }
)?;
assert_eq!(shape, vec![2]);