void setAW(unsigned long *a, unsigned long *w) { int min = sfmt_get_min_array_size32(&sfmt); //<- Min. size for rand int nRandom = 162; //<- 2*80 for the 'a' array and 2 for w if(min > 162) { nRandom = min; } uint32_t *rand = malloc(sizeof(uint32_t)*nRandom); /* Fill the array with 32-bit random uints */ sfmt_fill_array32(&sfmt, rand, nRandom); /* Map the random integers to our field */ for(int i = 0; i < 2*80; i++) { a[i] = field(rand[i]); } /* And set the w-values */ w[0] = field(rand[2*80]); w[1] = field(rand[2*80 + 1]); }
int main(){ int i, j; uint32_t *array32 = (uint32_t *)array1; sfmt_t sfmt; if (sfmt_get_min_array_size32(&sfmt) > BLOCK_SIZE) { printf("array size too small!\n"); return 0; } /* 32 bit generation */ sfmt_init_gen_rand(&sfmt, 1234); for (i = 0; i < 10; i++) { for (j = 0; j < COUNT; j++) { //sfmt_fill_array32(&sfmt, array32, BLOCK_SIZE); } } for(int k=0; k<2100000000; k++) sfmt_genrand_uint32(&sfmt); }