public static (matrix, vector) Eigens(MatrixExpression a) { var v = a.Evaluate(); if (v.Rows != v.Cols) { ThrowHelper.ThrowIncorrectDimensionsForOperation(); } if (a is MatrixInput) { v = Copy(v); } var w = new vector(v.Rows); ThrowHelper.Check(Lapack.syev(Layout.ColMajor, 'V', UpLoChar.Lower, v.Rows, v.Array, v.Rows, w.Array)); return(v, w); }