Returns the weighted average bond length given by
    Hoppe's effective coordination number formula.

    Args:
        bonds (list): list of floats that are the
        bond distances between a cation and its
        peripheral ions

def calculate_weighted_avg(bonds):
    """
    Returns the weighted average bond length given by
    Hoppe's effective coordination number formula.

    Args:
        bonds (list): list of floats that are the
        bond distances between a cation and its
        peripheral ions
    """
    minimum_bond = min(bonds)
    weighted_sum = 0.0
    total_sum = 0.0
    for entry in bonds:
        weighted_sum += entry * exp(1 - (entry / minimum_bond) ** 6)
        total_sum += exp(1 - (entry / minimum_bond) ** 6)
    return weighted_sum / total_sum