def METHOD_NAME(col1, col2, white, frac): 
    M1, s1, h1 = rgb2Msh(col1[0], col1[1], col1[2], white)
    M2, s2, h2 = rgb2Msh(col2[0], col2[1], col2[2], white)
    #if s1 > 0.05 and s2 > 0.05 and radDiff(h1,h2) > math.pi/3.:
    if s1 > 0.05 and s2 > 0.05 and abs(h1 - h2) > math.pi/3.:
        Mmid = max(max(M1,M2),88.)
        if frac < .5:
            M2 = Mmid
            s2 = 0.
            h2 = 0.
            frac = 2*frac
        else:
            M1 = Mmid
            s1 = 0.
            h1 = 0.
            frac = 2*frac - 1
    if s1 < 0.05 and s2 > 0.05: h1 = AdjustHue(M2, s2, h2, M1)
    elif s2 < 0.05 and s1 > 0.05: h2 = AdjustHue(M1, s1, h1, M2)
    M = (1 - frac)*M1 + frac*M2
    s = (1 - frac)*s1 + frac*s2
    h = (1 - frac)*h1 + frac*h2
    #print('temp', M, s, h, h1, h2, frac)
    return Msh2rgb(M, s, h, white)