def METHOD_NAME(fdist, cluster):
    sisters = cluster.get_sisters()
    # Calculates silhouette
    silhouette = []
    intra_dist = []
    inter_dist = []
    for st in sisters:
        if st.profile is None:
            continue
        for i in cluster.leaves():
            # Skip nodes without profile
            if i._profile is not None:
                # item intraclsuterdist -> Centroid Diameter
                a = fdist(i.profile, cluster.profile)*2
                # intracluster dist -> Centroid Linkage
                b = fdist(i.profile, st.profile)
                if (b-a) == 0.0:
                    s = 0.0
                else:
                    s =  (b-a) / max(a,b)
                intra_dist.append(a)
                inter_dist.append(b)
                silhouette.append(s)
    silhouette, std = safe_mean(silhouette)
    intracluster_dist, std = safe_mean(intra_dist)
    intercluster_dist, std = safe_mean(inter_dist)
    return silhouette, intracluster_dist, intercluster_dist