Compute the smoothed precision for all the orders.

    Parameters
    ----------
    precision_fractions: list(tuple)
        Contain a list of (precision_numerator, precision_denominator) pairs
    c: int, default 1
        Smoothing constant to use

    Returns
    -------
    ratios: list of floats
        Contain the smoothed precision_fractions.

def _smoothing(precision_fractions, c=1):
    """Compute the smoothed precision for all the orders.

    Parameters
    ----------
    precision_fractions: list(tuple)
        Contain a list of (precision_numerator, precision_denominator) pairs
    c: int, default 1
        Smoothing constant to use

    Returns
    -------
    ratios: list of floats
        Contain the smoothed precision_fractions.
    """
    ratios = [0] * len(precision_fractions)
    for i, precision_fraction in enumerate(precision_fractions):
        if precision_fraction[1] > 0:
            ratios[i] = float(precision_fraction[0] + c) / (precision_fraction[1] + c)
        else:
            ratios[i] = 0.0

    return ratios