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 6185f04 U--- 10 35 -- Ring graph
#> + attr: name (g/c), mutual (g/l), circular (g/l)
#> + edges from 6185f04:
#>  [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 caf5238 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 caf5238:
#>  [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