Skip to main content
`Ctrl`+`K`

# scipy.linalg.ishermitian

scipy.linalg.ishermitian(a, atol=None, rtol=None)

  Check if a square 2D array is Hermitian.

  Parameters:
    a ndarray

      Input array of size (N, N)

    atol float, optional

      Absolute error bound

    rtol float, optional

      Relative error bound

  Returns:
    her bool

      Returns True if the array Hermitian.

  Raises:
    TypeError

      If the dtype of the array is not supported, in particular, NumPy float16, float128 and complex256 dtypes.

  See also

  `issymmetric`

    Check if a square 2D array is symmetric

  Notes

  For square empty arrays the result is returned True by convention.

  `numpy.inf` will be treated as a number, that is to say `[[1, inf], [inf, 2]]` will return `True`. On the other hand `numpy.nan` is never symmetric, say, `[[1, nan], [nan, 2]]` will return `False`.

  When `atol` and/or `rtol` are set to , then the comparison is performed by `numpy.allclose` and the tolerance values are passed to it. Otherwise an exact comparison against zero is performed by internal functions. Hence performance can improve or degrade depending on the size and dtype of the array. If one of `atol` or `rtol` given the other one is automatically set to zero.

  Examples

      >>> import numpy as np
      >>> from scipy.linalg import ishermitian
      >>> A = np.arange(9).reshape(3, 3)
      >>> A = A + A.T
      >>> ishermitian(A)
      True
      >>> A = np.array([[1., 2. + 3.j], [2. - 3.j, 4.]])
      >>> ishermitian(A)
      True
      >>> Ac = np.array([[1. + 1.j, 3.j], [3.j, 2.]])
      >>> ishermitian(Ac)  # not Hermitian but symmetric
      False
      >>> Af = np.array([[0, 1 + 1j], [1 - (1+1e-12)*1j, 0]])
      >>> ishermitian(Af)
      False
      >>> ishermitian(Af, atol=5e-11) # almost hermitian with atol
      True