18#ifndef VOTCA_CSG_EXCLUSIONLIST_H
19#define VOTCA_CSG_EXCLUSIONLIST_H
45 template <
typename iterable>
48 template <
typename iterable>
60 using iterator = std::list<exclusion_t *>::iterator;
67 template <
typename iterable>
81template <
typename iterable>
83 typename iterable::iterator i, j;
85 for (i = l.begin(); i != l.end(); ++i) {
86 for (j = i; j != l.end(); ++j) {
92template <
typename iterable>
94 typename iterable::iterator i, j;
96 for (i = l.begin(); i != l.end(); ++i) {
97 for (j = i; j != l.end(); ++j) {
103template <
typename iterable>
105 for (
Bead *beadB : l) {
109 std::swap(bead1, bead2);
111 if (bead1 == bead2) {
Index getId() const noexcept
Gets the id of the bead.
friend std::ostream & operator<<(std::ostream &out, ExclusionList &exl)
void RemoveExclusion(Bead *bead1, Bead *bead2)
std::list< exclusion_t * >::iterator iterator
std::list< exclusion_t * > exclusions_
void ExcludeList(iterable &l)
void CreateExclusions(Topology *top)
void InsertExclusion(Bead *bead, iterable &excluded)
exclusion_t * GetExclusions(Bead *bead)
bool IsExcluded(Bead *bead1, Bead *bead2) const
std::map< Bead *, exclusion_t * > excl_by_bead_
topology of the whole system
std::ostream & operator<<(std::ostream &out, ExclusionList &exl)
base class for all analysis tools
std::list< Bead * > exclude_