#ifndef NETWORKIT_COMMUNITY_PARTITION_INTERSECTION_HPP_
#define NETWORKIT_COMMUNITY_PARTITION_INTERSECTION_HPP_

#include <networkit/structures/Partition.hpp>

namespace NetworKit {

/**
 * Class for calculating the intersection of two partitions, i.e. the clustering with the fewest clusters
 * such that each cluster is a subset of a cluster in both partitions.
 */
class PartitionIntersection {
    public:
        /**
         * Calculate the intersection of two partitions @a zeta and @a eta
         * @param zeta	The first partition
         * @param eta	The second partition
         * @return The intersection of @a zeta and @a eta
         */
        Partition calculate(const Partition &zeta, const Partition &eta);
};

} /* namespace NetworKit */


#endif // NETWORKIT_COMMUNITY_PARTITION_INTERSECTION_HPP_
