pub fn embed_diagonal_into_uninit<T>(
output: &mut [MaybeUninit<T>],
input: &[T],
shape: &[usize],
axis: usize,
insert_axis: usize,
zero: T,
) -> Result<(), StridedError>where
T: Copy + MaybeSendSync + 'static,Expand description
Embed a dense column-major input on a diagonal in a new axis.
Insert an axis of size shape[axis] at insert_axis. Its coordinate must
equal the original axis coordinate; other entries receive zero.
Output is fully initialized without reading its previous contents. The
active execution policy governs fill and strided diagonal-copy traversal.
§Examples
use core::mem::MaybeUninit;
let mut out = [MaybeUninit::uninit(); 4];
strided_basic::embed_diagonal_into_uninit(&mut out, &[3, 5], &[2], 0, 1, 0).unwrap();
// SAFETY: successful full-overwrite kernel initialized every element.
assert_eq!(out.map(|v| unsafe { v.assume_init() }), [3, 0, 0, 5]);§Errors
Returns InvalidAxis, ShapeMismatch, or OffsetOverflow for invalid
axes, lengths or unrepresentable layouts. Destination layout validation
may return NonInjectiveOutputLayout if injectivity cannot be established.