All these calculations to come up with 46088 instead of 46090?
I did manual calculation for 50 sMerits and I come to result of 98. So I am not doubting the mathematics and my formula.
My point is: just double the total amount of sMerit, and you're (almost) at the right number. You end up 2 sMerits lower. But it might just as well be send to users who already had 0.5 sMerit, meaning a few more sMerit becomes available.
Just doubling it makes the calculations much easier, and the rounding depends on various circumstances anyway.
I got your sentiments. For a big number "X", 2X-2 ,2X-1 and 2X all have approximately same values so you can continue with 2X for sake of simplicity.