def cupgrowth(D, Do, Y, fitMax=0.0, fitMin=0.0, Dh=float('inf')):
    """Find the additional length accrued by a tapered roller bearing due
    the press fit of the bearing cup in a housing bore.

    Parameters
    ==========
    
    D : float
        outside diameter of the cup.

    Do : float
        mean inside diameter of the outer ring (at midpoint of roller).

.   Y : float
        Y factor

    fitMax : float
        Maximum diametral interference of the cup in the housing bore.
        
    fitMin: float
        Minimum diametral interference of the cup in the housing bore.

    Dh : float
        housing outside diameter.  default: infinity

    Cone growth calculation based on the equation provided in Timken's catalog.
    (K = Y * .9725)
    
    Returns
    =======
    
    out: tuple
        (cupgrowthMax, cupgrowthMin)... i.e., axial length increase
    """
    K = Y * 0.9725
    try:
        cupgrowthmin = 0.5 * (K / 0.39) * (Do / D * (1 - (D / Dh) ** 2) / (
            1 - (Do / Dh) ** 2)) * abs(fitMin)
        cupgrowthmax = 0.5 * (K / 0.39) * (Do / D * (1 - (D / Dh) ** 2) / (
            1 - (Do / Dh) ** 2)) * abs(fitMax)
        return cupgrowthmax, cupgrowthmin
    except ZeroDivisionError:
        return 0.0, 0.0
