double get_diffusion_coefficient(const algebra::Vector3Ds &displacements, double dt) { algebra::Vector3D Ds; for (unsigned int i=0; i< 3; ++i) { Ds[i]= get_diffusion_coefficient(displacements.begin(), displacements.end(), i, dt); } IMP_LOG_TERSE( "Diffusion coefficients are " << Ds << std::endl); int len=displacements.size()/2; algebra::Vector3D Ds0; for (unsigned int i=0; i< 3; ++i) { Ds0[i]= get_diffusion_coefficient(displacements.begin(), displacements.begin()+len, i, dt); } algebra::Vector3D Ds1; for (unsigned int i=0; i< 3; ++i) { Ds1[i]= get_diffusion_coefficient(displacements.begin()+len, displacements.end(), i, dt); } IMP_LOG_TERSE( "Partial coefficients are " << Ds0 << " and " << Ds1 << std::endl); return std::accumulate(Ds1.coordinates_begin(), Ds1.coordinates_end(), 0.0)/3.0; }
IMPMULTIFIT_BEGIN_NAMESPACE ProbabilisticAnchorGraph::ProbabilisticAnchorGraph( algebra::Vector3Ds anchor_positions) :Object("ProbabilisticAnchorGraph%1%") { GVertex u; for(unsigned int i=0; i<anchor_positions.size(); i++) { u = boost::add_vertex(g_); id2node_.push_back(u); } positions_.insert(positions_.end(),anchor_positions.begin(), anchor_positions.end()); }