I second of course ! :)
we should do it before the release though.
On Jan 6, 2010, at 1:05 PM, Daniel Russel wrote:
We count use a sampler-level concept. The idea is to provide
something higher level that takes a Model and produces a set of good
scoring models for analysis. Examples would include:
- Domino
- a MC/CG scheme for optimizing sets of spheres (a premature version
is in helpers)
Currently we have StructureSet which has the needed functionality
and Domino which has some of it too.
I propose I add a base class to kernel which provides a sample
method which returns a structure set and provides support for the
types of filtering that is currently in StructureSet (eg only keep
solutions with low scores and where restraint r is < 10). This would
also require moving StructureSet to the kernel.
Something like:
class Sampler {
Sampler(Model *m);
// find structures to fill
virtual StructureSet* sample();
// filtering methods moved from structure set
protected:
// adds the model to the set if it satisfies the filters
void add_model();
};
Adding the base class provides a place to put documentation for this
level of interaction. It also would mean that Domino and the MC/CG
protocols would automatically benefit from improvements in filtering
and things as well as have more robust storage management (since
handling changes to things other than optimized attributes can be
tricky).