11 #ifndef INCLUDE_MOLASSEMBLER_STEREOPERMUTATIONS_STEREOPERMUTATION_H
12 #define INCLUDE_MOLASSEMBLER_STEREOPERMUTATIONS_STEREOPERMUTATION_H
18 namespace Molassembler {
21 namespace Stereopermutations {
44 using Link = std::pair<Shapes::Vertex, Shapes::Vertex>;
61 static Occupation occupationFromChars(
const std::string& chars);
107 std::string toString()
const;
114 return std::tie(occupation, links);
119 PURITY_WEAK MASM_EXPORT std::size_t hash_value(
const Stereopermutation& assignment);
Strongly typed index permutations.
std::pair< Shapes::Vertex, Shapes::Vertex > Link
Type used to represent a link between shape vertices.
Definition: Stereopermutation.h:44
Generates all operators using a method returning a tuple.
Definition: OperatorSuppliers.h:78
Type helper for creating strong index types that are type-level distinct from their fundamental types...
Definition: StrongIndex.h:37
Represent abstract stereopermutation around atom center.
Definition: Stereopermutation.h:36
#define PURITY_WEAK
Definition: Preprocessor.h:36
Occupation occupation
Occupation of shape vertices by site rank.
Definition: Stereopermutation.h:76
Centralizes basic shape data in runtime types.
std::vector< Vertex > Permutation
Representation of a shape vertex permutation.
Definition: Data.h:36
Permutation applyPermutation(const Permutation &occupation, const Permutation &permutation)
Rotates a passed list of indices with a specified rotation vector.
auto tie() const
Yields members tied to tuple for crtp operator suppliers.
Definition: Stereopermutation.h:113
std::vector< Link > OrderedLinks
Unordered type, but kept ordered by member functions.
Definition: Stereopermutation.h:47
OrderedLinks links
Links between shape vertices.
Definition: Stereopermutation.h:78