Skip to content

Commit 538a245

Browse files
committed
add nautygraphs/Igraphs to docs/Project.toml; add list of extended functions to docs
1 parent 5b5ca70 commit 538a245

3 files changed

Lines changed: 43 additions & 3 deletions

File tree

docs/Project.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
[deps]
22
Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4"
33
Graphs = "86223c79-3864-5bf0-83f7-82e725a168b6"
4+
IGraphs = "647e90d3-2106-487c-adb4-c91fc07b96ea"
5+
NautyGraphs = "7509a0a4-015a-4167-b44b-0799a1a2605e"
46

57
[compat]
68
Documenter = "1"

docs/make.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using Documenter
22
using Graphs
3+
using NautyGraphs, IGraphs
34

45
# same for contributing and license
56
cp(

docs/src/ecosystem/graphalgorithms.md

Lines changed: 40 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
## Defined by Graphs.jl
44

5-
_Graphs.jl_ provides a number of graph algorithms, including [Cuts](@ref), [Cycles](@ref), and [Trees](@ref), among many others. All algorithms work on any graph type that conforms to the _Graphs.jl_ API.
5+
_Graphs.jl_ provides a number of graph algorithms, including [Cuts](@ref), [Cycles](@ref), and [Trees](@ref), among many others. The algorithms work on any graph type that conforms to the _Graphs.jl_ API.
66

77
## External algorithm packages
88

@@ -15,7 +15,44 @@ Several other packages implement additional graph algorithms:
1515

1616
## Interfaces to other graph libraries
1717

18-
Several packages make established graph libraries written in other languages accessible from within Julia and the Graphs.jl ecosystem:
18+
Several packages make established graph libraries written in other languages accessible from within Julia and the _Graphs.jl_ ecosystem:
1919

2020
- [IGraphs.jl](https://github.com/JuliaGraphs/IGraphs.jl) is a thin Julia wrapper around the C graphs library [igraph](https://igraph.org).
21-
- [NautyGraphs.jl](https://github.com/JuliaGraphs/NautyGraphs.jl) provides graph structures compatible with the graph isomorphism library [_nauty_](https://pallini.di.uniroma1.it), allowing for efficient isomorphism checking and canonization, as well as computing the properties of graph automorphism groups.
21+
- [NautyGraphs.jl](https://github.com/JuliaGraphs/NautyGraphs.jl) provides graph structures compatible with the graph isomorphism library [_nauty_](https://pallini.di.uniroma1.it), allowing for efficient isomorphism checking and canonization, as well as computing the properties of graph automorphism groups.
22+
23+
24+
## Dispatching to algorithm implementations in external packages
25+
26+
Apart from providing additional graph types and algorithms, many packages extend existing functions in _Graphs.jl_ with new backends. This can make it easier to use the additional algorithms from within _Graphs.jl_.
27+
28+
For example, _NautyGraphs.jl_ provides a new backend for graph isomorphism calculations:
29+
30+
```jldoctest
31+
julia> using Graphs, NautyGraphs
32+
33+
julia> g = star_graph(5)
34+
{5, 4} undirected simple Int64 graph
35+
36+
julia> Graphs.Experimental.has_isomorph(g, g, NautyAlg())
37+
true
38+
```
39+
40+
Here, dispatching via `NautyAlg()` implicitly converts `g` to a _nauty_-compatible format and uses _nauty_ for the isomorphism computation.
41+
42+
### Functions extended by IGraphs.jl
43+
44+
A list of functions extended by _IGraphs.jl_ can be obtained with
45+
46+
```@example
47+
using IGraphs
48+
IGraphs.igraphalg_methods()
49+
```
50+
51+
### Functions extended by NautyGraphs.jl
52+
53+
A list of functions extended by _NautyGraphs.jl_ can be obtained with
54+
55+
```@example
56+
using NautyGraphs
57+
NautyGraphs.nautyalg_methods()
58+
```

0 commit comments

Comments
 (0)