From 426847c4e97ce225931bfde275b9e54a6bffe149 Mon Sep 17 00:00:00 2001 From: Bobby Bingham Date: Sun, 6 Jul 2014 16:15:44 -0500 Subject: Add a generator for slightly noisy reverse order data --- generators.c | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/generators.c b/generators.c index 2e31b72..4c73454 100644 --- a/generators.c +++ b/generators.c @@ -38,26 +38,37 @@ static void generate_constant(int *buffer, size_t size) for (size_t i = 0; i < size; i++) buffer[i] = 42; } -static void generate_sorted_noise(int *buffer, size_t size) +static void add_noise(int *buffer, size_t size) { int noisemax = size / 4; int noiseoff = size / 8; srandom(1); for (size_t i = 0; i < size; i++) { - int noise = 0; if (random() < 0.2 * RAND_MAX) { - noise = random() % noisemax - noiseoff; + buffer[i] += random() % noisemax - noiseoff; } - buffer[i] = i + noise; } } +static void generate_sorted_noise(int *buffer, size_t size) +{ + generate_sorted(buffer, size); + add_noise(buffer, size); +} + +static void generate_reverse_noise(int *buffer, size_t size) +{ + generate_reverse(buffer, size); + add_noise(buffer, size); +} + const struct generator generators[] = { - { .name = "random", .func = generate_random }, - { .name = "sorted", .func = generate_sorted }, - { .name = "reverse", .func = generate_reverse }, - { .name = "constant", .func = generate_constant }, - { .name = "sorted+noise", .func = generate_sorted_noise }, + { .name = "random", .func = generate_random }, + { .name = "sorted", .func = generate_sorted }, + { .name = "reverse", .func = generate_reverse }, + { .name = "constant", .func = generate_constant }, + { .name = "sorted+noise", .func = generate_sorted_noise }, + { .name = "reverse+noise", .func = generate_reverse_noise }, { 0 } }; -- cgit v1.2.3