Molassembler  3.0.0
Molecule graph and conformer library
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Scine::Molassembler::Stereopermutations::Stereopermutation Class Reference

Represent abstract stereopermutation around atom center. More...

#include <Stereopermutation.h>

Inheritance diagram for Scine::Molassembler::Stereopermutations::Stereopermutation:

Public Types

Member types
using Occupation = Temple::StrongIndexPermutation< Shapes::Vertex, Rank >
 Ranked site occupation.
 
using Link = std::pair< Shapes::Vertex, Shapes::Vertex >
 Type used to represent a link between shape vertices.
 
using OrderedLinks = std::vector< Link >
 Unordered type, but kept ordered by member functions.
 

Public Member Functions

Special member functions
 Stereopermutation ()=default
 Empty default-init (invalid state)
 
 Stereopermutation (Occupation passOccupation, OrderedLinks passLinks={})
 Construct an Stereopermutation from an occupation and a a list of bonded shape vertices. More...
 
Information
Stereopermutation applyPermutation (const Shapes::Permutation &permutation) const
 Applies a shape vertex permutation. More...
 
std::string toString () const
 A string for display.
 
Operators
auto tie () const
 Yields members tied to tuple for crtp operator suppliers.
 
- Public Member Functions inherited from Scine::Molassembler::Temple::Crtp::LexicographicComparable< Stereopermutation >
constexpr bool operator== (const LexicographicComparable &other) const
 
constexpr bool operator!= (const LexicographicComparable &other) const
 
constexpr bool operator< (const LexicographicComparable &other) const
 
constexpr bool operator<= (const LexicographicComparable &other) const
 
constexpr bool operator> (const LexicographicComparable &other) const
 
constexpr bool operator>= (const LexicographicComparable &other) const
 

Static Public Member Functions

Static functions
static Occupation permuteOccupation (const Occupation &occupation, const Shapes::Permutation &permutation)
 Rotate characters. More...
 
static Occupation occupationFromChars (const std::string &chars)
 Rotate characters. More...
 
static OrderedLinks permuteLinks (const OrderedLinks &links, const Shapes::Permutation &permutation)
 Rotate links. More...
 
- Static Public Member Functions inherited from Scine::Molassembler::Temple::Crtp::LexicographicComparable< Stereopermutation >
static constexpr const
Stereopermutation & 
derived (const LexicographicComparable &base)
 

Data Fields

Member data
Occupation occupation
 Occupation of shape vertices by site rank.
 
OrderedLinks links
 Links between shape vertices.
 

Detailed Description

Represent abstract stereopermutation around atom center.

This class represents a simplified model of a sterically unique assignment of a set of ligands to a stereocenter. It exists to uniquely identify the steric configuration at this stereocenter, and provides methods to assist a systematic generation of all possible configurations. It is generalized over a number of shapes which are encoded in a separate library.

Constructor & Destructor Documentation

Scine::Molassembler::Stereopermutations::Stereopermutation::Stereopermutation ( Occupation  passOccupation,
OrderedLinks  passLinks = {} 
)

Construct an Stereopermutation from an occupation and a a list of bonded shape vertices.

Parameters
passOccupationAn occupation of shape vertices by site rankings
passLinksA vector of shape vertex pairs denoting links

Member Function Documentation

Stereopermutation Scine::Molassembler::Stereopermutations::Stereopermutation::applyPermutation ( const Shapes::Permutation permutation) const

Applies a shape vertex permutation.

Complexity \(O(N + L)\)

static Occupation Scine::Molassembler::Stereopermutations::Stereopermutation::occupationFromChars ( const std::string &  chars)
static

Rotate characters.

Complexity \(\Theta(N)\)

static OrderedLinks Scine::Molassembler::Stereopermutations::Stereopermutation::permuteLinks ( const OrderedLinks links,
const Shapes::Permutation permutation 
)
static

Rotate links.

Complexity \(\Theta(L)\), not linear in shape size since it is small and constant

static Occupation Scine::Molassembler::Stereopermutations::Stereopermutation::permuteOccupation ( const Occupation occupation,
const Shapes::Permutation permutation 
)
static

Rotate characters.

Complexity \(\Theta(N)\)


The documentation for this class was generated from the following file: