pub fn linear( x: &[f32], w: &[f32], out_f: usize, in_f: usize, ) -> Result<Vec<f32>, EngineError>
y = x @ W^T where W is [out_features, in_features] row-major (GGUF-style).