Not sure but it seems like without much refactoring we may be able to fix the loss of precision by setting the unused positions to -1/disabled
``` case DS_ALG_RELWEIGHT: /* 11 - relative weight based distribution */ hash = idx->rwlist[idx->rwlast]; // check/skip here idx->rwlast = (idx->rwlast + 1) % 100; break; ```