public static Matrix Housv(Matrix x) { if (!x.Any()) { return(x); } double m = MatrixUtil.Max(MatrixUtil.Abs(x)); Matrix u = x / m; double su = Math.Sign(u[0, 0]); u[0, 0] = u[0, 0] + su * Norm1D(u); return(u / Norm1D(u)); }