A Hermitian matrix is a square matrix which satisfies where denotes the conjugate transpose of . That is, for all , where denotes the complex conjugate. (The conjugate of a complex number is defined as .) For example, this is a 4 x 4 Hermitian matrix:
According to the strict definition of a Hermitian matrix, the diagonal elements must be real numbers, since only for real numbers, while other elements may be complex. NMath relaxes this requirement and permits complex elements on the diagonal. The provided MakeDiagonalReal() method sets the imaginary parts on the main diagonal to zero, thereby meeting the strict definition of a Hermitian matrix.
NMath provides Hermitian matrix classes for single- and double-precision complex numbers. The classnames are FloatHermitianMatrix and DoubleHermitianMatrix. A symmetric matrix is a special case of a Hermitian matrix where all the elements are real (Section 17.3).
For efficiency, only the upper triangle is stored. The storage scheme is the same as for an upper triangular matrix (Section 17.2).