9 #ifndef IMPCORE_SUBSET_MOVER_H
10 #define IMPCORE_SUBSET_MOVER_H
12 #include <IMP/core/core_config.h>
15 #include <cereal/access.hpp>
16 #include <cereal/types/base_class.hpp>
17 #include <cereal/types/polymorphic.hpp>
18 #include <cereal/types/vector.hpp>
20 IMPCORE_BEGIN_NAMESPACE
30 std::vector<unsigned int> subset_inds_;
32 friend class cereal::access;
34 template<
class Archive>
void serialize(Archive &ar) {
35 ar(cereal::base_class<MonteCarloMover>(
this),
36 movers_, n_, subset_inds_);
52 unsigned int get_subset_size()
const {
return n_; }
Simple Monte Carlo optimizer.
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
virtual void do_accept()
Implement accept_proposed_move(); default implementation is empty.
Applies a subset of a list of movers.
virtual void do_reject()=0
Implement reset_proposed_move()
Return value of the MonteCarloMover::propose() function.
A base class for classes which perturb particles.
The base class for movers for Monte Carlo optimization.
#define IMP_OBJECT_SERIALIZE_DECL(Name)
Declare methods needed for serialization of Object pointers.
virtual MonteCarloMoverResult do_propose()=0
Implement propose_move()
virtual ModelObjectsTemp do_get_inputs() const =0