This function checks the reciprocal pair of the supplied edges.

## Usage

`which_mutual(graph, eids = E(graph), loops = TRUE)`

## Details

In a directed graph an (A,B) edge is mutual if the graph also includes a (B,A) directed edge.

Note that multi-graphs are not handled properly, i.e. if the graph contains two copies of (A,B) and one copy of (B,A), then these three edges are considered to be mutual.

Undirected graphs contain only mutual edges by definition.

## See also

`reciprocity()`

, `dyad_census()`

if you just
want some statistics about mutual edges.

Other structural.properties:
`bfs()`

,
`component_distribution()`

,
`connect()`

,
`constraint()`

,
`coreness()`

,
`degree()`

,
`dfs()`

,
`distance_table()`

,
`edge_density()`

,
`feedback_arc_set()`

,
`girth()`

,
`is_acyclic()`

,
`is_dag()`

,
`is_matching()`

,
`k_shortest_paths()`

,
`knn()`

,
`reciprocity()`

,
`subcomponent()`

,
`subgraph()`

,
`topo_sort()`

,
`transitivity()`

,
`unfold_tree()`

,
`which_multiple()`

## Author

Gabor Csardi csardi.gabor@gmail.com

## Examples

```
g <- sample_gnm(10, 50, directed = TRUE)
reciprocity(g)
#> [1] 0.52
dyad_census(g)
#> $mut
#> [1] 13
#>
#> $asym
#> [1] 24
#>
#> $null
#> [1] 8
#>
which_mutual(g)
#> [1] FALSE TRUE FALSE TRUE TRUE TRUE FALSE FALSE TRUE TRUE TRUE FALSE
#> [13] TRUE TRUE FALSE FALSE TRUE FALSE TRUE TRUE FALSE TRUE FALSE FALSE
#> [25] FALSE FALSE TRUE TRUE FALSE FALSE FALSE TRUE FALSE TRUE FALSE FALSE
#> [37] FALSE TRUE TRUE FALSE FALSE TRUE FALSE TRUE TRUE FALSE TRUE TRUE
#> [49] TRUE TRUE
sum(which_mutual(g)) / 2 == dyad_census(g)$mut
#> [1] TRUE
```