Skip to contents

A complementer graph contains all edges that were not present in the input graph.

Usage

complementer(graph, loops = FALSE)

Arguments

graph

The input graph, can be directed or undirected.

loops

Logical constant, whether to generate loop edges.

Value

A new graph object.

Details

complementer() creates the complementer of a graph. Only edges which are not present in the original graph will be included in the new graph.

complementer() keeps graph and vertex attriubutes, edge attributes are lost.

Author

Gabor Csardi csardi.gabor@gmail.com

Examples


## Complementer of a ring
g <- make_ring(10)
complementer(g)
#> IGRAPH 920fc68 U--- 10 35 -- Ring graph
#> + attr: name (g/c), mutual (g/l), circular (g/l)
#> + edges from 920fc68:
#>  [1] 1-- 9 1-- 8 1-- 7 1-- 6 1-- 5 1-- 4 1-- 3 2--10 2-- 9 2-- 8 2-- 7 2-- 6
#> [13] 2-- 5 2-- 4 3--10 3-- 9 3-- 8 3-- 7 3-- 6 3-- 5 4--10 4-- 9 4-- 8 4-- 7
#> [25] 4-- 6 5--10 5-- 9 5-- 8 5-- 7 6--10 6-- 9 6-- 8 7--10 7-- 9 8--10

## A graph and its complementer give together the full graph
g <- make_ring(10)
gc <- complementer(g)
gu <- union(g, gc)
gu
#> IGRAPH a22b3c2 U--- 10 45 -- 
#> + attr: name_1 (g/c), name_2 (g/c), mutual_1 (g/l), mutual_2 (g/l),
#> | circular_1 (g/l), circular_2 (g/l)
#> + edges from a22b3c2:
#>  [1] 9--10 8--10 8-- 9 7--10 7-- 9 7-- 8 6--10 6-- 9 6-- 8 6-- 7 5--10 5-- 9
#> [13] 5-- 8 5-- 7 5-- 6 4--10 4-- 9 4-- 8 4-- 7 4-- 6 4-- 5 3--10 3-- 9 3-- 8
#> [25] 3-- 7 3-- 6 3-- 5 3-- 4 2--10 2-- 9 2-- 8 2-- 7 2-- 6 2-- 5 2-- 4 2-- 3
#> [37] 1--10 1-- 9 1-- 8 1-- 7 1-- 6 1-- 5 1-- 4 1-- 3 1-- 2
graph.isomorphic(gu, make_full_graph(vcount(g)))
#> [1] TRUE