Skip to content

Commit 6bf1ce6

Browse files
committed
Update CHANGELOG for v1.0.0
1 parent 53c54ab commit 6bf1ce6

File tree

1 file changed

+127
-7
lines changed

1 file changed

+127
-7
lines changed

CHANGELOG.md

Lines changed: 127 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,134 @@
1-
# Digraphs package for GAP - CHANGELOG
2-
Copyright (C) 2014-19 by Jan De Beule, Julius Jonušas, James D. Mitchell, Michael Torpey, Wilf A. Wilson et al.
1+
# CHANGELOG – Digraphs package for GAP
2+
Copyright © 2014-19 by Jan De Beule, Julius Jonušas, James D. Mitchell, Michael
3+
Torpey, Wilf A. Wilson et al.
34

4-
Licensing information can be found in the LICENSE file.
5+
Licensing information can be found in the `LICENSE` file.
56

67
## Version 1.0.0 (released 03/10/2019)
78

8-
Version 1.0.0!
9-
DigraphColoring (american spelling) was removed.
10-
Changed IsEulerian.
11-
QuotientDigraph is changed.
9+
This is a major release of the Digraphs package that introduces significant new
10+
functionality, some changes in behaviour, general improvements, and several
11+
small bugfixes. With this version, we welcome Reinis Cirpons as a contributor
12+
to the package.
13+
14+
### Changed functionality or names
15+
16+
* Perhaps the most immediately visible change is that the `ViewString` for
17+
immutable digraphs attempts to show more of the known information about the
18+
digraph. This will break tests that relied on the previous behaviour, that
19+
contained only the numbers of vertices and edges.
20+
* The behaviour of `QuotientDigraph` has been changed so that it no longer
21+
returns digraphs with multiple edges.
22+
* `IsEulerianDigraph` would previously return `true` for digraphs
23+
that are Eulerian when their isolated vertices were removed, which
24+
contradicted the documentation. `IsEulerianDigraph` now returns `false` for
25+
_all_ digraphs that are not strongly connected.
26+
* The type of all digraphs has been renamed from `DigraphType` to
27+
`DigraphByOutNeighboursType`.
28+
* The synonym `DigraphColoring` (American-style spelling) for `DigraphColouring`
29+
was removed.
30+
31+
### Immutable and mutable digraphs
32+
33+
Previously, every digraph in the Digraphs package was an immutable,
34+
attribute-storing digraph. It is now possible to create mutable digraphs.
35+
Mutable digraphs are not attribute-storing, but they can be altered in place -
36+
by adding or removing vertices and edges - which, unlike with
37+
immutable digraphs, does not require a new copy of the digraph to be made.
38+
This can save time and memory.
39+
40+
This is particularly useful when one wants to create a digraph, alter the
41+
digraph in some way, and then perform some computations. One can now typically
42+
do this with fewer resources by creating a mutable digraph, modifying it in
43+
place, and then converting it into an immutable digraph (which can store
44+
attributes and properties), before finally performing the computations.
45+
46+
Every digraph now belongs to precisely one of the categories `IsMutableDigraph`
47+
or `IsImmutableDigraph`, according to its mutability. A mutable digraph can be
48+
converted in-place into an immutable digraph with `MakeImmutable`. The are
49+
various new and updated functions for creating mutable and immutable digraphs,
50+
and for making mutable or immutable copies.
51+
52+
Most digraph-creation functions in the package now accept an optional first
53+
argument, that can be either `IsMutableDigraph` or `IsImmutableDigraph`. Given
54+
one of these filters, the function will according create the digraph to be of
55+
the appropriate mutability. When this is option available, the default is
56+
always to create an immutable digraph.
57+
58+
On the whole, for a function in the package that takes a digraph as its argument
59+
and again returns a digraph, the function now returns a digraph of the same
60+
mutability as its result, and moreover, given a mutable argument, it converts
61+
the mutable digraph in-place into the result. However, please consult the
62+
document to learn the exact behaviour of any specific function.
63+
64+
Old attributes `Foo` in the package that take and return a single digraph have
65+
been converted into the operation `Foo`, with a corresponding new attribute,
66+
`FooAttr`. This means that the getter and setter functions, `HasFoo` and
67+
`SetFoo`, are renamed to `HasFooAttr` and `SetFooAttr`. See `DigraphReverse`
68+
for an example. For an immutable (and therefore attribute-storing) digraph,
69+
calling `Foo` calls `FooAttr` and returns an immutable digraph, which it
70+
stores, and so the effect is as before. For an mutable digraph, calling `Foo`
71+
modifies the digraph in-place, which remains mutable.
72+
73+
74+
### New and extended functions
75+
76+
The package now includes the following new functions:
77+
78+
* `AsSemigroup` can produce strong semilattices of groups (i.e. Clifford)
79+
from semilattice digraphs, groups, and homomorphisms. This functionality was
80+
added by Finn Smith in
81+
[PR #161](https://github.com/gap-packages/Digraphs/pull/161).
82+
* `AutomorphismGroup` and `BlissAutomorphismGroup` can now take an optional third
83+
argument that specifies an edge colouring for the digraph. In this case, the
84+
functions return only automorphisms of the digraph that preserve the edge
85+
colouring (and the vertex colouring, if one is given). This brilliant new
86+
functionality was added by Finn Smith in
87+
[PR #186](https://github.com/gap-packages/Digraphs/pull/186).
88+
* `DegreeMatrix`, `LaplacianMatrix`, and `NrSpanningTrees` were introduced by
89+
Reinis Cirpons in
90+
[PR #224](https://github.com/gap-packages/Digraphs/pull/224).
91+
* `DigraphCartesianProduct` and `DigraphDirectProduct`, along with the
92+
companion functions `DigraphCartesianProductProjections` and
93+
`DigraphDirectProductProjections`, were introduced by Reinis Cirpons in
94+
[PR #228](https://github.com/gap-packages/Digraphs/pull/228).
95+
* `DigraphMycielskian` was added by Murray Whyte in
96+
[PR #194](https://github.com/gap-packages/Digraphs/pull/194).
97+
* `DigraphNrStronglyConnectedComponents` was added by Murray Whyte in
98+
[PR #180](https://github.com/gap-packages/Digraphs/pull/180).
99+
* `DigraphOddGirth` was added by Murray Whyte in
100+
[PR #166](https://github.com/gap-packages/Digraphs/pull/166)
101+
* `DigraphCore` and `IsDigraphCore` were added by Murray Whyte in PRs
102+
[#221](https://github.com/gap-packages/Digraphs/pull/221) and
103+
[#217](https://github.com/gap-packages/Digraphs/pull/217), respectively.
104+
* `DotHighlightedDigraph` was added by Finn Smith in
105+
[PR #169](https://github.com/gap-packages/Digraphs/pull/169).
106+
* `IsCompleteMultipartiteDigraph` was added by [Wilf A. Wilson](http://wilf.me)
107+
in [PR #236](https://github.com/gap-packages/Digraphs/pull/236).
108+
* `IsEquivalenceDigraph` was added by [Wilf A. Wilson](http://wilf.me) in
109+
[PR #234](https://github.com/gap-packages/Digraphs/pull/234) as a synonym for
110+
`IsReflexiveDigraph and IsSymmetricDigraph and IsTransitiveDigraph`.
111+
* `IsVertexTransitive` and `IsEdgeTransitive` were added by Graham Campbell
112+
in [PR #165](https://github.com/gap-packages/Digraphs/pull/165).
113+
* `PetersenGraph` and `GeneralisedPetersenGraph`
114+
were added by Murray Whyte in PRs
115+
[#181](https://github.com/gap-packages/Digraphs/pull/181) and
116+
[#204](https://github.com/gap-packages/Digraphs/pull/204),
117+
respectively.
118+
* `RandomLattice` was added by Reinis Cirpons in
119+
[PR #175](https://github.com/gap-packages/Digraphs/pull/175).
120+
121+
### New technical functionality
122+
123+
* The ability to compile (with the flag `--with-external-bliss`) and use the
124+
Digraphs package with the system version of `bliss` was added
125+
by Isuru Fernando in
126+
[PR #225](https://github.com/gap-packages/Digraphs/pull/225).
127+
* The ability to compile (with the flag `--with-external-planarity`) and use
128+
the Digraphs package with the system version of the Edge Addition Planarity
129+
Suite was added by [James D. Mitchell](http://goo.gl/ZtViV6) in
130+
[PR #207](https://github.com/gap-packages/Digraphs/pull/207).
131+
12132

13133
## Version 0.15.4 (released 06/08/2019)
14134

0 commit comments

Comments
 (0)