Changelog - version 1¶
v1.3.7 (released 28/02/2021)¶
This is a minor release for with a bug in Konieczny fixed by
Finn Smith, and a limit added to CongruenceByPairs to try to resolve
https://github.com/semigroups/Semigroups/issues/634 (again).
v1.3.6 (released 04/02/2021)¶
This is a minor release for compatibility with the GAP package Semigroups.
v1.3.5 (released 28/01/2021)¶
This is a minor release fixing a bug in the ToddCoxeter class (the
contains member function could return false negatives in some cases after
shrink_to_fit was called).
v1.3.4 (released 27/11/2020)¶
This is a minor release resolving the following issues:
the tests failed when the hardware concurrency was limited to 1 (reported by Bernhard M. Wiedemann)
compilation failed when in debug mode
there were some bugs in the string formatting in exceptions on 32-bit systems
the disjoint sets data structures were refactored completely, and their performance improved.
v1.3.3 (released 07/10/2020)¶
This is a minor release resolving an issue with make install including a copy of eigen3 when it should not have. Reported by Antonio Rojas.
v1.3.2 (released 02/10/2020)¶
This is a minor release resolving some issues in the build system, and some issues related to PBRs.
The issues resolved are:
eigen support is enabled if the configure flag –with-external-eigen is given; Resolved by J. James.
the order the compile flags related to HPCombi were appended was changed, so that they do not override user-provided CFLAGS. Reported by Jan Engelhardt and fixed by J. D. Mitchell
the macro
LIBSEMIGROUPS_FMT_ENABLEDwas incorrectly used inreport.cppand some weirdness ensued whenlibsemigroupswas system installed (viamake install). Resolved by J. D. Mitchell.the configuration options
--disable-fmtand--enable-fmtdid the same thing. Resolved by J. D. Mitchell.it was possible to create invalid
PBRobjects, which caused some incorrect values to be returned byFroidurePin<PBR>instances. Theto_stringimplementation forPBR’s also didn’t work properly in all cases. Resolved by Finn Smith.
v1.3.1 (released 28/08/2020)¶
This is a tediously minor release to fix some issues in the last release.
v1.3.0 (released 28/08/2020)¶
In this release some new features have been added and some issues have been
resolved. The new features in this version of libsemigroups were implemented
by J. D. Mitchell, Reinis Cirpons, and Finn Smith.
The major new feature in this release is:
an implementation of the Konieczny-Lallement-McFadden Algorithm [Kon94], [LM90] for computing finite semigroups (Finn Smith and J. D. Mitchell).
The major improvements in this release are:
an improvement to the is_obviously_infinite function for congruences, and finitely presented semigroups and monoids. When
libsemigroupsis compiled witheigenenabled (as it is by default), then an integer matrix can be associated to a finite presentation, if this matrix does not have full rank, then the associated finitely presented semigroup or monoid is infinite.eigenis used to perform the computation of the rank of this matrix if available (Reinis Cirpons and J. D. Mitchell).the time it takes to compile
libsemigroupshas be reduced.
v1.2.1 (released 28/06/2020)¶
This is an exceedingly minor release removing some extraneous files from, and adding one essential file to, the distro.
v1.2.0 (released 28/06/2020)¶
In this release some new features have been added and some bugs have been
fixed. The new features in this version of libsemigroups were implemented
by J. D. Mitchell and M. Tsalakou.
The major new features in this release are:
an implementation of Gilman’s Algorithm [Gil79] to construct an automaton that allows for counting, and iterating through, the normal forms of strings in a
KnuthBendixinstance. This automaton is accessible via the member functiongilman_digraph. Using this approach significantly improves the performance of thesizemember function ofKnuthBendixand allows aKnuthBendixinstance to know whether or not it is infinite.improvements to the algorithm used by the
number_of_pathsmember function of the class templateActionDigraph, and the ability to specify the algorithm to be used.the class template
ActionDigraphgets new member functions:number_of_edgesfor a node;number_of_pathswith a single node as argument;number_of_paths_algorithmwhich returns a value in an enum describing the algorithm used bynumber_of_pathsby default.the functions
topological_sortandadd_cyclein the namespacelibsemigroups::action_digraph_helperthe function
number_of_wordsfor counting the number of words with length in a given range over an alphabet of specified size.the class template
ActionDigraphgets new static member functionsrandomfor outputting a random action digraph with a given number of edges; andrandom_acyclic.
There were also several further minor improvements and bug fixes implemented in this version, many of which arose while developing libsemigroups_cppyy. Thanks to Murray Whyte for pointing out several of these bugs.
One major bug was also resolved: sometimes a KnuthBendix instance refusing
to run even though the rules it contained were not reduced (but were
confluent).
v1.1.0 (released 28/05/2020)¶
This is a minor release which adds some new features and fixes some bugs.
The more major new features in this release are:
iterators for words and strings with respect to lexicographic and short-lex orders (
cbegin_wilo,cbegin_wislo,cbegin_silo,cbegin_sislo)the class template
FroidurePinnow has member functions for iterating through its rules (cbegin_rules)the namespace
action_digraph_helperis introduced. This namespace contains the helper functionsfollow_path,is_acyclic,is_reachable,validate_node, andvalidate_labelfor the class templateActionDigraph.the class template
ActionDigraphhas new member functions for iterating through nodes in reverse (crbegin_nodes); for iterating through paths (cbegin_panilo,cbegin_panislo,cbegin_pilo,cbegin_pislo,cbegin_pstilo, andcbegin_pstislo); and for counting the number of paths starting at a source (and optionally ending at a target) node (number_of_paths).
The more major bugs fixed are:
the class
FpSemigroupmember functionsnumber_of_rules,run_until, andrun_fornow behave as expecteda fix so that
libsemigroupscan be used withfmtversion 6.2.0 was made.a bug was resolved in
FroidurePin::word_to_poswhich resulted in incorrect results for instances with duplicate generators.
There were also several further minor improvements and bug fixes implemented in this version, many of which arose while developing libsemigroups_cppyy. Thanks to Murray Whyte for pointing out several of these bugs.
v1.0.9 (released 20/04/2020)¶
This is an exceedingly minor release removing some extraneous files from the distro.
v1.0.8 (released 20/04/2020)¶
This is another minor release fixing some minor issues, again mostly highlighted from libsemigroups_cppyy
v1.0.7 (released 17/03/2020)¶
This is a minor release fixing some minor issues, mostly highlighted from libsemigroups_cppyy
v1.0.6 (released 09/02/2020)¶
This is a minor release fixing some bugs.
v1.0.5 (released 13/01/2020)¶
This is a minor release with some minor changes to the documentation and build system. The non-trivial changes in this release were made by Isuru Fernando
v1.0.4 (released 11/01/2020)¶
This is a minor release with several improvements to the build system. It is
now possible to build libsemigroups using an external installation of fmt
with the configure option --with-external-fmt, and it should also be
possible to build libsemigroups on non-x86 architectures.
v1.0.3 (released 07/12/2019)¶
This is a minor release that includes some fixes that caused tests to fail on 32-bit systems. The non-trivial changes in this release were made by J. James
v1.0.2 (released 30/11/2019)¶
This is a very minor release to fix a bad test that failed in the conda package continuous integration.
v1.0.1 (released 29/11/2019)¶
This is a minor release to resolve some issues with the conda package, and to remove some compiler warnings.
v1.0.0 (released 27/11/2019)¶
This is a major release that dramatically expands the scope of
libsemigroups. In v1.0.0, libsemigroups has been almost completely
rewritten, generalised, and some new features have been added.