def METHOD_NAME(self, rate, y_i):
    """
    return a sympy expression containing this rate's contribution to
    the ydot term for nuclide y_i.
    """
    key = (rate.cname(), y_i)
    if key in self._ydot_term_cache:
        return self._ydot_term_cache[key]
    srate = self.specific_rate_symbol(rate)
    # Check if y_i is a reactant or product
    c_reac = rate.reactants.count(y_i)
    c_prod = rate.products.count(y_i)
    if c_reac == 0 and c_prod == 0:
        # The rate doesn't contribute to the ydot for this y_i
        ydot_sym = float(sympy.sympify(0.0))
    else:
        # y_i appears as a product or reactant
        ydot_sym = (c_prod - c_reac) * srate
    result = ydot_sym.evalf(n=self.float_explicit_num_digits)
    self._ydot_term_cache[key] = result
    return result