Untersuchungsergebnis.rst Download desUnknown {[0] [0] [0]}zum Wurzelverzeichnis wechseln
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_ENABLED`` was incorrectly used in ``report.cpp``
and some weirdness ensued when ``libsemigroups`` was system installed (via
``make install``). Resolved by `J. D. Mitchell`_.
* the configuration options ``--disable-fmt`` and ``--enable-fmt`` did the same
thing. Resolved by `J. D. Mitchell`_.
* it was possible to create invalid ``PBR`` objects, which caused some
incorrect values to be returned by ``FroidurePin<PBR>`` instances. The
``to_string`` implementation for ``PBR``'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`_.
.. _J. D. Mitchell:
https://jdbm.me
.. _Reinis Cirpons:
https://reinisc.id.lv
.. _Finn Smith:
https://flsmith.github.io
The major new feature in this release is:
* an implementation of the Konieczny-Lallement-McFadden Algorithm
:cite:`Konieczny1994aa`, :cite:`Lallement1990aa` 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 ``libsemigroups`` is compiled
with ``eigen`` enabled (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. ``eigen`` is 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 ``libsemigroups`` has 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`_.
.. _J. D. Mitchell:
https://jdbm.me
.. _M. Tsalakou:
https://mariatsalakou.github.io/
The major new features in this release are:
* an implementation of Gilman's Algorithm :cite:`Gilman1979` to construct an
automaton that allows for counting, and iterating through, the normal forms
of strings in a ``KnuthBendix`` instance. This automaton is accessible via
the member function ``gilman_digraph``. Using this approach significantly
improves the performance of the ``size`` member function of ``KnuthBendix``
and allows a ``KnuthBendix`` instance to know whether or not it is infinite.
* improvements to the algorithm used by the ``number_of_paths`` member function
of the class template ``ActionDigraph``, and the ability to specify the
algorithm to be used.
* the class template ``ActionDigraph`` gets new member functions: ``number_of_edges``
for a node; ``number_of_paths`` with a single node as argument;
``number_of_paths_algorithm`` which returns a value in an enum describing the
algorithm used by ``number_of_paths`` by default.
* the functions ``topological_sort`` and ``add_cycle`` in the namespace
``libsemigroups::action_digraph_helper``
* the function ``number_of_words`` for counting the number of words with length
in a given range over an alphabet of specified size.
* the class template ``ActionDigraph`` gets new static member functions
``random`` for outputting a random action digraph with a given number of
edges; and ``random_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 ``FroidurePin`` now has member functions for iterating
through its rules (``cbegin_rules``)
* the namespace ``action_digraph_helper`` is introduced. This namespace
contains the helper functions ``follow_path``, ``is_acyclic``,
``is_reachable``, ``validate_node``, and ``validate_label`` for the class
template ``ActionDigraph``.
* the class template ``ActionDigraph`` has 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``, and ``cbegin_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 ``FpSemigroup`` member functions ``number_of_rules``, ``run_until``, and
``run_for`` now behave as expected
* a fix so that ``libsemigroups`` can be used with ``fmt`` version 6.2.0 was
made.
* a bug was resolved in ``FroidurePin::word_to_pos`` which 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.
.. _J. James:
http://www.jamezone.org/
.. _Isuru Fernando:
https://github.com/isuruf
.. _libsemigroups_cppyy:
https://github.com/libsemigroups/libsemigroups_cppyy
.. _Bernhard M. Wiedemann:
https://lizards.opensuse.org/author/bmwiedemann/
.. _Semigroups:
https://github.com/semigroups/Semigroups/