[gmx-developers] the function of instruction "(0.5*rinv11*(3.0-((rsq11*rinv11)*rinv11)))" in nb_kernel***_c.c

execuse execuse at gmail.com
Tue Apr 27 05:36:03 CEST 2010


Dear,

I am reading the source code under directory src/gmxlib/nonbonded/nb_kernel,
I found some instructions like the following:

191             rinv11           = __frsqrtes(rsq11);
192             rinv11           =
(0.5*rinv11*(3.0-((rsq11*rinv11)*rinv11)));
193             rinv12           = __frsqrtes(rsq12);
194             rinv12           =
(0.5*rinv12*(3.0-((rsq12*rinv12)*rinv12)));
195             rinv13           = __frsqrtes(rsq13);
196             rinv13           =
(0.5*rinv13*(3.0-((rsq13*rinv13)*rinv13)));
197             rinv21           = __frsqrtes(rsq21);
198             rinv21           =
(0.5*rinv21*(3.0-((rsq21*rinv21)*rinv21)));
199             rinv22           = __frsqrtes(rsq22);
200             rinv22           =
(0.5*rinv22*(3.0-((rsq22*rinv22)*rinv22)));
201             rinv23           = __frsqrtes(rsq23);
202             rinv23           =
(0.5*rinv23*(3.0-((rsq23*rinv23)*rinv23)));
203             rinv31           = __frsqrtes(rsq31);
204             rinv31           =
(0.5*rinv31*(3.0-((rsq31*rinv31)*rinv31)));
205             rinv32           = __frsqrtes(rsq32);
206             rinv32           =
(0.5*rinv32*(3.0-((rsq32*rinv32)*rinv32)));
207             rinv33           = __frsqrtes(rsq33);
208             rinv33           =
(0.5*rinv33*(3.0-((rsq33*rinv33)*rinv33)));
As the __frsqrtes(rsq11) subroutine returns the reciprocal square root of
the rsq11, and therefore, 3.0-((rsq11*rinv11)*rinv11) is about 2, and
0.5*rinv*2 is about equals to the original rinv11. Does anyone know whether
GROMACS recalculate rinv11 with the additional instruction? Thanks for any
explaination.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://maillist.sys.kth.se/pipermail/gromacs.org_gmx-developers/attachments/20100427/82674e72/attachment.html>


More information about the gromacs.org_gmx-developers mailing list