code: def guarded_div_kernel(self, dtype_x, dtype_y, dtype_z):
      from pycuda.elementwise import get_elwise_kernel
      from pycuda.tools import dtype_to_ctype
  
      return get_elwise_kernel(
          "%(tp_x)s *x, %(tp_y)s *y, %(tp_z)s *z"
          % {
              "tp_x": dtype_to_ctype(dtype_x),
              "tp_y": dtype_to_ctype(dtype_y),
              "tp_z": dtype_to_ctype(dtype_z),
          },
          "z[i] = y[i] == 0 ? 0 : (x[i] / y[i])",
          "divide",
      )
  
file_path: pycuda/pycuda/sparse/cg.py
imports: from __future__ import division
  from __future__ import absolute_import
  from pycuda.sparse.inner import AsyncInnerProduct
  from pytools import memoize_method
  import pycuda.driver
  import pycuda.gpuarray
  import numpy
label_desc: Use image node_id 4 for calling the CGStateContainer obj's underlying member method code with example usage: obj.guarded_div_kernel(dtype_x, dtype_y, dtype_z) and returns: get_elwise_kernel