From 6e8fcfeba79305859aac42eb6ed20ceda1b6690c Mon Sep 17 00:00:00 2001 From: Arnaud Giersch Date: Tue, 5 Dec 2017 23:45:21 +0100 Subject: [PATCH] Remove unused code in xbt_graph. --- ChangeLog | 2 + include/xbt/graph.h | 14 ---- src/xbt/graph.c | 113 ------------------------------- src/xbt/graph_private.h | 15 ---- tools/cmake/DefinePackages.cmake | 1 - 5 files changed, 2 insertions(+), 143 deletions(-) delete mode 100644 src/xbt/graph_private.h diff --git a/ChangeLog b/ChangeLog index 572eda3a2d..6d5fd338f6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -23,6 +23,8 @@ SimGrid (3.18) NOT RELEASED YET (target: December 24 2017) - Define class simgrid::xbt::Path to manage file names. - Removed unused functions: - xbt/file.h: xbt_basename(), xbt_dirname(), xbt_getline() + - xbt/graph.h: xbt_graph_edge_get_length(), xbt_graph_edge_set_length, + xbt_graph_export_graphviz() - xbt/str.h: xbt_str_join() - xbt/heap.h: use std::priority_queue or boost::heap instead - xbt/swag.h: use boost::intrusive::list instead diff --git a/include/xbt/graph.h b/include/xbt/graph.h index 6c10b33e30..91ad42fe8f 100644 --- a/include/xbt/graph.h +++ b/include/xbt/graph.h @@ -28,8 +28,6 @@ typedef struct xbt_node { double position_x; /* positive value: negative means undefined */ double position_y; /* positive value: negative means undefined */ void *data; /* user data */ - void *xbtdata; /* private xbt data: should be reinitialized at the - beginning of your algorithm if you need to use it */ } s_xbt_node_t; /* edge structure */ @@ -39,9 +37,6 @@ typedef struct xbt_edge { xbt_node_t src; xbt_node_t dst; void *data; /* user data */ - void *xbtdata; /* private xbt data: should be reinitialized at the - beginning of your algorithm if you need to use it */ - double length; /* positive value: negative means undefined */ } s_xbt_edge_t; /* Graph structure */ @@ -52,8 +47,6 @@ typedef struct xbt_graph { xbt_dynar_t edges; unsigned short int directed; void *data; /* user data */ - void *xbtdata; /* private xbt data: should be reinitialized at the - beginning of your algorithm if you need to use it */ } s_xbt_graph_t; /* API */ @@ -67,9 +60,6 @@ XBT_PUBLIC(void) xbt_graph_edge_set_data(xbt_edge_t edge, void *data); XBT_PUBLIC(xbt_edge_t) xbt_graph_get_edge(xbt_graph_t g, xbt_node_t src, xbt_node_t dst); -XBT_PUBLIC(void) xbt_graph_edge_set_length(xbt_edge_t e, double length); -XBT_PUBLIC(double) xbt_graph_edge_get_length(xbt_edge_t e); - XBT_PUBLIC(void) xbt_graph_free_graph(xbt_graph_t g, void_f_pvoid_t node_free_function, void_f_pvoid_t edge_free_function, void_f_pvoid_t graph_free_function); @@ -79,10 +69,6 @@ XBT_PUBLIC(xbt_dynar_t) xbt_graph_node_get_outedges(xbt_node_t n); XBT_PUBLIC(xbt_node_t) xbt_graph_edge_get_source(xbt_edge_t e); XBT_PUBLIC(xbt_node_t) xbt_graph_edge_get_target(xbt_edge_t e); -XBT_PUBLIC(void) -xbt_graph_export_graphviz(xbt_graph_t g, const char* filename, const char*(node_name)(xbt_node_t n), - const char*(edge_name)(xbt_edge_t e)); - SG_END_DECL() #endif /* XBT_GRAPH_H */ /** @} */ diff --git a/src/xbt/graph.c b/src/xbt/graph.c index 121a842f6b..603b20c453 100644 --- a/src/xbt/graph.c +++ b/src/xbt/graph.c @@ -9,7 +9,6 @@ #include "xbt/sysdep.h" #include "xbt/log.h" #include "xbt/graph.h" -#include "graph_private.h" #include "xbt/dict.h" #include @@ -179,115 +178,3 @@ xbt_dynar_t xbt_graph_node_get_outedges(xbt_node_t n) { return n->out; } - -/** @brief Set the weight of the given edge */ -void xbt_graph_edge_set_length(xbt_edge_t e, double length) -{ - e->length = length; - -} - -/** @brief Get the length of a edge */ -double xbt_graph_edge_get_length(xbt_edge_t edge) -{ - return edge->length; -} - -/** @brief Floyd-Warshall algorithm for shortest path finding - * - * From wikipedia: - * - * The Floyd-Warshall algorithm takes as input an adjacency matrix representation of a weighted, directed graph (V, E). - * The weight of a path between two vertices is the sum of the weights of the edges along that path. The edges E of the - * graph may have negative weights, but the graph must not have any negative weight cycles. The algorithm computes, for - * each pair of vertices, the minimum weight among all paths between the two vertices. The running time complexity is - * Θ(|V|3). - */ -void xbt_floyd_algorithm(xbt_graph_t g, double *adj, double *d, xbt_node_t * p) -{ - unsigned long i; - unsigned long j; - unsigned long k; - unsigned long n = xbt_dynar_length(g->nodes); - - for (i = 0; i < n * n; i++) { - d[i] = adj[i]; - } - - for (i = 0; i < n; i++) { - for (j = 0; j < n; j++) { - if (d[i*n+j] > -1) { - p[i*n+j] = *((xbt_node_t *) xbt_dynar_get_ptr(g->nodes, i)); - } - } - } - - for (k = 0; k < n; k++) { - for (i = 0; i < n; i++) { - for (j = 0; j < n; j++) { - if (d[i * n + k] > -1 && d[k * n + j] > -1 && - (d[i * n + j] < 0 || d[i * n + j] > d[i * n + k] + d[k * n + j])) { - d[i * n + j] = d[i * n + k] + d[k * n + j]; - p[i * n + j] = p[k * n + j]; - } - } - } - } -} - -/** @brief Export the given graph in the GraphViz formatting for visualization */ -void xbt_graph_export_graphviz(xbt_graph_t g, const char *filename, const char *(node_name) (xbt_node_t), - const char *(edge_name) (xbt_edge_t)) -{ - unsigned int cursor = 0; - xbt_node_t node = NULL; - xbt_edge_t edge = NULL; - const char *name = NULL; - - FILE *file = fopen(filename, "w"); - xbt_assert(file, "Failed to open %s \n", filename); - - if (g->directed) - fprintf(file, "digraph test {\n"); - else - fprintf(file, "graph test {\n"); - - fprintf(file, " graph [overlap=scale]\n"); - - fprintf(file, " node [shape=box, style=filled]\n"); - fprintf(file, " node [width=.3, height=.3, style=filled, color=skyblue]\n\n"); - - xbt_dynar_foreach(g->nodes, cursor, node) { - if (node_name){ - fprintf(file, " \"%s\";\n", node_name(node)); - }else{ - fprintf(file, " \"%p\";\n", node); - } - } - xbt_dynar_foreach(g->edges, cursor, edge) { - const char *c; - const char *c_dir = "->"; - const char *c_ndir = "--"; - if (g->directed){ - c = c_dir; - }else{ - c = c_ndir; - } - if (node_name){ - const char *src_name = node_name(edge->src); - const char *dst_name = node_name(edge->dst); - fprintf(file, " \"%s\" %s \"%s\"", src_name, c, dst_name); - }else{ - fprintf(file, " \"%p\" %s \"%p\"", edge->src, c, edge->dst); - } - - if (edge_name){ - name = edge_name(edge); - if (name) - fprintf(file, "[label=\"%s\"]", name); - } - fprintf(file, ";\n"); - } - fprintf(file, "}\n"); - fclose(file); -} diff --git a/src/xbt/graph_private.h b/src/xbt/graph_private.h deleted file mode 100644 index 53bd160be5..0000000000 --- a/src/xbt/graph_private.h +++ /dev/null @@ -1,15 +0,0 @@ -/* Copyright (c) 2006-2017. The SimGrid Team. All rights reserved. */ - -/* This program is free software; you can redistribute it and/or modify it - * under the terms of the license (GNU LGPL) which comes with this package. */ - -#ifndef XBT_GRAPH_PRIVATE_H -#define XBT_GRAPH_PRIVATE_H - -#include "xbt/base.h" -#include "xbt/dynar.h" -#include "xbt/graph.h" - -XBT_PRIVATE void xbt_floyd_algorithm(xbt_graph_t g, double *adj, double *d, xbt_node_t * p); - -#endif diff --git a/tools/cmake/DefinePackages.cmake b/tools/cmake/DefinePackages.cmake index 814ba57c84..08d8e7a65a 100644 --- a/tools/cmake/DefinePackages.cmake +++ b/tools/cmake/DefinePackages.cmake @@ -66,7 +66,6 @@ set(EXTRA_DIST src/xbt/backtrace_dummy.cpp src/xbt/backtrace_linux.cpp src/xbt/dict_private.h - src/xbt/graph_private.h src/xbt/log_private.h src/xbt/mallocator_private.h -- 2.20.1