void CDLib::init_empty_graph(graph& g, size_t size) { g.clear(); if (g.is_directed()) g.convert_to_undirected(); if (g.is_weighted()) g.convert_to_unweighted(0); for (id_type i = 0; i < size; i++) g.add_node(); }
int st_number::check (graph& G) { if (G.is_directed()) return GTL_ERROR; pf = new pathfinder (G, st, s); return pf->is_valid() ? GTL_OK : GTL_ERROR; }
void CDLib::generate_erdos_renyi_graph(graph& g, id_type num_nodes, double p) { if (p >= 0 && p <= 1) { init_empty_graph(g, num_nodes); RandomGenerator<double> p_gen(0, 1, 1); for (id_type i = 0; i < num_nodes; i++) for (id_type j = 0; j < num_nodes; j++) if ((!g.is_directed() && i < j) && p_gen.next() <= p) g.add_edge(i, j, 1); g.set_graph_name("er_" + T2str<id_type > (num_nodes) + "_" + T2str<double>(p)); } }
int mincut::check (graph& G) { if (!set_vars_executed) { return(GTL_ERROR); } if ((G.number_of_nodes() <= 1) || (!G.is_connected()) || (G.is_directed())) { return(GTL_ERROR); } return GTL_OK; }
int topsort::check (graph& G) { return G.is_directed() ? GTL_OK : GTL_ERROR; }