32 #ifndef CDPL_DESCR_MOLECULARCOMPLEXITYCALCULATOR_HPP
33 #define CDPL_DESCR_MOLECULARCOMPLEXITYCALCULATOR_HPP
108 void calcAtomTypeComplexity();
109 void calcStructuralComplexity();
117 void incNumEquivAtoms();
119 double getValue()
const;
120 double getEtaContribution()
const;
121 double getNumEquivAtoms()
const;
123 std::size_t getID()
const;
126 double numEquivAtoms;
131 typedef std::map<std::size_t, SymmetryTerm> SymmetryTermMap;
137 PiBondTerm(std::size_t, std::size_t, std::size_t);
139 double getCorrection(
const SymmetryTermMap&)
const;
141 bool isRelevant(
const SymmetryTermMap&)
const;
146 std::size_t symClassID1;
147 std::size_t symClassID2;
151 typedef std::map<std::size_t, std::size_t> AtomTypeCountMap;
152 typedef std::set<PiBondTerm> PiBondTermSet;
155 SymmetryTermMap symmetryTerms;
156 AtomTypeCountMap atomTypeCounts;
157 PiBondTermSet piBondTerms;
158 std::size_t numHeavyAtoms;
159 std::size_t numDoubleBonds;
160 std::size_t numTripleBonds;
162 double atmTypeComplexity;
163 double structComplexity;
Definition of the preprocessor macro CDPL_DESCR_API.
#define CDPL_DESCR_API
Tells the compiler/linker which classes, functions and variables are part of the library API.
Abstract base class representing a chemical atom and its bonded neighborhood.
Definition: Atom.hpp:57
Abstract base class representing a chemical bond between two Chem::Atom instances.
Definition: Bond.hpp:54
Abstract base class for representations of a chemical structure as a graph of bonded atoms.
Definition: MolecularGraph.hpp:57
Calculation of the molecular complexity of a molecular graph after Hendrickson, Huang and Toczko.
Definition: MolecularComplexityCalculator.hpp:67
MolecularComplexityCalculator()
Constructs the MolecularComplexityCalculator instance.
Definition: MolecularComplexityCalculator.hpp:73
double calculate(const Chem::MolecularGraph &molgraph)
Calculates the complexity of the molecular graph molgraph.
double getResult() const
Returns the result of the last molecular graph complexity calculation.
MolecularComplexityCalculator & operator=(const MolecularComplexityCalculator &)=delete
MolecularComplexityCalculator(const Chem::MolecularGraph &molgraph)
Constructs the MolecularComplexityCalculator instance and calculates the complexity of the molecular ...
MolecularComplexityCalculator(const MolecularComplexityCalculator &)=delete
bool operator<(const Array< ValueType > &array1, const Array< ValueType > &array2)
Less than comparison operator.
The namespace of the Chemical Data Processing Library.