diff --git a/src/distance.c b/src/distance.c index 79c24d282a4ee2b3b26cce7928959c8415e8dde9..922e24035a305bc6bb7dcbb10aba233f85a16cc0 100644 --- a/src/distance.c +++ b/src/distance.c @@ -20,9 +20,7 @@ double distance_euclid_int(const vector_int_t* p1, const vector_int_t* p2) { return sqrt((double) acc); } -inline int_t - -abs_diff(const int_t a1, const int_t a2) { +int_t abs_diff(const int_t a1, const int_t a2) { int_t diff = a2 - a1; return diff >= 0 ? diff : -diff; } @@ -39,5 +37,12 @@ double distance_manhattan_int(const vector_int_t* p1, const vector_int_t* p2) { } double distance_chebyshev_int(const vector_int_t* p1, const vector_int_t* p2) { - return ERROR; + if (p1->dim != p2->dim)return ERROR; + int_t max = ERROR; + int_t item; + for (size_t i = 0; i < p1->dim; ++i) { + item = abs_diff(p1->data[i], p2->data[i]); + if (item > max) max = item; + } + return (double) max; } diff --git a/src/main.c b/src/main.c index 58fde71fd21e4f6a9f90bf62e9ef4877071cf4df..d675d0b0fcedd2d78b43a1030ec15f7d2ce7fb40 100644 --- a/src/main.c +++ b/src/main.c @@ -1,6 +1,13 @@ +#include <stdio.h> #include <stdlib.h> -int main(int argc, char **argv) { +int main(int argc, char** argv) { + fprintf(stderr, "USAGE: %s <INPUT_FILE> <OUTPUT_FILE>\n", argv[0]); + char* ipath = "/dev/stdin"; + char* opath = "/dev/stdout"; + if (argc > 1) ipath = argv[1]; + if (argc > 2) opath = argv[2]; + // TODO return EXIT_SUCCESS; }