code: def _mask_exceptional_arguments(a, b, c, z, dtype):
      """Masks parameters in exceptional cases for quick convergence."""
      # Ensure that exceptional cases are masked so that series computations
      # converge quickly.
  
      # Mask out z == 1., since this can result in a divergent seris for
      # certain values of a, b, c.
      safe_z = tf.where(tf.math.equal(z, 1.0), dtype(0.0), z)
      # When a == c (b == c), the series sums to (1 - z)**(-a) (-b respectively).
      safe_a = tf.where(tf.math.equal(a, c), dtype(0.0), a)
      safe_b = tf.where(tf.math.equal(b, c), dtype(0.0), b)
  
      # When c is a negative integer, the Taylor Series can blow up.
      # Ensure when c is a negative integer, that a or b are negative
      # integers that are larger to ensure convergence (since this will result in a
      # polynomial).
      safe_c = tf.where(
          _is_negative_integer(c),
          tf.where(
              (
                  (_is_negative_integer(a) & (a > c))
                  | (_is_negative_integer(b) & (b > c))
              ),
              c,
              a,
          ),
          c,
      )
  
      return safe_a, safe_b, safe_c, safe_z
  
file_path: probability/tensorflow_probability/python/math/hypergeometric.py
imports: import functools
  import numpy
  import tensorflow.compat.v2
  from tensorflow_probability.python.internal import dtype_util
  from tensorflow_probability.python.internal import prefer_static
  from tensorflow_probability.python.math import generic
label_desc: Use image node_id 11 for calling a global function with example usage: _mask_exceptional_arguments(a, b, c, z, dtype) and returns: safe_a,  safe_b,  safe_c,  safe_z