dgraph * copy_dgraph(dgraph *g)
Makes a copy of a complete deterministic directed graph.
Definition graphs.c:148
lgraph * dgraph_to_lgraph(dgraph *)
Conversion of a complete deterministic labeled graph into a standard labeled graph.
Definition graphs.c:759
lgraph * lgraph_mirror(lgraph *)
Computes the mirror of a directed labeled graph.
Definition graphs.c:233
graph * dgraph_to_graph(dgraph *)
Conversion of a deterministic labeled graph into a unlabeled graph.
Definition graphs.c:811
void lgraph_search_update(graph_stype, lgraph *, dequeue *, bool *, bool *)
Search in a labeled graph. A set of already visited vertices is taken as input. This set is updated b...
Definition graphs.c:306
void delete_lgraph(lgraph *)
Releases a directed graph.
Definition graphs.c:89
dgraph * create_dgraph_noedges(uint, uint)
Creates a complete deterministic directed graph without edges.
Definition graphs.c:117
lgraph * dgraph_mirror(dgraph *)
Computes the mirror of a complete deterministic directed labeled graph.
Definition graphs.c:248
graph * lgraph_to_graph_alpha(lgraph *, bool *)
Conversion of a standard labeled graph into a unlabeled graph. Restricted version.
Definition graphs.c:781
void dgraph_search_update(graph_stype, dgraph *, dequeue *, bool *, bool *)
Search in a desterministic complete labeled graph. A set of already visited vertices is taken as inpu...
Definition graphs.c:367
lgraph * ldgraphs_to_lgraph(uint, uint, uint,...)
Merging an arbitrary number of labeled graphs using the same set of vertices into a single labeled gr...
Definition graphs.c:698
graph * create_graph_noedges(uint)
Creates a directed unlabeled graph without edges.
Definition graphs.c:14
void delete_dgraph(dgraph *)
Release of a complete deterministic directed graph.
Definition graphs.c:139
graph * create_graph_selfloops(uint)
Creates a directed unlabeled graph whose only edges are self-loops.
lgraph * create_lgraph_noedges(uint, uint)
Creates a directed graph without edges.
Definition graphs.c:66
graph * lgraph_to_graph(lgraph *)
Conversion of a standard labeled graph into a unlabeled graph.
Definition graphs.c:770
dequeue * lgraph_search(graph_stype, lgraph *, dequeue *, bool *, bool *)
Search in a labeled graph. Reachable vertices are returned inside a dequeue sorted in increasing orde...
Definition graphs.c:347
dequeue * lgraph_reachable(lgraph *, dequeue *, uint)
Given a labeled graph, a list of vertices in this graph and a label, computes the list of all vertice...
Definition graphs.c:840
graph * graph_mirror(graph *)
Computes the mirror of a directed unlabeled graph.
Definition graphs.c:219
lgraph * copy_lgraph(lgraph *g)
Makes a copy of a labeled graph.
Definition graphs.c:104
dequeue * twin_dgraph_search(graph_stype, dgraph *, dgraph *, dequeue *, bool *, bool *)
Search in two deterministic complete labeled graphs (same set of vertices, same alphabet)....
Definition graphs.c:471
void delete_graph(graph *)
Releases a directed unlabeled graph.
Definition graphs.c:41
void twin_dgraph_search_update(graph_stype, dgraph *, dgraph *, dequeue *, bool *, bool *)
Search in two deterministic complete labeled graphs (same set of vertices, same alphabet)....
Definition graphs.c:426
dequeue * dgraph_search(graph_stype, dgraph *, dequeue *, bool *, bool *)
Search in a desterministic complete labeled graph. Reachable vertices are returned inside a dequeue s...
Definition graphs.c:403
int dgraph_nb_edges(dgraph *)
Computes the number of edges in a complete deterministic directed labeled graph.
Definition graphs.c:183
dgraph * dgraph_paths(dgraph *G, uint start)
Computes a path from a given strating vertex to all other reachable vertices in a directed unlabeled ...
Definition graphs.c:495
dgraph * dgraph_direct_product(dgraph *g1, dgraph *g2)
Computes the direct product of two deterministic directed labeled graphs.
Definition graphs.c:190
graph * copy_graph(graph *g)
Makes a copy of a directed graph.
Definition graphs.c:53
lgraph * merge_lgraphs(uint *, uint,...)
Disjoint merge of an arbitrary number of labeled graphs.
Definition graphs.c:563
graph * ldgraphs_to_graph(uint, uint, uint, uint,...)
Merging an arbitrary number of graphs using the same set of vertices into a single unlabeled graph.
Definition graphs.c:620
graph * merge_graphs(uint *, uint,...)
Disjoint merge of an arbitrary number of unlabeled graphs.
Definition graphs.c:528
void graph_search_update(graph_stype, graph *, dequeue *, bool *)
Searches in an unlabeled graph. A set of already visited vertices is taken as input....
Definition graphs.c:265
int graph_nb_edges(graph *)
Computes the number of edges in a directed unlabeled graph.
Definition graphs.c:165
graph * dgraph_to_graph_alpha(dgraph *, bool *)
Conversion of a deterministic labeled graph into a unlabeled graph. Restricted version.
Definition graphs.c:822
int lgraph_nb_edges(lgraph *)
Computes the number of edges in a directed labeled graph.
Definition graphs.c:173
graph_stype
Names for the two available algorithms for searches.
Definition graphs.h:279
dequeue * graph_search(graph_stype, graph *, dequeue *, bool *)
Searches in an unlabeled graph. Reachable vertices are returned inside a dequeue sorted in increasing...
Definition graphs.c:286
Type used to represent a dequeue of unsigned integers.
Definition type_dequeue.h:26
Type used to represent a complete deterministic directed labeled graph.
Definition graphs.h:73
uint size_graph
Number of vertices.
Definition graphs.h:74
uint ** edges
The edges: two dimensions array of size "size_graph * size_alpha" (actually contains pointers to the ...
Definition graphs.h:76
uint size_alpha
Number of labels.
Definition graphs.h:75
uint * storage
The storage of the edges (one dimension array of size size_graph * size_alpha).
Definition graphs.h:77
Type used to represent a directed unlabeled graph.
Definition graphs.h:42
dequeue ** edges
The edges: an array of size "size".
Definition graphs.h:44
uint size
Number of vertices.
Definition graphs.h:43
Type used to represent a directed labeled graph.
Definition graphs.h:57
uint size_alpha
Number of labels.
Definition graphs.h:59
uint size_graph
Number of vertices.
Definition graphs.h:58
dequeue *** edges
The edges: an array of arrays of size size_graph * size_alpha.
Definition graphs.h:60
Implementation of AVLs for representing sets of objects.
Implementation of generic binary heaps.
Implementation of dequeues of unsigned integers.
Types used to represent partitions. Includes the union-find algorithm.