11 #ifndef INCLUDE_MOLASSEMBLER_STEREOPERMUTATIONS_STEREOPERMUTATION_H
12 #define INCLUDE_MOLASSEMBLER_STEREOPERMUTATIONS_STEREOPERMUTATION_H
19 namespace Molassembler {
22 namespace Stereopermutations {
40 using Link = std::pair<Shapes::Vertex, Shapes::Vertex>;
104 std::vector<unsigned>
105 > getCharMap()
const;
108 std::string toString()
const;
115 return std::tie(characters, links);
120 PURITY_WEAK MASM_EXPORT std::size_t hash_value(
const Stereopermutation& assignment);
std::pair< Shapes::Vertex, Shapes::Vertex > Link
Type used to represent a link between shape vertices.
Definition: Stereopermutation.h:40
Generates all operators using a method returning a tuple.
Definition: OperatorSuppliers.h:84
Represent abstract stereopermutation around atom center.
Definition: Stereopermutation.h:32
#define PURITY_WEAK
Definition: Preprocessor.h:36
Centralizes basic shape data in runtime types.
std::vector< Vertex > Permutation
Representation of a shape vertex permutation.
Definition: Data.h:35
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:114
std::vector< char > CharacterOccupation
Character occupations.
Definition: Stereopermutation.h:37
constexpr auto map(const ArrayType< T, size > &array, UnaryFunction &&function)
Maps all elements of any array-like container with a unary function.
Definition: Containers.h:62
std::vector< Link > OrderedLinks
Unordered type, but kept ordered by member functions.
Definition: Stereopermutation.h:43
CharacterOccupation characters
Abstract representation of ranked substituents.
Definition: Stereopermutation.h:70
OrderedLinks links
Links between characters.
Definition: Stereopermutation.h:72