bundles / scipy latest / scipy / linalg / _cythonized_array_utils / ishermitian
function
scipy.linalg._cythonized_array_utils:ishermitian
Signature
def ishermitian ( a , atol = None , rtol = None ) Summary
Check if a square 2D array is Hermitian.
Extended Summary
The documentation is written assuming array arguments are of specified "core" shapes. However, array argument(s) of this function may have additional "batch" dimensions prepended to the core shape. In this case, the array is treated as a batch of lower-dimensional slices; see linalg_batch for details. Note that calls with zero-size batches are unsupported and will raise a ValueError.
Parameters
a: ndarrayInput array of size (N, N)
atol: float, optionalAbsolute error bound
rtol: float, optionalRelative error bound
Returns
her: boolReturns True if the array Hermitian.
Raises
: TypeErrorIf the dtype of the array is not supported, in particular, NumPy float16, float128 and complex256 dtypes.
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) A = np.array([[1., 2. + 3.j], [2. - 3.j, 4.]]) ishermitian(A) Ac = np.array([[1. + 1.j, 3.j], [3.j, 2.]]) ishermitian(Ac) # not Hermitian but symmetric Af = np.array([[0, 1 + 1j], [1 - (1+1e-12)*1j, 0]]) ishermitian(Af) ishermitian(Af, atol=5e-11) # almost hermitian with atol✓
See also
- issymmetric
Check if a square 2D array is symmetric
Aliases
-
scipy.linalg.ishermitian