From c71e9b2cd792bbd0ec736d8676be5cde52df0cf9 Mon Sep 17 00:00:00 2001 From: Dimitri Lozeve Date: Thu, 11 Jun 2020 19:31:22 +0200 Subject: [PATCH] Move normalized_edit_distance function to distance.c --- src/distance.c | 12 ++++++++++++ src/distance.h | 3 +++ src/ex06/main.c | 11 ----------- 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/src/distance.c b/src/distance.c index fca6cd3..0426d44 100644 --- a/src/distance.c +++ b/src/distance.c @@ -12,3 +12,15 @@ unsigned int hamming(size_t len, const unsigned char s1[static len], } return res; } + +double normalized_edit_distance( + unsigned int block_size, unsigned int blocks_count, + const unsigned char buf[static block_size * blocks_count]) { + double avg_dist = 0; + for (size_t i = 0; i < blocks_count - 1; ++i) { + avg_dist += + hamming(block_size, &buf[i * block_size], &buf[(i + 1) * block_size]); + } + + return avg_dist / (double)block_size / ((double)blocks_count - 1.0); +} diff --git a/src/distance.h b/src/distance.h index a2231e1..5664b27 100644 --- a/src/distance.h +++ b/src/distance.h @@ -5,5 +5,8 @@ unsigned int hamming(size_t len, const unsigned char s1[static len], const unsigned char s2[static len]); +double normalized_edit_distance( + unsigned int block_size, unsigned int blocks_count, + const unsigned char buf[static block_size * blocks_count]); #endif /* DISTANCE_H */ diff --git a/src/ex06/main.c b/src/ex06/main.c index 46c63d3..2de983c 100644 --- a/src/ex06/main.c +++ b/src/ex06/main.c @@ -8,17 +8,6 @@ #define BUF_SIZE 4096 -double normalized_edit_distance( - unsigned int keysize, unsigned int blocks_count, - const unsigned char buf[static keysize * blocks_count]) { - double avg_dist = 0; - for (size_t i = 0; i < blocks_count - 1; ++i) { - avg_dist += hamming(keysize, &buf[i * keysize], &buf[(i + 1) * keysize]); - } - - return avg_dist / (double)keysize / ((double)blocks_count - 1.0); -} - int main(int argc, char *argv[]) { if (argc < 2) { printf("Usage: %s \n", argv[0]);