code: def _report_nonhermitian(M, a, b, name):
      """
      Report if `M` is not a hermitian matrix given the tolerances `a`, `b`.
      """
      from scipy.linalg import norm
  
      md = M - M.T.conj()
  
      nmd = norm(md, 1)
      tol = np.spacing(max(10**a, (10**b) * norm(M, 1)))
      if nmd > tol:
          print(
              "matrix %s is not sufficiently Hermitian for a=%d, b=%d:"
              % (name, a, b)
          )
          print("condition: %.e < %e" % (nmd, tol))
  
file_path: catboost/contrib/python/scipy/py2/scipy/sparse/linalg/eigen/lobpcg/lobpcg.py
imports: from __future__ import division, print_function, absolute_import
  import numpy
  from numpy.testing import assert_allclose
  from scipy._lib.six import xrange
  from scipy.linalg import inv, eigh, cho_factor, cho_solve, cholesky
  from scipy.sparse.linalg import aslinearoperator, LinearOperator
  from scipy.sparse.sputils import bmat
label_desc: Use image node_id 2 for calling a global function with example usage: _report_nonhermitian(M, a, b, name) without return types