// returns an array with exponential distribution of size n using seed s sparray exp_dist_sparray(long s, long n) { sparray tmp = sparray(n); int lg = log2_up(n)+1; par::parallel_for(exp_dist_sparray_contr, 0l, n, [&] (long i) { long range = (1 << (random_index(2*(i+s), lg))); tmp[i] = (value_type)hash64shift((long)(range+random_index(2*(i+s), range))); }); return tmp; }
unsigned hash_fd(unsigned fd_main) { return( (config.fd_buf_size > UINT_MAX) ? (hash64shift(fd_main) & (config.fd_buf_size - 1)) : (hash(fd_main) & (config.fd_buf_size - 1)) ); }