def calc_G(y, symbol_values):
    """
    Calculates the shear modulus from the provided modulus and another elastic quantity in the
    provided symbol_values dictionary.
    Returns:
        (float): value of the shear modulus or None if the calculation failed.
    """
    if "K" in symbol_values.keys():
        k = symbol_values["K"]
        return 3 * k * y / (9 * k - y)
    elif "l" in symbol_values.keys():
        l = symbol_values["l"]
        return (y - 3 * l + (y ** 2 + 9 * l ** 2 + 2 * y * l) ** (0.5)) / 4
    elif "v" in symbol_values.keys():
        v = symbol_values["v"]
        return y / (2 * (1 + v))
    elif "M" in symbol_values.keys():
        m = symbol_values["M"]
        return (3 * m + y - (y ** 2 + 9 * m ** 2 - 10 * y * m) ** (0.5)) / 8
    else:
        raise Exception("Missing required inputs to evaluate Shear Modulus")