H.samplerate + (H. s.rate adj % H. mult factor) / H. mult factor)
If someone (like I was) is a bit confused as to what the formula for this actually means (the % term is not obvious), below is the resulting decimal values calculated for H.Mult values 3 to 6.
(Basically, the % (modulo) operation gives the integer remainder after dividing the H. s. rate adjust with the H.Mult factor.)
You can check which mode uses which horizontal multiplication mode in the optimal timings wiki page.
H. mult factor 3 (divide remainder by 3)
H s adjust:
1 -> 1 % 3 = 0, remainder 1 = 0.333
2 -> 2 % 3 = 0, remainder 2 = 0.667
3 -> 3 % 3 = 1, remainder 0 = 0
4 -> 4 % 3 = 1, remainder 1 = 0.333
5 -> 5 % 3 = 1, remainder 2 = 0.667
H. mult factor 4 (divide remainder by 4)
1 -> 1 % 4 = 0, remainder 1 = 0.25
2 -> 2 % 4 = 0, remainder 2 = 0.5
3 -> 3 % 4 = 0, remainder 3 = 0.75
4 -> 4 % 4 = 1, remainder 0 = 0
5 -> 5 % 4 = 1, remainder 1 = 0.25
H. mult factor 5 (divide remainder by 5)
1 -> 1 % 5 = 0, remainder 1 = 0.2
2 -> 2 % 5 = 0, remainder 2 = 0.4
3 -> 3 % 5 = 0, remainder 3 = 0.6
4 -> 4 % 5 = 0, remainder 4 = 0.8
5 -> 5 % 5 = 1, remainder 0 = 0
H. mult factor 6 (divide remainder by 6)
1 -> 1 % 6 = 0, remainder 1 = 0.167
2 -> 2 % 6 = 0, remainder 2 = 0.333
3 -> 3 % 6 = 0, remainder 3 = 0.5
4 -> 4 % 6 = 0, remainder 4 = 0.667
5 -> 5 % 6 = 0, remainder 5 = 0.833