def cluster_separation(self, cluster, clustering, clustering_cohesion, condensed_distance_matrix):
        """
        Returns the cohesion plus separation value of a cluster. The condensed matrix
        given as parameter stores the distances of the elements of the dataset used to
        extract the cluster.
        """
        if clustering_cohesion > 0:
            weight = 1./clustering_cohesion
            sep_and_cohe = 0.0
            ## I'm inside?
            where_am_i = clustering.cluster_index(cluster)

            for i in range(len(clustering.clusters)):
                if i != where_am_i :
                    c_j = clustering.clusters[i]
                    sep_and_cohe = sep_and_cohe + self.__between_cluster_distance(cluster,c_j,condensed_distance_matrix)
            return weight*sep_and_cohe
        else:
            return 0. # not defined in this case, could be numpy.finfo(numpy.float32).max
dataset/ETHPy150Open victor-gil-sepulveda/pyProCT/pyproct/clustering/evaluation/metrics/separation.py/SeparationCalculator.cluster_separation/original