Update similarity calc

This commit is contained in:
2025-03-09 15:14:21 +01:00
parent 1994e7ccb1
commit 266d250881
5 changed files with 73 additions and 56 deletions

View File

@@ -14,6 +14,8 @@ enum DrawingStage
done,
};
constexpr int numberOfFunc = 2;
class Vapp
{
public:
@@ -45,9 +47,9 @@ private:
int drawX = 0;
int drawY = 0;
void setUpManager();
std::array<float, 3> simil;
std::vector<std::array<float, 3>> similTable;
std::array<float, numberOfFunc> simil;
std::vector<std::array<float, numberOfFunc>> similTable;
void setUpTable();
};

View File

@@ -100,9 +100,8 @@ void Vapp::update()
break;
case DrawingStage::calSim:
simil[0] = Similarity::calc_similarity(manager.vector, Similarity::cosine_similarity);
simil[1] = Similarity::calc_similarity(manager.vector, Similarity::hamming_distance);
simil[2] = Similarity::calc_similarity(manager.vector, Similarity::cosine_similarity_int);
simil[0] = Similarity::calc_similarity(manager.vector, Similarity::hamming_distance);
simil[1] = Similarity::calc_similarity(manager.vector, Similarity::hamming_distance_without_seeds);
stageOfDrawing = DrawingStage::done;
break;
@@ -174,12 +173,11 @@ void Vapp::draw()
if (showStats)
{
ImGui::Begin("Status", &showStats);
ImGui::LabelText("##sim1", "cosine_similarity: %f", simil[0]);
ImGui::LabelText("##sim2", "hamming_distance: %f", simil[1]);
ImGui::LabelText("##sim3", "cosine_similarity_int: %f", simil[2]);
ImGui::LabelText("##sim1", "hamming_distance: %f", simil[0]);
ImGui::LabelText("##sim2", "hamming_distance_without_seeds: %f", simil[1]);
const ImGuiTableFlags flags = ImGuiTableFlags_NoHostExtendX | ImGuiTableFlags_SizingFixedFit | ImGuiTableFlags_Resizable | ImGuiTableFlags_BordersOuter | ImGuiTableFlags_BordersV | ImGuiTableFlags_ContextMenuInBody;
const int columns = 4;
const int columns = numberOfFunc + 1;
if (ImGui::BeginTable("table1", columns, flags))
{
for (int row = 0; row < similTable.size(); row++)
@@ -292,9 +290,8 @@ void Vapp::setUpTable()
{
similTable.emplace_back();
int s = similTable.size() - 1;
similTable[s][0] = Similarity::calc_similarity(manager.vector, Similarity::cosine_similarity);
similTable[s][1] = Similarity::calc_similarity(manager.vector, Similarity::hamming_distance);
similTable[s][2] = Similarity::calc_similarity(manager.vector, Similarity::cosine_similarity_int);
similTable[s][0] = Similarity::calc_similarity(manager.vector, Similarity::hamming_distance);
similTable[s][1] = Similarity::calc_similarity(manager.vector, Similarity::hamming_distance_without_seeds);
DnaManager::newGen(&manager);
}