Skip to main content

embed_diagonal_view_into_uninit

Function embed_diagonal_view_into_uninit 

Source
pub fn embed_diagonal_view_into_uninit<T: Copy + MaybeSendSync + 'static>(
    output: &mut [MaybeUninit<T>],
    src: &StridedView<'_, T>,
    axis: usize,
    insert_axis: usize,
    zero: T,
) -> Result<()>
Expand description

Embed a strided input on a diagonal in a new axis of caller-owned contiguous storage.

The source layout is given by src; the diagonal copy follows its strides and offset, so a strided source needs no staging copy. Off-diagonal entries receive zero, which is part of the result rather than scratch initialization.

ยงErrors

Returns InvalidAxis, ShapeMismatch, or OffsetOverflow for invalid axes, lengths or unrepresentable layouts. Destination layout validation may return NonInjectiveOutputLayout if injectivity cannot be established.