"...ssh:/git@developer.sourcefind.cn:2222/tsoc/openmm.git" did not exist on "f7e4653a34ee45a8d117118e644565a1ee4dcf65"
Unverified Commit 84132b19 authored by peastman's avatar peastman Committed by GitHub
Browse files

Fixed potential out of range index (#2960)

parent f29d6cc5
...@@ -1014,7 +1014,7 @@ void CudaCalcNonbondedForceKernel::initialize(const System& system, const Nonbon ...@@ -1014,7 +1014,7 @@ void CudaCalcNonbondedForceKernel::initialize(const System& system, const Nonbon
} }
for (int i = 0; i < ndata; i++) for (int i = 0; i < ndata; i++)
if (moduli[i] < 1.0e-7) if (moduli[i] < 1.0e-7)
moduli[i] = (moduli[i-1]+moduli[i+1])*0.5; moduli[i] = (moduli[(i-1+ndata)%ndata]+moduli[(i+1)%ndata])*0.5;
if (dim == 0) if (dim == 0)
xmoduli->upload(moduli, true); xmoduli->upload(moduli, true);
else if (dim == 1) else if (dim == 1)
......
...@@ -963,7 +963,7 @@ void OpenCLCalcNonbondedForceKernel::initialize(const System& system, const Nonb ...@@ -963,7 +963,7 @@ void OpenCLCalcNonbondedForceKernel::initialize(const System& system, const Nonb
for (int i = 0; i < ndata; i++) for (int i = 0; i < ndata; i++)
{ {
if (moduli[i] < 1.0e-7) if (moduli[i] < 1.0e-7)
moduli[i] = (moduli[i-1]+moduli[i+1])*0.5f; moduli[i] = (moduli[(i-1+ndata)%ndata]+moduli[(i+1)%ndata])*0.5;
} }
if (dim == 0) if (dim == 0)
xmoduli->upload(moduli, true); xmoduli->upload(moduli, true);
......
...@@ -181,7 +181,7 @@ pme_calculate_bsplines_moduli(pme_t pme) ...@@ -181,7 +181,7 @@ pme_calculate_bsplines_moduli(pme_t pme)
{ {
if (pme->bsplines_moduli[d][i]<1.0e-7) if (pme->bsplines_moduli[d][i]<1.0e-7)
{ {
pme->bsplines_moduli[d][i]=(pme->bsplines_moduli[d][i-1]+pme->bsplines_moduli[d][i+1])/2; pme->bsplines_moduli[d][i]=(pme->bsplines_moduli[d][(i-1+ndata)%ndata]+pme->bsplines_moduli[d][(i+1)%ndata])/2;
} }
} }
} }
......
...@@ -520,7 +520,7 @@ void CpuCalcPmeReciprocalForceKernel::initialize(int xsize, int ysize, int zsize ...@@ -520,7 +520,7 @@ void CpuCalcPmeReciprocalForceKernel::initialize(int xsize, int ysize, int zsize
} }
for (int i = 0; i < ndata; i++) for (int i = 0; i < ndata; i++)
if (moduli[i] < 1.0e-7f) if (moduli[i] < 1.0e-7f)
moduli[i] = (moduli[i-1]+moduli[i+1])*0.5f; moduli[i] = (moduli[(i-1+ndata)%ndata]+moduli[(i+1)%ndata])*0.5f;
} }
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment