diff --git a/doc/main.xml b/doc/main.xml new file mode 100644 index 000000000..61d5d1686 --- /dev/null +++ b/doc/main.xml @@ -0,0 +1,27 @@ + + + + +] +> + +<#Include SYSTEM "title.xml"> + + +<#Include SYSTEM "z-chap0.xml"> +<#Include SYSTEM "z-chap1.xml"> +<#Include SYSTEM "z-chap2.xml"> +<#Include SYSTEM "z-chap3.xml"> +<#Include SYSTEM "z-chap4.xml"> +<#Include SYSTEM "z-chap5.xml"> +<#Include SYSTEM "z-chap6.xml"> +<#Include SYSTEM "z-chap8.xml"> +<#Include SYSTEM "z-chap9.xml"> +<#Include SYSTEM "_AutoDocMainFile.xml"> + +<#Include SYSTEM "z-appA.xml"> + + + diff --git a/tst/standard/attr.tst b/tst/standard/attr.tst index c7f54b004..a1e53d63e 100644 --- a/tst/standard/attr.tst +++ b/tst/standard/attr.tst @@ -32,20 +32,20 @@ false gap> DigraphNrVertices(gr); 25 gap> DigraphSource(gr); -[ 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, - 5, 5, 5, 5, 6, 6, 6, 6, 6, 7, 7, 7, 8, 8, 8, 8, 8, 9, 9, 9, 9, 10, 10, 10, - 10, 10, 10, 10, 11, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 13, 14, 14, 14, - 15, 15, 16, 17, 17, 17, 17, 18, 18, 18, 18, 18, 19, 20, 20, 21, 21, 22, 22, +[ 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, + 5, 5, 5, 5, 6, 6, 6, 6, 6, 7, 7, 7, 8, 8, 8, 8, 8, 9, 9, 9, 9, 10, 10, 10, + 10, 10, 10, 10, 11, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 13, 14, 14, 14, + 15, 15, 16, 17, 17, 17, 17, 18, 18, 18, 18, 18, 19, 20, 20, 21, 21, 22, 22, 22, 23, 23, 23, 24, 24, 24, 24, 24, 24, 25, 25, 25 ] gap> HasDigraphSource(gr); true gap> HasDigraphRange(gr); true gap> DigraphRange(gr); -[ 12, 22, 17, 1, 10, 11, 23, 21, 21, 16, 15, 5, 22, 11, 12, 8, 10, 1, 21, 15, - 23, 5, 23, 8, 24, 20, 17, 25, 25, 5, 24, 22, 5, 2, 11, 8, 19, 18, 20, 13, - 3, 11, 15, 18, 12, 10, 8, 23, 15, 25, 8, 19, 17, 19, 2, 17, 21, 18, 9, 4, - 7, 3, 14, 10, 2, 11, 24, 14, 2, 21, 12, 9, 2, 11, 9, 21, 24, 16, 8, 8, 3, +[ 12, 22, 17, 1, 10, 11, 23, 21, 21, 16, 15, 5, 22, 11, 12, 8, 10, 1, 21, 15, + 23, 5, 23, 8, 24, 20, 17, 25, 25, 5, 24, 22, 5, 2, 11, 8, 19, 18, 20, 13, + 3, 11, 15, 18, 12, 10, 8, 23, 15, 25, 8, 19, 17, 19, 2, 17, 21, 18, 9, 4, + 7, 3, 14, 10, 2, 11, 24, 14, 2, 21, 12, 9, 2, 11, 9, 21, 24, 16, 8, 8, 3, 5, 6, 14, 2, 24, 24, 20, 19, 8, 20, 7, 1, 2, 15, 13, 9, 16, 12, 19 ] gap> gr := Digraph(nbs); @@ -54,20 +54,20 @@ false gap> HasDigraphRange(gr); false gap> DigraphRange(gr); -[ 12, 22, 17, 1, 10, 11, 23, 21, 21, 16, 15, 5, 22, 11, 12, 8, 10, 1, 21, 15, - 23, 5, 23, 8, 24, 20, 17, 25, 25, 5, 24, 22, 5, 2, 11, 8, 19, 18, 20, 13, - 3, 11, 15, 18, 12, 10, 8, 23, 15, 25, 8, 19, 17, 19, 2, 17, 21, 18, 9, 4, - 7, 3, 14, 10, 2, 11, 24, 14, 2, 21, 12, 9, 2, 11, 9, 21, 24, 16, 8, 8, 3, +[ 12, 22, 17, 1, 10, 11, 23, 21, 21, 16, 15, 5, 22, 11, 12, 8, 10, 1, 21, 15, + 23, 5, 23, 8, 24, 20, 17, 25, 25, 5, 24, 22, 5, 2, 11, 8, 19, 18, 20, 13, + 3, 11, 15, 18, 12, 10, 8, 23, 15, 25, 8, 19, 17, 19, 2, 17, 21, 18, 9, 4, + 7, 3, 14, 10, 2, 11, 24, 14, 2, 21, 12, 9, 2, 11, 9, 21, 24, 16, 8, 8, 3, 5, 6, 14, 2, 24, 24, 20, 19, 8, 20, 7, 1, 2, 15, 13, 9, 16, 12, 19 ] gap> HasDigraphSource(gr); true gap> HasDigraphRange(gr); true gap> DigraphSource(gr); -[ 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, - 5, 5, 5, 5, 6, 6, 6, 6, 6, 7, 7, 7, 8, 8, 8, 8, 8, 9, 9, 9, 9, 10, 10, 10, - 10, 10, 10, 10, 11, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 13, 14, 14, 14, - 15, 15, 16, 17, 17, 17, 17, 18, 18, 18, 18, 18, 19, 20, 20, 21, 21, 22, 22, +[ 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, + 5, 5, 5, 5, 6, 6, 6, 6, 6, 7, 7, 7, 8, 8, 8, 8, 8, 9, 9, 9, 9, 10, 10, 10, + 10, 10, 10, 10, 11, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 13, 14, 14, 14, + 15, 15, 16, 17, 17, 17, 17, 18, 18, 18, 18, 18, 19, 20, 20, 21, 21, 22, 22, 22, 23, 23, 23, 24, 24, 24, 24, 24, 24, 25, 25, 25 ] # DigraphDual @@ -76,8 +76,8 @@ gap> gr := Digraph([[6, 7], [6, 9], [1, 3, 4, 5, 8, 9], > [3, 4, 5, 6, 7, 8, 9, 10], [1, 3, 5, 7, 8, 9], [1, 2, 5], > [1, 2, 4, 6, 7, 8]]);; gap> OutNeighbours(DigraphDual(gr)); -[ [ 1, 2, 3, 4, 5, 8, 9, 10 ], [ 1, 2, 3, 4, 5, 7, 8, 10 ], [ 2, 6, 7, 10 ], - [ 8, 9 ], [ 2, 3, 4, 8, 9 ], [ 1, 3, 6, 7, 8 ], [ 1, 2 ], [ 2, 4, 6, 10 ], +[ [ 1, 2, 3, 4, 5, 8, 9, 10 ], [ 1, 2, 3, 4, 5, 7, 8, 10 ], [ 2, 6, 7, 10 ], + [ 8, 9 ], [ 2, 3, 4, 8, 9 ], [ 1, 3, 6, 7, 8 ], [ 1, 2 ], [ 2, 4, 6, 10 ], [ 3, 4, 6, 7, 8, 9, 10 ], [ 3, 5, 9, 10 ] ] gap> gr := Digraph(rec(DigraphVertices := ["a", "b"], > DigraphSource := ["b", "b"], DigraphRange := ["a", "a"])); @@ -146,10 +146,10 @@ gap> gr := Digraph(rec(DigraphNrVertices := 10, > DigraphRange := [2, 2, 3, 3, 4, 4, 5, 5])); gap> AdjacencyMatrix(gr); -[ [ 0, 2, 2, 2, 2, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], +[ [ 0, 2, 2, 2, 2, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] ] gap> AdjacencyMatrix(Digraph([[]])); [ [ 0 ] ] @@ -161,14 +161,14 @@ gap> r := rec(DigraphNrVertices := 7, gap> gr := Digraph(r); gap> adj1 := AdjacencyMatrix(gr); -[ [ 0, 0, 1, 1, 0, 0, 0 ], [ 0, 1, 0, 1, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 1, 0 ], - [ 0, 0, 0, 0, 0, 1, 1 ], [ 0, 1, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 1 ], +[ [ 0, 0, 1, 1, 0, 0, 0 ], [ 0, 1, 0, 1, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 1, 0 ], + [ 0, 0, 0, 0, 0, 1, 1 ], [ 0, 1, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 1 ], [ 0, 0, 0, 0, 2, 0, 0 ] ] gap> gr := Digraph(OutNeighbours(gr)); gap> adj2 := AdjacencyMatrix(gr); -[ [ 0, 0, 1, 1, 0, 0, 0 ], [ 0, 1, 0, 1, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 1, 0 ], - [ 0, 0, 0, 0, 0, 1, 1 ], [ 0, 1, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 1 ], +[ [ 0, 0, 1, 1, 0, 0, 0 ], [ 0, 1, 0, 1, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 1, 0 ], + [ 0, 0, 0, 0, 0, 1, 1 ], [ 0, 1, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 1 ], [ 0, 0, 0, 0, 2, 0, 0 ] ] gap> adj1 = adj2; true @@ -280,9 +280,9 @@ gap> adj := [ gap> gr := Digraph(adj); gap> DigraphStronglyConnectedComponents(gr); -rec( - comps := [ [ 1, 11, 15 ], [ 2, 3, 10, 14 ], [ 4, 6, 9, 13 ], - [ 5, 7, 8, 12 ] ], id := [ 1, 2, 2, 3, 4, 3, 4, 4, 3, 2, 1, 4, 3, 2, 1 +rec( + comps := [ [ 1, 11, 15 ], [ 2, 3, 10, 14 ], [ 4, 6, 9, 13 ], + [ 5, 7, 8, 12 ] ], id := [ 1, 2, 2, 3, 4, 3, 4, 4, 3, 2, 1, 4, 3, 2, 1 ] ) gap> adj := [[3, 4, 5, 7, 10], [4, 5, 10], [1, 2, 4, 7], [2, 9], > [4, 5, 8, 9], [1, 3, 4, 5, 6], [1, 2, 4, 6], @@ -290,7 +290,7 @@ gap> adj := [[3, 4, 5, 7, 10], [4, 5, 10], [1, 2, 4, 7], [2, 9], gap> gr := Digraph(adj); gap> scc := DigraphStronglyConnectedComponents(gr); -rec( comps := [ [ 1, 3, 2, 4, 9, 8, 5, 6, 7, 10, 11 ] ], +rec( comps := [ [ 1, 3, 2, 4, 9, 8, 5, 6, 7, 10, 11 ] ], id := [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ] ) gap> gr := Digraph([]); @@ -302,10 +302,10 @@ gap> r := rec(DigraphNrVertices := 9, gap> gr := Digraph(r); gap> scc := DigraphStronglyConnectedComponents(gr); -rec( comps := [ [ 3 ], [ 1, 7, 9 ], [ 8, 4 ], [ 2, 6, 5 ] ], +rec( comps := [ [ 3 ], [ 1, 7, 9 ], [ 8, 4 ], [ 2, 6, 5 ] ], id := [ 2, 4, 1, 3, 4, 4, 2, 3, 2 ] ) gap> wcc := DigraphConnectedComponents(gr); -rec( comps := [ [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ] ], +rec( comps := [ [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ] ], id := [ 1, 1, 1, 1, 1, 1, 1, 1, 1 ] ) gap> scc := DigraphStronglyConnectedComponents(circuit);; gap> Length(scc.comps); @@ -319,12 +319,12 @@ gap> gr2 := DigraphRemoveEdge(gr, 10, 1); gap> IsStronglyConnectedDigraph(gr); true gap> DigraphStronglyConnectedComponents(gr); -rec( comps := [ [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ] ], +rec( comps := [ [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ] ], id := [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ] ) gap> IsAcyclicDigraph(gr2); true gap> DigraphStronglyConnectedComponents(gr2); -rec( comps := [ [ 1 ], [ 2 ], [ 3 ], [ 4 ], [ 5 ], [ 6 ], [ 7 ], [ 8 ], +rec( comps := [ [ 1 ], [ 2 ], [ 3 ], [ 4 ], [ 5 ], [ 6 ], [ 7 ], [ 8 ], [ 9 ], [ 10 ] ], id := [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ] ) # DigraphNrStronglyConnectedComponents @@ -369,7 +369,7 @@ gap> gr := Digraph([[3, 4, 5, 7, 8, 9], [1, 4, 5, 8, 9, 5, 10], > [3, 4, 6, 7], [1, 2, 3, 5], [5, 7]]); gap> DigraphConnectedComponents(gr); -rec( comps := [ [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ] ], +rec( comps := [ [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ] ], id := [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ] ) gap> gr := Digraph(rec( > DigraphNrVertices := 100, @@ -383,33 +383,33 @@ gap> gr := Digraph(rec( > 53, 69])); gap> OutNeighbours(gr); -[ [ ], [ ], [ ], [ ], [ ], [ ], [ ], [ 54 ], [ 62 ], [ ], [ 28, 55 ], - [ 70 ], [ 37 ], [ 20, 32 ], [ ], [ ], [ ], [ 53 ], [ 16 ], [ ], [ ], - [ 42 ], [ ], [ ], [ ], [ ], [ 66 ], [ ], [ ], [ ], [ 63 ], - [ 13, 73 ], [ ], [ 89 ], [ ], [ ], [ 36 ], [ ], [ ], [ 5 ], [ ], - [ ], [ ], [ ], [ 4 ], [ ], [ ], [ 58 ], [ ], [ 26 ], [ ], [ 48 ], - [ ], [ ], [ ], [ ], [ ], [ 36, 56, 65 ], [ 78 ], [ 95, 96 ], [ ], - [ ], [ ], [ ], [ 97 ], [ 60 ], [ ], [ ], [ ], [ ], [ ], [ ], - [ 11 ], [ ], [ 66 ], [ ], [ ], [ ], [ 66 ], [ ], [ 19, 79 ], [ ], - [ 21 ], [ 13 ], [ ], [ 29, 78 ], [ ], [ ], [ 98 ], [ ], [ ], [ ], +[ [ ], [ ], [ ], [ ], [ ], [ ], [ ], [ 54 ], [ 62 ], [ ], [ 28, 55 ], + [ 70 ], [ 37 ], [ 20, 32 ], [ ], [ ], [ ], [ 53 ], [ 16 ], [ ], [ ], + [ 42 ], [ ], [ ], [ ], [ ], [ 66 ], [ ], [ ], [ ], [ 63 ], + [ 13, 73 ], [ ], [ 89 ], [ ], [ ], [ 36 ], [ ], [ ], [ 5 ], [ ], + [ ], [ ], [ ], [ 4 ], [ ], [ ], [ 58 ], [ ], [ 26 ], [ ], [ 48 ], + [ ], [ ], [ ], [ ], [ ], [ 36, 56, 65 ], [ 78 ], [ 95, 96 ], [ ], + [ ], [ ], [ ], [ 97 ], [ 60 ], [ ], [ ], [ ], [ ], [ ], [ ], + [ 11 ], [ ], [ 66 ], [ ], [ ], [ ], [ 66 ], [ ], [ 19, 79 ], [ ], + [ 21 ], [ 13 ], [ ], [ 29, 78 ], [ ], [ ], [ 98 ], [ ], [ ], [ ], [ ], [ ], [ ], [ 100 ], [ ], [ ], [ ], [ 44, 53, 69 ] ] gap> DigraphConnectedComponents(gr); -rec( comps := [ [ 1 ], [ 2 ], [ 3 ], [ 4, 45 ], [ 5, 40 ], [ 6 ], [ 7 ], - [ 8, 54 ], [ 9, 62 ], [ 10 ], - [ 11, 13, 14, 20, 28, 32, 36, 37, 48, 52, 55, 56, 58, 65, 73, 84, 97 ], - [ 12, 70 ], [ 15 ], - [ 16, 18, 19, 27, 44, 53, 60, 66, 69, 75, 79, 81, 95, 96, 100 ], - [ 17 ], [ 21, 83 ], [ 22, 42 ], [ 23 ], [ 24 ], [ 25 ], [ 26, 50 ], - [ 29, 59, 78, 86 ], [ 30 ], [ 31, 63 ], [ 33 ], [ 34, 89, 98 ], [ 35 ], - [ 38 ], [ 39 ], [ 41 ], [ 43 ], [ 46 ], [ 47 ], [ 49 ], [ 51 ], [ 57 ], - [ 61 ], [ 64 ], [ 67 ], [ 68 ], [ 71 ], [ 72 ], [ 74 ], [ 76 ], [ 77 ], - [ 80 ], [ 82 ], [ 85 ], [ 87 ], [ 88 ], [ 90 ], [ 91 ], [ 92 ], [ 93 ], - [ 94 ], [ 99 ] ], - id := [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 11, 11, 13, 14, 15, 14, 14, - 11, 16, 17, 18, 19, 20, 21, 14, 11, 22, 23, 24, 11, 25, 26, 27, 11, 11, - 28, 29, 5, 30, 17, 31, 14, 4, 32, 33, 11, 34, 21, 35, 11, 14, 8, 11, - 11, 36, 11, 22, 14, 37, 9, 24, 38, 11, 14, 39, 40, 14, 12, 41, 42, 11, - 43, 14, 44, 45, 22, 14, 46, 14, 47, 16, 11, 48, 22, 49, 50, 26, 51, 52, +rec( comps := [ [ 1 ], [ 2 ], [ 3 ], [ 4, 45 ], [ 5, 40 ], [ 6 ], [ 7 ], + [ 8, 54 ], [ 9, 62 ], [ 10 ], + [ 11, 13, 14, 20, 28, 32, 36, 37, 48, 52, 55, 56, 58, 65, 73, 84, 97 ], + [ 12, 70 ], [ 15 ], + [ 16, 18, 19, 27, 44, 53, 60, 66, 69, 75, 79, 81, 95, 96, 100 ], + [ 17 ], [ 21, 83 ], [ 22, 42 ], [ 23 ], [ 24 ], [ 25 ], [ 26, 50 ], + [ 29, 59, 78, 86 ], [ 30 ], [ 31, 63 ], [ 33 ], [ 34, 89, 98 ], [ 35 ], + [ 38 ], [ 39 ], [ 41 ], [ 43 ], [ 46 ], [ 47 ], [ 49 ], [ 51 ], [ 57 ], + [ 61 ], [ 64 ], [ 67 ], [ 68 ], [ 71 ], [ 72 ], [ 74 ], [ 76 ], [ 77 ], + [ 80 ], [ 82 ], [ 85 ], [ 87 ], [ 88 ], [ 90 ], [ 91 ], [ 92 ], [ 93 ], + [ 94 ], [ 99 ] ], + id := [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 11, 11, 13, 14, 15, 14, 14, + 11, 16, 17, 18, 19, 20, 21, 14, 11, 22, 23, 24, 11, 25, 26, 27, 11, 11, + 28, 29, 5, 30, 17, 31, 14, 4, 32, 33, 11, 34, 21, 35, 11, 14, 8, 11, + 11, 36, 11, 22, 14, 37, 9, 24, 38, 11, 14, 39, 40, 14, 12, 41, 42, 11, + 43, 14, 44, 45, 22, 14, 46, 14, 47, 16, 11, 48, 22, 49, 50, 26, 51, 52, 53, 54, 55, 14, 14, 11, 26, 56, 14 ] ) # DigraphShortestDistances @@ -587,7 +587,7 @@ gap> r := rec( > DigraphNrVertices := 5, > DigraphSource := [1, 1, 2, 3, 5, 5], > DigraphRange := [1, 4, 3, 5, 2, 2]); -rec( DigraphNrVertices := 5, DigraphRange := [ 1, 4, 3, 5, 2, 2 ], +rec( DigraphNrVertices := 5, DigraphRange := [ 1, 4, 3, 5, 2, 2 ], DigraphSource := [ 1, 1, 2, 3, 5, 5 ] ) gap> gr := Digraph(r); @@ -596,16 +596,16 @@ gap> DigraphEdges(gr); gap> gr := Digraph([[4], [2, 3, 1, 3], [3, 3], [], [1, 4, 5]]); gap> DigraphEdges(gr); -[ [ 1, 4 ], [ 2, 2 ], [ 2, 3 ], [ 2, 1 ], [ 2, 3 ], [ 3, 3 ], [ 3, 3 ], +[ [ 1, 4 ], [ 2, 2 ], [ 2, 3 ], [ 2, 1 ], [ 2, 3 ], [ 3, 3 ], [ 3, 3 ], [ 5, 1 ], [ 5, 4 ], [ 5, 5 ] ] gap> gr := Digraph([[1, 2, 3, 5, 6, 8], [6, 6, 7, 8], [1, 2, 3, 4, 6, 7], > [2, 3, 5, 6, 2, 7], [5, 6, 5, 5], [3, 2, 8], [1, 5, 7], [6, 7]]); gap> DigraphEdges(gr); -[ [ 1, 1 ], [ 1, 2 ], [ 1, 3 ], [ 1, 5 ], [ 1, 6 ], [ 1, 8 ], [ 2, 6 ], - [ 2, 6 ], [ 2, 7 ], [ 2, 8 ], [ 3, 1 ], [ 3, 2 ], [ 3, 3 ], [ 3, 4 ], - [ 3, 6 ], [ 3, 7 ], [ 4, 2 ], [ 4, 3 ], [ 4, 5 ], [ 4, 6 ], [ 4, 2 ], - [ 4, 7 ], [ 5, 5 ], [ 5, 6 ], [ 5, 5 ], [ 5, 5 ], [ 6, 3 ], [ 6, 2 ], +[ [ 1, 1 ], [ 1, 2 ], [ 1, 3 ], [ 1, 5 ], [ 1, 6 ], [ 1, 8 ], [ 2, 6 ], + [ 2, 6 ], [ 2, 7 ], [ 2, 8 ], [ 3, 1 ], [ 3, 2 ], [ 3, 3 ], [ 3, 4 ], + [ 3, 6 ], [ 3, 7 ], [ 4, 2 ], [ 4, 3 ], [ 4, 5 ], [ 4, 6 ], [ 4, 2 ], + [ 4, 7 ], [ 5, 5 ], [ 5, 6 ], [ 5, 5 ], [ 5, 5 ], [ 6, 3 ], [ 6, 2 ], [ 6, 8 ], [ 7, 1 ], [ 7, 5 ], [ 7, 7 ], [ 8, 6 ], [ 8, 7 ] ] # DigraphSources and DigraphSinks @@ -625,7 +625,7 @@ gap> DigraphSources(gr); [ 1, 3, 7, 9, 10 ] gap> gr := Digraph(r);; gap> InNeighbours(gr); -[ [ ], [ 2, 2, 3, 7, 9 ], [ ], [ 5, 9 ], [ 9 ], [ 3, 7, 7 ], [ ], +[ [ ], [ 2, 2, 3, 7, 9 ], [ ], [ 5, 9 ], [ 9 ], [ 3, 7, 7 ], [ ], [ 3, 7, 9, 9 ], [ ], [ ] ] gap> DigraphSinks(gr); [ 1, 4, 6, 8, 10 ] @@ -971,7 +971,7 @@ gap> DigraphAllUndirectedSimpleCircuits(gr); [ [ 1 ], [ 2 ] ] gap> gr := Digraph([[4], [1, 3], [1, 2], [2, 3]]);; gap> DigraphAllUndirectedSimpleCircuits(gr); -[ [ 1, 2, 3 ], [ 1, 2, 3, 4 ], [ 1, 2, 4 ], [ 1, 2, 4, 3 ], [ 1, 3, 2, 4 ], +[ [ 1, 2, 3 ], [ 1, 2, 3, 4 ], [ 1, 2, 4 ], [ 1, 2, 4, 3 ], [ 1, 3, 2, 4 ], [ 1, 3, 4 ], [ 2, 3, 4 ] ] gap> gr := Digraph([[3, 6, 7], [3, 6, 8], [1, 2, 3, 6, 7, 8], > [2, 3, 4, 8], [2, 3, 4, 5, 6, 7], [1, 3, 4, 5, 7], [2, 3, 6, 8], @@ -994,10 +994,16 @@ gap> DigraphAllChordlessCycles(D); [ [ 2, 1, 3 ], [ 2, 1, 4 ], [ 3, 1, 4 ], [ 3, 2, 4 ] ] gap> D := Digraph([[2, 4, 5], [3, 6], [4, 7], [8], [6, 8], [7], [8], []]);; gap> DigraphAllChordlessCycles(D); -[ [ 6, 5, 8, 7 ], [ 3, 4, 8, 5, 6, 2 ], [ 3, 4, 8, 7 ], [ 1, 4, 8, 5 ], - [ 1, 4, 8, 7, 6, 2 ], [ 1, 4, 3, 2 ], [ 1, 4, 3, 7, 6, 5 ], [ 3, 2, 6, 7 ], +[ [ 6, 5, 8, 7 ], [ 3, 4, 8, 5, 6, 2 ], [ 3, 4, 8, 7 ], [ 1, 4, 8, 5 ], + [ 1, 4, 8, 7, 6, 2 ], [ 1, 4, 3, 2 ], [ 1, 4, 3, 7, 6, 5 ], [ 3, 2, 6, 7 ], [ 2, 1, 5, 6 ], [ 2, 1, 5, 8, 7, 3 ] ] +# Issue #676 +gap> D := Digraph([[], [3], []]);; +gap> SetDigraphVertexLabels(D, ["one", "two", "three"]); +gap> DigraphAllSimpleCircuits(D); +[ ] + # DigraphLongestSimpleCircuit gap> gr := Digraph([]);; gap> DigraphLongestSimpleCircuit(gr); @@ -1153,27 +1159,27 @@ fail # DigraphBooleanAdjacencyMatrix gap> gr := CompleteDigraph(4);; gap> mat := BooleanAdjacencyMatrix(gr); -[ [ false, true, true, true ], [ true, false, true, true ], +[ [ false, true, true, true ], [ true, false, true, true ], [ true, true, false, true ], [ true, true, true, false ] ] gap> IsSymmetricDigraph(gr) and mat = TransposedMat(mat); true gap> gr := EmptyDigraph(5);; gap> mat := BooleanAdjacencyMatrix(gr); [ [ false, false, false, false, false ], [ false, false, false, false, false ] - , [ false, false, false, false, false ], - [ false, false, false, false, false ], + , [ false, false, false, false, false ], + [ false, false, false, false, false ], [ false, false, false, false, false ] ] gap> IsSymmetricDigraph(gr) and mat = TransposedMat(mat); true gap> gr := CycleDigraph(4);; gap> mat := BooleanAdjacencyMatrix(gr); -[ [ false, true, false, false ], [ false, false, true, false ], +[ [ false, true, false, false ], [ false, false, true, false ], [ false, false, false, true ], [ true, false, false, false ] ] gap> not (IsSymmetricDigraph(gr) or mat = TransposedMat(mat)); true gap> gr := ChainDigraph(4);; gap> mat := BooleanAdjacencyMatrix(gr); -[ [ false, true, false, false ], [ false, false, true, false ], +[ [ false, true, false, false ], [ false, false, true, false ], [ false, false, false, true ], [ false, false, false, false ] ] gap> not (IsSymmetricDigraph(gr) or mat = TransposedMat(mat)); true @@ -1181,15 +1187,15 @@ gap> gr := Digraph([ > [1, 4, 6, 8], [2, 8, 10], [4], [1, 6], [6, 7], [1, 2, 4, 10], > [3], [3], [1, 8], [2, 5]]);; gap> mat := BooleanAdjacencyMatrix(gr); -[ [ true, false, false, true, false, true, false, true, false, false ], - [ false, true, false, false, false, false, false, true, false, true ], - [ false, false, false, true, false, false, false, false, false, false ], - [ true, false, false, false, false, true, false, false, false, false ], - [ false, false, false, false, false, true, true, false, false, false ], - [ true, true, false, true, false, false, false, false, false, true ], - [ false, false, true, false, false, false, false, false, false, false ], - [ false, false, true, false, false, false, false, false, false, false ], - [ true, false, false, false, false, false, false, true, false, false ], +[ [ true, false, false, true, false, true, false, true, false, false ], + [ false, true, false, false, false, false, false, true, false, true ], + [ false, false, false, true, false, false, false, false, false, false ], + [ true, false, false, false, false, true, false, false, false, false ], + [ false, false, false, false, false, true, true, false, false, false ], + [ true, true, false, true, false, false, false, false, false, true ], + [ false, false, true, false, false, false, false, false, false, false ], + [ false, false, true, false, false, false, false, false, false, false ], + [ true, false, false, false, false, false, false, true, false, false ], [ false, true, false, false, true, false, false, false, false, false ] ] gap> gr = DigraphByAdjacencyMatrix(mat); true @@ -1715,7 +1721,7 @@ gap> DIGRAPHS_UnderThreeColourable(EmptyDigraph(0)); # DegreeMatrix gap> gr := Digraph([[2, 3, 4], [2, 5], [1, 5, 4], [1], [1, 1, 2, 4]]);; gap> DegreeMatrix(gr); -[ [ 3, 0, 0, 0, 0 ], [ 0, 2, 0, 0, 0 ], [ 0, 0, 3, 0, 0 ], [ 0, 0, 0, 1, 0 ], +[ [ 3, 0, 0, 0, 0 ], [ 0, 2, 0, 0, 0 ], [ 0, 0, 3, 0, 0 ], [ 0, 0, 0, 1, 0 ], [ 0, 0, 0, 0, 4 ] ] gap> DegreeMatrix(Digraph([])); [ ] @@ -1727,17 +1733,17 @@ gap> DegreeMatrix(Digraph([[1]])); # LaplacianMatrix gap> gr := Digraph([[2, 3, 4], [2, 5], [1, 5, 4], [1], [1, 1, 2, 4]]);; gap> LaplacianMatrix(gr); -[ [ 3, -1, -1, -1, 0 ], [ 0, 1, 0, 0, -1 ], [ -1, 0, 3, -1, -1 ], +[ [ 3, -1, -1, -1, 0 ], [ 0, 1, 0, 0, -1 ], [ -1, 0, 3, -1, -1 ], [ -1, 0, 0, 1, 0 ], [ -2, -1, 0, -1, 4 ] ] gap> LaplacianMatrix(Digraph([])); [ ] gap> LaplacianMatrix(Digraph([[1]])); [ [ 0 ] ] gap> LaplacianMatrix(CycleDigraph(5)); -[ [ 1, -1, 0, 0, 0 ], [ 0, 1, -1, 0, 0 ], [ 0, 0, 1, -1, 0 ], +[ [ 1, -1, 0, 0, 0 ], [ 0, 1, -1, 0, 0 ], [ 0, 0, 1, -1, 0 ], [ 0, 0, 0, 1, -1 ], [ -1, 0, 0, 0, 1 ] ] gap> LaplacianMatrix(CompleteDigraph(5)); -[ [ 4, -1, -1, -1, -1 ], [ -1, 4, -1, -1, -1 ], [ -1, -1, 4, -1, -1 ], +[ [ 4, -1, -1, -1, -1 ], [ -1, 4, -1, -1, -1 ], [ -1, -1, 4, -1, -1 ], [ -1, -1, -1, 4, -1 ], [ -1, -1, -1, -1, 4 ] ] # NrSpanningTrees @@ -1907,7 +1913,7 @@ gap> gr := DigraphFromSparse6String( > IBtB_`EQKJ@LmxlL_?k^QieOkB|T"); gap> Set(ArticulationPoints(gr)); -[ 1, 3, 8, 11, 12, 15, 17, 18, 19, 21, 23, 27, 30, 36, 37, 41, 42, 46, 51, +[ 1, 3, 8, 11, 12, 15, 17, 18, 19, 21, 23, 27, 30, 36, 37, 41, 42, 46, 51, 52, 59, 60, 61, 63, 66, 68, 69, 73, 75, 76, 79, 84, 87 ] gap> IsDuplicateFree(last); true @@ -2059,11 +2065,11 @@ fail gap> g := CycleDigraph(100); gap> HamiltonianPath(g); -[ 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, - 96, 97, 98, 99, 100, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, +[ 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76 ] gap> g := CycleDigraph(513); @@ -2072,38 +2078,38 @@ gap> g := DigraphAddEdges(g, [[6, 8], [8, 7], [7, 9]]); gap> g := DigraphRemoveEdge(g, [6, 7]); gap> HamiltonianPath(g); -[ 1, 2, 3, 4, 5, 6, 8, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, - 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, - 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, - 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, - 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, - 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, - 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, - 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, - 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, - 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, - 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, - 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, - 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, - 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, +[ 1, 2, 3, 4, 5, 6, 8, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, + 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 1 ] gap> gr := DigraphAddEdges(DigraphAddVertex(CycleDigraph(600)), > [[600, 601], [601, 600]]); @@ -2149,8 +2155,8 @@ gap> for i in [2 .. 15] do > DigraphDisjointUnion(D, CycleDigraph(i)); > od; gap> DigraphCore(D); -[ 1, 2, 3, 4, 5, 10, 11, 12, 13, 14, 21, 22, 23, 24, 25, 26, 27, 55, 56, 57, - 58, 59, 60, 61, 62, 63, 64, 65, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, +[ 1, 2, 3, 4, 5, 10, 11, 12, 13, 14, 21, 22, 23, 24, 25, 26, 27, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90 ] gap> D1 := DigraphFromDigraph6String("&FJBWqNbXV?"); @@ -2175,7 +2181,7 @@ gap> str := ".qb`hOAW@fAiG]g??aGD[TXAbjgWl^?fkG{~cA@p`e~EIRlHSxBFHx\\RJ@ERCYhV\ gap> D := DigraphFromDiSparse6String(str); gap> DigraphCore(D); -[ 1, 2, 4, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 21, 22, 23, 25, 26, +[ 1, 2, 4, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 21, 22, 23, 25, 26, 29, 30, 32, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 46, 47, 48, 49, 50 ] gap> D := Digraph([[2, 8], [3], [1], [5], [6], [7], [4], []]); @@ -2299,7 +2305,7 @@ gap> D := NullDigraph(IsMutableDigraph, 3); gap> AsGraph(D); rec( adjacencies := [ [ ], [ ], [ ] ], group := Group(()), isGraph := true, - names := [ 1 .. 3 ], order := 3, representatives := [ 1, 2, 3 ], + names := [ 1 .. 3 ], order := 3, representatives := [ 1, 2, 3 ], schreierVector := [ -1, -2, -3 ] ) # DigraphSource @@ -2415,7 +2421,7 @@ gap> gr := Digraph(rec(DigraphNrVertices := 5, > DigraphRange := [1, 3, 1, 2, 2, 4, 5, 4, 1, 3, 5, 1, 1, 3])); gap> e := DigraphEdges(gr); -[ [ 1, 1 ], [ 1, 3 ], [ 2, 1 ], [ 2, 2 ], [ 2, 2 ], [ 2, 4 ], [ 2, 5 ], +[ [ 1, 1 ], [ 1, 3 ], [ 2, 1 ], [ 2, 2 ], [ 2, 2 ], [ 2, 4 ], [ 2, 5 ], [ 3, 4 ], [ 4, 1 ], [ 4, 3 ], [ 4, 5 ], [ 5, 1 ], [ 5, 1 ], [ 5, 3 ] ] gap> rev := DigraphReverse(gr);