From c23f409d2c7b75830151f585f45fbdb88806c2aa Mon Sep 17 00:00:00 2001 From: nruest Date: Mon, 3 Sep 2018 12:05:15 -0400 Subject: [PATCH] Clean-up and organize project; partially resolves #40. - Moves Docs -> doc - Moves tests -> src/tests - Moves headers -> src/headers - Moves src/*.c -> src/main - Moves unity -> vendor/unity - Updates Doxygen config - Update Doxygen generated docs - Update README - Update all src files that need to be updated to reflect re-org - Update Makefile so project builds --- .gitignore | 2 + .../dir_68267d1309a1af8e8297ef4c3efbcdba.html | 113 -------- Docs/html/files.html | 97 ------- Docs/html/graphpass_8c.html | 137 ---------- Docs/html/graphpass_8h_source.html | 105 ------- Docs/html/menudata.js | 34 --- Docs/html/search/all_b.js | 4 - Docs/html/search/all_e.js | 4 - Docs/html/search/functions_6.js | 5 - Docs/html/search/functions_7.js | 4 - Docs/html/search/variables_0.js | 4 - Docs/html/search/variables_1.js | 5 - Docs/html/tabs.css | 1 - Docs/latex/annotated.tex | 6 - Docs/latex/files.tex | 15 - Docs/latex/graphpass_8c.tex | 60 ---- Doxyfile | 138 +++++----- Makefile | 22 +- README.md | 15 +- configure.scan | 83 ------ {Docs => doc}/html/analyze_8h.html | 0 {Docs => doc}/html/analyze_8h_source.html | 0 {Docs => doc}/html/annotated.html | 18 +- {Docs => doc}/html/bc_s.png | Bin {Docs => doc}/html/bdwn.png | Bin {Docs => doc}/html/classes.html | 26 +- {Docs => doc}/html/closed.png | Bin .../dir_59425e443f801f1f2fd8bbe4959a3ccf.html | 0 .../dir_68267d1309a1af8e8297ef4c3efbcdba.html | 83 ++++++ .../dir_6b23d51ea9a89549ea3e756c08c8ad26.html | 0 .../dir_7f57b1e41c5acd0e859ae5f3a2b075a9.html | 0 {Docs => doc}/html/doc.png | Bin {Docs => doc}/html/doxygen.css | 2 +- {Docs => doc}/html/doxygen.png | Bin {Docs => doc}/html/dynsections.js | 33 +-- doc/html/files.html | 92 +++++++ {Docs => doc}/html/filter_8h.html | 0 {Docs => doc}/html/filter_8h_source.html | 0 {Docs => doc}/html/folderclosed.png | Bin {Docs => doc}/html/folderopen.png | Bin {Docs => doc}/html/gexf_8h.html | 0 {Docs => doc}/html/gexf_8h_source.html | 0 {Docs => doc}/html/globals.html | 44 ++- {Docs => doc}/html/globals_defs.html | 0 {Docs => doc}/html/globals_func.html | 26 +- {Docs => doc}/html/globals_vars.html | 60 ++-- doc/html/graphpass_8c.html | 257 ++++++++++++++++++ {Docs => doc}/html/graphpass_8h.html | 0 doc/html/graphpass_8h_source.html | 109 ++++++++ {Docs => doc}/html/index.html | 19 +- {Docs => doc}/html/io_8h.html | 0 {Docs => doc}/html/io_8h_source.html | 0 {Docs => doc}/html/jquery.js | 32 +-- .../html/md__c_o_d_e__o_f__c_o_n_d_u_c_t.html | 0 {Docs => doc}/html/md__r_e_a_d_m_e.html | 0 {Docs => doc}/html/menu.js | 24 -- doc/html/menudata.js | 11 + {Docs => doc}/html/nav_f.png | Bin {Docs => doc}/html/nav_g.png | Bin {Docs => doc}/html/nav_h.png | Bin {Docs => doc}/html/open.png | Bin {Docs => doc}/html/pages.html | 0 {Docs => doc}/html/quickrun_8h.html | 0 {Docs => doc}/html/quickrun_8h_source.html | 0 {Docs => doc}/html/reports_8h.html | 0 {Docs => doc}/html/reports_8h_source.html | 0 {Docs => doc}/html/rnd_8h.html | 0 {Docs => doc}/html/rnd_8h_source.html | 0 {Docs => doc}/html/search/all_0.html | 6 +- {Docs => doc}/html/search/all_0.js | 0 {Docs => doc}/html/search/all_1.html | 6 +- .../html/search/all_1.js | 0 {Docs => doc}/html/search/all_10.html | 0 {Docs => doc}/html/search/all_10.js | 0 {Docs => doc}/html/search/all_2.html | 6 +- {Docs => doc}/html/search/all_2.js | 1 + {Docs => doc}/html/search/all_3.html | 6 +- .../files_2.js => doc/html/search/all_3.js | 0 {Docs => doc}/html/search/all_4.html | 6 +- {Docs => doc}/html/search/all_4.js | 0 {Docs => doc}/html/search/all_5.html | 6 +- {Docs => doc}/html/search/all_5.js | 0 {Docs => doc}/html/search/all_6.html | 6 +- doc/html/search/all_6.js | 4 + {Docs => doc}/html/search/all_7.html | 6 +- .../all_6.js => doc/html/search/all_7.js | 0 {Docs => doc}/html/search/all_8.html | 6 +- .../html/search/all_8.js | 1 + {Docs => doc}/html/search/all_9.html | 6 +- .../all_8.js => doc/html/search/all_9.js | 0 {Docs => doc}/html/search/all_a.html | 6 +- .../all_9.js => doc/html/search/all_a.js | 1 + {Docs => doc}/html/search/all_b.html | 6 +- .../all_a.js => doc/html/search/all_b.js | 0 {Docs => doc}/html/search/all_c.html | 6 +- doc/html/search/all_c.js | 8 + {Docs => doc}/html/search/all_d.html | 6 +- .../all_c.js => doc/html/search/all_d.js | 0 {Docs => doc}/html/search/all_e.html | 6 +- .../all_d.js => doc/html/search/all_e.js | 0 {Docs => doc}/html/search/all_f.html | 0 {Docs => doc}/html/search/all_f.js | 0 {Docs => doc}/html/search/classes_0.html | 6 +- {Docs => doc}/html/search/classes_0.js | 0 {Docs => doc}/html/search/classes_1.html | 6 +- {Docs => doc}/html/search/classes_1.js | 0 {Docs => doc}/html/search/classes_2.html | 0 {Docs => doc}/html/search/classes_2.js | 0 {Docs => doc}/html/search/close.png | Bin {Docs => doc}/html/search/defines_0.html | 0 {Docs => doc}/html/search/defines_0.js | 0 {Docs => doc}/html/search/files_0.html | 6 +- {Docs => doc}/html/search/files_0.js | 0 {Docs => doc}/html/search/files_1.html | 6 +- {Docs => doc}/html/search/files_1.js | 0 {Docs => doc}/html/search/files_2.html | 6 +- .../all_3.js => doc/html/search/files_2.js | 3 +- {Docs => doc}/html/search/files_3.html | 6 +- {Docs => doc}/html/search/files_3.js | 0 {Docs => doc}/html/search/files_4.html | 6 +- {Docs => doc}/html/search/files_4.js | 0 {Docs => doc}/html/search/files_5.html | 6 +- {Docs => doc}/html/search/files_5.js | 0 {Docs => doc}/html/search/files_6.html | 6 +- {Docs => doc}/html/search/files_6.js | 0 {Docs => doc}/html/search/functions_0.html | 6 +- {Docs => doc}/html/search/functions_0.js | 0 {Docs => doc}/html/search/functions_1.html | 6 +- .../html/search/functions_1.js | 3 +- {Docs => doc}/html/search/functions_2.html | 6 +- {Docs => doc}/html/search/functions_2.js | 0 {Docs => doc}/html/search/functions_3.html | 6 +- {Docs => doc}/html/search/functions_3.js | 0 {Docs => doc}/html/search/functions_4.html | 6 +- {Docs => doc}/html/search/functions_4.js | 0 {Docs => doc}/html/search/functions_5.html | 6 +- doc/html/search/functions_5.js | 4 + {Docs => doc}/html/search/functions_6.html | 6 +- .../html/search/functions_6.js | 1 + {Docs => doc}/html/search/functions_7.html | 6 +- doc/html/search/functions_7.js | 4 + {Docs => doc}/html/search/mag_sel.png | Bin {Docs => doc}/html/search/nomatches.html | 0 {Docs => doc}/html/search/pages_0.html | 0 {Docs => doc}/html/search/pages_0.js | 0 {Docs => doc}/html/search/pages_1.html | 0 {Docs => doc}/html/search/pages_1.js | 0 {Docs => doc}/html/search/search.css | 0 {Docs => doc}/html/search/search.js | 25 +- {Docs => doc}/html/search/search_l.png | Bin {Docs => doc}/html/search/search_m.png | Bin {Docs => doc}/html/search/search_r.png | Bin {Docs => doc}/html/search/searchdata.js | 12 +- {Docs => doc}/html/search/variables_0.html | 6 +- doc/html/search/variables_0.js | 4 + {Docs => doc}/html/search/variables_1.html | 6 +- doc/html/search/variables_1.js | 8 + {Docs => doc}/html/search/variables_2.html | 0 {Docs => doc}/html/search/variables_2.js | 0 {Docs => doc}/html/search/variables_3.html | 0 {Docs => doc}/html/search/variables_3.js | 0 {Docs => doc}/html/search/variables_4.html | 0 {Docs => doc}/html/search/variables_4.js | 0 {Docs => doc}/html/search/variables_5.html | 0 {Docs => doc}/html/search/variables_5.js | 0 {Docs => doc}/html/search/variables_6.html | 0 {Docs => doc}/html/search/variables_6.js | 0 {Docs => doc}/html/search/variables_7.html | 0 {Docs => doc}/html/search/variables_7.js | 0 {Docs => doc}/html/search/variables_8.html | 0 {Docs => doc}/html/search/variables_8.js | 0 {Docs => doc}/html/search/variables_9.html | 0 {Docs => doc}/html/search/variables_9.js | 0 {Docs => doc}/html/search/variables_a.html | 0 {Docs => doc}/html/search/variables_a.js | 0 {Docs => doc}/html/splitbar.png | Bin {Docs => doc}/html/struct_node.html | 19 +- {Docs => doc}/html/struct_rank_node.html | 19 +- .../struct_u_n_i_t_y___s_t_o_r_a_g_e___t.html | 0 {Docs => doc}/html/sync_off.png | Bin {Docs => doc}/html/sync_on.png | Bin {Docs => doc}/html/tab_a.png | Bin {Docs => doc}/html/tab_b.png | Bin {Docs => doc}/html/tab_h.png | Bin {Docs => doc}/html/tab_s.png | Bin doc/html/tabs.css | 1 + {Docs => doc}/html/unity_8h_source.html | 0 .../html/unity__internals_8h_source.html | 0 {Docs => doc}/html/viz_8h.html | 0 {Docs => doc}/html/viz_8h_source.html | 0 {Docs => doc}/latex/Makefile | 0 {Docs => doc}/latex/analyze_8h.tex | 0 doc/latex/annotated.tex | 5 + {Docs => doc}/latex/doxygen.sty | 0 doc/latex/files.tex | 13 + {Docs => doc}/latex/filter_8h.tex | 0 {Docs => doc}/latex/gexf_8h.tex | 0 doc/latex/graphpass_8c.tex | 115 ++++++++ {Docs => doc}/latex/graphpass_8h.tex | 0 {Docs => doc}/latex/io_8h.tex | 0 .../latex/md__c_o_d_e__o_f__c_o_n_d_u_c_t.tex | 0 {Docs => doc}/latex/md__r_e_a_d_m_e.tex | 0 {Docs => doc}/latex/quickrun_8h.tex | 0 {Docs => doc}/latex/refman.tex | 13 +- {Docs => doc}/latex/reports_8h.tex | 0 {Docs => doc}/latex/rnd_8h.tex | 0 {Docs => doc}/latex/struct_node.tex | 4 +- {Docs => doc}/latex/struct_rank_node.tex | 4 +- .../struct_u_n_i_t_y___s_t_o_r_a_g_e___t.tex | 0 {Docs => doc}/latex/viz_8h.tex | 0 {Docs => doc}/man/man3/Node.3 | 4 +- {Docs => doc}/man/man3/RankNode.3 | 4 +- {Docs => doc}/man/man3/UNITY_STORAGE_T.3 | 0 {Docs => doc}/man/man3/analyze.h.3 | 0 {Docs => doc}/man/man3/filter.h.3 | 0 {Docs => doc}/man/man3/gexf.h.3 | 0 {Docs => doc}/man/man3/graphpass.c.3 | 51 +++- {Docs => doc}/man/man3/graphpass.h.3 | 0 {Docs => doc}/man/man3/io.h.3 | 0 .../man3/md__c_o_d_e__o_f__c_o_n_d_u_c_t.3 | 0 {Docs => doc}/man/man3/md__r_e_a_d_m_e.3 | 0 {Docs => doc}/man/man3/quickrun.h.3 | 0 {Docs => doc}/man/man3/reports.h.3 | 0 {Docs => doc}/man/man3/rnd.h.3 | 0 {Docs => doc}/man/man3/viz.h.3 | 0 {headers => src/headers}/graphpass.h | 0 src/{ => main}/analyze.c | 0 src/{ => main}/filter.c | 0 src/{ => main}/gexf.c | 0 src/{ => main}/graphpass.c | 6 +- src/{ => main}/io.c | 0 src/{ => main}/quickrun.c | 0 src/{ => main}/reports.c | 0 src/{ => main}/rnd.c | 0 src/{ => main}/viz.c | 0 .../resources}/albertahealth.graphml | 0 {assets => src/resources}/anarchist.graphml | 0 {assets => src/resources}/cpp2.graphml | 0 {assets => src/resources}/idlenomore.graphml | 0 {assets => src/resources}/miserables.graphml | 0 {assets => src/resources}/panama.graphml | 0 {assets => src/resources}/snowden.graphml | 0 {tests => src/tests}/analyze_test.c | 0 {tests => src/tests}/filter_test.c | 0 {tests => src/tests}/quickrun_test.c | 2 +- {tests => src/tests}/runner_test_ana.c | 6 +- {tests => src/tests}/runner_test_qp.c | 4 +- {tests => src/tests}/sample_graphs_test.c | 0 {unity => vendor/unity}/unity.c | 0 {unity => vendor/unity}/unity.h | 0 {unity => vendor/unity}/unity_internals.h | 0 251 files changed, 1033 insertions(+), 1210 deletions(-) delete mode 100644 Docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html delete mode 100644 Docs/html/files.html delete mode 100644 Docs/html/graphpass_8c.html delete mode 100644 Docs/html/graphpass_8h_source.html delete mode 100644 Docs/html/menudata.js delete mode 100644 Docs/html/search/all_b.js delete mode 100644 Docs/html/search/all_e.js delete mode 100644 Docs/html/search/functions_6.js delete mode 100644 Docs/html/search/functions_7.js delete mode 100644 Docs/html/search/variables_0.js delete mode 100644 Docs/html/search/variables_1.js delete mode 100644 Docs/html/tabs.css delete mode 100644 Docs/latex/annotated.tex delete mode 100644 Docs/latex/files.tex delete mode 100644 Docs/latex/graphpass_8c.tex delete mode 100644 configure.scan rename {Docs => doc}/html/analyze_8h.html (100%) rename {Docs => doc}/html/analyze_8h_source.html (100%) rename {Docs => doc}/html/annotated.html (79%) rename {Docs => doc}/html/bc_s.png (100%) rename {Docs => doc}/html/bdwn.png (100%) rename {Docs => doc}/html/classes.html (72%) rename {Docs => doc}/html/closed.png (100%) rename {Docs => doc}/html/dir_59425e443f801f1f2fd8bbe4959a3ccf.html (100%) create mode 100644 doc/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html rename {Docs => doc}/html/dir_6b23d51ea9a89549ea3e756c08c8ad26.html (100%) rename {Docs => doc}/html/dir_7f57b1e41c5acd0e859ae5f3a2b075a9.html (100%) rename {Docs => doc}/html/doc.png (100%) rename {Docs => doc}/html/doxygen.css (99%) rename {Docs => doc}/html/doxygen.png (100%) rename {Docs => doc}/html/dynsections.js (73%) create mode 100644 doc/html/files.html rename {Docs => doc}/html/filter_8h.html (100%) rename {Docs => doc}/html/filter_8h_source.html (100%) rename {Docs => doc}/html/folderclosed.png (100%) rename {Docs => doc}/html/folderopen.png (100%) rename {Docs => doc}/html/gexf_8h.html (100%) rename {Docs => doc}/html/gexf_8h_source.html (100%) rename {Docs => doc}/html/globals.html (78%) rename {Docs => doc}/html/globals_defs.html (100%) rename {Docs => doc}/html/globals_func.html (87%) rename {Docs => doc}/html/globals_vars.html (55%) create mode 100644 doc/html/graphpass_8c.html rename {Docs => doc}/html/graphpass_8h.html (100%) create mode 100644 doc/html/graphpass_8h_source.html rename {Docs => doc}/html/index.html (80%) rename {Docs => doc}/html/io_8h.html (100%) rename {Docs => doc}/html/io_8h_source.html (100%) rename {Docs => doc}/html/jquery.js (99%) rename {Docs => doc}/html/md__c_o_d_e__o_f__c_o_n_d_u_c_t.html (100%) rename {Docs => doc}/html/md__r_e_a_d_m_e.html (100%) rename {Docs => doc}/html/menu.js (66%) create mode 100644 doc/html/menudata.js rename {Docs => doc}/html/nav_f.png (100%) rename {Docs => doc}/html/nav_g.png (100%) rename {Docs => doc}/html/nav_h.png (100%) rename {Docs => doc}/html/open.png (100%) rename {Docs => doc}/html/pages.html (100%) rename {Docs => doc}/html/quickrun_8h.html (100%) rename {Docs => doc}/html/quickrun_8h_source.html (100%) rename {Docs => doc}/html/reports_8h.html (100%) rename {Docs => doc}/html/reports_8h_source.html (100%) rename {Docs => doc}/html/rnd_8h.html (100%) rename {Docs => doc}/html/rnd_8h_source.html (100%) rename {Docs => doc}/html/search/all_0.html (76%) rename {Docs => doc}/html/search/all_0.js (100%) rename {Docs => doc}/html/search/all_1.html (76%) rename Docs/html/search/functions_1.js => doc/html/search/all_1.js (100%) rename {Docs => doc}/html/search/all_10.html (100%) rename {Docs => doc}/html/search/all_10.js (100%) rename {Docs => doc}/html/search/all_2.html (76%) rename {Docs => doc}/html/search/all_2.js (74%) rename {Docs => doc}/html/search/all_3.html (76%) rename Docs/html/search/files_2.js => doc/html/search/all_3.js (100%) rename {Docs => doc}/html/search/all_4.html (76%) rename {Docs => doc}/html/search/all_4.js (100%) rename {Docs => doc}/html/search/all_5.html (76%) rename {Docs => doc}/html/search/all_5.js (100%) rename {Docs => doc}/html/search/all_6.html (76%) create mode 100644 doc/html/search/all_6.js rename {Docs => doc}/html/search/all_7.html (76%) rename Docs/html/search/all_6.js => doc/html/search/all_7.js (100%) rename {Docs => doc}/html/search/all_8.html (76%) rename Docs/html/search/functions_5.js => doc/html/search/all_8.js (66%) rename {Docs => doc}/html/search/all_9.html (76%) rename Docs/html/search/all_8.js => doc/html/search/all_9.js (100%) rename {Docs => doc}/html/search/all_a.html (76%) rename Docs/html/search/all_9.js => doc/html/search/all_a.js (64%) rename {Docs => doc}/html/search/all_b.html (76%) rename Docs/html/search/all_a.js => doc/html/search/all_b.js (100%) rename {Docs => doc}/html/search/all_c.html (76%) create mode 100644 doc/html/search/all_c.js rename {Docs => doc}/html/search/all_d.html (76%) rename Docs/html/search/all_c.js => doc/html/search/all_d.js (100%) rename {Docs => doc}/html/search/all_e.html (76%) rename Docs/html/search/all_d.js => doc/html/search/all_e.js (100%) rename {Docs => doc}/html/search/all_f.html (100%) rename {Docs => doc}/html/search/all_f.js (100%) rename {Docs => doc}/html/search/classes_0.html (76%) rename {Docs => doc}/html/search/classes_0.js (100%) rename {Docs => doc}/html/search/classes_1.html (76%) rename {Docs => doc}/html/search/classes_1.js (100%) rename {Docs => doc}/html/search/classes_2.html (100%) rename {Docs => doc}/html/search/classes_2.js (100%) rename {Docs => doc}/html/search/close.png (100%) rename {Docs => doc}/html/search/defines_0.html (100%) rename {Docs => doc}/html/search/defines_0.js (100%) rename {Docs => doc}/html/search/files_0.html (76%) rename {Docs => doc}/html/search/files_0.js (100%) rename {Docs => doc}/html/search/files_1.html (76%) rename {Docs => doc}/html/search/files_1.js (100%) rename {Docs => doc}/html/search/files_2.html (76%) rename Docs/html/search/all_3.js => doc/html/search/files_2.js (67%) rename {Docs => doc}/html/search/files_3.html (76%) rename {Docs => doc}/html/search/files_3.js (100%) rename {Docs => doc}/html/search/files_4.html (76%) rename {Docs => doc}/html/search/files_4.js (100%) rename {Docs => doc}/html/search/files_5.html (76%) rename {Docs => doc}/html/search/files_5.js (100%) rename {Docs => doc}/html/search/files_6.html (76%) rename {Docs => doc}/html/search/files_6.js (100%) rename {Docs => doc}/html/search/functions_0.html (76%) rename {Docs => doc}/html/search/functions_0.js (100%) rename {Docs => doc}/html/search/functions_1.html (76%) rename Docs/html/search/all_1.js => doc/html/search/functions_1.js (83%) rename {Docs => doc}/html/search/functions_2.html (76%) rename {Docs => doc}/html/search/functions_2.js (100%) rename {Docs => doc}/html/search/functions_3.html (76%) rename {Docs => doc}/html/search/functions_3.js (100%) rename {Docs => doc}/html/search/functions_4.html (76%) rename {Docs => doc}/html/search/functions_4.js (100%) rename {Docs => doc}/html/search/functions_5.html (76%) create mode 100644 doc/html/search/functions_5.js rename {Docs => doc}/html/search/functions_6.html (76%) rename Docs/html/search/all_7.js => doc/html/search/functions_6.js (66%) rename {Docs => doc}/html/search/functions_7.html (76%) create mode 100644 doc/html/search/functions_7.js rename {Docs => doc}/html/search/mag_sel.png (100%) rename {Docs => doc}/html/search/nomatches.html (100%) rename {Docs => doc}/html/search/pages_0.html (100%) rename {Docs => doc}/html/search/pages_0.js (100%) rename {Docs => doc}/html/search/pages_1.html (100%) rename {Docs => doc}/html/search/pages_1.js (100%) rename {Docs => doc}/html/search/search.css (100%) rename {Docs => doc}/html/search/search.js (95%) rename {Docs => doc}/html/search/search_l.png (100%) rename {Docs => doc}/html/search/search_m.png (100%) rename {Docs => doc}/html/search/search_r.png (100%) rename {Docs => doc}/html/search/searchdata.js (71%) rename {Docs => doc}/html/search/variables_0.html (76%) create mode 100644 doc/html/search/variables_0.js rename {Docs => doc}/html/search/variables_1.html (76%) create mode 100644 doc/html/search/variables_1.js rename {Docs => doc}/html/search/variables_2.html (100%) rename {Docs => doc}/html/search/variables_2.js (100%) rename {Docs => doc}/html/search/variables_3.html (100%) rename {Docs => doc}/html/search/variables_3.js (100%) rename {Docs => doc}/html/search/variables_4.html (100%) rename {Docs => doc}/html/search/variables_4.js (100%) rename {Docs => doc}/html/search/variables_5.html (100%) rename {Docs => doc}/html/search/variables_5.js (100%) rename {Docs => doc}/html/search/variables_6.html (100%) rename {Docs => doc}/html/search/variables_6.js (100%) rename {Docs => doc}/html/search/variables_7.html (100%) rename {Docs => doc}/html/search/variables_7.js (100%) rename {Docs => doc}/html/search/variables_8.html (100%) rename {Docs => doc}/html/search/variables_8.js (100%) rename {Docs => doc}/html/search/variables_9.html (100%) rename {Docs => doc}/html/search/variables_9.js (100%) rename {Docs => doc}/html/search/variables_a.html (100%) rename {Docs => doc}/html/search/variables_a.js (100%) rename {Docs => doc}/html/splitbar.png (100%) rename {Docs => doc}/html/struct_node.html (87%) rename {Docs => doc}/html/struct_rank_node.html (86%) rename {Docs => doc}/html/struct_u_n_i_t_y___s_t_o_r_a_g_e___t.html (100%) rename {Docs => doc}/html/sync_off.png (100%) rename {Docs => doc}/html/sync_on.png (100%) rename {Docs => doc}/html/tab_a.png (100%) rename {Docs => doc}/html/tab_b.png (100%) rename {Docs => doc}/html/tab_h.png (100%) rename {Docs => doc}/html/tab_s.png (100%) create mode 100644 doc/html/tabs.css rename {Docs => doc}/html/unity_8h_source.html (100%) rename {Docs => doc}/html/unity__internals_8h_source.html (100%) rename {Docs => doc}/html/viz_8h.html (100%) rename {Docs => doc}/html/viz_8h_source.html (100%) rename {Docs => doc}/latex/Makefile (100%) rename {Docs => doc}/latex/analyze_8h.tex (100%) create mode 100644 doc/latex/annotated.tex rename {Docs => doc}/latex/doxygen.sty (100%) create mode 100644 doc/latex/files.tex rename {Docs => doc}/latex/filter_8h.tex (100%) rename {Docs => doc}/latex/gexf_8h.tex (100%) create mode 100644 doc/latex/graphpass_8c.tex rename {Docs => doc}/latex/graphpass_8h.tex (100%) rename {Docs => doc}/latex/io_8h.tex (100%) rename {Docs => doc}/latex/md__c_o_d_e__o_f__c_o_n_d_u_c_t.tex (100%) rename {Docs => doc}/latex/md__r_e_a_d_m_e.tex (100%) rename {Docs => doc}/latex/quickrun_8h.tex (100%) rename {Docs => doc}/latex/refman.tex (90%) rename {Docs => doc}/latex/reports_8h.tex (100%) rename {Docs => doc}/latex/rnd_8h.tex (100%) rename {Docs => doc}/latex/struct_node.tex (88%) rename {Docs => doc}/latex/struct_rank_node.tex (87%) rename {Docs => doc}/latex/struct_u_n_i_t_y___s_t_o_r_a_g_e___t.tex (100%) rename {Docs => doc}/latex/viz_8h.tex (100%) rename {Docs => doc}/man/man3/Node.3 (74%) rename {Docs => doc}/man/man3/RankNode.3 (74%) rename {Docs => doc}/man/man3/UNITY_STORAGE_T.3 (100%) rename {Docs => doc}/man/man3/analyze.h.3 (100%) rename {Docs => doc}/man/man3/filter.h.3 (100%) rename {Docs => doc}/man/man3/gexf.h.3 (100%) rename {Docs => doc}/man/man3/graphpass.c.3 (51%) rename {Docs => doc}/man/man3/graphpass.h.3 (100%) rename {Docs => doc}/man/man3/io.h.3 (100%) rename {Docs => doc}/man/man3/md__c_o_d_e__o_f__c_o_n_d_u_c_t.3 (100%) rename {Docs => doc}/man/man3/md__r_e_a_d_m_e.3 (100%) rename {Docs => doc}/man/man3/quickrun.h.3 (100%) rename {Docs => doc}/man/man3/reports.h.3 (100%) rename {Docs => doc}/man/man3/rnd.h.3 (100%) rename {Docs => doc}/man/man3/viz.h.3 (100%) rename {headers => src/headers}/graphpass.h (100%) rename src/{ => main}/analyze.c (100%) rename src/{ => main}/filter.c (100%) rename src/{ => main}/gexf.c (100%) rename src/{ => main}/graphpass.c (97%) rename src/{ => main}/io.c (100%) rename src/{ => main}/quickrun.c (100%) rename src/{ => main}/reports.c (100%) rename src/{ => main}/rnd.c (100%) rename src/{ => main}/viz.c (100%) rename {assets => src/resources}/albertahealth.graphml (100%) rename {assets => src/resources}/anarchist.graphml (100%) rename {assets => src/resources}/cpp2.graphml (100%) rename {assets => src/resources}/idlenomore.graphml (100%) rename {assets => src/resources}/miserables.graphml (100%) rename {assets => src/resources}/panama.graphml (100%) rename {assets => src/resources}/snowden.graphml (100%) rename {tests => src/tests}/analyze_test.c (100%) rename {tests => src/tests}/filter_test.c (100%) rename {tests => src/tests}/quickrun_test.c (98%) rename {tests => src/tests}/runner_test_ana.c (94%) rename {tests => src/tests}/runner_test_qp.c (93%) rename {tests => src/tests}/sample_graphs_test.c (100%) rename {unity => vendor/unity}/unity.c (100%) rename {unity => vendor/unity}/unity.h (100%) rename {unity => vendor/unity}/unity_internals.h (100%) diff --git a/.gitignore b/.gitignore index 87a71e5..6516e05 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ +graphpass +OUT /.bundle/ /.yardoc /_yardoc/ diff --git a/Docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html b/Docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html deleted file mode 100644 index da05b70..0000000 --- a/Docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - - -Graphpass: src Directory Reference - - - - - - - - - -
-
- - - - - - -
-
Graphpass -  0.0.2 -
-
A helper library for network filtering, analysis and visualization
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
src Directory Reference
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Files

