As far as I can tell, the -s FLOAT option only works for values of float where the decimal is equal or below .5, due to this commented line in the code:
int x = (int)(g_subsam + .499);
/* int x = (int)g_subsam; *?
The commented version below allows, again as far as I can tell, to subsample, say, 90%, by speciying "-s 0.9" or "-s 123456.99" with a different seed.
Please confirm if this fixes it or if it will affect the outcome in a weird way.
Thanks,
Albert.