Molassembler  1.0.0
Molecule graph and conformer library
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Scine::Molassembler::StereopermutatorList::Impl Struct Reference

Public Types

using AtomMapType = std::unordered_map< AtomIndex, AtomStereopermutator >
 
using BondMapType = std::unordered_map< BondIndex, BondStereopermutator, boost::hash< BondIndex >>
 

Public Member Functions

Modification
AtomStereopermutatorat (AtomIndex index)
 Access atom stereopermutator at an atom. More...
 
BondStereopermutatorat (const BondIndex &index)
 Access bond stereopermutator at a bond. More...
 
AtomStereopermutatoradd (AtomStereopermutator stereopermutator)
 Add a new AtomStereopermutator to the list. More...
 
BondStereopermutatoradd (BondStereopermutator stereopermutator)
 Add a new BondStereopermutator to the list. More...
 
void applyPermutation (const std::vector< AtomIndex > &permutation)
 Apply an index mapping to the list of stereopermutators. More...
 
void clear ()
 Remove all stereopermutators. More...
 
void clearBonds ()
 Remove all stereopermutators on bonds. More...
 
boost::optional
< AtomStereopermutator & > 
option (AtomIndex index)
 Fetch a reference-option to an AtomStereopermutator. More...
 
boost::optional
< BondStereopermutator & > 
option (const BondIndex &edge)
 Fetch a reference-option to a BondStereopermutator. More...
 
void propagateVertexRemoval (AtomIndex removedIndex)
 Communicates the removal of a vertex index to all stereopermutators in the list. More...
 
void remove (AtomIndex index)
 Removes the AtomStereopermutator on a specified index. More...
 
void remove (const BondIndex &edge)
 Removes the BondStereopermutator on a specified edge. More...
 
void try_remove (AtomIndex index)
 Removes the AtomStereopermutator on a specified index, if present. More...
 
void try_remove (const BondIndex &edge)
 Removes the BondStereopermutator on a specified edge, if present. More...
 
Information
const AtomStereopermutatorat (AtomIndex index) const
 Access atom stereopermutator at an atom. More...
 
const BondStereopermutatorat (const BondIndex &index) const
 Access bond stereopermutator at a bond. More...
 
bool compare (const Impl &other, AtomEnvironmentComponents componentBitmask) const
 Modular comparison with another StereopermutatorList using a bitmask. More...
 
bool empty () const
 Returns true if there are no stereopermutators. More...
 
bool hasZeroAssignmentStereopermutators () const
 Returns true if there are any stereopermutators with zero possible assignments. More...
 
bool hasUnassignedStereopermutators () const
 Returns true if there are unassigned stereopermutators. More...
 
boost::optional< const
AtomStereopermutator & > 
option (AtomIndex index) const
 Fetch a const ref-option to an AtomStereopermutator, if present. More...
 
boost::optional< const
BondStereopermutator & > 
option (const BondIndex &edge) const
 Fetch a const ref-option to a BondStereopermutator, if present. More...
 
unsigned A () const
 Returns the number of AtomStereopermutators. More...
 
unsigned B () const
 Returns the number of BondStereopermutators. More...
 
unsigned size () const
 Combined size of atom and bond-stereopermutator lists. More...
 
Operators
bool operator== (const Impl &other) const
 Strict equality comparison. More...
 

Data Fields

AtomMapType atomStereopermutators
 The underlying storage for atom stereopermutators.
 
BondMapType bondStereopermutators
 The underlying storage for bond stereopermutators.
 

Member Function Documentation

unsigned Scine::Molassembler::StereopermutatorList::Impl::A ( ) const

Returns the number of AtomStereopermutators.

Complexity \(\Theta(1)\)

AtomStereopermutator& Scine::Molassembler::StereopermutatorList::Impl::add ( AtomStereopermutator  stereopermutator)

Add a new AtomStereopermutator to the list.

Complexity \(\Theta(1)\) amortized

Returns
An iterator pointing to the added stereopermutator
BondStereopermutator& Scine::Molassembler::StereopermutatorList::Impl::add ( BondStereopermutator  stereopermutator)

Add a new BondStereopermutator to the list.

Complexity \(\Theta(1)\) amortized

Returns
An iterator pointing to the added stereopermutator
void Scine::Molassembler::StereopermutatorList::Impl::applyPermutation ( const std::vector< AtomIndex > &  permutation)

Apply an index mapping to the list of stereopermutators.

Applies the permutation to its maps, transforming the keys (atom and bond indices) and all stereopermutators.

Complexity \(\Theta(A + B)\)

AtomStereopermutator& Scine::Molassembler::StereopermutatorList::Impl::at ( AtomIndex  index)

Access atom stereopermutator at an atom.