file  analyze.c
 Provides basic network analysis and adds them to the graph output.
 
file  filter.c
 Basic filtering utilities.
 
file  gexf.c
 Writes gexf files.
 
file  graphpass.c
 The main file for GraphPass.
 
file  io.c
 Basic input-output utilities (loading and writing graphs)
 
file  quickrun.c
 produces a lightweight vizualization for a graph.
 
file  reports.c
 Provides an output report that shows the effect of filtering on the network structure.
 
file  rnd.c
 utilities for random number generation
 
file  viz.c
 Tools for presetting visualization elements: color, position & size.
 
-
- - - - diff --git a/Docs/html/files.html b/Docs/html/files.html deleted file mode 100644 index 120824f..0000000 --- a/Docs/html/files.html +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - - -Graphpass: File List - - - - - - - - - -
-
- - - - - - -
-
Graphpass -  0.0.2 -
-
A helper library for network filtering, analysis and visualization
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
File List
-
-
-
Here is a list of all documented files with brief descriptions:
-
[detail level 12]
- - - - - - - - - - - - - - - -
  headers
 graphpass.h
  src
 analyze.cProvides basic network analysis and adds them to the graph output
 filter.cBasic filtering utilities
 gexf.cWrites gexf files
 graphpass.cThe main file for GraphPass
 io.cBasic input-output utilities (loading and writing graphs)
 quickrun.cProduces a lightweight vizualization for a graph
 reports.cProvides an output report that shows the effect of filtering on the network structure
 rnd.cUtilities for random number generation
 viz.cTools for presetting visualization elements: color, position & size
  unity
 unity.h
 unity_internals.h
-
-
- - - - diff --git a/Docs/html/graphpass_8c.html b/Docs/html/graphpass_8c.html deleted file mode 100644 index 268e205..0000000 --- a/Docs/html/graphpass_8c.html +++ /dev/null @@ -1,137 +0,0 @@ - - - - - - - -Graphpass: src/graphpass.c File Reference - - - - - - - - - -
-
- - - - - - -
-
Graphpass -  0.0.2 -
-
A helper library for network filtering, analysis and visualization
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
graphpass.c File Reference
-
-
- -

The main file for GraphPass. -More...

-
#include "igraph.h"
-#include "graphpass.h"
-
- - - - - - - - - -

-Macros

-#define _GNU_SOURCE
 
-#define ASSETS_PATH   "assets/"
 
-#define MAX_METHODS   9
 
-#define MAX_FILESIZE   100
 
- - - -

-Functions

-int main (int argc, char *argv[])
 
- - - - - - - - - - - -

-Variables

-bool SAVE = true
 
-bool GFORMAT = false
 
-bool REPORT = false
 
-bool QUICKRUN = false
 
-int verbose_flag
 
-

Detailed Description

-

The main file for GraphPass.

-

Copyright [2018] [Ryan Deschamps]

-

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

-

http://www.apache.org/licenses/LICENSE-2.0

-

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. Graphpass accepts a file, a percentage and a series of characters that represent methods of filtering a network graph, and outputs new graph files with the filtered graphs and optionally, a report showing how those filters affected the graph

