Eigen
3.4.90 (git rev e3e74001f7c4bf95f0dde572e8a08c5b2918a3ab)

Expression of a diagonal/subdiagonal/superdiagonal in a matrix.
MatrixType  the type of the object in which we are taking a sub/main/super diagonal 
DiagIndex  the index of the sub/super diagonal. The default is 0 and it means the main diagonal. A positive value means a superdiagonal, a negative value means a subdiagonal. You can also use DynamicIndex so the index can be set at runtime. 
The matrix is not required to be square.
This class represents an expression of the main diagonal, or any sub/super diagonal of a square matrix. It is the return type of MatrixBase::diagonal() and MatrixBase::diagonal(Index) and most of the time this is the only way it is used.
Inherits internal::dense_xpr_base::type.