From 1c60b502b3075ef06851337436d3bf277ef4e0c5 Mon Sep 17 00:00:00 2001 From: Christos Choutouridis Date: Sun, 10 Nov 2024 20:15:18 +0200 Subject: [PATCH] First matlab approach for linear implementation (V0) --- .gitignore | 18 ++++++++++++++++++ homework_1/Exercise 1-knn-openmp.pdf | Bin 0 -> 27938 bytes homework_1/matlab/dist2.m | 18 ++++++++++++++++++ homework_1/matlab/knnsearch2.m | 24 ++++++++++++++++++++++++ homework_1/matlab/test.m | 24 ++++++++++++++++++++++++ 5 files changed, 84 insertions(+) create mode 100644 .gitignore create mode 100644 homework_1/Exercise 1-knn-openmp.pdf create mode 100644 homework_1/matlab/dist2.m create mode 100644 homework_1/matlab/knnsearch2.m create mode 100644 homework_1/matlab/test.m diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7b1c517 --- /dev/null +++ b/.gitignore @@ -0,0 +1,18 @@ +# project +bin/ +out/ +mat/ +mtx/ + +# hpc +exclude +hpc_auth_sync.sh + +# eclipse +.project +.cproject +.settings/ + +# matlab +*.m~ + diff --git a/homework_1/Exercise 1-knn-openmp.pdf b/homework_1/Exercise 1-knn-openmp.pdf new file mode 100644 index 0000000000000000000000000000000000000000..b0c43649b80d8167b177a43b2c108f7ed62c12b3 GIT binary patch literal 27938 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