code: def tril(m, k=0):
      """Make a copy of a matrix with elements above the ``k``-th diagonal
      zeroed.
  
      Args:
          m (cupy.ndarray): Matrix whose elements to return
          k (int, optional): Diagonal above which to zero elements.
              ``k == 0`` is the main diagonal, ``k < 0`` subdiagonal and
              ``k > 0`` superdiagonal.
  
      Returns:
          (cupy.ndarray): Return is the same shape and type as ``m``.
  
      .. seealso:: :func:`scipy.linalg.tril`
      """
      warnings.warn(
          "'tri'/'tril/'triu' are deprecated", DeprecationWarning
      )
  
      # this is ~2x faster than cupy.tril for a 500x500 float64 matrix
      t = tri(m.shape[0], m.shape[1], k=k, dtype=m.dtype.char)
      t *= m
      return t
  
imports: import math
  import warnings
  import cupy
  from cupy import _core
  from cupyx.scipy.linalg import _uarray
label_desc: Use image node_id 2 for calling a global function with example usage: tril(m, k) and returns: t