Exceptions
std::out_of_rangeIf there is no atom stereopermutator on the passed atom

Complexity \(\Theta(1)\)

BondStereopermutator& Scine::Molassembler::StereopermutatorList::Impl::at ( const BondIndex index)

Access bond stereopermutator at a bond.

Exceptions
std::out_of_rangeIf there is no bond stereopermutator on the passed bond

Complexity \(\Theta(1)\)

const AtomStereopermutator& Scine::Molassembler::StereopermutatorList::Impl::at ( AtomIndex  index) const

Access atom stereopermutator at an atom.

Exceptions
std::out_of_rangeIf there is no atom stereopermutator on the passed atom

Complexity \(\Theta(1)\)

const BondStereopermutator& Scine::Molassembler::StereopermutatorList::Impl::at ( const BondIndex index) const

Access bond stereopermutator at a bond.

Exceptions
std::out_of_rangeIf there is no bond stereopermutator on the passed bond

Complexity \(\Theta(1)\)

unsigned Scine::Molassembler::StereopermutatorList::Impl::B ( ) const

Returns the number of BondStereopermutators.

Complexity \(\Theta(1)\)

void Scine::Molassembler::StereopermutatorList::Impl::clear ( )

Remove all stereopermutators.

Complexity \(\Theta(1)\)

void Scine::Molassembler::StereopermutatorList::Impl::clearBonds ( )

Remove all stereopermutators on bonds.

Complexity \(\Theta(1)\)

bool Scine::Molassembler::StereopermutatorList::Impl::compare ( const Impl other,
AtomEnvironmentComponents  componentBitmask 
) const

Modular comparison with another StereopermutatorList using a bitmask.

Complexity \(O(A + B)\)

bool Scine::Molassembler::StereopermutatorList::Impl::empty ( ) const

Returns true if there are no stereopermutators.

Complexity \(\Theta(1)\)

bool Scine::Molassembler::StereopermutatorList::Impl::hasUnassignedStereopermutators ( ) const

Returns true if there are unassigned stereopermutators.

Complexity \(O(A + B)\)

bool Scine::Molassembler::StereopermutatorList::Impl::hasZeroAssignmentStereopermutators ( ) const

Returns true if there are any stereopermutators with zero possible assignments.

Complexity \(O(A + B)\)

bool Scine::Molassembler::StereopermutatorList::Impl::operator== ( const Impl other) const

Strict equality comparison.

Complexity \(O(A + B)\)

boost::optional<AtomStereopermutator&> Scine::Molassembler::StereopermutatorList::Impl::option ( AtomIndex  index)

Fetch a reference-option to an AtomStereopermutator.

Complexity \(\Theta(1)\)

boost::optional<BondStereopermutator&> Scine::Molassembler::StereopermutatorList::Impl::option ( const BondIndex edge)

Fetch a reference-option to a BondStereopermutator.

Complexity \(\Theta(1)\)

boost::optional<const AtomStereopermutator&> Scine::Molassembler::StereopermutatorList::Impl::option ( AtomIndex  index) const

Fetch a const ref-option to an AtomStereopermutator, if present.

Complexity \(\Theta(1)\)

boost::optional<const BondStereopermutator&> Scine::Molassembler::StereopermutatorList::Impl::option ( const BondIndex edge) const

Fetch a const ref-option to a BondStereopermutator, if present.

Complexity \(\Theta(1)\)

void Scine::Molassembler::StereopermutatorList::Impl::propagateVertexRemoval ( AtomIndex  removedIndex)

Communicates the removal of a vertex index to all stereopermutators in the list.

Removing a vertex invalidates some vertex descriptors, which are used liberally in the stereopermutator classes. This function ensures that vertex descriptors are valid throughout.

Complexity \(\Theta(A + B)\)

void Scine::Molassembler::StereopermutatorList::Impl::remove ( AtomIndex  index)

Removes the AtomStereopermutator on a specified index.

Complexity \(\Theta(1)\)

void Scine::Molassembler::StereopermutatorList::Impl::remove ( const BondIndex edge)

Removes the BondStereopermutator on a specified edge.

Complexity \(\Theta(1)\)

unsigned Scine::Molassembler::StereopermutatorList::Impl::size ( ) const

Combined size of atom and bond-stereopermutator lists.

Complexity \(\Theta(1)\)

void Scine::Molassembler::StereopermutatorList::Impl::try_remove ( AtomIndex  index)

Removes the AtomStereopermutator on a specified index, if present.

Complexity \(\Theta(1)\)

void Scine::Molassembler::StereopermutatorList::Impl::try_remove ( const BondIndex edge)

Removes the BondStereopermutator on a specified edge, if present.

Complexity \(\Theta(1)\)


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