11#ifndef RDKIT_SYNTHONSPACESEARCHDETAILS_H
12#define RDKIT_SYNTHONSPACESEARCHDETAILS_H
19using Clock = std::chrono::steady_clock;
24namespace SynthonSpaceSearch::details {
35 std::vector<std::unique_ptr<ROMol>> &
molFrags);
58 const std::vector<std::unique_ptr<ROMol>> &
fragSet);
78 std::vector<boost::dynamic_bitset<>> &
bitSets);
81 const std::vector<boost::dynamic_bitset<>> &
bitSets,
82 std::vector<std::vector<size_t>> &
outVecs);
87 explicit Stepper(
const std::vector<size_t> &sizes) : d_sizes(sizes) {
88 d_currState = std::vector<size_t>(sizes.size(), 0);
93 if (d_currState[0] == d_sizes[0]) {
96 std::int64_t i =
static_cast<std::int64_t
>(d_currState.size()) - 1;
99 if (d_currState[0] == d_sizes[0]) {
102 if (d_currState[i] == d_sizes[i]) {
std::chrono::steady_clock Clock
std::chrono::time_point< Clock > TimePoint
#define RDKIT_SYNTHONSPACESEARCH_EXPORT
RDKIT_SYNTHONSPACESEARCH_EXPORT boost::dynamic_bitset getConnectorPattern(const std::vector< std::unique_ptr< ROMol > > &fragSet)
RDKIT_SYNTHONSPACESEARCH_EXPORT void bitSetsToVectors(const std::vector< boost::dynamic_bitset<> > &bitSets, std::vector< std::vector< size_t > > &outVecs)
RDKIT_SYNTHONSPACESEARCH_EXPORT bool checkTimeOut(const TimePoint *endTime)
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, std::uint64_t maxNumFrags, TimePoint *endTime, bool &timedOut)
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