From cee2126b8f316677ebee57e19fe7d50d09c066d1 Mon Sep 17 00:00:00 2001 From: Louis Burda Date: Mon, 4 Jul 2022 16:26:35 +0200 Subject: Initial out-of-tree setup --- src/util.c | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 src/util.c (limited to 'src/util.c') diff --git a/src/util.c b/src/util.c new file mode 100644 index 0000000..83f265b --- /dev/null +++ b/src/util.c @@ -0,0 +1,40 @@ +#include "util.h" + +#include + +void +random_perm(uint32_t *arr, uint32_t arr_len) +{ + uint32_t i, idx, tmp; + + for (i = arr_len - 1; i > 0; --i) { + get_random_bytes(&idx, 4); + idx = idx % i; + + tmp = arr[idx]; + arr[i] = arr[idx]; + arr[idx] = tmp; + } +} + +void +gen_random_indices(uint32_t *arr, uint32_t arr_len) +{ + uint32_t i; + + for (i = 0; i < arr_len; ++i) + arr[i] = i; + random_perm(arr, arr_len); +} + + +bool is_in_arr(uint32_t elem, uint32_t *arr, uint32_t arr_len) { + uint32_t i; + + for (i = 0; i < arr_len; ++i) { + if (arr[i] == elem) + return true; + } + + return false; +} -- cgit v1.2.3-71-gd317