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]);