You can try for yourself. It seems like the portion that has the offset applied to it changes as a function of the skin distance. This is in no way defined behavior and the fact that lj/smooth/linear does not have the same problems makes me think it must be something in the implementation of morse/smooth/linear but don’t know what it is at the moment.

Hi Stefan & John,

I tracked the source of the problem. It is in the init_one() function - the value of cut[i][j] is not copied to cut[j][i]. Adding the line below to the function should solve the problem:

cut[j[i] = cut[i][j]


Thanks Michał! I will file a pull request soon. Those damn is and js look too much alike…

Oh, right, now I get it. I just forgot to add that line. Thanks!

Bug fix is in this pull request.