diff --git a/src/tools/SwitchingFunction.cpp b/src/tools/SwitchingFunction.cpp index 3704e7acdc247794b3ee9829fa54c3aac577234f..0428be4f29ad2d1587fff0e47dd2842c41104b57 100644 --- a/src/tools/SwitchingFunction.cpp +++ b/src/tools/SwitchingFunction.cpp @@ -381,8 +381,9 @@ double SwitchingFunction::calculate(double distance,double&dfunc)const { } else if(type==nativeq) { double rdist2 = beta*(distance - lambda * ref); double exprdist=exp(rdist2); + double exprmdist=1.0/exprdist; result=1./(1.+exprdist); - dfunc=-exprdist/(1.+exprdist)/(1.+exprdist); + dfunc=-1.0/(exprmdist+1.0)/(1.+exprdist); } else if(type==gaussian) { result=exp(-0.5*rdist*rdist); dfunc=-rdist*result;