code: def orth_axes(in_ax, out_ax, affine, allow_zero=True, tol=TINY):
      """True if `in_ax` related only to `out_ax` in `affine` and vice versa
  
      Parameters
      ----------
      in_ax : int
          Input axis index
      out_ax : int
          Output axis index
      affine :  array-like
          Affine transformation matrix
      allow_zero : bool, optional
          Whether to allow zero in ``affine[out_ax, in_ax]``.  This means that the
          two axes are not related, but nor is this pair related to any other
          part of the affine.
  
      Returns
      -------
      tf : bool
          True if in_ax, out_ax pair are orthogonal to the rest of `affine`,
          unless `allow_zero` is False, in which case require in addition that
          ``affine[out_ax, in_ax] != 0``.
  
      Examples
      --------
      >>> aff = np.eye(4)
      >>> orth_axes(1, 1, aff)
      True
      >>> orth_axes(1, 2, aff)
      False
      """
      rzs, trans = to_matvec(affine)
      nzs = np.abs(rzs) > tol
      if not allow_zero and not nzs[out_ax, in_ax]:
          return False
      nzs[out_ax, in_ax] = 0
      return np.all(nzs[out_ax] == 0) and np.all(nzs[:, in_ax] == 0)
  
imports: import warnings
  import numpy
  import numpy.linalg
  from nibabel import io_orientation
  from nibabel.affines import from_matvec, to_matvec
  from .coordinate_system import CoordinateSystem, is_coordsys, safe_dtype
  from .coordinate_system import product
label_desc: Use image node_id 21 for calling a global function with example usage: orth_axes(in_ax, out_ax, affine, allow_zero, tol) and returns: unknown, False