-
- - - - diff --git a/Docs/html/graphpass_8h_source.html b/Docs/html/graphpass_8h_source.html deleted file mode 100644 index 3f073db..0000000 --- a/Docs/html/graphpass_8h_source.html +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - - -Graphpass: headers/graphpass.h Source File - - - - - - - - - -
-
- - - - - - -
-
Graphpass -  0.0.2 -
-
A helper library for network filtering, analysis and visualization
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
graphpass.h
-
-
-
1 /* -*- Graphpass -- Network Graph Utilities mode: C -*- */
2 /* Copyright [2018] [Ryan Deschamps]
3 
4  Licensed under the Apache License, Version 2.0 (the "License");
5  you may not use this file except in compliance with the License.
6  You may obtain a copy of the License at
7 
8  http://www.apache.org/licenses/LICENSE-2.0
9 
10  Unless required by applicable law or agreed to in writing, software
11  distributed under the License is distributed on an "AS IS" BASIS,
12  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  See the License for the specific language governing permissions and
14  limitations under the License. */
15 
16 
17 #ifndef LIB_GRAPHPASS_H
18 #define LIB_GRAPHPASS_H
19 
20 #include <igraph.h>
21 #include <stdio.h>
22 #include <math.h>
23 #include <string.h>
24 #include <stdlib.h>
25 #include <time.h>
26 #include <sys/types.h>
27 #include <sys/stat.h>
28 #include <unistd.h>
29 #include <errno.h>
30 #include <getopt.h>
31 
32 typedef enum { false, true } bool;
33 
34 igraph_t g;
35 igraph_attribute_table_t att;
36 char* FILENAME;
37 char* DIRECTORY;
38 char* FILEPATH;
39 char* METHODS;
40 char* OUTPUT;
41 char* OUTPATH;
42 igraph_integer_t NODESIZE;
43 float PERCENT;
44 bool REPORT;
45 bool GFORMAT;
46 bool QUICKRUN;
47 bool SAVE;
48 bool CALC_WEIGHTS;
49 igraph_vector_t WEIGHTED;
51 /* Required External libraries */
52 
53 #define PROGRAM_NAME "Graph Pass"
54 #define BUG_REPORT "ryan.deschamps@gmail.com"
55 #define GIT_REPOSITORY "https://www.github.com/archivesunleashed/graphpass"
56 
57 /* Color Presets */
58 
59 #define COLOUR_SET_PASTEL "pastel.h"
60 #define COLOUR_SET_PRIMARY "primary.h"
61 #define COLOUR_SET_DAMPENED "dampened.h"
62 
63 /* Visualization Presets */
64 
65 #define VIZ_SET_SPACIOUS "viz_spacious.h"
66 #define VIZ_SET_LARGE "viz_large.h"
67 #define VIZ_SET_SMALL "vis_small.h"
68 
69 /* Required External libraries */
70 #define MAX_METHODS 9
71 #define ALL_METHODS 'abcdehioprw'
72 #define SIZE_DEFAULT "Degree"
73 #define SIZE_DEFAULT_CHAR 'd'
74 #define COLOR_BASE "WalkTrapModularity"
75 #define PAGERANK_DAMPING 0.85
76 #define LAYOUT_DEFAULT_CHAR = 'f'
77 
78 #define NELEMS(x) (sizeof(x) / sizeof((x)[0]))
79 
80 struct Node {
81  char* abbrev;
82  igraph_real_t val;
83  struct Node *next;
84 };
85 
89 struct RankNode {
90  int rankids[20];
91  struct RankNode *next;
92 };
93 
94 struct stat;
95 struct Node* asshead;
96 struct Node* edges;
97 struct Node* density;
98 struct Node* betcent;
99 struct Node* reciprocity;
100 struct Node* degcent;
101 struct Node* idegcent;
102 struct Node* odegcent;
103 struct Node* eigcent;
104 struct Node* pagecent;
105 struct Node* diameter;
106 struct Node* pathlength;
107 struct Node* clustering;
108 struct RankNode* ranks;
109 
110 int shuffle(int *array, int n);
112 int push(struct Node** head_ref, igraph_real_t value, char* attr);
113 
115 int pushRank (struct RankNode** head_ref, int rankids[20]);
116 int igraph_i_xml_escape(char* src, char** dest);
117 
118 int igraph_write_graph_gexf(const igraph_t *graph, FILE *outstream,
119  igraph_bool_t prefixattr);
120 
122 int write_report(igraph_t *graph);
123 int colors (igraph_t *graph);
124 int layout_graph(igraph_t *graph, char layout);
125 int set_size(igraph_t *graph, igraph_vector_t *v, int max);
126 
127 int strip_ext(char *fname);
128 int load_graph (char* filename);
129 int write_graph(igraph_t *graph, char *attr);
130 extern int calc_betweenness(igraph_t *graph);
131 extern int calc_authority(igraph_t *graph);
132 extern int calc_hub(igraph_t *graph);
133 extern int calc_pagerank(igraph_t *graph);
134 extern int calc_eigenvector(igraph_t *graph);
135 /* extern int calc_clustering(igraph_t *graph); */
136 /* extern int calc_random(igraph_t *graph); */
137 extern int calc_degree(igraph_t *graph, char type);
138 extern int calc_modularity(igraph_t *graph);
139 extern int centralization(igraph_t *graph, char* attr);
140 extern int analysis_all (igraph_t *graph);
141 int quickrunGraph();
142 
143 float fix_percentile();
144 int create_filtered_graph(igraph_t *graph, double cutoff, int cutsize, char* attr);
145 int shrink (igraph_t *graph, int cutsize, char* attr);
146 int runFilters (igraph_t *graph, int cutsize);
147 int filter_graph();
148 
149 #endif
int filter_graph()
Definition: filter.c:278
-
int push(struct Node **head_ref, igraph_real_t value, char *attr)
Definition: reports.c:31
-
int calc_hub(igraph_t *graph)
Definition: analyze.c:72
-
int set_size(igraph_t *graph, igraph_vector_t *v, int max)
Definition: viz.c:155
-
int calc_pagerank(igraph_t *graph)
Definition: analyze.c:90
-
int calc_modularity(igraph_t *graph)
Definition: analyze.c:166
-
int igraph_i_xml_escape(char *src, char **dest)
Definition: gexf.c:18
-
float fix_percentile()
Definition: filter.c:32
-
int pushRank(struct RankNode **head_ref, int rankids[20])
Definition: reports.c:41
-
int calc_degree(igraph_t *graph, char type)
Definition: analyze.c:135
-
int write_report(igraph_t *graph)
Definition: reports.c:52
-
int layout_graph(igraph_t *graph, char layout)
Definition: viz.c:115
-
unimplemented struct for holding the top 20 rankids for the graph.
Definition: graphpass.h:89
-
int centralization(igraph_t *graph, char *attr)
Definition: analyze.c:198
-
int colors(igraph_t *graph)
Definition: viz.c:26
-
int calc_eigenvector(igraph_t *graph)
Definition: analyze.c:107
-
int calc_authority(igraph_t *graph)
Definition: analyze.c:53
-
int analysis_all(igraph_t *graph)
Definition: analyze.c:224
-
int create_filtered_graph(igraph_t *graph, double cutoff, int cutsize, char *attr)
Definition: filter.c:49
-
int shuffle(int *array, int n)
Definition: rnd.c:36
-
int calc_betweenness(igraph_t *graph)
Definition: analyze.c:36
-
int igraph_write_graph_gexf(const igraph_t *graph, FILE *outstream, igraph_bool_t prefixattr)
Definition: gexf.c:59
-
Holds graph level values for each graph that has been filtered.
Definition: graphpass.h:80
-
- - - - diff --git a/Docs/html/menudata.js b/Docs/html/menudata.js deleted file mode 100644 index f2a1549..0000000 --- a/Docs/html/menudata.js +++ /dev/null @@ -1,34 +0,0 @@ -/* -@ @licstart The following is the entire license notice for the -JavaScript code in this file. - -Copyright (C) 1997-2017 by Dimitri van Heesch - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - -You should have received a copy of the GNU General Public License along -with this program; if not, write to the Free Software Foundation, Inc., -51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -@licend The above is the entire license notice -for the JavaScript code in this file -*/ -var menudata={children:[ -{text:"Main Page",url:"index.html"}, -{text:"Related Pages",url:"pages.html"}, -{text:"Data Structures",url:"annotated.html",children:[ -{text:"Data Structures",url:"annotated.html"}, -{text:"Data Structure Index",url:"classes.html"}]}, -{text:"Files",url:"files.html",children:[ -{text:"File List",url:"files.html"}, -{text:"Globals",url:"globals.html",children:[ -{text:"All",url:"globals.html"}, -{text:"Functions",url:"globals_func.html"}]}]}]} diff --git a/Docs/html/search/all_b.js b/Docs/html/search/all_b.js deleted file mode 100644 index f07a9cc..0000000 --- a/Docs/html/search/all_b.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['unity_5fstorage_5ft',['UNITY_STORAGE_T',['../struct_u_n_i_t_y___s_t_o_r_a_g_e___t.html',1,'']]] -]; diff --git a/Docs/html/search/all_e.js b/Docs/html/search/all_e.js deleted file mode 100644 index f07a9cc..0000000 --- a/Docs/html/search/all_e.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['unity_5fstorage_5ft',['UNITY_STORAGE_T',['../struct_u_n_i_t_y___s_t_o_r_a_g_e___t.html',1,'']]] -]; diff --git a/Docs/html/search/functions_6.js b/Docs/html/search/functions_6.js deleted file mode 100644 index eca97d1..0000000 --- a/Docs/html/search/functions_6.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['set_5fsize',['set_size',['../viz_8c.html#ab8f5b6b81755c097de5317968b0ee953',1,'viz.c']]], - ['shuffle',['shuffle',['../rnd_8c.html#a728d4b6810519556a4a5dc4ba614b910',1,'rnd.c']]] -]; diff --git a/Docs/html/search/functions_7.js b/Docs/html/search/functions_7.js deleted file mode 100644 index fec6fb2..0000000 --- a/Docs/html/search/functions_7.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['write_5freport',['write_report',['../reports_8c.html#abcdcfe360ecc9dc3f459a1c750e4e45d',1,'reports.c']]] -]; diff --git a/Docs/html/search/variables_0.js b/Docs/html/search/variables_0.js deleted file mode 100644 index a671377..0000000 --- a/Docs/html/search/variables_0.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['directory',['DIRECTORY',['../graphpass_8h.html#ac41a6011e0562d1e721800be58d3fda6',1,'graphpass.h']]] -]; diff --git a/Docs/html/search/variables_1.js b/Docs/html/search/variables_1.js deleted file mode 100644 index 01d6837..0000000 --- a/Docs/html/search/variables_1.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['filename',['FILENAME',['../graphpass_8h.html#a7f0f5dfd93d0736e1f19821841620662',1,'graphpass.h']]], - ['filepath',['FILEPATH',['../graphpass_8h.html#a0403a8afff8b1563aab68a60a4bf966b',1,'graphpass.h']]] -]; diff --git a/Docs/html/tabs.css b/Docs/html/tabs.css deleted file mode 100644 index a28614b..0000000 --- a/Docs/html/tabs.css +++ /dev/null @@ -1 +0,0 @@ -.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}#doc-content{overflow:auto;display:block;padding:0;margin:0;-webkit-overflow-scrolling:touch}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0 1px 1px rgba(255,255,255,0.9);color:#283a5d;outline:0}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace!important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283a5d transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;-moz-border-radius:0!important;-webkit-border-radius:0;border-radius:0!important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a:hover span.sub-arrow{border-color:white transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;-moz-border-radius:5px!important;-webkit-border-radius:5px;border-radius:5px!important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0!important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent white}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px!important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}} \ No newline at end of file diff --git a/Docs/latex/annotated.tex b/Docs/latex/annotated.tex deleted file mode 100644 index 39a8fb3..0000000 --- a/Docs/latex/annotated.tex +++ /dev/null @@ -1,6 +0,0 @@ -\section{Data Structures} -Here are the data structures with brief descriptions\+:\begin{DoxyCompactList} -\item\contentsline{section}{\mbox{\hyperlink{struct_node}{Node}} \\*Holds graph level values for each graph that has been filtered }{\pageref{struct_node}}{} -\item\contentsline{section}{\mbox{\hyperlink{struct_rank_node}{Rank\+Node}} \\*Unimplemented struct for holding the top 20 rankids for the graph }{\pageref{struct_rank_node}}{} -\item\contentsline{section}{\mbox{\hyperlink{struct_u_n_i_t_y___s_t_o_r_a_g_e___t}{U\+N\+I\+T\+Y\+\_\+\+S\+T\+O\+R\+A\+G\+E\+\_\+T}} }{\pageref{struct_u_n_i_t_y___s_t_o_r_a_g_e___t}}{} -\end{DoxyCompactList} diff --git a/Docs/latex/files.tex b/Docs/latex/files.tex deleted file mode 100644 index 8b1bd4c..0000000 --- a/Docs/latex/files.tex +++ /dev/null @@ -1,15 +0,0 @@ -\section{File List} -Here is a list of all documented files with brief descriptions\+:\begin{DoxyCompactList} -\item\contentsline{section}{headers/{\bfseries graphpass.\+h} }{\pageref{graphpass_8h}}{} -\item\contentsline{section}{src/\mbox{\hyperlink{analyze_8c}{analyze.\+c}} \\*Provides basic network analysis and adds them to the graph output }{\pageref{analyze_8c}}{} -\item\contentsline{section}{src/\mbox{\hyperlink{filter_8c}{filter.\+c}} \\*Basic filtering utilities }{\pageref{filter_8c}}{} -\item\contentsline{section}{src/\mbox{\hyperlink{gexf_8c}{gexf.\+c}} \\*Writes gexf files }{\pageref{gexf_8c}}{} -\item\contentsline{section}{src/\mbox{\hyperlink{graphpass_8c}{graphpass.\+c}} \\*The main file for Graph\+Pass }{\pageref{graphpass_8c}}{} -\item\contentsline{section}{src/\mbox{\hyperlink{io_8c}{io.\+c}} \\*Basic input-\/output utilities (loading and writing graphs) }{\pageref{io_8c}}{} -\item\contentsline{section}{src/\mbox{\hyperlink{quickrun_8c}{quickrun.\+c}} \\*Produces a lightweight vizualization for a graph }{\pageref{quickrun_8c}}{} -\item\contentsline{section}{src/\mbox{\hyperlink{reports_8c}{reports.\+c}} \\*Provides an output report that shows the effect of filtering on the network structure }{\pageref{reports_8c}}{} -\item\contentsline{section}{src/\mbox{\hyperlink{rnd_8c}{rnd.\+c}} \\*Utilities for random number generation }{\pageref{rnd_8c}}{} -\item\contentsline{section}{src/\mbox{\hyperlink{viz_8c}{viz.\+c}} \\*Tools for presetting visualization elements\+: color, position \& size }{\pageref{viz_8c}}{} -\item\contentsline{section}{unity/{\bfseries unity.\+h} }{\pageref{unity_8h}}{} -\item\contentsline{section}{unity/{\bfseries unity\+\_\+internals.\+h} }{\pageref{unity__internals_8h}}{} -\end{DoxyCompactList} diff --git a/Docs/latex/graphpass_8c.tex b/Docs/latex/graphpass_8c.tex deleted file mode 100644 index 83edd5e..0000000 --- a/Docs/latex/graphpass_8c.tex +++ /dev/null @@ -1,60 +0,0 @@ -\hypertarget{graphpass_8c}{}\section{src/graphpass.c File Reference} -\label{graphpass_8c}\index{src/graphpass.\+c@{src/graphpass.\+c}} - - -The main file for Graph\+Pass. - - -{\ttfamily \#include \char`\"{}igraph.\+h\char`\"{}}\newline -{\ttfamily \#include \char`\"{}graphpass.\+h\char`\"{}}\newline -\subsection*{Macros} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{graphpass_8c_a369266c24eacffb87046522897a570d5}\label{graphpass_8c_a369266c24eacffb87046522897a570d5}} -\#define {\bfseries \+\_\+\+G\+N\+U\+\_\+\+S\+O\+U\+R\+CE} -\item -\mbox{\Hypertarget{graphpass_8c_adf16e31ed83557124b89ff1b06617ded}\label{graphpass_8c_adf16e31ed83557124b89ff1b06617ded}} -\#define {\bfseries A\+S\+S\+E\+T\+S\+\_\+\+P\+A\+TH}~\char`\"{}assets/\char`\"{} -\item -\mbox{\Hypertarget{graphpass_8c_aecfb3b4bfd3aec2348b19677721206e4}\label{graphpass_8c_aecfb3b4bfd3aec2348b19677721206e4}} -\#define {\bfseries M\+A\+X\+\_\+\+M\+E\+T\+H\+O\+DS}~9 -\item -\mbox{\Hypertarget{graphpass_8c_aaa6b624d8a68cb862fc1699e94f925be}\label{graphpass_8c_aaa6b624d8a68cb862fc1699e94f925be}} -\#define {\bfseries M\+A\+X\+\_\+\+F\+I\+L\+E\+S\+I\+ZE}~100 -\end{DoxyCompactItemize} -\subsection*{Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{graphpass_8c_a0ddf1224851353fc92bfbff6f499fa97}\label{graphpass_8c_a0ddf1224851353fc92bfbff6f499fa97}} -int {\bfseries main} (int argc, char $\ast$argv\mbox{[}$\,$\mbox{]}) -\end{DoxyCompactItemize} -\subsection*{Variables} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{graphpass_8c_a8806242f5c85c44cf31354de7b17ec46}\label{graphpass_8c_a8806242f5c85c44cf31354de7b17ec46}} -bool {\bfseries S\+A\+VE} = true -\item -\mbox{\Hypertarget{graphpass_8c_a1f14705417159553473cba40f4e27534}\label{graphpass_8c_a1f14705417159553473cba40f4e27534}} -bool {\bfseries G\+F\+O\+R\+M\+AT} = false -\item -\mbox{\Hypertarget{graphpass_8c_adc2c040d2bc89c3ad118207aabd7932d}\label{graphpass_8c_adc2c040d2bc89c3ad118207aabd7932d}} -bool {\bfseries R\+E\+P\+O\+RT} = false -\item -\mbox{\Hypertarget{graphpass_8c_aa9c53081121851343774a84b3793d90e}\label{graphpass_8c_aa9c53081121851343774a84b3793d90e}} -bool {\bfseries Q\+U\+I\+C\+K\+R\+UN} = false -\item -\mbox{\Hypertarget{graphpass_8c_a4c7699f4d1b8ee152b8d35bbc579430b}\label{graphpass_8c_a4c7699f4d1b8ee152b8d35bbc579430b}} -int {\bfseries verbose\+\_\+flag} -\end{DoxyCompactItemize} - - -\subsection{Detailed Description} -The main file for Graph\+Pass. - -Copyright \mbox{[}2018\mbox{]} \mbox{[}Ryan Deschamps\mbox{]} - -Licensed under the Apache License, Version 2.\+0 (the \char`\"{}\+License\char`\"{}); you may not use this file except in compliance with the License. You may obtain a copy of the License at - -\href{http://www.apache.org/licenses/LICENSE-2.0}{\tt http\+://www.\+apache.\+org/licenses/\+L\+I\+C\+E\+N\+S\+E-\/2.\+0} - -Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \char`\"{}\+A\+S I\+S\char`\"{} B\+A\+S\+IS, W\+I\+T\+H\+O\+UT W\+A\+R\+R\+A\+N\+T\+I\+ES OR C\+O\+N\+D\+I\+T\+I\+O\+NS OF A\+NY K\+I\+ND, either express or implied. See the License for the specific language governing permissions and limitations under the License. Graphpass accepts a file, a percentage and a series of characters that represent methods of filtering a network graph, and outputs new graph files with the filtered graphs and optionally, a report showing how those filters affected the graph \ No newline at end of file diff --git a/Doxyfile b/Doxyfile index b52326e..df27eb4 100644 --- a/Doxyfile +++ b/Doxyfile @@ -32,7 +32,7 @@ DOXYFILE_ENCODING = UTF-8 # title of most generated pages and in a few other places. # The default value is: My Project. -PROJECT_NAME = Graphpass +PROJECT_NAME = GraphPass # The PROJECT_NUMBER tag can be used to enter a project or revision number. This # could be handy for archiving the generated documentation or if some version @@ -44,21 +44,21 @@ PROJECT_NUMBER = 0.0.2 # for a project that appears at the top of each page and should give viewer a # quick idea about the purpose of the project. Keep the description short. -PROJECT_BRIEF = "A helper library for network filtering, analysis and visualization" +PROJECT_BRIEF = "A helper library to filter networks and provide a default visualization output for Gephi or SigmaJS." # With the PROJECT_LOGO tag one can specify a logo or an icon that is included # in the documentation. The maximum height of the logo should not exceed 55 # pixels and the maximum width should not exceed 200 pixels. Doxygen will copy # the logo to the output directory. -PROJECT_LOGO = +PROJECT_LOGO = # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path # into which the generated documentation will be written. If a relative path is # entered, it will be relative to the location where doxygen was started. If # left blank the current directory will be used. -OUTPUT_DIRECTORY = /Users/ryandeschamps/graphpass/DOCS +OUTPUT_DIRECTORY = doc # If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub- # directories (in 2 levels) under the output directory of each output format and @@ -162,7 +162,7 @@ FULL_PATH_NAMES = YES # will be relative from the directory where doxygen is started. # This tag requires that the tag FULL_PATH_NAMES is set to YES. -STRIP_FROM_PATH = +STRIP_FROM_PATH = # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the # path mentioned in the documentation of a class, which tells the reader which @@ -171,7 +171,7 @@ STRIP_FROM_PATH = # specify the list of include paths that are normally passed to the compiler # using the -I flag. -STRIP_FROM_INC_PATH = +STRIP_FROM_INC_PATH = # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but # less readable) file names. This can be useful is your file systems doesn't @@ -239,13 +239,13 @@ TAB_SIZE = 4 # newlines (in the resulting output). You can put ^^ in the value part of an # alias to insert a newline as if a physical newline was in the original file. -ALIASES = +ALIASES = # This tag can be used to specify a number of word-keyword mappings (TCL only). # A mapping has the form "name=value". For example adding "class=itcl::class" # will allow you to use the command class in the itcl::class meaning. -TCL_SUBST = +TCL_SUBST = # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources # only. Doxygen will then generate output that is more tailored for C. For @@ -292,7 +292,7 @@ OPTIMIZE_OUTPUT_VHDL = NO # Note that for custom extensions you also need to set FILE_PATTERNS otherwise # the files are not read by doxygen. -EXTENSION_MAPPING = +EXTENSION_MAPPING = # If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments # according to the Markdown format, which allows for more readable @@ -649,7 +649,7 @@ GENERATE_DEPRECATEDLIST= YES # sections, marked by \if ... \endif and \cond # ... \endcond blocks. -ENABLED_SECTIONS = +ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the # initial value of a variable or macro / define can have for it to appear in the @@ -691,7 +691,7 @@ SHOW_NAMESPACES = YES # by doxygen. Whatever the program writes to standard output is used as the file # version. For an example see the documentation. -FILE_VERSION_FILTER = +FILE_VERSION_FILTER = # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed # by doxygen. The layout file controls the global structure of the generated @@ -704,7 +704,7 @@ FILE_VERSION_FILTER = # DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE # tag is left empty. -LAYOUT_FILE = +LAYOUT_FILE = # The CITE_BIB_FILES tag can be used to specify one or more bib files containing # the reference definitions. This must be a list of .bib files. The .bib @@ -714,7 +714,7 @@ LAYOUT_FILE = # LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the # search path. See also \cite for info how to create references. -CITE_BIB_FILES = +CITE_BIB_FILES = #--------------------------------------------------------------------------- # Configuration options related to warning and progress messages @@ -779,7 +779,7 @@ WARN_FORMAT = "$file:$line: $text" # messages should be written. If left blank the output is written to standard # error (stderr). -WARN_LOGFILE = +WARN_LOGFILE = #--------------------------------------------------------------------------- # Configuration options related to the input files @@ -791,7 +791,7 @@ WARN_LOGFILE = # spaces. See also FILE_PATTERNS and EXTENSION_MAPPING # Note: If this tag is empty the current directory is searched. -INPUT = /Users/ryandeschamps/graphpass +INPUT = src # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses @@ -874,7 +874,7 @@ RECURSIVE = YES # Note that relative paths are relative to the directory from which doxygen is # run. -EXCLUDE = +EXCLUDE = # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or # directories that are symbolic links (a Unix file system feature) are excluded @@ -890,7 +890,7 @@ EXCLUDE_SYMLINKS = NO # Note that the wildcards are matched against the file with absolute path, so to # exclude all test directories for example use the pattern */test/* -EXCLUDE_PATTERNS = +EXCLUDE_PATTERNS = # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names # (namespaces, classes, functions, etc.) that should be excluded from the @@ -901,13 +901,13 @@ EXCLUDE_PATTERNS = # Note that the wildcards are matched against the file with absolute path, so to # exclude all test directories use the pattern */test/* -EXCLUDE_SYMBOLS = +EXCLUDE_SYMBOLS = # The EXAMPLE_PATH tag can be used to specify one or more files or directories # that contain example code fragments that are included (see the \include # command). -EXAMPLE_PATH = +EXAMPLE_PATH = # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and @@ -927,7 +927,7 @@ EXAMPLE_RECURSIVE = NO # that contain images that are to be included in the documentation (see the # \image command). -IMAGE_PATH = +IMAGE_PATH = # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program @@ -948,7 +948,7 @@ IMAGE_PATH = # need to set EXTENSION_MAPPING for the extension otherwise the files are not # properly processed by doxygen. -INPUT_FILTER = +INPUT_FILTER = # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern # basis. Doxygen will compare the file name with each pattern and apply the @@ -961,7 +961,7 @@ INPUT_FILTER = # need to set EXTENSION_MAPPING for the extension otherwise the files are not # properly processed by doxygen. -FILTER_PATTERNS = +FILTER_PATTERNS = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will also be used to filter the input files that are used for @@ -976,14 +976,14 @@ FILTER_SOURCE_FILES = NO # *.ext= (so without naming a filter). # This tag requires that the tag FILTER_SOURCE_FILES is set to YES. -FILTER_SOURCE_PATTERNS = +FILTER_SOURCE_PATTERNS = # If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that # is part of the input, its contents will be placed on the main page # (index.html). This can be useful if you have a project on for instance GitHub # and want to reuse the introduction page also for the doxygen output. -USE_MDFILE_AS_MAINPAGE = +USE_MDFILE_AS_MAINPAGE = #--------------------------------------------------------------------------- # Configuration options related to source browsing @@ -1088,7 +1088,7 @@ CLANG_ASSISTED_PARSING = NO # specified with INPUT and INCLUDE_PATH. # This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES. -CLANG_OPTIONS = +CLANG_OPTIONS = # If clang assisted parsing is enabled you can provide the clang parser with the # path to the compilation database (see: @@ -1125,7 +1125,7 @@ COLS_IN_ALPHA_INDEX = 5 # while generating the index headers. # This tag requires that the tag ALPHABETICAL_INDEX is set to YES. -IGNORE_PREFIX = +IGNORE_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the HTML output @@ -1169,7 +1169,7 @@ HTML_FILE_EXTENSION = .html # of the possible markers and block names see the documentation. # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_HEADER = +HTML_HEADER = # The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each # generated HTML page. If the tag is left blank doxygen will generate a standard @@ -1179,7 +1179,7 @@ HTML_HEADER = # that doxygen normally uses. # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_FOOTER = +HTML_FOOTER = # The HTML_STYLESHEET tag can be used to specify a user-defined cascading style # sheet that is used by each HTML page. It can be used to fine-tune the look of @@ -1191,7 +1191,7 @@ HTML_FOOTER = # obsolete. # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_STYLESHEET = +HTML_STYLESHEET = # The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined # cascading style sheets that are included after the standard style sheets @@ -1204,7 +1204,7 @@ HTML_STYLESHEET = # list). For an example see the documentation. # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_EXTRA_STYLESHEET = +HTML_EXTRA_STYLESHEET = # The HTML_EXTRA_FILES tag can be used to specify one or more extra images or # other source files which should be copied to the HTML output directory. Note @@ -1214,7 +1214,7 @@ HTML_EXTRA_STYLESHEET = # files will be copied as-is; there are no commands or markers available. # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_EXTRA_FILES = +HTML_EXTRA_FILES = # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen # will adjust the colors in the style sheet and background images according to @@ -1354,7 +1354,7 @@ GENERATE_HTMLHELP = NO # written to the html output directory. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. -CHM_FILE = +CHM_FILE = # The HHC_LOCATION tag can be used to specify the location (absolute path # including file name) of the HTML help compiler (hhc.exe). If non-empty, @@ -1362,7 +1362,7 @@ CHM_FILE = # The file has to be specified with full path. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. -HHC_LOCATION = +HHC_LOCATION = # The GENERATE_CHI flag controls if a separate .chi index file is generated # (YES) or that it should be included in the master .chm file (NO). @@ -1375,7 +1375,7 @@ GENERATE_CHI = NO # and project file content. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. -CHM_INDEX_ENCODING = +CHM_INDEX_ENCODING = # The BINARY_TOC flag controls whether a binary table of contents is generated # (YES) or a normal table of contents (NO) in the .chm file. Furthermore it @@ -1406,7 +1406,7 @@ GENERATE_QHP = NO # the HTML output folder. # This tag requires that the tag GENERATE_QHP is set to YES. -QCH_FILE = +QCH_FILE = # The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help # Project output. For more information please see Qt Help Project / Namespace @@ -1429,28 +1429,28 @@ QHP_VIRTUAL_FOLDER = doc # Filters (see: http://doc.qt.io/qt-4.8/qthelpproject.html#custom-filters). # This tag requires that the tag GENERATE_QHP is set to YES. -QHP_CUST_FILTER_NAME = +QHP_CUST_FILTER_NAME = # The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the # custom filter to add. For more information please see Qt Help Project / Custom # Filters (see: http://doc.qt.io/qt-4.8/qthelpproject.html#custom-filters). # This tag requires that the tag GENERATE_QHP is set to YES. -QHP_CUST_FILTER_ATTRS = +QHP_CUST_FILTER_ATTRS = # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this # project's filter section matches. Qt Help Project / Filter Attributes (see: # http://doc.qt.io/qt-4.8/qthelpproject.html#filter-attributes). # This tag requires that the tag GENERATE_QHP is set to YES. -QHP_SECT_FILTER_ATTRS = +QHP_SECT_FILTER_ATTRS = # The QHG_LOCATION tag can be used to specify the location of Qt's # qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the # generated .qhp file. # This tag requires that the tag GENERATE_QHP is set to YES. -QHG_LOCATION = +QHG_LOCATION = # If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be # generated, together with the HTML files, they form an Eclipse help plugin. To @@ -1583,7 +1583,7 @@ MATHJAX_RELPATH = https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/ # MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols # This tag requires that the tag USE_MATHJAX is set to YES. -MATHJAX_EXTENSIONS = +MATHJAX_EXTENSIONS = # The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces # of code that will be used on startup of the MathJax code. See the MathJax site @@ -1591,7 +1591,7 @@ MATHJAX_EXTENSIONS = # example see the documentation. # This tag requires that the tag USE_MATHJAX is set to YES. -MATHJAX_CODEFILE = +MATHJAX_CODEFILE = # When the SEARCHENGINE tag is enabled doxygen will generate a search box for # the HTML output. The underlying search engine uses javascript and DHTML and @@ -1651,7 +1651,7 @@ EXTERNAL_SEARCH = NO # Searching" for details. # This tag requires that the tag SEARCHENGINE is set to YES. -SEARCHENGINE_URL = +SEARCHENGINE_URL = # When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed # search data is written to a file for indexing by an external tool. With the @@ -1667,7 +1667,7 @@ SEARCHDATA_FILE = searchdata.xml # projects and redirect the results back to the right project. # This tag requires that the tag SEARCHENGINE is set to YES. -EXTERNAL_SEARCH_ID = +EXTERNAL_SEARCH_ID = # The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen # projects other than the one defined by this configuration file, but that are @@ -1677,7 +1677,7 @@ EXTERNAL_SEARCH_ID = # EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ... # This tag requires that the tag SEARCHENGINE is set to YES. -EXTRA_SEARCH_MAPPINGS = +EXTRA_SEARCH_MAPPINGS = #--------------------------------------------------------------------------- # Configuration options related to the LaTeX output @@ -1741,7 +1741,7 @@ PAPER_TYPE = a4 # If left blank no extra packages will be included. # This tag requires that the tag GENERATE_LATEX is set to YES. -EXTRA_PACKAGES = +EXTRA_PACKAGES = # The LATEX_HEADER tag can be used to specify a personal LaTeX header for the # generated LaTeX document. The header should contain everything until the first @@ -1757,7 +1757,7 @@ EXTRA_PACKAGES = # to HTML_HEADER. # This tag requires that the tag GENERATE_LATEX is set to YES. -LATEX_HEADER = +LATEX_HEADER = # The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the # generated LaTeX document. The footer should contain everything after the last @@ -1768,7 +1768,7 @@ LATEX_HEADER = # Note: Only use a user-defined footer if you know what you are doing! # This tag requires that the tag GENERATE_LATEX is set to YES. -LATEX_FOOTER = +LATEX_FOOTER = # The LATEX_EXTRA_STYLESHEET tag can be used to specify additional user-defined # LaTeX style sheets that are included after the standard style sheets created @@ -1779,7 +1779,7 @@ LATEX_FOOTER = # list). # This tag requires that the tag GENERATE_LATEX is set to YES. -LATEX_EXTRA_STYLESHEET = +LATEX_EXTRA_STYLESHEET = # The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or # other source files which should be copied to the LATEX_OUTPUT output @@ -1787,7 +1787,7 @@ LATEX_EXTRA_STYLESHEET = # markers available. # This tag requires that the tag GENERATE_LATEX is set to YES. -LATEX_EXTRA_FILES = +LATEX_EXTRA_FILES = # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is # prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will @@ -1895,14 +1895,14 @@ RTF_HYPERLINKS = NO # default style sheet that doxygen normally uses. # This tag requires that the tag GENERATE_RTF is set to YES. -RTF_STYLESHEET_FILE = +RTF_STYLESHEET_FILE = # Set optional variables used in the generation of an RTF document. Syntax is # similar to doxygen's config file. A template extensions file can be generated # using doxygen -e rtf extensionFile. # This tag requires that the tag GENERATE_RTF is set to YES. -RTF_EXTENSIONS_FILE = +RTF_EXTENSIONS_FILE = # If the RTF_SOURCE_CODE tag is set to YES then doxygen will include source code # with syntax highlighting in the RTF output. @@ -1947,7 +1947,7 @@ MAN_EXTENSION = .3 # MAN_EXTENSION with the initial . removed. # This tag requires that the tag GENERATE_MAN is set to YES. -MAN_SUBDIR = +MAN_SUBDIR = # If the MAN_LINKS tag is set to YES and doxygen generates man output, then it # will generate one additional man file for each entity documented in the real @@ -2060,7 +2060,7 @@ PERLMOD_PRETTY = YES # overwrite each other's variables. # This tag requires that the tag GENERATE_PERLMOD is set to YES. -PERLMOD_MAKEVAR_PREFIX = +PERLMOD_MAKEVAR_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the preprocessor @@ -2101,7 +2101,7 @@ SEARCH_INCLUDES = YES # preprocessor. # This tag requires that the tag SEARCH_INCLUDES is set to YES. -INCLUDE_PATH = +INCLUDE_PATH = # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard # patterns (like *.h and *.hpp) to filter out the header-files in the @@ -2109,7 +2109,7 @@ INCLUDE_PATH = # used. # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. -INCLUDE_FILE_PATTERNS = +INCLUDE_FILE_PATTERNS = # The PREDEFINED tag can be used to specify one or more macro names that are # defined before the preprocessor is started (similar to the -D option of e.g. @@ -2119,7 +2119,7 @@ INCLUDE_FILE_PATTERNS = # recursively expanded use the := operator instead of the = operator. # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. -PREDEFINED = +PREDEFINED = # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this # tag can be used to specify a list of macro names that should be expanded. The @@ -2128,7 +2128,7 @@ PREDEFINED = # definition found in the source code. # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. -EXPAND_AS_DEFINED = +EXPAND_AS_DEFINED = # If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will # remove all references to function-like macros that are alone on a line, have @@ -2157,13 +2157,13 @@ SKIP_FUNCTION_MACROS = YES # the path). If a tag file is not located in the directory in which doxygen is # run, you must also specify the path to the tagfile here. -TAGFILES = +TAGFILES = # When a file name is specified after GENERATE_TAGFILE, doxygen will create a # tag file that is based on the input files it reads. See section "Linking to # external documentation" for more information about the usage of tag files. -GENERATE_TAGFILE = +GENERATE_TAGFILE = # If the ALLEXTERNALS tag is set to YES, all external class will be listed in # the class index. If set to NO, only the inherited external classes will be @@ -2212,14 +2212,14 @@ CLASS_DIAGRAMS = YES # the mscgen tool resides. If left empty the tool is assumed to be found in the # default search path. -MSCGEN_PATH = +MSCGEN_PATH = # You can include diagrams made with dia in doxygen documentation. Doxygen will # then run dia to produce the diagram and insert it in the documentation. The # DIA_PATH tag allows you to specify the directory where the dia binary resides. # If left empty dia is assumed to be found in the default search path. -DIA_PATH = +DIA_PATH = # If set to YES the inheritance and collaboration graphs will hide inheritance # and usage relations if the target is undocumented or is not a class. @@ -2268,7 +2268,7 @@ DOT_FONTSIZE = 10 # the path where dot can find it using this tag. # This tag requires that the tag HAVE_DOT is set to YES. -DOT_FONTPATH = +DOT_FONTPATH = # If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for # each documented class showing the direct and indirect inheritance relations. @@ -2412,26 +2412,26 @@ INTERACTIVE_SVG = NO # found. If left blank, it is assumed the dot tool can be found in the path. # This tag requires that the tag HAVE_DOT is set to YES. -DOT_PATH = +DOT_PATH = # The DOTFILE_DIRS tag can be used to specify one or more directories that # contain dot files that are included in the documentation (see the \dotfile # command). # This tag requires that the tag HAVE_DOT is set to YES. -DOTFILE_DIRS = +DOTFILE_DIRS = # The MSCFILE_DIRS tag can be used to specify one or more directories that # contain msc files that are included in the documentation (see the \mscfile # command). -MSCFILE_DIRS = +MSCFILE_DIRS = # The DIAFILE_DIRS tag can be used to specify one or more directories that # contain dia files that are included in the documentation (see the \diafile # command). -DIAFILE_DIRS = +DIAFILE_DIRS = # When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the # path where java can find the plantuml.jar file. If left blank, it is assumed @@ -2439,17 +2439,17 @@ DIAFILE_DIRS = # generate a warning when it encounters a \startuml command in this case and # will not generate output for the diagram. -PLANTUML_JAR_PATH = +PLANTUML_JAR_PATH = # When using plantuml, the PLANTUML_CFG_FILE tag can be used to specify a # configuration file for plantuml. -PLANTUML_CFG_FILE = +PLANTUML_CFG_FILE = # When using plantuml, the specified paths are searched for files specified by # the !include statement in a plantuml block. -PLANTUML_INCLUDE_PATH = +PLANTUML_INCLUDE_PATH = # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes # that will be shown in the graph. If the number of nodes in a graph becomes diff --git a/Makefile b/Makefile index 7d272a2..d408fd1 100644 --- a/Makefile +++ b/Makefile @@ -9,30 +9,30 @@ endif CC = gcc OUTPUTS = lib_graphpass.o analyze.o filter.o gexf.o io.o quickrun.o reports.o rnd.o viz.o -HELPER_FILES = src/analyze.c src/filter.c src/gexf.c src/io.c src/quickrun.c src/reports.c src/rnd.c src/viz.c +HELPER_FILES = src/main/analyze.c src/main/filter.c src/main/gexf.c src/main/io.c src/main/quickrun.c src/main/reports.c src/main/rnd.c src/main/viz.c IGRAPH_INCLUDE = $(IGRAPH_PATH)include/igraph IGRAPH_LIB = $(IGRAPH_PATH)lib -TEST_INCLUDE = ./tests/ -TEST_RUNNER_PATH = ./tests/ -UNITY_INCLUDE = ./unity -INCLUDE = ./headers +TEST_INCLUDE = ./src/tests/ +TEST_RUNNER_PATH = ./src/tests/ +UNITY_INCLUDE = ./vendor/unity +INCLUDE = ./src/headers DEPS = -I$(INCLUDE) -I$(IGRAPH_INCLUDE) -I$(UNITY_INCLUDE) BUILD = build/ all: test install -install: src/graphpass.c - gcc src/graphpass.c src/analyze.c src/filter.c src/gexf.c src/io.c src/quickrun.c src/reports.c src/rnd.c src/viz.c $(DEPS) -L$(IGRAPH_LIB) -ligraph -lm -o graphpass +install: src/main/graphpass.c + gcc src/main/graphpass.c src/main/analyze.c src/main/filter.c src/main/gexf.c src/main/io.c src/main/quickrun.c src/main/reports.c src/main/rnd.c src/main/viz.c $(DEPS) -L$(IGRAPH_LIB) -ligraph -lm -o graphpass - ./graphpass -qn -release: src/graphpass.c - gcc src/graphpass.c src/analyze.c src/filter.c src/gexf.c src/io.c src/quickrun.c src/reports.c src/rnd.c src/viz.c $(DEPS) -L$(IGRAPH_LIB) -ligraph -lm -o graphpass +release: src/main/graphpass.c + gcc src/main/graphpass.c src/main/analyze.c src/main/filter.c src/main/gexf.c src/main/io.c src/main/quickrun.c src/main/reports.c src/main/rnd.c src/main/viz.c $(DEPS) -L$(IGRAPH_LIB) -ligraph -lm -o graphpass - ./graphpass -qg -debug: ./src/graphpass.c - gcc -g src/graphpass.c src/analyze.c src/filter.c src/gexf.c src/io.c src/quickrun.c src/reports.c src/rnd.c src/viz.c $(DEPS) -L$(IGRAPH_LIB) -ligraph -lm -o graphpass +debug: ./src/main/graphpass.c + gcc -g src/main/graphpass.c src/main/analyze.c src/main/filter.c src/main/gexf.c src/main/io.c src/main/quickrun.c src/main/reports.c src/main/rnd.c src/main/viz.c $(DEPS) -L$(IGRAPH_LIB) -ligraph -lm -o graphpass test: qp ana run clean diff --git a/README.md b/README.md index 978e86d..a766a46 100644 --- a/README.md +++ b/README.md @@ -62,7 +62,7 @@ Type brew info igraph ``` -and verify that the path displayed there matches the default IGRAPH_PATH value provided in the Makefile. By default this is `/usr/local/Cellar/igraph/0.7.1_6/` for MacOS. +and verify that the path displayed there matches the default `IGRAPH_PATH` value provided in the Makefile. By default this is `/usr/local/Cellar/igraph/0.7.1_6/` for MacOS. ### Building @@ -95,11 +95,10 @@ Once compiled use the following command: The following flags are available: -* `--file {FILENAME}` - sets the default filename. If not set, graphpass will use -a default network in /assets. -* `--dir {DIRECTORY}` - the path to look for {FILENAME} by default this is `assets/` -* `--output {OUTPUT}` - the directory to send output files such as filtered graphs -and data reporst. +* `--file {FILENAME}` - sets the default filename. If not set, `graphpass` will use +a default network in `src/resources`. +* `--dir {DIRECTORY}` - the path to look for {FILENAME} by default this is `src/resources/` +* `--output {OUTPUT}` - the directory to send output files such as filtered graphs and data reports. * `--percent {PERCENT}` - a percentage to remove from the file. By default this is 0.0. * `--method {options}` - a string of various methods through which to filter the graph. @@ -122,7 +121,7 @@ For example: ./graphpass --percent 10 --methods b --file links-for-gephi.graphml --output OUT/ ``` -Will remove 10% of the graph using betweenness as a cutting measure and lay the network out. It will find `links-for-gephi.graphml` file in `/assets` and output a new one to `/OUT` (titled `links-for-gephi10Betweenness.graphml`). +Will remove 10% of the graph using betweenness as a cutting measure and lay the network out. It will find `links-for-gephi.graphml` file in `src/resources` and output a new one to `/OUT` (titled `links-for-gephi10Betweenness.graphml`). # Optional arguments @@ -143,4 +142,4 @@ Licensed under the [Apache License, Version 2.0](http://www.apache.org/licenses/ This work is primarily supported by the [Andrew W. Mellon Foundation](https://uwaterloo.ca/arts/news/multidisciplinary-project-will-help-historians-unlock). Additional funding for the Toolkit has come from the U.S. National Science Foundation, Columbia University Library's Mellon-funded Web Archiving Incentive Award, the Natural Sciences and Engineering Research Council of Canada, the Social Sciences and Humanities Research Council of Canada, and the Ontario Ministry of Research and Innovation's Early Researcher Award program. Any opinions, findings, and conclusions or recommendations expressed are those of the researchers and do not necessarily reflect the views of the sponsors. -The author would also like to thank Drs. Ian Milligan & Jimmy Lin plus Nick Nuest and Samantha Fritz for their kind advice and support. +The author would also like to thank Drs. Ian Milligan & Jimmy Lin plus Nick Ruest and Samantha Fritz for their kind advice and support. diff --git a/configure.scan b/configure.scan deleted file mode 100644 index 5e9f291..0000000 --- a/configure.scan +++ /dev/null @@ -1,83 +0,0 @@ -# -*- Autoconf -*- -# Process this file with autoconf to produce a configure script. - -AC_PREREQ([2.69]) -AC_INIT([graphpass], [0.0.1], [ryan.deschamps@gmail.com]) -AC_COPYRIGHT([Ryan Deschamps 2018, Apache License 2.0]) -AC_CONFIG_SRCDIR([graphpass.c]) -#AC_CONFIG_HEADERS([config.h]) - -# Checks for programs. -AC_PROG_CC - -# Checks for libraries. -AC_CHECK_LIB([libxml2], [xmlNewTextWriter], [], [ - echo "No libxml2, needed to import Graphml..." - if [[ "$OSTYPE" == "linux-gnu" ]]; then - sudo apt-get install libxml2-dev build-essential - elif [[ "$OSTYPE" == "darwin"* ]]; then - echo "libxml is supposed to come with OSX. Something is wrong." - exit -1 - else - echo "unknown problem installing libxml, required for system." - exit -1 - fi -]) -AC_CHECK_LIB([igraph], [igraph_hub_score],[ - echo "found igraph, which is required for graphpass"], [ - echo "this program requires igraph 0.7.1. Getting..." - if [[ "$OSTYPE" == "linux-gnu" ]]; then - wget http://igraph.org/nightly/get/c/igraph-0.7.1.tar.gz - tar -xvzf igraph-0.7.1.tar.gz - cd igraph-0.7.1 - ./configure - make - sudo make install - sudo ldconfig - cd .. - echo "cleaning up... " - rm igraph-0.7.1.tar.gz - rm -rf igraph-0.7.1 - elif [[ "$OSTYPE" == "darwin"* ]]; then - if [[which brew == "/usr/local/bin/brew"]]; then - brew install igraph - else - echo "Problem installing igraph. You may need to do this manually." - echo "See http://igraph.org/c/ for instructions, if installation fails." - echo "Or install igraph with homebrew using: brew install igraph" - wget http://igraph.org/nightly/get/c/igraph-0.7.1.tar.gz - tar -xvzf igraph-0.7.1.tar.gz - cd igraph-0.7.1 - ./configure - make - sudo make install - sudo ldconfig - cd .. - echo "cleaning up... " - rm igraph-0.7.1.tar.gz - rm -rf igraph-0.7.1 - fi - else - echo "Graphpass is only configured for OSX and Linux systems." - echo "It is possible to install Graphpass on Windows, but it would" - echo "require some manual configuration work." - exit -1 - fi -]) -AC_CHECK_LIB([m], [main]) - -# Checks for header files. -AC_CHECK_HEADERS([limits.h stddef.h stdint.h stdlib.h string.h unistd.h]) - -# Checks for typedefs, structures, and compiler characteristics. -AC_CHECK_HEADER_STDBOOL - -# Checks for library functions. -AC_FUNC_MALLOC -AC_CHECK_FUNCS([mkdir sqrt]) - -AC_CONFIG_FILES([Docs/latex/Makefile -Makefile]) -AC_OUTPUT - -AM_INIT_AUTOMAKE([graphpass], [0.0.1]) diff --git a/Docs/html/analyze_8h.html b/doc/html/analyze_8h.html similarity index 100% rename from Docs/html/analyze_8h.html rename to doc/html/analyze_8h.html diff --git a/Docs/html/analyze_8h_source.html b/doc/html/analyze_8h_source.html similarity index 100% rename from Docs/html/analyze_8h_source.html rename to doc/html/analyze_8h_source.html diff --git a/Docs/html/annotated.html b/doc/html/annotated.html similarity index 79% rename from Docs/html/annotated.html rename to doc/html/annotated.html index e19e365..63720b5 100644 --- a/Docs/html/annotated.html +++ b/doc/html/annotated.html @@ -3,9 +3,9 @@ - + -Graphpass: Data Structures +GraphPass: Data Structures @@ -21,31 +21,28 @@ -
Graphpass +
GraphPass  0.0.2
-
A helper library for network filtering, analysis and visualization
+
A helper library to filter networks and provide a default visualization output for Gephi or SigmaJS.
- + + @@ -71,7 +68,6 @@ -
 CNodeHolds graph level values for each graph that has been filtered
 CRankNodeUnimplemented struct for holding the top 20 rankids for the graph
 CUNITY_STORAGE_T
