|
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. |
3 | 4 |
|
4 |
| -Licensing information can be found in the LICENSE file. |
| 5 | +Licensing information can be found in the `LICENSE` file. |
5 | 6 |
|
6 | 7 | ## Version 1.0.0 (released 03/10/2019)
|
7 | 8 |
|
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 | + |
12 | 132 |
|
13 | 133 | ## Version 0.15.4 (released 06/08/2019)
|
14 | 134 |
|
|
0 commit comments