category

# `graph_common`

Common graph predicates shared by all graph objects. Uses self-dispatch to call object-specific predicates such as `neighbors/3`, `vertices/2`, and `edges/2`.

Availability:
`logtalk_load(graphs(loader))`
Author: Paulo Moura
Version: 1:1:0
Date: 2026-04-17
Compilation flags:
`static`
Implements:
`public` graph_protocol
Uses:
list
set
Remarks:
(none)
Inherited public predicates:
add_edges/3 add_vertex/3 add_vertices/3 all_pairs_min_paths/2 all_pairs_min_predecessors/2 breadth_first_order/3 delete_edges/3 delete_vertex/3 delete_vertices/3 depth_first_order/3 edges/2 empty/1 has_path/3 is_bipartite/1 is_complete/1 is_sparse/1 max_path/5 min_distances/3 min_path/5 min_predecessors/3 neighbors/3 new/1 new/2 new/3 number_of_edges/2 number_of_vertices/2 path/3 reachable/3 vertices/2

## Public predicates

(no local declarations; see entity ancestors if any)

## Protected predicates

### `pairs_to_edges/2`

Converts a list of `Vertex-Neighbors` pairs from a dictionary into a flat list of `Vertex1-Vertex2` edges.

Compilation flags:
`static`
Template:
`pairs_to_edges(Pairs,Edges)`
Mode and number of proofs:
`pairs_to_edges(+list(pair),-list)` - `one`

### `vertex_neighbors_to_edges/4`

Converts a neighbor list for a vertex into edges using a difference list.

Compilation flags:
`static`
Template:
`vertex_neighbors_to_edges(Neighbors,Vertex,Edges,RestEdges)`
Mode and number of proofs:
`vertex_neighbors_to_edges(+list,+vertex,-list,-list)` - `one`

### `wpairs_to_edges/2`

Converts a list of `Vertex-WNeighbors` pairs from a dictionary into a flat list of `(Vertex1-Vertex2)-Weight` weighted edges.

Compilation flags:
`static`
Template:
`wpairs_to_edges(Pairs,Edges)`
Mode and number of proofs:
`wpairs_to_edges(+list(pair),-list)` - `one`

### `wvertex_neighbors_to_edges/4`

Converts a weighted neighbor list for a vertex into weighted edges using a difference list.

Compilation flags:
`static`
Template:
`wvertex_neighbors_to_edges(WNeighbors,Vertex,Edges,RestEdges)`
Mode and number of proofs:
`wvertex_neighbors_to_edges(+list,+vertex,-list,-list)` - `one`

## Private predicates

(no local declarations; see entity ancestors if any)

## Operators

(none)