@@ -79,7 +75,7 @@ diff --git a/Docs/html/bc_s.png b/doc/html/bc_s.png similarity index 100% rename from Docs/html/bc_s.png rename to doc/html/bc_s.png diff --git a/Docs/html/bdwn.png b/doc/html/bdwn.png similarity index 100% rename from Docs/html/bdwn.png rename to doc/html/bdwn.png diff --git a/Docs/html/classes.html b/doc/html/classes.html similarity index 72% rename from Docs/html/classes.html rename to doc/html/classes.html index 984931b..909c5d3 100644 --- a/Docs/html/classes.html +++ b/doc/html/classes.html @@ -3,9 +3,9 @@ - + -Graphpass: Data Structure Index +GraphPass: Data Structure Index @@ -21,31 +21,28 @@ -
Graphpass +
GraphPass  0.0.2
-
A helper library for network filtering, analysis and visualization
+
A helper library to filter networks and provide a default visualization output for Gephi or SigmaJS.
- + + @@ -67,23 +64,22 @@
Data Structure Index
-
n | r | u
+
n | r
- - + +
  n  
  r  
-
  u  
Node   RankNode   UNITY_STORAGE_T   
Node   RankNode   
-
n | r | u
+
n | r
diff --git a/Docs/html/closed.png b/doc/html/closed.png similarity index 100% rename from Docs/html/closed.png rename to doc/html/closed.png diff --git a/Docs/html/dir_59425e443f801f1f2fd8bbe4959a3ccf.html b/doc/html/dir_59425e443f801f1f2fd8bbe4959a3ccf.html similarity index 100% rename from Docs/html/dir_59425e443f801f1f2fd8bbe4959a3ccf.html rename to doc/html/dir_59425e443f801f1f2fd8bbe4959a3ccf.html diff --git a/doc/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html b/doc/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html new file mode 100644 index 0000000..c99d64b --- /dev/null +++ b/doc/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html @@ -0,0 +1,83 @@ + + + + + + + +GraphPass: src Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
GraphPass +  0.0.2 +
+
A helper library to filter networks and provide a default visualization output for Gephi or SigmaJS.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
src Directory Reference
+
+
+ + +

