int main(int argc, char *argv[]) { init_genrand(0); hls::stream<uint32_t> uniform_rns; hls::stream<float> gaussian_rns; const int N = 1000; uint32_t arn[N]; for (int i = 0; i < N; ++i) { uint32_t rn = genrand_int32(); arn[i] = rn; uniform_rns.write(rn); } for (int i = 0; i < N; ++i) icdf(uniform_rns, gaussian_rns); int i = 0; while (gaussian_rns.size() > 0) { float acc_res = gaussian_rns.read(); std::cout << i << ": " << acc_res << std::endl; ++i; } std::cout << "done." << std::endl; return 0; }
double draw_margin(double p, double beta, double total_players) { return icdf((p + 1.0) / 2) * sqrt(total_players) * beta; }