When a single element is involved, apply directly the values instead of using the diff from init values. This avoids glitches when going from huge values to very small ones (due to float precision). Note we should probably switch to doubles here, ultimately, but would leave that for later. Manys thanks to Armin Zingler, who did all the investigation work on this point!