-
Included new functions
IsVertexColouring
andGRAPE_ExactSetCover
. -
Made new documentation chapter
Auxiliary Functions
, currently containing documentation forSmallestImageSet
andGRAPE_ExactSetCover
. -
Made a performance improvement for
CompleteSubgraphsOfGivenSize
for the case when all weightvectors are (0,1)-vectors of dimension greater than 1.
-
Made an improvement to the proper vertex-colouring search process.
-
Added documentation and test for Steve Linton's function
SmallestImageSet
. -
Added further (small) improvements to the documentation, including three new references.
-
The included version of nauty is now 2.8.6. You should expect canonical labellings produced by nauty to change from previous versions of GRAPE.
-
Made function
GeneralizedOrbitalGraphs
more flexible, and updated the documentation. -
Renamed function
OrbitalGraphColadjMats
byOrbitalDigraphColadjMats
, but the old name still works. Also, improved the documentation for this function. -
Added some tweaks to functions to compute complete subgraphs, which should hopefully improve overall performance.
-
Fixed bug in
EdgeOrbitsGraph
, where previously when given an empty list of edges, an error occurred and a break loop was entered. -
Better error checking and more consistent use of streams for dreadnaut/nauty and bliss I/O. The default now is to use files for these streams.
-
New boolean global variable
GRAPE_DREADNAUT_INPUT_USE_STRING
which by default is set tofalse
. If set totrue
then a string is used for the stream for input to dreadnaut/nauty; if set tofalse
a file is used for this stream. Using a string is faster than using a file, but may use too much storage. Both possibilities forGRAPE_DREADNAUT_INPUT_USE_STRING
are now tested in the package tests. -
Since simple graphs are no-longer input as directed graphs to nauty and bliss, some tests for non-simple graphs with colour classes were added to the package tests.
-
Simple GRAPE graphs are now output to nauty as nauty undirected graphs and are so treated by nauty. (You should expect canonical labellings produced by nauty to change from previous versions of GRAPE and to be different from those produced by bliss.) Thanks to T. Jenrich for suggesting this efficiency improvement.
-
Simple GRAPE graphs are now output to bliss as bliss undirected graphs and are so treated by bliss. (You should expect canonical labellings produced by bliss to change from previous versions of GRAPE and to be different to those produced by nauty.) Thanks to T. Jenrich for suggesting this efficiency improvement.
-
If the return value (i.e. exit code) of an execution of a bliss or dreadnaut executable is not zero, then an error message is printed and a break loop is entered. This is to help protect against an otherwise undetected program error exit or crash which could produce wrong results. (We had run across one instance of such a problem with bliss and a particular large graph.)
-
The identity canonical labelling is now correctly returned from an execution of bliss. (The previously returned (wrong) value in this case was the empty list, which should not have led to any wrong results for a graph isomorphism check, but should have caused a break loop to be entered.)
-
Correction to the user documentation of 'GeneralizedOrbitalGraphs' to make clear that the null orbital graph is not included.
-
Improvements made to the user documentation of 'CompleteSubgraphsOfGivenSize'.
-
Improvements made to the program documentation for 'CompleteSubgraphsMain'.
-
Implemented new components maximumClique and minimumVertexColouring for (simple) GRAPE graphs. These components may be set or used by various GRAPE functions.
-
Function GraphImage documented, and a test added for this function.
-
Last (accidentally) remaining function call
Stabiliser
changed toStabilizer
. -
More tests added to tst/testall.tst.
-
Removed unused function
GRAPE_OrbitRepresentatives
. -
Committed Max Horn's pull requests to fix problems with Windows 64-bit execution of nauty.
-
Central GAP system testing can now run tests using bliss as well as the version of nauty included with GRAPE.
-
Bug fixed in MaximumClique. This bug caused a wrong answer to be returned for an input complete graph (on more than one vertex) for the functions MaximumClique, MaximumCompleteSubgraph, and CliqueNumber.
-
Efficiency improvements made to functions Diameter, Girth, GlobalParameters, and IsDistanceRegular, so that if the automorphism group of the input graph is already known then it is made use of.
-
All function calls
Stabiliser
changed toStabilizer
. -
Added function GeneralizedOrbitalGraphs.
-
Documentation upgraded.
-
Changes info moved from README to new file CHANGES.md.
-
README moved to README.md and updated.
-
Information in file COPYING moved to README.md, and file COPYING deleted.
-
GRAPE package moved on to github.
-
Indexing in GRAPE documentation made to work better.
-
Documentation for CompleteSubgraphsOfGivenSize improved.
-
Obsolete POST_RESTORE_FUNCS no longer used.
-
New function: HammingGraph
-
New operations: MaximumClique, MinimumVertexColouring
-
New attributes (which cannot be stored in a GRAPE graph record, but are declared as attributes rather than operations so as not to conflict with the Digraphs package): CliqueNumber, ChromaticNumber
-
ConnectedComponent and ConnectedComponents are now operations rather than functions, to avoid conflicts with other developers.
-
Enhanced functionality for function VertexColouring, which can now be used to determine whether a graph has a proper vertex k-colouring, and if so, to return such a colouring.
-
Efficiency of the function VertexTransitiveDRGs improved for transitive permutation groups having some orbitals which are not self-paired.
-
GRAPE HTML documentation now made with version 4.12 of tth, and displays correctly on all browsers tested (thanks to Andries Brouwer for pointing out the problem and to GAP Support for providing a solution).
-
The GRAPE HTML documentation links to the GAP reference manual now work (thanks to Jerome Benoit for providing a solution).
-
The default location for a user-installed bliss executable (if used) is now ExternalFilename(DirectoriesSystemPrograms(),"bliss") (thank you to Jerome Benoit for suggesting this). However, the default location of the dreadnaut executable remains ExternalFilename(DirectoriesPackagePrograms("grape"),"dreadnautB") to run the included version in GRAPE of nauty/dreadnaut.
-
Efficiency change to PartialLinearSpaces, to use exact cover instead of clique search to classify "bundles".
-
Fixed small efficiency bug in CompleteSubgraphsMain.
-
The included version of nauty is now the final patched version of nauty 2.2.
-
The user may run their own copy of dreadnaut or dreadnautB, rather than the included version from nauty 2.2.
-
The user may run their own version of bliss as an alternative to nauty.
-
A test file tst/testall.g is now included.
-
Documentation and installation instructions have been revised accordingly.
-
Except for nauty 2.2, GRAPE is now licensed under the GPL, version 2 or higher.
-
Installation instructions revised.
-
GRAPE revised to work fully under Windows (XP or later), with an appropriate 32-bit nauty/dreadnaut binary (made by A. Hulpke) included.
-
Installation instructions revised.
-
Makefile.in revised.
-
Installation instructions revised.
-
Default banner now used.
-
With much help from Alexander Hulpke, and using new features in GAP 4.5, the interface between GRAPE and dreadnaut is now done entirely in GAP code. This means that as long as nauty/dreadnaut can be compiled on a given computer, then GRAPE should work on that computer, although there are still problems with Windows machines.
-
Graphs with colour-classes can now be handled by the automorphism group and graph isomorphism functions.
-
The functions Graph, Diameter, Girth, IsBipartite, IsConnectedGraph, IsDistanceRegular, IsVertex, and IsEdge are now operations to avoid possible name conflicts with GAP, GAP users, or other packages.
-
The internal functions OrbitRepresentatives, RepWord, OrbitNumbers, NumbersToSets, and IntransitiveGroupGenerators renamed GRAPE_OrbitRepresentatives, GRAPE_RepWord, GRAPE_OrbitNumbers, GRAPE_NumbersToSets, and GRAPE_IntransitiveGroupGenerators, respectively, to avoid possible name conflicts with GAP, GAP users, or other packages.
-
Documentation upgraded.
-
GAP code and standalone programs for the undocumented functions Enum and EnumColadj removed. It appears no one uses them now, and their functionality can largely be handled by current documented GAP/GRAPE functions.
-
GRAPE can now be installed via
/bin/sh configure ../..; make
. -
The version of nauty now used is 2.2 final, rather than 2.0beta5, and canonical labellings may have changed. Moreover, dreadnautB is now used instead of dreadnaut, so there is no practical upper bound on the number of vertices when using nauty. All graphs stored from previous versions of GRAPE should have their canonicalLabelling component unbound before use with this version.
-
Added function GraphIsomorphismClassRepresentatives, which should be used for efficient pairwise isomorphism testing of three or more graphs.
-
Function CompleteSubgraphsOfGivenSize now fully documented to include the functionality of finding cliques with given vertex vector-weight sum.
-
Function GraphIsomorphism now documented, and for safety, GraphIsomorphism now has a third parameter, firstunbindcanon, behaving as in the function IsIsomorphicGraph.
-
For safety, (possibly old) canonical labellings are no longer copied over to a graph returned by CopyGraph, GraphImage, or NewGroupGraph.
-
Changed call to StabChainBaseStrongGenerators to have three parameters to conform with the changed functionality in this function from GAP 4.4.5.
-
Fixed minor problem in Makefile.in (reported by A.E. Brouwer).
-
The standard archive format is now tar.gz, rather than zoo.
-
grape.bib moved to manual.bib.
-
Including Steve Linton's SmallestImageSet function, and using this function for faster isomorph rejection in functions CompleteSubgraphs, CompleteSubgraphsOfGivenSize, and PartialLinearSpaces.
-
Further improvements to CompleteSubgraphs and CompleteSubgraphsOfGivenSize, including functionality in the latter which will be required by the DESIGN package.
-
All global function names are now read-only.
-
OrbitalGraphIntersectionMatrices is no longer an alternative name for OrbitalGraphColadjMats. This change is not backward compatible.
-
The function Vertices is now an operation, so as not to conflict with the xgap package.
-
The default value for GRAPE_NRANGRENS has been increased to 18.
-
Output streams are now used in AutGroupGraph and SetAutGroupCanonicalLabelling.
-
Extended functionality of CompleteSubgraphsOfGivenSize so that a user can request only maximal complete subgraphs of a given size to be returned.
-
Extended functionality of CompleteSubgraphs and CompleteSubgraphsOfGivenSize so that the required complete subgraphs can be classified up to equivalence under the permutation group associated with the input graph.
-
Improvements to CompleteSubgraphs and CompleteSubgraphsOfGivenSize which sometimes result in significant speed-ups.
-
The default UNIX file permissions for GRAPE files now include write permission for the owner. This is to make default file permissions more in line with those of GAP.
-
The naming convention for the vertices of the graphs output (in a list) by PartialLinearSpaces has changed to be more consistent with vertex-naming conventions in GRAPE. The point-vertices of such a graph delta are 1,...,ptgraph.order, with the name of point-vertex i being the name of vertex i of ptgraph. A line-vertex of delta is named by a list (not necessarily ordered) of the point-vertex names for the points on that line.
Warning: This change is not backward compatible. -
For non-simple input graphs, different nauty parameters than previously are set by AutGroupGraph and SetAutGroupCanonicalLabelling (which is called by IsIsomorphicGraph). This is in order to avoid a performance problem with certain sparse directed graphs. Warning: canonical labellings may be different than before.
-
Input graph to CollapsedIndependentOrbitsGraph must be simple. (The function did not always produce correct output for non-simple graphs.)
-
Bug fixed so that AutGroupGraph and SetAutGroupCanonicalLabelling always output ranges as full lists for processing as input to nauty/dreadnaut.
-
Bug fixed in function Girth. This bug could cause wrong answers to be returned.
-
Improved documentation, including an example of research using GRAPE.
-
Better file management for the non-GAP part of GRAPE.
-
A p2c translation of tcfrontend4.p is now supplied and used.
-
GRAPE 4.0 is compatible with GAP4, but not with GAP3.
-
The version of nauty now used is 2.0beta5, rather than 1.7, and canonical labellings may have changed. All graphs stored from previous versions of GRAPE should have their canonicalLabelling component unbound before use with this version.
-
IsIsomorphicGraph by default now unbinds any canonicalLabelling components of the input graphs. This is always safe, but will downgrade performance if testing pairwise isomorphism for many graphs. See the GRAPE manual documentation on changing the default.
-
The no longer needed functions MakeStabChainGivenLimit and NextSizeCompleteSubgraphs were removed.
-
The names component of a graph (if present) is immutable (unless explicitly stored otherwise by the user, which is not recommended). Also the representatives and schreierVector components of a graph are immutable (and these should never be changed by a user).
-
The names of an EdgeGraph or a QuotientGraph are lists, but need no longer be sets (strictly sorted lists). This also applies to a CollapsedIndependentOrbitsGraph and a CollapsedCompleteOrbitsGraph. The reason for this is that GAP4 does not support a total order on all possible GAP4 objects.
-
ConnectedComponents returns a strictly sorted list.
-
The function GraphIsomorphism returns fail (instead of false) if the input graphs are not isomorphic.
-
GraphImage(gamma) has appropriate names even when gamma.names is unbound.
-
The preferred name for OrbitalGraphIntersectionMatrices is OrbitalGraphColadjMats.
-
CompleteSubgraphs and CompleteSubgraphsOfGivenSize improved. The default for arg[5] is now true in CompleteSubgraphsOfGivenSize. Cliques is now another name for CompleteSubgraphs, and
CliquesOfGivenSize is another name for CompleteSubgraphsOfGivenSize. -
The documentation has been expanded and improved.
-
The new CompleteSubgraphsOfGivenSize, which allows for searching in a vertex-weighted graph for cliques with a given vertex-weight sum.
-
The new function PartialLinearSpaces, which classifies partial linear spaces with given point graph and parameters s,t.
-
The new function VertexTransitiveDRGs, which determines the distance-regular generalized orbital graphs for a given transitive permutation group.
-
New functions CayleyGraph and SwitchedGraph.
-
A one-vertex graph is now considered to be bipartite, with bicomponents = [[],[1]] (to be consistent with considering a zero-vertex graph to be bipartite, with bicomponents = [[],[]]).
-
A bug fixed in the function UnderlyingGraph. That bug had the effect that if the returned graph had loops, then it might have had its isSimple component erroneously set to true.