From 9b79588ec7ca8c6441a509bd19f04ecab45b9c81 Mon Sep 17 00:00:00 2001 From: Fernando Wong Date: Tue, 31 Mar 2020 12:47:54 +0900 Subject: [PATCH 1/3] Create edge index key only once --- src/jLouvain.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/jLouvain.js b/src/jLouvain.js index ab11eb5..d2cff34 100644 --- a/src/jLouvain.js +++ b/src/jLouvain.js @@ -1,4 +1,4 @@ -/* +/* Author: Corneliu S. (github.com/upphiminn) This is a javascript implementation of the Louvain @@ -83,11 +83,12 @@ function get_graph_size(graph) { function add_edge_to_graph(graph, edge) { update_assoc_mat(graph, edge); - if (edge_index[edge.source + '_' + edge.target]) { - graph.edges[edge_index[edge.source + '_' + edge.target]].weight = edge.weight; + let key = edge.source + '_' + edge.target; + if (edge_index[key]) { + graph.edges[edge_index[key]].weight = edge.weight; } else { graph.edges.push(edge); - edge_index[edge.source + '_' + edge.target] = graph.edges.length - 1; + edge_index[key] = graph.edges.length - 1; } } From d04a131cd8eb9df1e800a83374fcd98ce6eaf57f Mon Sep 17 00:00:00 2001 From: Fernando Wong Date: Tue, 31 Mar 2020 12:52:19 +0900 Subject: [PATCH 2/3] Fix edge at index 0 being duplicated --- src/jLouvain.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/jLouvain.js b/src/jLouvain.js index d2cff34..c047502 100644 --- a/src/jLouvain.js +++ b/src/jLouvain.js @@ -84,7 +84,7 @@ function add_edge_to_graph(graph, edge) { update_assoc_mat(graph, edge); let key = edge.source + '_' + edge.target; - if (edge_index[key]) { + if (edge_index.hasOwnProperty(key)) { graph.edges[edge_index[key]].weight = edge.weight; } else { graph.edges.push(edge); From 8e7001d51087b80866c5b2c888007e514cd3f96c Mon Sep 17 00:00:00 2001 From: Fernando Wong Date: Tue, 31 Mar 2020 12:56:13 +0900 Subject: [PATCH 3/3] Avoid substraction when computing indices for new edges --- src/jLouvain.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/jLouvain.js b/src/jLouvain.js index c047502..3e0320f 100644 --- a/src/jLouvain.js +++ b/src/jLouvain.js @@ -87,8 +87,8 @@ function add_edge_to_graph(graph, edge) { if (edge_index.hasOwnProperty(key)) { graph.edges[edge_index[key]].weight = edge.weight; } else { + edge_index[key] = graph.edges.length; graph.edges.push(edge); - edge_index[key] = graph.edges.length - 1; } }