Hi,
My guess is that the problem is a difference in the exact floating point representation of each 0.8f which gets propagated through the multiplication, which will unfortunately give you index trouble with these very large indices.
The closest binary representation of 0.8 is:
0.800000012 = 13421773/2^24
Based on the content of your files, the [hsv2rgb] seems to be outputting something like this, which gets printed as 0.8:
0.80000025 = 13421777/2^24
I'm not sure there's anything you can do about this, unfortunately.