11#ifndef RDKIT_SYNTHONSPACESEARCHDETAILS_H
12#define RDKIT_SYNTHONSPACESEARCHDETAILS_H
20namespace SynthonSpaceSearch::details {
29 std::vector<std::unique_ptr<ROMol>> &
molFrags);
51 const std::vector<std::unique_ptr<ROMol>> &
fragSet);
71 std::vector<boost::dynamic_bitset<>> &
bitSets);
76 explicit Stepper(
const std::vector<size_t> &sizes) : d_sizes(sizes) {
77 d_currState = std::vector<size_t>(sizes.size(), 0);
82 if (d_currState[0] == d_sizes[0]) {
85 std::int64_t i =
static_cast<std::int64_t
>(d_currState.size()) - 1;
88 if (d_currState[0] == d_sizes[0]) {
91 if (d_currState[i] == d_sizes[i]) {
#define RDKIT_SYNTHONSPACESEARCH_EXPORT
RDKIT_SYNTHONSPACESEARCH_EXPORT boost::dynamic_bitset getConnectorPattern(const std::vector< std::unique_ptr< ROMol > > &fragSet)
RDKIT_SYNTHONSPACESEARCH_EXPORT std::vector< std::vector< unsigned int > > permMFromN(unsigned int m, unsigned int n)
RDKIT_SYNTHONSPACESEARCH_EXPORT std::vector< boost::dynamic_bitset<> > getConnectorPatterns(const std::vector< std::unique_ptr< ROMol > > &fragSet)
RDKIT_SYNTHONSPACESEARCH_EXPORT void fixAromaticRingSplits(std::vector< std::unique_ptr< ROMol > > &molFrags)
RDKIT_SYNTHONSPACESEARCH_EXPORT int countConnections(const ROMol &frag)
RDKIT_SYNTHONSPACESEARCH_EXPORT std::vector< std::vector< unsigned int > > combMFromN(unsigned int m, unsigned int n)
RDKIT_SYNTHONSPACESEARCH_EXPORT std::vector< std::vector< std::unique_ptr< ROMol > > > splitMolecule(const ROMol &query, unsigned int maxBondSplits)
RDKIT_SYNTHONSPACESEARCH_EXPORT void expandBitSet(std::vector< boost::dynamic_bitset<> > &bitSets)
RDKIT_SYNTHONSPACESEARCH_EXPORT std::vector< std::vector< std::unique_ptr< ROMol > > > getConnectorPermutations(const std::vector< std::unique_ptr< ROMol > > &molFrags, const boost::dynamic_bitset<> &fragConns, const boost::dynamic_bitset<> &reactionConns)
bool rdvalue_is(const RDValue_cast_t)
Stepper(const std::vector< size_t > &sizes)
std::vector< size_t > d_sizes
std::vector< size_t > d_currState