yes, you are right, it should be without get, I just copied it from the first version, when they were members...
On Mon, Dec 22, 2008 at 1:33 PM, Daniel Russel drussel@gmail.com wrote:
> Other places we call such methods "distance". I'm not sure we are entirely > consistent everywhere on having get or not in non-member functions, but we > should be. Personally, I prefer not having the "get" when it is not a member > (since there is no where to get it from) but could go either way. > > Notification of IMP commits wrote: > >> Author: ben@SALILAB.ORG >> Date: 2008-12-22 13:29:36 -0800 (Mon, 22 Dec 2008) >> New Revision: 1073 >> >> Modified: >> trunk/kernel/include/VectorD.h >> trunk/kernel/pyext/Vector3D.i >> trunk/kernel/test/misc/test_vector3d.py >> Log: >> Patch from Dina, with minor cleanup and additions by me: add methods to >> calculate distance and squared distance between two "pointlike" vectors. >> >> >> Modified: trunk/kernel/include/VectorD.h >> =================================================================== >> --- trunk/kernel/include/VectorD.h 2008-12-22 21:08:32 UTC (rev 1072) >> +++ trunk/kernel/include/VectorD.h 2008-12-22 21:29:36 UTC (rev 1073) >> @@ -339,7 +339,24 @@ >> } >> +//! compute the squared distance between two vectors >> template <unsigned int D> >> +Float get_squared_distance(const VectorD<D> &v1, const VectorD<D> &v2) { >> + Float d, s = 0; >> + for (unsigned int i=0; i< D; ++i) { >> + d = v1[i] - v2[i]; >> + s += d*d; >> + } >> + return s; >> +} >> + >> +//! compute the distance between two vectors >> +template <unsigned int D> >> +Float get_distance(const VectorD<D> &v1, const VectorD<D> &v2) { >> + return std::sqrt(get_squared_distance(v1, v2)); >> +} >> + >> +template <unsigned int D> >> struct SpacesIO >> { >> const VectorD<D> &v_; >> >> Modified: trunk/kernel/pyext/Vector3D.i >> =================================================================== >> --- trunk/kernel/pyext/Vector3D.i 2008-12-22 21:08:32 UTC (rev 1072) >> +++ trunk/kernel/pyext/Vector3D.i 2008-12-22 21:29:36 UTC (rev 1073) >> @@ -56,4 +56,6 @@ >> %template(random_vector_on_unit_sphere) >> random_vector_on_unit_sphere<3>; >> %template(random_vector_in_unit_sphere) >> random_vector_in_unit_sphere<3>; >> %template(random_vector_in_unit_box) random_vector_in_unit_box<3>; >> -} >> \ No newline at end of file >> + %template(get_distance) get_distance<3>; >> + %template(get_squared_distance) get_squared_distance<3>; >> +} >> >> Modified: trunk/kernel/test/misc/test_vector3d.py >> =================================================================== >> --- trunk/kernel/test/misc/test_vector3d.py 2008-12-22 21:08:32 UTC >> (rev 1072) >> +++ trunk/kernel/test/misc/test_vector3d.py 2008-12-22 21:29:36 UTC >> (rev 1073) >> @@ -100,6 +100,14 @@ >> for i in range(3): >> self.assertEqual(prod[i], expected_prod[i]) >> self.assertEqual(v1[i], expected_prod[i]) >> + >> + def test_distance(self): >> + """Check distance between two vectors""" >> + v1 = IMP.Vector3D(3.0, 6.0, 9.0) >> + v2 = IMP.Vector3D(1.0, 2.0, 3.0) >> + self.assertEqual(IMP.get_squared_distance(v1, v2), 56) >> + self.assertInTolerance(IMP.get_distance(v1, v2), 7.4833, 0.01) >> + >> def test_generators(self): >> """Check the Vector3D generators""" >> # test calling since it is a bit non-trivial in SWIG >> >> _______________________________________________ >> IMP-commits mailing list >> IMP-commits@salilab.org >> https://salilab.org/mailman/listinfo/imp-commits >> >> > > _______________________________________________ > IMP-dev mailing list > IMP-dev@salilab.org > https://salilab.org/mailman/listinfo/imp-dev >