diff --git a/shared/src/values/Similarity.cpp b/shared/src/values/Similarity.cpp index fb51ef1..c21ff98 100644 --- a/shared/src/values/Similarity.cpp +++ b/shared/src/values/Similarity.cpp @@ -2,7 +2,6 @@ #include #include #include -#include namespace Similarity { @@ -12,14 +11,15 @@ namespace Similarity uint8_t *a = (uint8_t *)d1; uint8_t *b = (uint8_t *)d2; float sum = 0.0f; - for (size_t i = 0; i < sizeof(Dna); ++i) { - float diff = static_cast(a[i]) - static_cast(b[i]); - sum += diff * diff; + for (size_t i = 0; i < sizeof(Dna); ++i) + { + float diff = static_cast(a[i]) - static_cast(b[i]); + sum += diff * diff; } float distance = std::sqrt(sum); float max_distance = 255.0f * std::sqrt(static_cast(sizeof(Dna))); - return distance / max_distance; + return 1 - (distance / max_distance); } // todo: use int8_t insted of uint8_t and map data @@ -148,7 +148,7 @@ namespace Similarity }); } } - return 1 - (dp[len][len] / float (len + len)); + return 1 - (dp[len][len] / float(len + len)); } } diff --git a/view/inc/Vapp.hpp b/view/inc/Vapp.hpp index 81caf08..bff36f7 100644 --- a/view/inc/Vapp.hpp +++ b/view/inc/Vapp.hpp @@ -52,4 +52,5 @@ private: std::vector> similTable; void setUpTable(); + void drawToFile(); }; \ No newline at end of file diff --git a/view/src/Vapp.cpp b/view/src/Vapp.cpp index a47d3dd..8a96ace 100644 --- a/view/src/Vapp.cpp +++ b/view/src/Vapp.cpp @@ -6,6 +6,7 @@ #include #include #include +#include const char select_user_id[] = "SELECT USER_ID FROM user_table GROUP BY USER_ID;"; @@ -136,6 +137,10 @@ void Vapp::draw() { setUpTable(); } + if (ImGui::MenuItem("DrawToFile", nullptr, false, enableAll)) + { + drawToFile(); + } ImGui::EndMainMenuBar(); } @@ -331,7 +336,39 @@ void Vapp::setUpTable() } sql::reset(get_gen_stmt); + + int64_t id = ids[selected_id_index]; + char buff[50]; + sprintf(buff, "%ld.txt", id); + std::ofstream file(buff); + + file << "| index | euclidean_distance | cosine_similarity | cosine_similarity_int | hamming_distance | hamming_distance_without_seeds | levenshtein_distance |\n"; + file << "| --- | --- | --- | --- | --- | --- | --- |\n"; + + + + for (size_t i = 0; i < similTable.size(); i++) + { + file << "|" << i << "|"; + for (size_t j = 0; j < similTable[i].size(); j++) + { + file << similTable[i][j] << "|"; + } + file << "\n"; + } } sql::finalize(get_gen_stmt); +} + +void Vapp::drawToFile() +{ + enableAll = false; + int64_t id = ids[selected_id_index]; + char buff[50]; + sprintf(buff, "%ld_%d.png", id, selected_gen); + Image image = LoadImageFromTexture(bigTexture.texture); + ExportImage(image, buff); + UnloadImage(image); + enableAll = true; } \ No newline at end of file