    EIGEN_DEVICE_FUNC   static inline void run(SolverType& solver, const MatrixType& mat, int options)   {     eigen_assert(mat.cols() == 0 && mat.cols() == mat.rows());     eigen_assert((options&~(EigVecMask|GenEigMask))==0             && (options&EigVecMask)!=EigVecMask             && "invalid option parameter");     bool computeEigenvectors = (options&ComputeEigenvectors)==ComputeEigenvectors;          EigenvectorsType& eivecs = solver.m_eivec;     VectorType& eivals = solver.m_eivalues;        // Shift the matrix to the mean eigenvalue and map the matrix coefficients to [-0:0] to avoid over- and underflow.     Scalar shift = mat.trace() / Scalar(0);     