+Directories

+
+ + + + diff --git a/Docs/html/dir_6b23d51ea9a89549ea3e756c08c8ad26.html b/doc/html/dir_6b23d51ea9a89549ea3e756c08c8ad26.html similarity index 100% rename from Docs/html/dir_6b23d51ea9a89549ea3e756c08c8ad26.html rename to doc/html/dir_6b23d51ea9a89549ea3e756c08c8ad26.html diff --git a/Docs/html/dir_7f57b1e41c5acd0e859ae5f3a2b075a9.html b/doc/html/dir_7f57b1e41c5acd0e859ae5f3a2b075a9.html similarity index 100% rename from Docs/html/dir_7f57b1e41c5acd0e859ae5f3a2b075a9.html rename to doc/html/dir_7f57b1e41c5acd0e859ae5f3a2b075a9.html diff --git a/Docs/html/doc.png b/doc/html/doc.png similarity index 100% rename from Docs/html/doc.png rename to doc/html/doc.png diff --git a/Docs/html/doxygen.css b/doc/html/doxygen.css similarity index 99% rename from Docs/html/doxygen.css rename to doc/html/doxygen.css index e5d145c..2379f5a 100644 --- a/Docs/html/doxygen.css +++ b/doc/html/doxygen.css @@ -1,4 +1,4 @@ -/* The standard CSS for doxygen 1.8.14 */ +/* The standard CSS for doxygen 1.8.13 */ body, table, div, p, dl { font: 400 14px/22px Roboto,sans-serif; diff --git a/Docs/html/doxygen.png b/doc/html/doxygen.png similarity index 100% rename from Docs/html/doxygen.png rename to doc/html/doxygen.png diff --git a/Docs/html/dynsections.js b/doc/html/dynsections.js similarity index 73% rename from Docs/html/dynsections.js rename to doc/html/dynsections.js index c1ce122..85e1836 100644 --- a/Docs/html/dynsections.js +++ b/doc/html/dynsections.js @@ -1,26 +1,3 @@ -/* - @licstart The following is the entire license notice for the - JavaScript code in this file. - - Copyright (C) 1997-2017 by Dimitri van Heesch - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - - @licend The above is the entire license notice - for the JavaScript code in this file - */ function toggleVisibility(linkObj) { var base = $(linkObj).attr('id'); @@ -38,7 +15,7 @@ function toggleVisibility(linkObj) summary.hide(); $(linkObj).removeClass('closed').addClass('opened'); $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); - } + } return false; } @@ -60,7 +37,7 @@ function toggleLevel(level) $(this).show(); } else if (l==level+1) { i.removeClass('iconfclosed iconfopen').addClass('iconfclosed'); - a.html('▶'); + a.html('►'); $(this).show(); } else { $(this).hide(); @@ -87,7 +64,7 @@ function toggleFolder(id) // replace down arrow by right arrow for current row var currentRowSpans = currentRow.find("span"); currentRowSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed"); - currentRowSpans.filter(".arrow").html('▶'); + currentRowSpans.filter(".arrow").html('►'); rows.filter("[id^=row_"+id+"]").hide(); // hide all children } else { // we are SHOWING // replace right arrow by down arrow for current row @@ -97,7 +74,7 @@ function toggleFolder(id) // replace down arrows by right arrows for child rows var childRowsSpans = childRows.find("span"); childRowsSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed"); - childRowsSpans.filter(".arrow").html('▶'); + childRowsSpans.filter(".arrow").html('►'); childRows.show(); //show all children } updateStripes(); @@ -117,4 +94,4 @@ function toggleInherit(id) $(img).attr('src',src.substring(0,src.length-10)+'open.png'); } } -/* @license-end */ + diff --git a/doc/html/files.html b/doc/html/files.html new file mode 100644 index 0000000..831c744 --- /dev/null +++ b/doc/html/files.html @@ -0,0 +1,92 @@ + + + + + + + +GraphPass: File List + + + + + + + + + +
+
+ + + + + + +
+
GraphPass +  0.0.2 +
+
A helper library to filter networks and provide a default visualization output for Gephi or SigmaJS.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+
File List
+
+
+
Here is a list of all documented files with brief descriptions:
+
[detail level 123]
+ + + + + + + + + + + + + +
  src
  headers
 graphpass.h
  main
 analyze.cProvides basic network analysis and adds them to the graph output
 filter.cBasic filtering utilities
 gexf.cWrites gexf files
 graphpass.cThe main file for GraphPass
 io.cBasic input-output utilities (loading and writing graphs)
 quickrun.cProduces a lightweight vizualization for a graph
 reports.cProvides an output report that shows the effect of filtering on the network structure
 rnd.cUtilities for random number generation
 viz.cTools for presetting visualization elements: color, position & size
+
+
+ + + + diff --git a/Docs/html/filter_8h.html b/doc/html/filter_8h.html similarity index 100% rename from Docs/html/filter_8h.html rename to doc/html/filter_8h.html diff --git a/Docs/html/filter_8h_source.html b/doc/html/filter_8h_source.html similarity index 100% rename from Docs/html/filter_8h_source.html rename to doc/html/filter_8h_source.html diff --git a/Docs/html/folderclosed.png b/doc/html/folderclosed.png similarity index 100% rename from Docs/html/folderclosed.png rename to doc/html/folderclosed.png diff --git a/Docs/html/folderopen.png b/doc/html/folderopen.png similarity index 100% rename from Docs/html/folderopen.png rename to doc/html/folderopen.png diff --git a/Docs/html/gexf_8h.html b/doc/html/gexf_8h.html similarity index 100% rename from Docs/html/gexf_8h.html rename to doc/html/gexf_8h.html diff --git a/Docs/html/gexf_8h_source.html b/doc/html/gexf_8h_source.html similarity index 100% rename from Docs/html/gexf_8h_source.html rename to doc/html/gexf_8h_source.html diff --git a/Docs/html/globals.html b/doc/html/globals.html similarity index 78% rename from Docs/html/globals.html rename to doc/html/globals.html index 693bec9..b070e5b 100644 --- a/Docs/html/globals.html +++ b/doc/html/globals.html @@ -3,9 +3,9 @@ - + -Graphpass: Globals +GraphPass: Globals @@ -21,31 +21,28 @@ -
Graphpass +
GraphPass  0.0.2
-
A helper library for network filtering, analysis and visualization
+
A helper library to filter networks and provide a default visualization output for Gephi or SigmaJS.
- + + @@ -97,6 +94,9 @@
  • create_filtered_graph() : filter.c
  • +
  • FILEPATH +: graphpass.c +
  • filter_graph() : filter.c
  • @@ -112,18 +112,42 @@
  • layout_graph() : viz.c
  • +
  • main() +: graphpass.c +
  • +
  • produceRank() +: analyze.c +
  • push() : reports.c
  • pushRank() : reports.c
  • +
  • rankCompare() +: reports.c +
  • set_size() : viz.c
  • shuffle() : rnd.c
  • +
  • ug_gformat +: graphpass.c +
  • +
  • ug_quickrun +: graphpass.c +
  • +
  • ug_report +: graphpass.c +
  • +
  • ug_save +: graphpass.c +
  • +
  • ug_verbose +: graphpass.c +
  • write_report() : reports.c
  • @@ -133,7 +157,7 @@ diff --git a/Docs/html/globals_defs.html b/doc/html/globals_defs.html similarity index 100% rename from Docs/html/globals_defs.html rename to doc/html/globals_defs.html diff --git a/Docs/html/globals_func.html b/doc/html/globals_func.html similarity index 87% rename from Docs/html/globals_func.html rename to doc/html/globals_func.html index a2369f4..3c20b46 100644 --- a/Docs/html/globals_func.html +++ b/doc/html/globals_func.html @@ -3,9 +3,9 @@ - + -Graphpass: Globals +GraphPass: Globals @@ -21,31 +21,28 @@ -
    Graphpass +
    GraphPass  0.0.2
    -
    A helper library for network filtering, analysis and visualization
    +
    A helper library to filter networks and provide a default visualization output for Gephi or SigmaJS.
    - + + @@ -112,12 +109,21 @@
  • layout_graph() : viz.c
  • +
  • main() +: graphpass.c +
  • +
  • produceRank() +: analyze.c +
  • push() : reports.c
  • pushRank() : reports.c
  • +
  • rankCompare() +: reports.c +
  • set_size() : viz.c
  • @@ -133,7 +139,7 @@ diff --git a/Docs/html/globals_vars.html b/doc/html/globals_vars.html similarity index 55% rename from Docs/html/globals_vars.html rename to doc/html/globals_vars.html index 8e0dca0..41afefa 100644 --- a/Docs/html/globals_vars.html +++ b/doc/html/globals_vars.html @@ -3,9 +3,9 @@ - + -Graphpass: Globals +GraphPass: Globals @@ -21,31 +21,28 @@ -
    Graphpass +
    GraphPass  0.0.2
    -
    A helper library for network filtering, analysis and visualization
    +
    A helper library to filter networks and provide a default visualization output for Gephi or SigmaJS.
    - + + @@ -64,44 +61,23 @@
     
    @@ -109,7 +85,7 @@ diff --git a/doc/html/graphpass_8c.html b/doc/html/graphpass_8c.html new file mode 100644 index 0000000..9742e35 --- /dev/null +++ b/doc/html/graphpass_8c.html @@ -0,0 +1,257 @@ + + + + + + + +GraphPass: src/main/graphpass.c File Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    GraphPass +  0.0.2 +
    +
    A helper library to filter networks and provide a default visualization output for Gephi or SigmaJS.
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    graphpass.c File Reference
    +
    +
    + +

    The main file for GraphPass. +More...

    +
    #include "igraph.h"
    +#include <stdlib.h>
    +#include "graphpass.h"
    +
    + + + + + + + + + +

    +Macros

    +#define _GNU_SOURCE
     
    +#define ASSETS_PATH   "src/resources"
     
    +#define MAX_METHODS   9
     
    +#define MAX_FILESIZE   100
     
    + + + +

    +Functions

    int main (int argc, char *argv[])
     
    + + + + + + + + + + + + + +

    +Variables

    char * FILEPATH
     
    bool ug_save = true
     
    bool ug_gformat = false
     
    bool ug_report = false
     
    bool ug_quickrun = false
     
    bool ug_verbose = false
     
    +

    Detailed Description

    +

    The main file for GraphPass.

    +

    Copyright [2018] [Ryan Deschamps]

    +

    Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

    +

    http://www.apache.org/licenses/LICENSE-2.0

    +

    Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. Graphpass accepts a file, a percentage and a series of characters that represent methods of filtering a network graph, and outputs new graph files with the filtered graphs and optionally, a report showing how those filters affected the graph

    +

    Function Documentation

    + +

    ◆ main()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    int main (int argc,
    char * argv[] 
    )
    +
    +

    set default values if not included in flags

    +

    setup directory path ug_DIRECTORY + ug_FILENAME

    +

    start output description

    +

    try to be nice if user leaves out a '/'

    +

    set up FILEPATH to access graphml file

    +

    start the filtering based on values and methods

    + +
    +
    +

    Variable Documentation

    + +

    ◆ FILEPATH

    + +
    +
    + + + + +
    char* FILEPATH
    +
    +

    The filepath (ug_DIRECTORY + ug_FILENAME)

    + +
    +
    + +

    ◆ ug_gformat

    + +
    +
    + + + + +
    bool ug_gformat = false
    +
    +

    Graph format true for GEXF; false for GRAPHML

    + +
    +
    + +

    ◆ ug_quickrun

    + +
    +
    + + + + +
    bool ug_quickrun = false
    +
    +

    Provide a quickrun with simple sizing, positioning and coloring

    + +
    +
    + +

    ◆ ug_report

    + +
    +
    + + + + +
    bool ug_report = false
    +
    +

    Produce a report analyzing effect of filtering on graph

    + +
    +
    + +

    ◆ ug_save

    + +
    +
    + + + + +
    bool ug_save = true
    +
    +

    Whether to save the graph

    + +
    +
    + +

    ◆ ug_verbose

    + +
    +
    + + + + +
    bool ug_verbose = false
    +
    +

    Print out helper messages

    + +
    +
    +
    + + + + diff --git a/Docs/html/graphpass_8h.html b/doc/html/graphpass_8h.html similarity index 100% rename from Docs/html/graphpass_8h.html rename to doc/html/graphpass_8h.html diff --git a/doc/html/graphpass_8h_source.html b/doc/html/graphpass_8h_source.html new file mode 100644 index 0000000..dc7ec45 --- /dev/null +++ b/doc/html/graphpass_8h_source.html @@ -0,0 +1,109 @@ + + + + + + + +GraphPass: src/headers/graphpass.h Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    GraphPass +  0.0.2 +
    +
    A helper library to filter networks and provide a default visualization output for Gephi or SigmaJS.
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    graphpass.h
    +
    +
    +
    1 /* -*- Graphpass -- Network Graph Utilities mode: C -*- */
    2 /* Copyright [2018] [Ryan Deschamps]
    3 
    4  Licensed under the Apache License, Version 2.0 (the "License");
    5  you may not use this file except in compliance with the License.
    6  You may obtain a copy of the License at
    7 
    8  http://www.apache.org/licenses/LICENSE-2.0
    9 
    10  Unless required by applicable law or agreed to in writing, software
    11  distributed under the License is distributed on an "AS IS" BASIS,
    12  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13  See the License for the specific language governing permissions and
    14  limitations under the License. */
    15 
    16 
    17 #ifndef LIB_GRAPHPASS_H
    18 #define LIB_GRAPHPASS_H
    19 
    20 #include <igraph.h>
    21 #include <stdio.h>
    22 #include <math.h>
    23 #include <string.h>
    24 #include <stdlib.h>
    25 #include <time.h>
    26 #include <sys/types.h>
    27 #include <sys/stat.h>
    28 #include <unistd.h>
    29 #include <errno.h>
    30 #include <getopt.h>
    31 
    32 typedef enum { false, true } bool;
    33 typedef enum { FAIL, WARN, COMM } broadcast;
    34 
    35 igraph_t g;
    36 igraph_attribute_table_t att;
    37 const char* ug_FILENAME;
    38 const char* ug_DIRECTORY;
    39 char* ug_methods;
    40 char* ug_OUTPUT;
    41 char* OUTPATH;
    42 igraph_integer_t NODESIZE;
    43 float ug_percent;
    44 bool ug_report;
    45 bool ug_gformat;
    46 bool ug_quickrun;
    47 bool ug_save;
    48 bool ug_verbose; //**< Verbose mode (default off). */
    49 bool CALC_WEIGHTS;
    50 igraph_vector_t WEIGHTED;
    52 /* Required External libraries */
    53 
    54 #define PROGRAM_NAME "Graph Pass"
    55 #define BUG_REPORT "ryan.deschamps@gmail.com"
    56 #define GIT_REPOSITORY "https://www.github.com/archivesunleashed/graphpass"
    57 
    58 /* Color Presets */
    59 
    60 #define COLOUR_SET_PASTEL "pastel.h"
    61 #define COLOUR_SET_PRIMARY "primary.h"
    62 #define COLOUR_SET_DAMPENED "dampened.h"
    63 
    64 /* Visualization Presets */
    65 
    66 #define VIZ_SET_SPACIOUS "viz_spacious.h"
    67 #define VIZ_SET_LARGE "viz_large.h"
    68 #define VIZ_SET_SMALL "vis_small.h"
    69 
    70 /* Default Settings */
    71 #define MAX_METHODS 9
    72 #define ALL_METHODS "abdehiopr"
    73 #define SIZE_DEFAULT "Degree"
    74 #define SIZE_DEFAULT_CHAR 'd'
    75 #define COLOR_BASE "WalkTrapModularity"
    76 #define PAGERANK_DAMPING 0.85
    77 #define LAYOUT_DEFAULT_CHAR 'f'
    78 #define MAX_NODES 50000
    80 #define NELEMS(x) (sizeof(x) / sizeof((x)[0]))
    81 
    82 struct Node {
    83  char* abbrev;
    84  igraph_real_t val;
    85  struct Node *next;
    86 };
    87 
    91 struct RankNode {
    92  int rankids[20];
    93  struct RankNode *next;
    94 };
    95 
    96 static struct Node* EmptyNode;
    97 
    98 struct stat;
    99 struct Node* asshead;
    100 struct Node* edges;
    101 struct Node* density;
    102 struct Node* betcent;
    103 struct Node* reciprocity;
    104 struct Node* degcent;
    105 struct Node* idegcent;
    106 struct Node* odegcent;
    107 struct Node* eigcent;
    108 struct Node* pagecent;
    109 struct Node* diameter;
    110 struct Node* pathlength;
    111 struct Node* clustering;
    112 struct Node* pv;
    113 struct Node* ts;
    114 struct RankNode* ranks;
    115 
    116 int shuffle(int *array, int n);
    118 int push(struct Node** head_ref, igraph_real_t value, char* attr);
    119 
    121 int pushRank (struct RankNode** head_ref, int rankids[20]);
    122 int igraph_i_xml_escape(char* src, char** dest);
    123 
    124 int igraph_write_graph_gexf(const igraph_t *graph, FILE *outstream,
    125  igraph_bool_t prefixattr);
    126 igraph_real_t mean_vector (igraph_vector_t *v1);
    127 igraph_real_t variance_vector (igraph_vector_t *v1);
    128 igraph_real_t std_vector(igraph_vector_t *v1);
    129 igraph_real_t stderror_vector(igraph_vector_t *v1);
    130 igraph_real_t t_stat_vector(igraph_vector_t *v1);
    131 igraph_real_t t_test_vector(igraph_vector_t *v1, igraph_real_t df);
    132 
    133 int rankCompare(igraph_t *g1, igraph_t *g2, char* attr, igraph_real_t* result_pv, igraph_real_t* result_ts );
    135 int write_report(igraph_t *graph);
    136 int colors (igraph_t *graph);
    137 int layout_graph(igraph_t *graph, char layout);
    138 int set_size(igraph_t *graph, igraph_vector_t *v, int max);
    139 
    140 int strip_ext(char *fname);
    141 int load_graph (char* filename);
    142 int write_graph(igraph_t *graph, char *attr);
    143 int produceRank(igraph_vector_t *source, igraph_vector_t *vector);
    144 int create_graph_csv(char* filepath, int start, int perc);
    145 int paired_t_stat (igraph_vector_t *v1, igraph_vector_t *v2, igraph_real_t *pv, igraph_real_t *ts);
    146 int calc_betweenness(igraph_t *graph);
    147 int calc_authority(igraph_t *graph);
    148 int calc_hub(igraph_t *graph);
    149 int calc_pagerank(igraph_t *graph);
    150 int calc_eigenvector(igraph_t *graph);
    151 /* extern int calc_clustering(igraph_t *graph); */
    152 /* extern int calc_random(igraph_t *graph); */
    153 int calc_degree(igraph_t *graph, char type);
    154 int calc_modularity(igraph_t *graph);
    155 int centralization(igraph_t *graph, char* attr);
    156 int analysis_all (igraph_t *graph);
    157 int quickrunGraph();
    158 
    159 float fix_percentile();
    160 int create_filtered_graph(igraph_t *graph, double cutoff, int cutsize, char* attr);
    161 int shrink (igraph_t *graph, int cutsize, char* attr);
    162 int runFilters (igraph_t *graph, int cutsize);
    163 int filter_graph();
    164 
    165 #endif
    int filter_graph()
    Definition: filter.c:290
    +
    int push(struct Node **head_ref, igraph_real_t value, char *attr)
    Definition: reports.c:31
    +
    int calc_hub(igraph_t *graph)
    Definition: analyze.c:263
    +
    int rankCompare(igraph_t *g1, igraph_t *g2, char *attr, igraph_real_t *result_pv, igraph_real_t *result_ts)
    Definition: reports.c:52
    +
    int set_size(igraph_t *graph, igraph_vector_t *v, int max)
    Definition: viz.c:155
    +
    int calc_pagerank(igraph_t *graph)
    Definition: analyze.c:281
    +
    int calc_modularity(igraph_t *graph)
    Definition: analyze.c:357
    +
    int igraph_i_xml_escape(char *src, char **dest)
    Definition: gexf.c:18
    +
    float fix_percentile()
    Definition: filter.c:32
    +
    int pushRank(struct RankNode **head_ref, int rankids[20])
    Definition: reports.c:41
    +
    int calc_degree(igraph_t *graph, char type)
    Definition: analyze.c:326
    +
    int write_report(igraph_t *graph)
    Definition: reports.c:113
    +
    bool ug_gformat
    Definition: graphpass.c:43
    +
    int layout_graph(igraph_t *graph, char layout)
    Definition: viz.c:115
    +
    unimplemented struct for holding the top 20 rankids for the graph.
    Definition: graphpass.h:91
    +
    bool ug_verbose
    Definition: graphpass.c:49
    +
    bool ug_quickrun
    Definition: graphpass.c:47
    +
    bool ug_save
    Definition: graphpass.c:41
    +
    int centralization(igraph_t *graph, char *attr)
    Definition: analyze.c:389
    +
    int colors(igraph_t *graph)
    Definition: viz.c:26
    +
    int calc_eigenvector(igraph_t *graph)
    Definition: analyze.c:298
    +
    int calc_authority(igraph_t *graph)
    Definition: analyze.c:244
    +
    int analysis_all(igraph_t *graph)
    Definition: analyze.c:454
    +
    int create_filtered_graph(igraph_t *graph, double cutoff, int cutsize, char *attr)
    Definition: filter.c:49
    +
    int shuffle(int *array, int n)
    Definition: rnd.c:36
    +
    int calc_betweenness(igraph_t *graph)
    Definition: analyze.c:227
    +
    int igraph_write_graph_gexf(const igraph_t *graph, FILE *outstream, igraph_bool_t prefixattr)
    Definition: gexf.c:59
    +
    Holds graph level values for each graph that has been filtered.
    Definition: graphpass.h:82
    +
    bool ug_report
    Definition: graphpass.c:45
    +
    int produceRank(igraph_vector_t *source, igraph_vector_t *v)
    Definition: analyze.c:414
    +
    + + + + diff --git a/Docs/html/index.html b/doc/html/index.html similarity index 80% rename from Docs/html/index.html rename to doc/html/index.html index 9ca6590..06b8587 100644 --- a/Docs/html/index.html +++ b/doc/html/index.html @@ -3,9 +3,9 @@ - + -Graphpass: Main Page +GraphPass: Main Page @@ -21,31 +21,28 @@ -
    Graphpass +
    GraphPass  0.0.2
    -
    A helper library for network filtering, analysis and visualization
    +
    A helper library to filter networks and provide a default visualization output for Gephi or SigmaJS.
    - + + @@ -64,7 +61,7 @@
    -
    Graphpass Documentation
    +
    GraphPass Documentation
    @@ -72,7 +69,7 @@ diff --git a/Docs/html/io_8h.html b/doc/html/io_8h.html similarity index 100% rename from Docs/html/io_8h.html rename to doc/html/io_8h.html diff --git a/Docs/html/io_8h_source.html b/doc/html/io_8h_source.html similarity index 100% rename from Docs/html/io_8h_source.html rename to doc/html/io_8h_source.html diff --git a/Docs/html/jquery.js b/doc/html/jquery.js similarity index 99% rename from Docs/html/jquery.js rename to doc/html/jquery.js index 2771c74..f5343ed 100644 --- a/Docs/html/jquery.js +++ b/doc/html/jquery.js @@ -1,31 +1,3 @@ -/* - @licstart The following is the entire license notice for the - JavaScript code in this file. - - Copyright (C) 1997-2017 by Dimitri van Heesch - - Permission is hereby granted, free of charge, to any person obtaining - a copy of this software and associated documentation files (the - "Software"), to deal in the Software without restriction, including - without limitation the rights to use, copy, modify, merge, publish, - distribute, sublicense, and/or sell copies of the Software, and to - permit persons to whom the Software is furnished to do so, subject to - the following conditions: - - The above copyright notice and this permission notice shall be included - in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE - SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - @licend The above is the entire license notice - for the JavaScript code in this file - */ /*! * jQuery JavaScript Library v1.7.1 * http://jquery.com/ @@ -81,7 +53,7 @@ (function(b,c){var a=false;b(document).mouseup(function(d){a=false});b.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var d=this;this.element.bind("mousedown."+this.widgetName,function(e){return d._mouseDown(e)}).bind("click."+this.widgetName,function(e){if(true===b.data(e.target,d.widgetName+".preventClickEvent")){b.removeData(e.target,d.widgetName+".preventClickEvent");e.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(f){if(a){return}(this._mouseStarted&&this._mouseUp(f));this._mouseDownEvent=f;var e=this,g=(f.which==1),d=(typeof this.options.cancel=="string"&&f.target.nodeName?b(f.target).closest(this.options.cancel).length:false);if(!g||d||!this._mouseCapture(f)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){e.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(f)&&this._mouseDelayMet(f)){this._mouseStarted=(this._mouseStart(f)!==false);if(!this._mouseStarted){f.preventDefault();return true}}if(true===b.data(f.target,this.widgetName+".preventClickEvent")){b.removeData(f.target,this.widgetName+".preventClickEvent")}this._mouseMoveDelegate=function(h){return e._mouseMove(h)};this._mouseUpDelegate=function(h){return e._mouseUp(h)};b(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);f.preventDefault();a=true;return true},_mouseMove:function(d){if(b.browser.msie&&!(document.documentMode>=9)&&!d.button){return this._mouseUp(d)}if(this._mouseStarted){this._mouseDrag(d);return d.preventDefault()}if(this._mouseDistanceMet(d)&&this._mouseDelayMet(d)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,d)!==false);(this._mouseStarted?this._mouseDrag(d):this._mouseUp(d))}return !this._mouseStarted},_mouseUp:function(d){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;if(d.target==this._mouseDownEvent.target){b.data(d.target,this.widgetName+".preventClickEvent",true)}this._mouseStop(d)}return false},_mouseDistanceMet:function(d){return(Math.max(Math.abs(this._mouseDownEvent.pageX-d.pageX),Math.abs(this._mouseDownEvent.pageY-d.pageY))>=this.options.distance)},_mouseDelayMet:function(d){return this.mouseDelayMet},_mouseStart:function(d){},_mouseDrag:function(d){},_mouseStop:function(d){},_mouseCapture:function(d){return true}})})(jQuery);(function(c,d){c.widget("ui.resizable",c.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1000},_create:function(){var f=this,k=this.options;this.element.addClass("ui-resizable");c.extend(this,{_aspectRatio:!!(k.aspectRatio),aspectRatio:k.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:k.helper||k.ghost||k.animate?k.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){this.element.wrap(c('
    ').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=k.handles||(!c(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all"){this.handles="n,e,s,w,se,sw,ne,nw"}var l=this.handles.split(",");this.handles={};for(var g=0;g');if(/sw|se|ne|nw/.test(j)){h.css({zIndex:++k.zIndex})}if("se"==j){h.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[j]=".ui-resizable-"+j;this.element.append(h)}}this._renderAxis=function(q){q=q||this.element;for(var n in this.handles){if(this.handles[n].constructor==String){this.handles[n]=c(this.handles[n],this.element).show()}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var o=c(this.handles[n],this.element),p=0;p=/sw|ne|nw|se|n|s/.test(n)?o.outerHeight():o.outerWidth();var m=["padding",/ne|nw|n/.test(n)?"Top":/se|sw|s/.test(n)?"Bottom":/^e$/.test(n)?"Right":"Left"].join("");q.css(m,p);this._proportionallyResize()}if(!c(this.handles[n]).length){continue}}};this._renderAxis(this.element);this._handles=c(".ui-resizable-handle",this.element).disableSelection();this._handles.mouseover(function(){if(!f.resizing){if(this.className){var i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}f.axis=i&&i[1]?i[1]:"se"}});if(k.autoHide){this._handles.hide();c(this.element).addClass("ui-resizable-autohide").hover(function(){if(k.disabled){return}c(this).removeClass("ui-resizable-autohide");f._handles.show()},function(){if(k.disabled){return}if(!f.resizing){c(this).addClass("ui-resizable-autohide");f._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var e=function(g){c(g).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){e(this.element);var f=this.element;f.after(this.originalElement.css({position:f.css("position"),width:f.outerWidth(),height:f.outerHeight(),top:f.css("top"),left:f.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);e(this.originalElement);return this},_mouseCapture:function(f){var g=false;for(var e in this.handles){if(c(this.handles[e])[0]==f.target){g=true}}return !this.options.disabled&&g},_mouseStart:function(g){var j=this.options,f=this.element.position(),e=this.element;this.resizing=true;this.documentScroll={top:c(document).scrollTop(),left:c(document).scrollLeft()};if(e.is(".ui-draggable")||(/absolute/).test(e.css("position"))){e.css({position:"absolute",top:f.top,left:f.left})}this._renderProxy();var k=b(this.helper.css("left")),h=b(this.helper.css("top"));if(j.containment){k+=c(j.containment).scrollLeft()||0;h+=c(j.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:k,top:h};this.size=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalSize=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalPosition={left:k,top:h};this.sizeDiff={width:e.outerWidth()-e.width(),height:e.outerHeight()-e.height()};this.originalMousePosition={left:g.pageX,top:g.pageY};this.aspectRatio=(typeof j.aspectRatio=="number")?j.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);var i=c(".ui-resizable-"+this.axis).css("cursor");c("body").css("cursor",i=="auto"?this.axis+"-resize":i);e.addClass("ui-resizable-resizing");this._propagate("start",g);return true},_mouseDrag:function(e){var h=this.helper,g=this.options,m={},q=this,j=this.originalMousePosition,n=this.axis;var r=(e.pageX-j.left)||0,p=(e.pageY-j.top)||0;var i=this._change[n];if(!i){return false}var l=i.apply(this,[e,r,p]),k=c.browser.msie&&c.browser.version<7,f=this.sizeDiff;this._updateVirtualBoundaries(e.shiftKey);if(this._aspectRatio||e.shiftKey){l=this._updateRatio(l,e)}l=this._respectSize(l,e);this._propagate("resize",e);h.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()}this._updateCache(l);this._trigger("resize",e,this.ui());return false},_mouseStop:function(h){this.resizing=false;var i=this.options,m=this;if(this._helper){var g=this._proportionallyResizeElements,e=g.length&&(/textarea/i).test(g[0].nodeName),f=e&&c.ui.hasScroll(g[0],"left")?0:m.sizeDiff.height,k=e?0:m.sizeDiff.width;var n={width:(m.helper.width()-k),height:(m.helper.height()-f)},j=(parseInt(m.element.css("left"),10)+(m.position.left-m.originalPosition.left))||null,l=(parseInt(m.element.css("top"),10)+(m.position.top-m.originalPosition.top))||null;if(!i.animate){this.element.css(c.extend(n,{top:l,left:j}))}m.helper.height(m.size.height);m.helper.width(m.size.width);if(this._helper&&!i.animate){this._proportionallyResize()}}c("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",h);if(this._helper){this.helper.remove()}return false},_updateVirtualBoundaries:function(g){var j=this.options,i,h,f,k,e;e={minWidth:a(j.minWidth)?j.minWidth:0,maxWidth:a(j.maxWidth)?j.maxWidth:Infinity,minHeight:a(j.minHeight)?j.minHeight:0,maxHeight:a(j.maxHeight)?j.maxHeight:Infinity};if(this._aspectRatio||g){i=e.minHeight*this.aspectRatio;f=e.minWidth/this.aspectRatio;h=e.maxHeight*this.aspectRatio;k=e.maxWidth/this.aspectRatio;if(i>e.minWidth){e.minWidth=i}if(f>e.minHeight){e.minHeight=f}if(hl.width),s=a(l.height)&&i.minHeight&&(i.minHeight>l.height);if(h){l.width=i.minWidth}if(s){l.height=i.minHeight}if(t){l.width=i.maxWidth}if(m){l.height=i.maxHeight}var f=this.originalPosition.left+this.originalSize.width,p=this.position.top+this.size.height;var k=/sw|nw|w/.test(q),e=/nw|ne|n/.test(q);if(h&&k){l.left=f-i.minWidth}if(t&&k){l.left=f-i.maxWidth}if(s&&e){l.top=p-i.minHeight}if(m&&e){l.top=p-i.maxHeight}var n=!l.width&&!l.height;if(n&&!l.left&&l.top){l.top=null}else{if(n&&!l.top&&l.left){l.left=null}}return l},_proportionallyResize:function(){var k=this.options;if(!this._proportionallyResizeElements.length){return}var g=this.helper||this.element;for(var f=0;f');var e=c.browser.msie&&c.browser.version<7,g=(e?1:0),h=(e?2:-1);this.helper.addClass(this._helper).css({width:this.element.outerWidth()+h,height:this.element.outerHeight()+h,position:"absolute",left:this.elementOffset.left-g+"px",top:this.elementOffset.top-g+"px",zIndex:++i.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}},_change:{e:function(g,f,e){return{width:this.originalSize.width+f}},w:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{left:i.left+f,width:g.width-f}},n:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{top:i.top+e,height:g.height-e}},s:function(g,f,e){return{height:this.originalSize.height+e}},se:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},sw:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[g,f,e]))},ne:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},nw:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[g,f,e]))}},_propagate:function(f,e){c.ui.plugin.call(this,f,[e,this.ui()]);(f!="resize"&&this._trigger(f,e,this.ui()))},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});c.extend(c.ui.resizable,{version:"1.8.18"});c.ui.plugin.add("resizable","alsoResize",{start:function(f,g){var e=c(this).data("resizable"),i=e.options;var h=function(j){c(j).each(function(){var k=c(this);k.data("resizable-alsoresize",{width:parseInt(k.width(),10),height:parseInt(k.height(),10),left:parseInt(k.css("left"),10),top:parseInt(k.css("top"),10)})})};if(typeof(i.alsoResize)=="object"&&!i.alsoResize.parentNode){if(i.alsoResize.length){i.alsoResize=i.alsoResize[0];h(i.alsoResize)}else{c.each(i.alsoResize,function(j){h(j)})}}else{h(i.alsoResize)}},resize:function(g,i){var f=c(this).data("resizable"),j=f.options,h=f.originalSize,l=f.originalPosition;var k={height:(f.size.height-h.height)||0,width:(f.size.width-h.width)||0,top:(f.position.top-l.top)||0,left:(f.position.left-l.left)||0},e=function(m,n){c(m).each(function(){var q=c(this),r=c(this).data("resizable-alsoresize"),p={},o=n&&n.length?n:q.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];c.each(o,function(s,u){var t=(r[u]||0)+(k[u]||0);if(t&&t>=0){p[u]=t||null}});q.css(p)})};if(typeof(j.alsoResize)=="object"&&!j.alsoResize.nodeType){c.each(j.alsoResize,function(m,n){e(m,n)})}else{e(j.alsoResize)}},stop:function(e,f){c(this).removeData("resizable-alsoresize")}});c.ui.plugin.add("resizable","animate",{stop:function(i,n){var p=c(this).data("resizable"),j=p.options;var h=p._proportionallyResizeElements,e=h.length&&(/textarea/i).test(h[0].nodeName),f=e&&c.ui.hasScroll(h[0],"left")?0:p.sizeDiff.height,l=e?0:p.sizeDiff.width;var g={width:(p.size.width-l),height:(p.size.height-f)},k=(parseInt(p.element.css("left"),10)+(p.position.left-p.originalPosition.left))||null,m=(parseInt(p.element.css("top"),10)+(p.position.top-p.originalPosition.top))||null;p.element.animate(c.extend(g,m&&k?{top:m,left:k}:{}),{duration:j.animateDuration,easing:j.animateEasing,step:function(){var o={width:parseInt(p.element.css("width"),10),height:parseInt(p.element.css("height"),10),top:parseInt(p.element.css("top"),10),left:parseInt(p.element.css("left"),10)};if(h&&h.length){c(h[0]).css({width:o.width,height:o.height})}p._updateCache(o);p._propagate("resize",i)}})}});c.ui.plugin.add("resizable","containment",{start:function(f,r){var t=c(this).data("resizable"),j=t.options,l=t.element;var g=j.containment,k=(g instanceof c)?g.get(0):(/parent/.test(g))?l.parent().get(0):g;if(!k){return}t.containerElement=c(k);if(/document/.test(g)||g==document){t.containerOffset={left:0,top:0};t.containerPosition={left:0,top:0};t.parentData={element:c(document),left:0,top:0,width:c(document).width(),height:c(document).height()||document.body.parentNode.scrollHeight}}else{var n=c(k),i=[];c(["Top","Right","Left","Bottom"]).each(function(p,o){i[p]=b(n.css("padding"+o))});t.containerOffset=n.offset();t.containerPosition=n.position();t.containerSize={height:(n.innerHeight()-i[3]),width:(n.innerWidth()-i[1])};var q=t.containerOffset,e=t.containerSize.height,m=t.containerSize.width,h=(c.ui.hasScroll(k,"left")?k.scrollWidth:m),s=(c.ui.hasScroll(k)?k.scrollHeight:e);t.parentData={element:k,left:q.left,top:q.top,width:h,height:s}}},resize:function(g,q){var t=c(this).data("resizable"),i=t.options,f=t.containerSize,p=t.containerOffset,m=t.size,n=t.position,r=t._aspectRatio||g.shiftKey,e={top:0,left:0},h=t.containerElement;if(h[0]!=document&&(/static/).test(h.css("position"))){e=p}if(n.left<(t._helper?p.left:0)){t.size.width=t.size.width+(t._helper?(t.position.left-p.left):(t.position.left-e.left));if(r){t.size.height=t.size.width/i.aspectRatio}t.position.left=i.helper?p.left:0}if(n.top<(t._helper?p.top:0)){t.size.height=t.size.height+(t._helper?(t.position.top-p.top):t.position.top);if(r){t.size.width=t.size.height*i.aspectRatio}t.position.top=t._helper?p.top:0}t.offset.left=t.parentData.left+t.position.left;t.offset.top=t.parentData.top+t.position.top;var l=Math.abs((t._helper?t.offset.left-e.left:(t.offset.left-e.left))+t.sizeDiff.width),s=Math.abs((t._helper?t.offset.top-e.top:(t.offset.top-p.top))+t.sizeDiff.height);var k=t.containerElement.get(0)==t.element.parent().get(0),j=/relative|absolute/.test(t.containerElement.css("position"));if(k&&j){l-=t.parentData.left}if(l+t.size.width>=t.parentData.width){t.size.width=t.parentData.width-l;if(r){t.size.height=t.size.width/t.aspectRatio}}if(s+t.size.height>=t.parentData.height){t.size.height=t.parentData.height-s;if(r){t.size.width=t.size.height*t.aspectRatio}}},stop:function(f,n){var q=c(this).data("resizable"),g=q.options,l=q.position,m=q.containerOffset,e=q.containerPosition,i=q.containerElement;var j=c(q.helper),r=j.offset(),p=j.outerWidth()-q.sizeDiff.width,k=j.outerHeight()-q.sizeDiff.height;if(q._helper&&!g.animate&&(/relative/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}if(q._helper&&!g.animate&&(/static/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}}});c.ui.plugin.add("resizable","ghost",{start:function(g,h){var e=c(this).data("resizable"),i=e.options,f=e.size;e.ghost=e.originalElement.clone();e.ghost.css({opacity:0.25,display:"block",position:"relative",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof i.ghost=="string"?i.ghost:"");e.ghost.appendTo(e.helper)},resize:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost){e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})}},stop:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost&&e.helper){e.helper.get(0).removeChild(e.ghost.get(0))}}});c.ui.plugin.add("resizable","grid",{resize:function(e,m){var p=c(this).data("resizable"),h=p.options,k=p.size,i=p.originalSize,j=p.originalPosition,n=p.axis,l=h._aspectRatio||e.shiftKey;h.grid=typeof h.grid=="number"?[h.grid,h.grid]:h.grid;var g=Math.round((k.width-i.width)/(h.grid[0]||1))*(h.grid[0]||1),f=Math.round((k.height-i.height)/(h.grid[1]||1))*(h.grid[1]||1);if(/^(se|s|e)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f}else{if(/^(ne)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f}else{if(/^(sw)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.left=j.left-g}else{p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f;p.position.left=j.left-g}}}}});var b=function(e){return parseInt(e,10)||0};var a=function(e){return !isNaN(parseInt(e,10))}})(jQuery);/*! * jQuery hashchange event - v1.3 - 7/21/2010 * http://benalman.com/projects/jquery-hashchange-plugin/ - * + * * Copyright (c) 2010 "Cowboy" Ben Alman * Dual licensed under the MIT and GPL licenses. * http://benalman.com/about/license/ @@ -112,4 +84,4 @@ * * Licensed MIT */ -(function(a){if(typeof define==="function"&&define.amd){define(["jquery"],a)}else{if(typeof module==="object"&&typeof module.exports==="object"){module.exports=a(require("jquery"))}else{a(jQuery)}}}(function(a){var b=[],e=!!window.createPopup,f=false,d="ontouchstart" in window,h=false,g=window.requestAnimationFrame||function(l){return setTimeout(l,1000/60)},c=window.cancelAnimationFrame||function(l){clearTimeout(l)};function k(m){var n=".smartmenus_mouse";if(!h&&!m){var o=true,l=null;a(document).bind(i([["mousemove",function(s){var t={x:s.pageX,y:s.pageY,timeStamp:new Date().getTime()};if(l){var q=Math.abs(l.x-t.x),p=Math.abs(l.y-t.y);if((q>0||p>0)&&q<=2&&p<=2&&t.timeStamp-l.timeStamp<=300){f=true;if(o){var r=a(s.target).closest("a");if(r.is("a")){a.each(b,function(){if(a.contains(this.$root[0],r[0])){this.itemEnter({currentTarget:r[0]});return false}})}o=false}}}l=t}],[d?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut",function(p){if(j(p.originalEvent)){f=false}}]],n));h=true}else{if(h&&m){a(document).unbind(n);h=false}}}function j(l){return !/^(4|mouse)$/.test(l.pointerType)}function i(l,n){if(!n){n=""}var m={};a.each(l,function(o,p){m[p[0].split(" ").join(n+" ")+n]=p[1]});return m}a.SmartMenus=function(m,l){this.$root=a(m);this.opts=l;this.rootId="";this.accessIdPrefix="";this.$subArrow=null;this.activatedItems=[];this.visibleSubMenus=[];this.showTimeout=0;this.hideTimeout=0;this.scrollTimeout=0;this.clickActivated=false;this.focusActivated=false;this.zIndexInc=0;this.idInc=0;this.$firstLink=null;this.$firstSub=null;this.disabled=false;this.$disableOverlay=null;this.$touchScrollingSub=null;this.cssTransforms3d="perspective" in m.style||"webkitPerspective" in m.style;this.wasCollapsible=false;this.init()};a.extend(a.SmartMenus,{hideAll:function(){a.each(b,function(){this.menuHideAll()})},destroy:function(){while(b.length){b[0].destroy()}k(true)},prototype:{init:function(n){var l=this;if(!n){b.push(this);this.rootId=(new Date().getTime()+Math.random()+"").replace(/\D/g,"");this.accessIdPrefix="sm-"+this.rootId+"-";if(this.$root.hasClass("sm-rtl")){this.opts.rightToLeftSubMenus=true}var r=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).bind(i([["mouseover focusin",a.proxy(this.rootOver,this)],["mouseout focusout",a.proxy(this.rootOut,this)],["keydown",a.proxy(this.rootKeyDown,this)]],r)).delegate("a",i([["mouseenter",a.proxy(this.itemEnter,this)],["mouseleave",a.proxy(this.itemLeave,this)],["mousedown",a.proxy(this.itemDown,this)],["focus",a.proxy(this.itemFocus,this)],["blur",a.proxy(this.itemBlur,this)],["click",a.proxy(this.itemClick,this)]],r));r+=this.rootId;if(this.opts.hideOnClick){a(document).bind(i([["touchstart",a.proxy(this.docTouchStart,this)],["touchmove",a.proxy(this.docTouchMove,this)],["touchend",a.proxy(this.docTouchEnd,this)],["click",a.proxy(this.docClick,this)]],r))}a(window).bind(i([["resize orientationchange",a.proxy(this.winResize,this)]],r));if(this.opts.subIndicators){this.$subArrow=a("").addClass("sub-arrow");if(this.opts.subIndicatorsText){this.$subArrow.html(this.opts.subIndicatorsText)}}k()}this.$firstSub=this.$root.find("ul").each(function(){l.menuInit(a(this))}).eq(0);this.$firstLink=this.$root.find("a").eq(0);if(this.opts.markCurrentItem){var p=/(index|default)\.[^#\?\/]*/i,m=/#.*/,q=window.location.href.replace(p,""),o=q.replace(m,"");this.$root.find("a").each(function(){var s=this.href.replace(p,""),t=a(this);if(s==q||s==o){t.addClass("current");if(l.opts.markCurrentTree){t.parentsUntil("[data-smartmenus-id]","ul").each(function(){a(this).dataSM("parent-a").addClass("current")})}}})}this.wasCollapsible=this.isCollapsible()},destroy:function(m){if(!m){var n=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").unbind(n).undelegate(n);n+=this.rootId;a(document).unbind(n);a(window).unbind(n);if(this.opts.subIndicators){this.$subArrow=null}}this.menuHideAll();var l=this;this.$root.find("ul").each(function(){var o=a(this);if(o.dataSM("scroll-arrows")){o.dataSM("scroll-arrows").remove()}if(o.dataSM("shown-before")){if(l.opts.subMenusMinWidth||l.opts.subMenusMaxWidth){o.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap")}if(o.dataSM("scroll-arrows")){o.dataSM("scroll-arrows").remove()}o.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})}if((o.attr("id")||"").indexOf(l.accessIdPrefix)==0){o.removeAttr("id")}}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("ie-shim").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded");this.$root.find("a.has-submenu").each(function(){var o=a(this);if(o.attr("id").indexOf(l.accessIdPrefix)==0){o.removeAttr("id")}}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub");if(this.opts.subIndicators){this.$root.find("span.sub-arrow").remove()}if(this.opts.markCurrentItem){this.$root.find("a.current").removeClass("current")}if(!m){this.$root=null;this.$firstLink=null;this.$firstSub=null;if(this.$disableOverlay){this.$disableOverlay.remove();this.$disableOverlay=null}b.splice(a.inArray(this,b),1)}},disable:function(l){if(!this.disabled){this.menuHideAll();if(!l&&!this.opts.isPopup&&this.$root.is(":visible")){var m=this.$root.offset();this.$disableOverlay=a('
    ').css({position:"absolute",top:m.top,left:m.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(true),opacity:0}).appendTo(document.body)}this.disabled=true}},docClick:function(l){if(this.$touchScrollingSub){this.$touchScrollingSub=null;return}if(this.visibleSubMenus.length&&!a.contains(this.$root[0],l.target)||a(l.target).is("a")){this.menuHideAll()}},docTouchEnd:function(m){if(!this.lastTouch){return}if(this.visibleSubMenus.length&&(this.lastTouch.x2===undefined||this.lastTouch.x1==this.lastTouch.x2)&&(this.lastTouch.y2===undefined||this.lastTouch.y1==this.lastTouch.y2)&&(!this.lastTouch.target||!a.contains(this.$root[0],this.lastTouch.target))){if(this.hideTimeout){clearTimeout(this.hideTimeout);this.hideTimeout=0}var l=this;this.hideTimeout=setTimeout(function(){l.menuHideAll()},350)}this.lastTouch=null},docTouchMove:function(m){if(!this.lastTouch){return}var l=m.originalEvent.touches[0];this.lastTouch.x2=l.pageX;this.lastTouch.y2=l.pageY},docTouchStart:function(m){var l=m.originalEvent.touches[0];this.lastTouch={x1:l.pageX,y1:l.pageY,target:l.target}},enable:function(){if(this.disabled){if(this.$disableOverlay){this.$disableOverlay.remove();this.$disableOverlay=null}this.disabled=false}},getClosestMenu:function(m){var l=a(m).closest("ul");while(l.dataSM("in-mega")){l=l.parent().closest("ul")}return l[0]||null},getHeight:function(l){return this.getOffset(l,true)},getOffset:function(n,l){var m;if(n.css("display")=="none"){m={position:n[0].style.position,visibility:n[0].style.visibility};n.css({position:"absolute",visibility:"hidden"}).show()}var o=n[0].getBoundingClientRect&&n[0].getBoundingClientRect(),p=o&&(l?o.height||o.bottom-o.top:o.width||o.right-o.left);if(!p&&p!==0){p=l?n[0].offsetHeight:n[0].offsetWidth}if(m){n.hide().css(m)}return p},getStartZIndex:function(l){var m=parseInt(this[l?"$root":"$firstSub"].css("z-index"));if(!l&&isNaN(m)){m=parseInt(this.$root.css("z-index"))}return !isNaN(m)?m:1},getTouchPoint:function(l){return l.touches&&l.touches[0]||l.changedTouches&&l.changedTouches[0]||l},getViewport:function(l){var m=l?"Height":"Width",o=document.documentElement["client"+m],n=window["inner"+m];if(n){o=Math.min(o,n)}return o},getViewportHeight:function(){return this.getViewport(true)},getViewportWidth:function(){return this.getViewport()},getWidth:function(l){return this.getOffset(l)},handleEvents:function(){return !this.disabled&&this.isCSSOn()},handleItemEvents:function(l){return this.handleEvents()&&!this.isLinkInMegaMenu(l)},isCollapsible:function(){return this.$firstSub.css("position")=="static"},isCSSOn:function(){return this.$firstLink.css("display")=="block"},isFixed:function(){var l=this.$root.css("position")=="fixed";if(!l){this.$root.parentsUntil("body").each(function(){if(a(this).css("position")=="fixed"){l=true;return false}})}return l},isLinkInMegaMenu:function(l){return a(this.getClosestMenu(l[0])).hasClass("mega-menu")},isTouchMode:function(){return !f||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(p,l){var n=p.closest("ul"),q=n.dataSM("level");if(q>1&&(!this.activatedItems[q-2]||this.activatedItems[q-2][0]!=n.dataSM("parent-a")[0])){var m=this;a(n.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(n).each(function(){m.itemActivate(a(this).dataSM("parent-a"))})}if(!this.isCollapsible()||l){this.menuHideSubMenus(!this.activatedItems[q-1]||this.activatedItems[q-1][0]!=p[0]?q-1:q)}this.activatedItems[q-1]=p;if(this.$root.triggerHandler("activate.smapi",p[0])===false){return}var o=p.dataSM("sub");if(o&&(this.isTouchMode()||(!this.opts.showOnClick||this.clickActivated))){this.menuShow(o)}},itemBlur:function(m){var l=a(m.currentTarget);if(!this.handleItemEvents(l)){return}this.$root.triggerHandler("blur.smapi",l[0])},itemClick:function(o){var n=a(o.currentTarget);if(!this.handleItemEvents(n)){return}if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==n.closest("ul")[0]){this.$touchScrollingSub=null;o.stopPropagation();return false}if(this.$root.triggerHandler("click.smapi",n[0])===false){return false}var p=a(o.target).is("span.sub-arrow"),m=n.dataSM("sub"),l=m?m.dataSM("level")==2:false;if(m&&!m.is(":visible")){if(this.opts.showOnClick&&l){this.clickActivated=true}this.itemActivate(n);if(m.is(":visible")){this.focusActivated=true;return false}}else{if(this.isCollapsible()&&p){this.itemActivate(n);this.menuHide(m);return false}}if(this.opts.showOnClick&&l||n.hasClass("disabled")||this.$root.triggerHandler("select.smapi",n[0])===false){return false}},itemDown:function(m){var l=a(m.currentTarget);if(!this.handleItemEvents(l)){return}l.dataSM("mousedown",true)},itemEnter:function(n){var m=a(n.currentTarget);if(!this.handleItemEvents(m)){return}if(!this.isTouchMode()){if(this.showTimeout){clearTimeout(this.showTimeout);this.showTimeout=0}var l=this;this.showTimeout=setTimeout(function(){l.itemActivate(m)},this.opts.showOnClick&&m.closest("ul").dataSM("level")==1?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",m[0])},itemFocus:function(m){var l=a(m.currentTarget);if(!this.handleItemEvents(l)){return}if(this.focusActivated&&(!this.isTouchMode()||!l.dataSM("mousedown"))&&(!this.activatedItems.length||this.activatedItems[this.activatedItems.length-1][0]!=l[0])){this.itemActivate(l,true)}this.$root.triggerHandler("focus.smapi",l[0])},itemLeave:function(m){var l=a(m.currentTarget);if(!this.handleItemEvents(l)){return}if(!this.isTouchMode()){l[0].blur();if(this.showTimeout){clearTimeout(this.showTimeout);this.showTimeout=0}}l.removeDataSM("mousedown");this.$root.triggerHandler("mouseleave.smapi",l[0])},menuHide:function(m){if(this.$root.triggerHandler("beforehide.smapi",m[0])===false){return}m.stop(true,true);if(m.css("display")!="none"){var l=function(){m.css("z-index","")};if(this.isCollapsible()){if(this.opts.collapsibleHideFunction){this.opts.collapsibleHideFunction.call(this,m,l)}else{m.hide(this.opts.collapsibleHideDuration,l)}}else{if(this.opts.hideFunction){this.opts.hideFunction.call(this,m,l)}else{m.hide(this.opts.hideDuration,l)}}if(m.dataSM("ie-shim")){m.dataSM("ie-shim").remove().css({"-webkit-transform":"",transform:""})}if(m.dataSM("scroll")){this.menuScrollStop(m);m.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).unbind(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()}m.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false");m.attr({"aria-expanded":"false","aria-hidden":"true"});var n=m.dataSM("level");this.activatedItems.splice(n-1,1);this.visibleSubMenus.splice(a.inArray(m,this.visibleSubMenus),1);this.$root.triggerHandler("hide.smapi",m[0])}},menuHideAll:function(){if(this.showTimeout){clearTimeout(this.showTimeout);this.showTimeout=0}var m=this.opts.isPopup?1:0;for(var l=this.visibleSubMenus.length-1;l>=m;l--){this.menuHide(this.visibleSubMenus[l])}if(this.opts.isPopup){this.$root.stop(true,true);if(this.$root.is(":visible")){if(this.opts.hideFunction){this.opts.hideFunction.call(this,this.$root)}else{this.$root.hide(this.opts.hideDuration)}if(this.$root.dataSM("ie-shim")){this.$root.dataSM("ie-shim").remove()}}}this.activatedItems=[];this.visibleSubMenus=[];this.clickActivated=false;this.focusActivated=false;this.zIndexInc=0;this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(n){for(var l=this.activatedItems.length-1;l>=n;l--){var m=this.activatedItems[l].dataSM("sub");if(m){this.menuHide(m)}}},menuIframeShim:function(l){if(e&&this.opts.overlapControlsInIE&&!l.dataSM("ie-shim")){l.dataSM("ie-shim",a("