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));
        }