34 #ifndef RGROUP_EVEN_SAMPLE_H
35 #define RGROUP_EVEN_SAMPLE_H
38 #ifdef RDK_USE_BOOST_SERIALIZATION
39 #include <boost/serialization/set.hpp>
57 boost::uint64_t m_numPermutationsProcessed{};
59 std::vector<boost::int64_t> used_count;
60 std::vector<std::vector<boost::uint64_t>> var_used;
61 std::vector<std::vector<boost::uint64_t>> pair_used;
62 std::vector<std::vector<boost::uint64_t>> pair_counts;
63 std::set<boost::uint64_t> selected;
65 boost::uint64_t
seed{};
66 boost::uint64_t M{}, a{}, b{};
67 boost::uint64_t nslack{}, min_nslack{};
68 boost::uint64_t rejected_period{}, rejected_unique{};
69 boost::uint64_t rejected_slack_condition{}, rejected_bb_sampling_condition{};
83 m_numPermutationsProcessed(rhs.m_numPermutationsProcessed),
84 used_count(rhs.used_count),
85 var_used(rhs.var_used),
86 pair_used(rhs.pair_used),
87 pair_counts(rhs.pair_counts),
88 selected(rhs.selected),
94 min_nslack(rhs.min_nslack),
95 rejected_period(rhs.rejected_period),
96 rejected_unique(rhs.rejected_unique),
97 rejected_slack_condition(rhs.rejected_slack_condition),
98 rejected_bb_sampling_condition(rhs.rejected_bb_sampling_condition) {}
100 const char *
type()
const override {
return "EvenSamplePairsStrategy"; }
130 return m_numPermutationsProcessed;
133 operator bool()
const override {
return true; }
142 friend class boost::serialization::access;
146 for (boost::int64_t j = m_permutationSizes.size() - 1; j >= 0; j--) {
147 m_permutation[j] =
seed % m_permutationSizes[j];
148 seed /= m_permutationSizes[j];
150 return m_permutation;
153 bool try_add(boost::uint64_t
seed);
156 #ifdef RDK_USE_BOOST_SERIALIZATION
157 template <
class Archive>
158 void serialize(Archive &ar,
const unsigned int ) {
160 ar &boost::serialization::base_object<EnumerationStrategyBase>(*
this);
161 ar &m_numPermutationsProcessed;
178 ar &rejected_slack_condition;
179 ar &rejected_bb_sampling_condition;
This is a class for storing and applying general chemical reactions.
void initialize(const ChemicalReaction &reaction, const EnumerationTypes::BBS &building_blocks)
#define RDKIT_CHEMREACTIONS_EXPORT
std::vector< boost::uint64_t > RGROUPS
std::vector< MOL_SPTR_VECT > BBS