diff --git a/lib/include/srsran/phy/utils/random.h b/lib/include/srsran/phy/utils/random.h index 1cf42196a..4383f2d0c 100644 --- a/lib/include/srsran/phy/utils/random.h +++ b/lib/include/srsran/phy/utils/random.h @@ -39,6 +39,8 @@ SRSRAN_API float srsran_random_gauss_dist(srsran_random_t q, float std_dev); SRSRAN_API bool srsran_random_bool(srsran_random_t q, float prob_true); +SRSRAN_API void srsran_random_bit_vector(srsran_random_t q, uint8_t* c, uint32_t nsamples); + SRSRAN_API void srsran_random_free(srsran_random_t q); #ifdef __cplusplus diff --git a/lib/src/phy/utils/random.cpp b/lib/src/phy/utils/random.cpp index 4b192bcf9..b71c9a646 100644 --- a/lib/src/phy/utils/random.cpp +++ b/lib/src/phy/utils/random.cpp @@ -113,6 +113,13 @@ bool srsran_random_bool(srsran_random_t q, float prob_true) return srsran_random_uniform_real_dist(q, 0, 1) < prob_true; } +void srsran_random_bit_vector(srsran_random_t q, uint8_t* c, uint32_t nsamples) +{ + for (uint32_t i = 0; i < nsamples; i++) { + c[i] = (uint8_t)srsran_random_uniform_int_dist(q, 0, 1); + } +} + void srsran_random_free(srsran_random_t q) { if (q) {