Molassembler  3.0.0
Molecule graph and conformer library
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
AtomEnvironmentHash.h File Reference

Hash an atom's environment in a Molecule for isomorphism calculations. More...

#include "boost/multiprecision/cpp_int.hpp"
#include "boost/optional.hpp"
#include "Utils/Geometry/ElementTypes.h"
#include "Molassembler/Shapes/Shapes.h"
#include "Molassembler/Types.h"
#include <vector>
Include dependency graph for AtomEnvironmentHash.h:

Go to the source code of this file.

Data Structures

struct  Scine::Molassembler::Hashes::BondInformation
 Information pertinent to a singular bond hash. More...
 
struct  Scine::Molassembler::Hashes::LookupFunctor
 A functor for getting an atom's hash from a captured list of hashes. More...
 

Namespaces

 Scine::Molassembler
 Central library namespace.
 
 Scine::Molassembler::Hashes
 Classes and methods to compute hashes of atom environments.
 

Typedefs

using Scine::Molassembler::Hashes::HashType = std::uint64_t
 

Functions

WideHashType Scine::Molassembler::Hashes::hash (AtomEnvironmentComponents bitmask, Utils::ElementType elementType, const std::vector< BondInformation > &sortedBonds, const boost::optional< Shapes::Shape > &shapeOptional, const boost::optional< unsigned > &assignedOptional)
 Convolutes the atom's element type and bonds into an unsigned integer. More...
 
std::vector< BondInformation > Scine::Molassembler::Hashes::gatherBonds (const PrivateGraph &inner, const StereopermutatorList &stereopermutators, AtomEnvironmentComponents componentsBitmask, AtomIndex i)
 Collects bond information for hash() input. More...
 
WideHashType Scine::Molassembler::Hashes::atomEnvironment (const PrivateGraph &inner, boost::optional< const StereopermutatorList & > stereopermutators, AtomEnvironmentComponents bitmask, AtomIndex i)
 Calculate the hash for a particular atom index. More...
 
std::vector< WideHashType > Scine::Molassembler::Hashes::generate (const PrivateGraph &inner, boost::optional< const StereopermutatorList & > stereopermutatorsOption, AtomEnvironmentComponents bitmask)
 Generates the hashes for every atom in a molecule's components. More...
 
bool Scine::Molassembler::Hashes::identityCompare (const PrivateGraph &aGraph, const StereopermutatorList &aStereopermutators, const PrivateGraph &bGraph, const StereopermutatorList &bStereopermutators, AtomEnvironmentComponents componentBitmask)
 Compare two molecules with an identity index mapping. More...
 
std::tuple< std::vector
< HashType >, std::vector
< HashType >, HashType > 
Scine::Molassembler::Hashes::narrow (const std::vector< WideHashType > &a, const std::vector< WideHashType > &b)
 Re-enumerates the hashes in two generated hash lists. More...
 
std::pair< std::vector
< HashType >, std::vector
< HashType >> 
Scine::Molassembler::Hashes::generate (const PrivateGraph &aGraph, const StereopermutatorList &aStereopermutators, const PrivateGraph &bGraph, const StereopermutatorList &bStereopermutators, AtomEnvironmentComponents bitmask)
 Generates hashes for two molecules' components. More...
 

Detailed Description

Hash an atom's environment in a Molecule for isomorphism calculations.