#ifndef GRAPH_H #define GRAPH_H #include void random_adjacency(const uint64_t vertex_count, uint64_t matrix[vertex_count][vertex_count]); void dfs(const uint64_t vertex_count, const uint64_t adjacency_matrix[vertex_count][vertex_count], const uint64_t vertex, int visited[vertex_count]); void calculate_distance_matrix(const uint64_t vertex_count, const uint64_t adjacency_matrix[vertex_count][vertex_count], uint64_t distance_matrix[vertex_count][vertex_count]); // returns 1 if it is a disconnected graph and just in case it was on purpose, // all values in eccentricities will be set to UINT64_MAX int get_eccentricities(const uint64_t vertex_count, const uint64_t distance_matrix[vertex_count][vertex_count], uint64_t eccentricities[vertex_count]); // returns the radius or UINT64_MAX in case of a disconnected graph uint64_t get_radius(const uint64_t vertex_count, const uint64_t eccentricities[vertex_count]); // returns the diameter or UINT64_MAX in case of a disconnected graph uint64_t get_diameter(const uint64_t vertex_count, const uint64_t eccentricities[vertex_count]); // in case of a disconnected graph, all nodes will be inside centre void get_centre(const uint64_t vertex_count, const uint64_t eccentricities[vertex_count], const uint64_t radius, uint64_t centre[vertex_count]); void calculate_path_matrix(const uint64_t vertex_count, const uint64_t adjacency_matrix[vertex_count][vertex_count], uint64_t path_matrix[vertex_count][vertex_count]); // please do not use this yet as the output is currently almost unreadable void find_components_basic(const uint64_t vertex_count, const uint64_t path_matrix[vertex_count][vertex_count], uint64_t components[vertex_count][vertex_count]); void find_bridges_basic(const uint64_t vertex_count, const uint64_t adjacency_matrix[vertex_count][vertex_count], const uint64_t components[vertex_count][vertex_count], uint64_t bridges[vertex_count][2]); void find_articulations_basic(const uint64_t vertex_count, const uint64_t adjacency_matrix[vertex_count][vertex_count], const uint64_t components[vertex_count][vertex_count], uint64_t articulations[vertex_count]); #endif