Changelog - version 2

v2.7.1 (released 29/03/2023)

In this release a couple of bugs in presentation::sort_rules are resolved:

v2.7.0 (released 22/03/2023)

This is a minor release with some new features and bug fixes:

v2.6.2 (released 27/02/2023)

This is a minor release adding the configuration options --enable-backward, and --disable-backward, and some related changes to the build system.

v2.6.1 (released 24/02/2023)

This is a minor release with some fixes and improvements to exception messages, the documentation, and:

v2.6.0 (released 06/02/2023)

This is a minor release including some new features related to presentations for semigroups and monoids.

v2.5.1 (released 22/12/2022)

This is a minor release that resolves a number of minor issues.

v2.5.0 (released 14/12/2022)

In this release a small number of issues are resolved, and one major new feature is added. The features added in this release are:

v2.4.1 (released 06/12/2022)

This is a minor release fixing some issues in the build system that should have been included in the last release.

v2.4.0 (released 01/12/2022)

In this release a number of bugs and other minor issues were resolved. The new features in this release are:

New features:

Issues resolved:

New Contributors:

v2.3.2 (released 28/10/2022)

In this release a number of bugs and other minor issues were resolved.

v2.3.1 (released 10/10/2022)

In this release a number of corner cases in the Sims1 class are fixed:

  • sometimes number_of_congruences erroneously returned 0 for the number of congruences with 1 class;

  • if an empty presentation (no generators or relations) was used to initialise short_rules, then the Sims1::for_each and Sims1::find_if could crash;

  • a more serious bug which could cause an invalid read beyond the end of a container (caused by the erroneous assumption that the containers were always of even length). Thanks to J. James for reporting this issue.

v2.3.0 (released 28/09/2022)

In this release a number of minor issues a fixed, some improvements are made, and the Sims1 class has been redesigned and improved to implement a parallel version of the low index congruences algorithm.

v2.2.3 (released 22/09/2022)

This is a minor release fixing a number of minor issues, and including some minor improvements.

v2.2.2 (released 12/09/2022)

This is a minor release fixing a number of minor issues, and including some minor improvements.

v2.2.1 (released 12/08/2022)

This is a minor release fixing a data race (probably) caused by setting the global locale, that sometimes caused a crash.

v2.2.0 (released 01/07/2022)

This release adds two new features to libsemigroups:

v2.1.5 (released 21/04/2022)

This is a minor release with a few minor changes:

@fingolfin made their first contribution in https://github.com/libsemigroups/libsemigroups/pull/345 welcome @fingolfin!

v2.1.4 (released 04/03/2022)

This is a minor release with a few minor changes:

  • it is now possible to create the quotient_froidure_pin of a congruence with infinitely many classes;

  • some exception messages were corrected for Bipartition objects;

  • compilation of v2.1.0 to v2.1.3 did not work in cygwin for Windows;

  • there was a file missing in the archive, which meant that it wasn’t possible to build the documentation.

v2.1.3 (released 16/12/2021)

This is a minor release with some performance improvements in: ActionDigraph::number_of_paths (eigen is used in some circumstances when available); the suffix tree implementation (used by Kambites); and in KnuthBendix.

v2.1.2 (released 30/11/2021)

This is another very minor release resolving an issue in the last release on 32-bit systems raised by Jan Engelhardt.

v2.1.1 (released 28/11/2021)

This is a very minor release resolving an issue in the last release pointed out by Jan Engelhardt.

v2.1.0 (released 28/11/2021)

The following new features, improvements, and fixes are included in this release:

Full Changelog: https://github.com/libsemigroups/libsemigroups/compare/v2.0.3…v2.1.0

v2.0.3 (released 11/11/2021)

This release contains a minor change to the FroidurePin class template that resolves an issue with the python binding highlighted by Maria Tsalakou and Chinmaya Nagpal.

v2.0.2 (released 20/09/2021)

This release includes some missing operators, adapters, and doc were added.

v2.0.1 (released 28/08/2021)

This release includes some improvements and minor fixes including:

  • some remnants of C++11 in the code and docs were removed

  • the class Runner was given proper copy and move constructors

  • some performance improvements were made to Konieczny by Finn Smith

  • some minor updates were made to FroidurePin and its documentation

  • some missing adapters for KBE and TCE were implemented.

v2.0.0 (released 26/05/2021)

This release includes a major rewrite of the functionality in libsemigroups for matrices, transformations, and other elements of semigroups. libsemigroups has been updated to use C++14 (from C++11), and some simplifications were made as a consequence. The documentation has been improved, some deprecated functionality was remove, and other minor improvements, and simplifications were made. The included version of eigen was updated from version 3.3.7 to 3.3.9.

J. James contributed some improvements to the build system, and some additional updates were made which arose from warnings issued by newer versions of autotools.

The following function was added:

  • Action::cache_scc_multipliers

The following deprecated functionality was removed:

  • FroidurePin::FroidurePin(std::vector<element_type> const*)

  • FroidurePin::reset_next_relation

  • FroidurePin::next_relation

  • the Element class was removed

  • the UFOld class was removed (replaced by Suf and Duf in v1.3.4)

The following backwards incompatible changes have been made:

  • every function including _nr_ has been renamed using _number_of_ for consistency

  • const has been removed from all function parameters passed by value

  • congruence_type was renamed congruence_kind for consistency

  • CongruenceByPairsHelper was renamed CongruenceByPairs

  • Congruence::policy was renamed Congruence::options

  • FroidurePin::copy_closure returns by value instead of returning a pointer

  • FroidurePin::copy_add_generators returns by value instead of returning a pointer

  • FroidurePin::letter_to_pos was renamed FroidurePin::current_position

  • FroidurePin::length_const was renamed FroidurePin::length

  • FroidurePin::length_non_const was renamed FroidurePin::current_length (again for consistency)

  • FroidurePin::word_to_pos was renamed FroidurePin::current_position

  • KnuthBendix::policy was renamed KnuthBendix::options

  • ToddCoxeter::policy was renamed ToddCoxeter::options

The following files were renamed:

  • libsemigroups-config.hpp was renamed config.hpp

  • libsemigroups-debug.hpp was renamed debug.hpp

  • libsemigroups-exception.hpp was renamed exception.hpp

Changelog - version 1