26 #include <boost/ptr_container/ptr_vector.hpp>
64 assert(torsions1.size() == torsions2.size());
72 assert(!rs || rs->size() == torsions.size());
75 torsions[i] = (*rs)[i];
77 torsions[i] +=
random_fl(-spread, spread, generator);
120 if(rs &&
random_fl(0, 1, generator) < rp)
124 if(rs &&
random_fl(0, 1, generator) < rp)
130 assert(in.size() == out.size());
141 template<
class Archive>
169 rigid.randomize(corner1, corner2, generator);
178 template<
class Archive>
208 template<
class Archive>
216 std::vector<residue_change>
flex;
221 flex[i].torsions.resize(s.
flex[i], 0);
257 return ligands[0].rigid.position[0];
262 tmp += 6 +
ligands[i].torsions.size();
264 tmp +=
flex[i].torsions.size();
277 std::vector<residue_conf>
flex;
283 flex[i].torsions.resize(s.
flex[i], 0);
289 flex[i].set_to_null();
295 flex[i] .increment(c.
flex[i], factor);
309 assert(
flex.size() == c.
flex.size());
321 ligands[i].rigid.position.assign(0);
323 const flv* torsions_rs = rs ? (&rs->
ligands[i].torsions) : NULL;
333 const flv* torsions_rs = rs ? (&rs->
flex[i].torsions) : NULL;
339 ligands[i].randomize(corner1, corner2, generator);
341 flex[i].randomize(generator);
351 template<
class Archive>