pub fn softmax_rows(x: &mut [f32], rows: usize, cols: usize)
In-place row-wise softmax: each cols-long row is normalised independently. Numerically stable.
cols