Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package libsemigroups for openSUSE:Factory checked in at 2022-03-05 14:44:33 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libsemigroups (Old) and /work/SRC/openSUSE:Factory/.libsemigroups.new.1958 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libsemigroups" Sat Mar 5 14:44:33 2022 rev:13 rq:959514 version:2.1.4 Changes: -------- --- /work/SRC/openSUSE:Factory/libsemigroups/libsemigroups.changes 2021-12-17 23:54:42.355539309 +0100 +++ /work/SRC/openSUSE:Factory/.libsemigroups.new.1958/libsemigroups.changes 2022-03-05 14:45:14.271728488 +0100 @@ -1,0 +2,9 @@ +Fri Mar 4 18:53:58 UTC 2022 - Jan Engelhardt <jeng...@inai.de> + +- Update to release 2.1.4 + * Is is now possible to create the quotient_froidure_pin of a + congruence with infinitely many classes. + * Some exception messages were corrected for Bipartition + objects. + +------------------------------------------------------------------- Old: ---- libsemigroups-2.1.3.tar.gz New: ---- libsemigroups-2.1.4.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libsemigroups.spec ++++++ --- /var/tmp/diff_new_pack.0T2HbY/_old 2022-03-05 14:45:14.815728625 +0100 +++ /var/tmp/diff_new_pack.0T2HbY/_new 2022-03-05 14:45:14.827728628 +0100 @@ -1,7 +1,7 @@ # # spec file for package libsemigroups # -# Copyright (c) 2021 SUSE LLC +# Copyright (c) 2022 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,7 +18,7 @@ Name: libsemigroups %define lname libsemigroups2 -Version: 2.1.3 +Version: 2.1.4 Release: 0 Summary: Library with algorithms for computing finite and finitely presented semigroups License: GPL-3.0-or-later ++++++ libsemigroups-2.1.3.tar.gz -> libsemigroups-2.1.4.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsemigroups-2.1.3/.VERSION new/libsemigroups-2.1.4/.VERSION --- old/libsemigroups-2.1.3/.VERSION 2021-12-16 16:57:27.981003307 +0100 +++ new/libsemigroups-2.1.4/.VERSION 2022-03-04 13:31:25.675172008 +0100 @@ -1 +1 @@ -2.1.3 \ No newline at end of file +2.1.4 \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsemigroups-2.1.3/Makefile.am new/libsemigroups-2.1.4/Makefile.am --- old/libsemigroups-2.1.3/Makefile.am 2021-11-30 12:26:35.439991451 +0100 +++ new/libsemigroups-2.1.4/Makefile.am 2022-03-04 13:27:46.415778113 +0100 @@ -16,7 +16,7 @@ if LIBSEMIGROUPS_DEBUG AM_CPPFLAGS = -DDEBUG -AM_CXXFLAGS += -g3 -O0 -fno-omit-frame-pointer +AM_CXXFLAGS += -g3 -O0 -fno-omit-frame-pointer else AM_CPPFLAGS = -DNDEBUG endif @@ -32,7 +32,7 @@ AM_CPPFLAGS += -DFMT_HEADER_ONLY endif -LIBS = $(AM_LDFLAGS) +LIBS = $(AM_LDFLAGS) ACLOCAL_AMFLAGS = -I m4 @@ -40,7 +40,7 @@ pkgconfig_DATA = libsemigroups.pc ## We include config.hpp in the distribution even though it is -## autogenerated by configure. +## autogenerated by configure. ## libsemigroups headers pkginclude_HEADERS = include/libsemigroups/action.hpp @@ -105,7 +105,7 @@ pkginclude_HEADERS += include/libsemigroups/word.hpp ## Define hpcombiincludedir outside the conditional -## LIBSEMIGROUPS_HPCOMBI_ENABLED because it is used by +## LIBSEMIGROUPS_HPCOMBI_ENABLED because it is used by ## uninstall-hook hpcombiincludedir = $(includedir)/libsemigroups/HPCombi/include if LIBSEMIGROUPS_HPCOMBI_ENABLED @@ -129,7 +129,7 @@ endif ##??LIBSEMIGROUPS_HPCOMBI_ENABLED ## Define fmtincludedir outside the conditional -## LIBSEMIGROUPS_WITH_INTERNAL_FMT because it is used by +## LIBSEMIGROUPS_WITH_INTERNAL_FMT because it is used by ## uninstall-hook fmtincludedir = $(includedir)/libsemigroups/fmt if LIBSEMIGROUPS_WITH_INTERNAL_FMT @@ -149,7 +149,7 @@ endif ## Define eigenincludedir outside the conditional -## LIBSEMIGROUPS_WITH_INTERNAL_EIGEN because it is used by +## LIBSEMIGROUPS_WITH_INTERNAL_EIGEN because it is used by ## uninstall-hook eigenincludedir = $(includedir)/libsemigroups/Eigen if LIBSEMIGROUPS_WITH_INTERNAL_EIGEN @@ -535,7 +535,7 @@ eigensrchouseholderinclude_HEADERS = extern/eigen-3.3.9/Eigen/src/Householder/BlockHouseholder.h eigensrchouseholderinclude_HEADERS += extern/eigen-3.3.9/Eigen/src/Householder/HouseholderSequence.h eigensrchouseholderinclude_HEADERS += extern/eigen-3.3.9/Eigen/src/Householder/Householder.h -endif ## LIBSEMIGROUPS_WITH_INTERNAL_EIGEN +endif ## LIBSEMIGROUPS_WITH_INTERNAL_EIGEN lib_LTLIBRARIES = libsemigroups.la @@ -568,7 +568,7 @@ libsemigroups_la_SOURCES += src/wislo.cpp libsemigroups_la_SOURCES += src/word.cpp -libsemigroups_la_CPPFLAGS = $(AM_CPPFLAGS) +libsemigroups_la_CPPFLAGS = $(AM_CPPFLAGS) libsemigroups_la_CXXFLAGS = $(AM_CXXFLAGS) ## See https://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html#Updating-version-info @@ -582,8 +582,8 @@ EXTRA_DIST = .clang-format EXTRA_DIST += autogen.sh -EXTRA_DIST += CPPLINT.cfg -EXTRA_DIST += LICENSE +EXTRA_DIST += CPPLINT.cfg +EXTRA_DIST += LICENSE EXTRA_DIST += README.rst EXTRA_DIST += .VERSION EXTRA_DIST += docs @@ -591,10 +591,11 @@ EXTRA_DIST += etc/make-doc-yml.sh EXTRA_DIST += etc/make-format.sh EXTRA_DIST += etc/make-lint.sh +EXTRA_DIST += etc/post-proc-doc.sh EXTRA_DIST += etc/version-number.sh EXTRA_DIST += extern/HPCombi/VERSION -EXTRA_DIST += src/kbe-impl.hpp -EXTRA_DIST += src/knuth-bendix-impl.hpp +EXTRA_DIST += src/kbe-impl.hpp +EXTRA_DIST += src/knuth-bendix-impl.hpp EXTRA_DIST += tests/catch.hpp EXTRA_DIST += tests/fpsemi-examples.hpp EXTRA_DIST += tests/bmat-data.hpp @@ -613,7 +614,7 @@ CHECK_FLAGS1 = --use-colour yes --order lex --abort CHECK_FLAGS2 = [quick] -check_PROGRAMS = test_all +check_PROGRAMS = test_all EXTRA_PROGRAMS = test_action EXTRA_PROGRAMS += test_bipart @@ -1011,7 +1012,7 @@ @echo "********************************************************************" endif -.VERSION: +.VERSION: etc/version-number.sh > .TMP_VERSION && mv .TMP_VERSION .VERSION clean-local: @@ -1062,12 +1063,12 @@ @echo "Running cpplint . . ."; @etc/make-lint.sh -doc-yml: +doc-yml: @etc/make-doc-yml.sh doc-sphinx: @etc/make-doc-sphinx.sh -doc: +doc: $(MAKE) doc-yml $(MAKE) doc-sphinx diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsemigroups-2.1.3/Makefile.in new/libsemigroups-2.1.4/Makefile.in --- old/libsemigroups-2.1.3/Makefile.in 2021-12-16 16:57:42.320736823 +0100 +++ new/libsemigroups-2.1.4/Makefile.in 2022-03-04 15:20:36.214177163 +0100 @@ -96,7 +96,7 @@ host_triplet = @host@ target_triplet = @target@ @LIBSEMIGROUPS_HPCOMBI_ENABLED_TRUE@am__append_1 = $(HPCOMBI_CXXFLAGS) -@LIBSEMIGROUPS_DEBUG_TRUE@am__append_2 = -g3 -O0 -fno-omit-frame-pointer +@LIBSEMIGROUPS_DEBUG_TRUE@am__append_2 = -g3 -O0 -fno-omit-frame-pointer @HPCOMBI_CONSTEXPR_FUN_ARGS_TRUE@am__append_3 = -DHPCOMBI_CONSTEXPR_FUN_ARGS @LIBSEMIGROUPS_WITH_INTERNAL_FMT_TRUE@am__append_4 = -DFMT_HEADER_ONLY check_PROGRAMS = test_all$(EXEEXT) @@ -1471,7 +1471,7 @@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ -LIBS = $(AM_LDFLAGS) +LIBS = $(AM_LDFLAGS) LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ @@ -2020,13 +2020,13 @@ src/report.cpp src/runner.cpp src/siso.cpp src/string.cpp \ src/suffix-tree.cpp src/timer.cpp src/todd-coxeter.cpp \ src/wilo.cpp src/wislo.cpp src/word.cpp -libsemigroups_la_CPPFLAGS = $(AM_CPPFLAGS) +libsemigroups_la_CPPFLAGS = $(AM_CPPFLAGS) libsemigroups_la_CXXFLAGS = $(AM_CXXFLAGS) libsemigroups_la_LDFLAGS = -version-info 2:0:0 EXTRA_DIST = .clang-format autogen.sh CPPLINT.cfg LICENSE README.rst \ .VERSION docs etc/make-doc-sphinx.sh etc/make-doc-yml.sh \ - etc/make-format.sh etc/make-lint.sh etc/version-number.sh \ - extern/HPCombi/VERSION src/kbe-impl.hpp \ + etc/make-format.sh etc/make-lint.sh etc/post-proc-doc.sh \ + etc/version-number.sh extern/HPCombi/VERSION src/kbe-impl.hpp \ src/knuth-bendix-impl.hpp tests/catch.hpp \ tests/fpsemi-examples.hpp tests/bmat-data.hpp \ tests/test-main.hpp benchmarks/bench-main.hpp \ @@ -4882,7 +4882,7 @@ @LIBSEMIGROUPS_DEBUG_TRUE@ @echo "************************ Debug mode enabled ************************" @LIBSEMIGROUPS_DEBUG_TRUE@ @echo "********************************************************************" -.VERSION: +.VERSION: etc/version-number.sh > .TMP_VERSION && mv .TMP_VERSION .VERSION clean-local: @@ -4933,13 +4933,13 @@ @echo "Running cpplint . . ."; @etc/make-lint.sh -doc-yml: +doc-yml: @etc/make-doc-yml.sh doc-sphinx: @etc/make-doc-sphinx.sh -doc: +doc: $(MAKE) doc-yml $(MAKE) doc-sphinx diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsemigroups-2.1.3/README.rst new/libsemigroups-2.1.4/README.rst --- old/libsemigroups-2.1.3/README.rst 2021-12-16 16:57:37.409840068 +0100 +++ new/libsemigroups-2.1.4/README.rst 2022-03-04 13:51:48.442021553 +0100 @@ -1,10 +1,10 @@ -.. Copyright (c) 2019-2021, J. D. Mitchell +.. Copyright (c) 2019-2022, J. D. Mitchell Distributed under the terms of the GPL license version 3. The full license is in the file LICENSE, distributed with this software. -libsemigroups - Version 2.1.3 +libsemigroups - Version 2.1.4 ============================= .. image:: https://readthedocs.org/projects/libsemigroups/badge/?version=master @@ -14,23 +14,23 @@ .. image:: https://mybinder.org/badge_logo.svg :target: https://mybinder.org/v2/gh/libsemigroups/libsemigroups/master :alt: Launch Binder - + .. image:: https://codecov.io/gh/libsemigroups/libsemigroups/branch/master/graph/badge.svg :target: https://codecov.io/gh/libsemigroups/libsemigroups .. image:: https://img.shields.io/conda/dn/conda-forge/libsemigroups :target: https://github.com/conda-forge/libsemigroups-feedstock -.. image:: https://anaconda.org/conda-forge/libsemigroups/badges/installer/conda.svg +.. image:: https://anaconda.org/conda-forge/libsemigroups/badges/installer/conda.svg :target: https://conda.anaconda.org/conda-forge .. image:: https://zenodo.org/badge/DOI/10.5281/zenodo.1437752.svg :target: https://doi.org/10.5281/zenodo.1437752 -.. image:: https://anaconda.org/conda-forge/libsemigroups/badges/license.svg +.. image:: https://anaconda.org/conda-forge/libsemigroups/badges/license.svg :target: https://anaconda.org/conda-forge/libsemigroups -.. image:: https://anaconda.org/conda-forge/libsemigroups/badges/platforms.svg +.. image:: https://anaconda.org/conda-forge/libsemigroups/badges/platforms.svg :target: https://anaconda.org/conda-forge/libsemigroups C++ library for semigroups and monoids @@ -54,47 +54,52 @@ algorithm for testing equivalence of words in free bands. - an implementation of the algorithm for solving the word problem for small overlap monoids, and for computing normal forms in such monoids; - see `Kambites <https://doi.org/10.1016/j.jalgebra.2008.09.038>`__, - `Kambites <https://doi.org/10.1016/j.jalgebra.2008.12.028>`__, and + see `Kambites <https://doi.org/10.1016/j.jalgebra.2008.09.038>`__, + `Kambites <https://doi.org/10.1016/j.jalgebra.2008.12.028>`__, and `Mitchell-Tsalakou - <http://arxiv.org/abs/2105.12125>`__. + <http://arxiv.org/abs/2105.12125>`__. .. _Froidure-Pin algorithm: https://www.irif.fr/~jep/PDF/Rio.pdf .. _Todd-Coxeter algorithm: https://en.wikipedia.org/wiki/Todd%E2%80%93Coxeter_algorithm .. _Knuth-Bendix algorithm: https://en.wikipedia.org/wiki/Knuth%E2%80%93Bendix_completion_algorithm .. _Schreier-Sims algorithm: https://en.wikipedia.org/wiki/Schreier%E2%80%93Sims_algorithm .. _Konieczny: https://link.springer.com/article/10.1007/BF02573672 -.. _Lallement-McFadden: https://www.sciencedirect.com/science/article/pii/S0747717108800570 +.. _Lallement-McFadden: https://www.sciencedirect.com/science/article/pii/S0747717108800570 .. _Radoszewski-Rytter: https://link.springer.com/chapter/10.1007/978-3-642-11266-9_55 ``libsemigroups`` is partly based on `Algorithms for computing finite -semigroups`_, `Expository Slides`_, and `Semigroupe 2.01`_ by `Jean-Eric Pin`_. +semigroups`_, `Expository Slides`_, and `Semigroupe 2.01`_ by `Jean-Eric Pin`_. -.. _Algorithms for computing finite semigroups: https://www.irif.fr/~jep/PDF/Rio.pdf +.. _Algorithms for computing finite semigroups: https://www.irif.fr/~jep/PDF/Rio.pdf .. _Expository slides: https://www.irif.fr/~jep/PDF/Exposes/StAndrews.pdf .. _Semigroupe 2.01: https://www.irif.fr/~jep/Logiciels/Semigroupe2.0/semigroupe2.html .. _Jean-Eric Pin: https://www.irif.fr/~jep/ ``libsemigroups`` is used in the `Semigroups package for GAP`_, and it is possible to use ``libsemigroups`` directly in Python 3 via the package -`libsemigroups_pybind11`_ The development version of ``libsemigroups`` is +`libsemigroups_pybind11`_. The development version of ``libsemigroups`` is available on github_, and some related projects are here_. +.. _github: https://github.com/libsemigroups/libsemigroups +.. _here: https://github.com/libsemigroups +.. _libsemigroups_pybind11: https://libsemigroups.github.io/libsemigroups_pybind11/ +.. _Semigroups package for GAP: https://semigroups.github.io/Semigroups + The main classes in ``libsemigroups`` are named after the algorithms they -implement; see, for example, :cpp:any:`libsemigroups::FroidurePin`, -:cpp:any:`libsemigroups::Konieczny`, -:cpp:any:`libsemigroups::congruence::ToddCoxeter`, -:cpp:any:`libsemigroups::fpsemigroup::Kambites`, -:cpp:any:`libsemigroups::fpsemigroup::KnuthBendix`, and -:cpp:any:`libsemigroups::SchreierSims`. +implement; see, for example, ``libsemigroups::FroidurePin``, +``libsemigroups::Konieczny``, +``libsemigroups::congruence::ToddCoxeter``, +``libsemigroups::fpsemigroup::Kambites``, +``libsemigroups::fpsemigroup::KnuthBendix``, and +``libsemigroups::SchreierSims``. -The implementations in :cpp:any:`libsemigroups::FroidurePin`, -:cpp:any:`libsemigroups::Konieczny`, and :cpp:any:`libsemigroups::SchreierSims` +The implementations in ``libsemigroups::FroidurePin``, +``libsemigroups::Konieczny``, and ``libsemigroups::SchreierSims`` are generic and easily adapted to user-defined types. ``libsemigroups`` uses: `HPCombi`_ which uses the SSE and AVX instruction sets for very fast manipulation of transformations, partial permutations, -permutations, and boolean matrices of small size; `catch`_ for tests; +permutations, and boolean matrices of small size; `catch`_ for tests; `fmt`_ for reporting; and `eigen`_ for some linear algebra computations. .. _HPCombi: https://github.com/hivert/HPCombi @@ -140,13 +145,13 @@ Lallement-McFadden algorithm, to the Todd-Coxeter implementation, and to BMat8s. - `N. Thiery`_ contributed to the build system, packaging ``libsemigroups`` via - conda, the python bindings and many helpful conversations and suggestions. + conda, the python bindings and many helpful conversations and suggestions. - `M. Torpey`_ contributed to the congruences code in the v0.0.1 to v0.6.7. - `M. Tsalakou`_ contributed to the Knuth-Bendix implementation, related - algorithms for the class :cpp:any:`ActionDigraph`, and to the implementation - of the :cpp:any:`Kambites` class. + algorithms for the class `ActionDigraph`, and to the implementation + of the `Kambites` class. -.. _R. Cirpons: +.. _R. Cirpons: .. _F. Hivert: https://www.lri.fr/~hivert/ .. _J. James: http://www.jamezone.org/ .. _J. Jonu??as: http://julius.jonusas.work/ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsemigroups-2.1.3/configure new/libsemigroups-2.1.4/configure --- old/libsemigroups-2.1.3/configure 2021-12-16 16:57:41.702529132 +0100 +++ new/libsemigroups-2.1.4/configure 2022-03-04 15:20:35.607099391 +0100 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for libsemigroups 2.1.3. +# Generated by GNU Autoconf 2.71 for libsemigroups 2.1.4. # # Report bugs to <j...@st-andrews.ac.uk>. # @@ -621,8 +621,8 @@ # Identity of this package. PACKAGE_NAME='libsemigroups' PACKAGE_TARNAME='libsemigroups' -PACKAGE_VERSION='2.1.3' -PACKAGE_STRING='libsemigroups 2.1.3' +PACKAGE_VERSION='2.1.4' +PACKAGE_STRING='libsemigroups 2.1.4' PACKAGE_BUGREPORT='j...@st-andrews.ac.uk' PACKAGE_URL='' @@ -1429,7 +1429,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures libsemigroups 2.1.3 to adapt to many kinds of systems. +\`configure' configures libsemigroups 2.1.4 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1501,7 +1501,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of libsemigroups 2.1.3:";; + short | recursive ) echo "Configuration of libsemigroups 2.1.4:";; esac cat <<\_ACEOF @@ -1642,7 +1642,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -libsemigroups configure 2.1.3 +libsemigroups configure 2.1.4 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2481,7 +2481,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by libsemigroups $as_me 2.1.3, which was +It was created by libsemigroups $as_me 2.1.4, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -4090,7 +4090,7 @@ # Define the identity of the package. PACKAGE='libsemigroups' - VERSION='2.1.3' + VERSION='2.1.4' printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h @@ -23285,7 +23285,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by libsemigroups $as_me 2.1.3, which was +This file was extended by libsemigroups $as_me 2.1.4, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -23353,7 +23353,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -libsemigroups config.status 2.1.3 +libsemigroups config.status 2.1.4 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsemigroups-2.1.3/docs/source/changelog.rst new/libsemigroups-2.1.4/docs/source/changelog.rst --- old/libsemigroups-2.1.3/docs/source/changelog.rst 2021-12-16 16:57:37.414028116 +0100 +++ new/libsemigroups-2.1.4/docs/source/changelog.rst 2022-03-04 13:56:42.610961565 +0100 @@ -1,6 +1,18 @@ Changelog - version 2 ===================== +v2.1.4 (released 04/03/2022) +---------------------------- + +This is a minor release with 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) ---------------------------- @@ -30,7 +42,7 @@ * new implementations of the linear time algorithm by Kambites for equality checking and the algorithm by Mitchell and Tsalakou for finding normal forms in small overlap monoids in the class ``Kambites`` - (@james-d-mitchell and @mariatsalakou + (@james-d-mitchell and @mariatsalakou https://github.com/libsemigroups/libsemigroups/pull/278) * a performance improvement in the implementation of Konieczny algorithm, for determining the structure of a finite semigroup or monoid (@flsmith @@ -38,15 +50,15 @@ https://github.com/libsemigroups/libsemigroups/pull/304) * an implement of the linear time algorithm by Radoszewski and Rytter for checking equality of words in free bands in the function - ``freeband_equal_to`` (@reiniscirpons + ``freeband_equal_to`` (@reiniscirpons https://github.com/libsemigroups/libsemigroups/pull/298) * a major revision, expansion of the settings, and improvement in the performance of the implementation of the Todd-Coxeter algorithm in the - class ``ToddCoxeter`` (@james-d-mitchell - https://github.com/libsemigroups/libsemigroups/pull/313 + class ``ToddCoxeter`` (@james-d-mitchell + https://github.com/libsemigroups/libsemigroups/pull/313 https://github.com/libsemigroups/libsemigroups/pull/318) * some other minor issues in the class templates - ``FroidurePin`` and ``ActionDigraph`` were resolved + ``FroidurePin`` and ``ActionDigraph`` were resolved (@james-d-mitchell https://github.com/libsemigroups/libsemigroups/pull/299 https://github.com/libsemigroups/libsemigroups/pull/300) @@ -83,7 +95,7 @@ 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. +was updated from version 3.3.7 to 3.3.9. .. _eigen: http://eigen.tuxfamily.org/ @@ -108,12 +120,12 @@ - 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 +- ``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 + 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`` @@ -132,7 +144,7 @@ ===================== .. toctree:: - + changelog-v1 .. _J. James: http://www.jamezone.org/ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsemigroups-2.1.3/docs/source/index.rst new/libsemigroups-2.1.4/docs/source/index.rst --- old/libsemigroups-2.1.3/docs/source/index.rst 2021-12-16 16:57:37.419797092 +0100 +++ new/libsemigroups-2.1.4/docs/source/index.rst 2022-03-04 15:19:59.921653173 +0100 @@ -1,4 +1,4 @@ -libsemigroups - Version 2.1.3 +libsemigroups - Version 2.1.4 ============================= C++ library for semigroups and monoids @@ -24,42 +24,42 @@ - an implementation of the algorithm for solving the word problem for small overlap monoids, and for computing normal forms in such monoids; see `Kambites <https://doi.org/10.1016/j.jalgebra.2008.09.038>`__ - :cite:`Kambites2009aa`, + :cite:`Kambites2009aa`, `Kambites <https://doi.org/10.1016/j.jalgebra.2008.12.028>`__ :cite:`Kambites2009ab`, and `Mitchell-Tsalakou - <http://arxiv.org/abs/2105.12125>`__ :cite:`Mitchell2021aa`. + <http://arxiv.org/abs/2105.12125>`__ :cite:`Mitchell2021aa`. .. _Froidure-Pin algorithm: https://www.irif.fr/~jep/PDF/Rio.pdf .. _Todd-Coxeter algorithm: https://en.wikipedia.org/wiki/Todd%E2%80%93Coxeter_algorithm .. _Knuth-Bendix algorithm: https://en.wikipedia.org/wiki/Knuth%E2%80%93Bendix_completion_algorithm .. _Schreier-Sims algorithm: https://en.wikipedia.org/wiki/Schreier%E2%80%93Sims_algorithm .. _Konieczny: https://link.springer.com/article/10.1007/BF02573672 -.. _Lallement-McFadden: https://www.sciencedirect.com/science/article/pii/S0747717108800570 +.. _Lallement-McFadden: https://www.sciencedirect.com/science/article/pii/S0747717108800570 .. _Radoszewski-Rytter: https://link.springer.com/chapter/10.1007/978-3-642-11266-9_55 ``libsemigroups`` is partly based on `Algorithms for computing finite -semigroups`_, `Expository Slides`_, and `Semigroupe 2.01`_ by `Jean-Eric Pin`_. +semigroups`_, `Expository Slides`_, and `Semigroupe 2.01`_ by `Jean-Eric Pin`_. -.. _Algorithms for computing finite semigroups: https://www.irif.fr/~jep/PDF/Rio.pdf +.. _Algorithms for computing finite semigroups: https://www.irif.fr/~jep/PDF/Rio.pdf .. _Expository slides: https://www.irif.fr/~jep/PDF/Exposes/StAndrews.pdf .. _Semigroupe 2.01: https://www.irif.fr/~jep/Logiciels/Semigroupe2.0/semigroupe2.html .. _Jean-Eric Pin: https://www.irif.fr/~jep/ ``libsemigroups`` is used in the `Semigroups package for GAP`_, and it is possible to use ``libsemigroups`` directly in Python 3 via the package -`libsemigroups_pybind11`_ The development version of ``libsemigroups`` is +`libsemigroups_pybind11`_. The development version of ``libsemigroups`` is available on github_, and some related projects are here_. .. _github: https://github.com/libsemigroups/libsemigroups -.. _here: https://github.com/libsemigroups +.. _here: https://github.com/libsemigroups .. _libsemigroups_pybind11: https://libsemigroups.github.io/libsemigroups_pybind11/ -.. _Semigroups package for GAP: https://semigroups.github.io/Semigroups +.. _Semigroups package for GAP: https://semigroups.github.io/Semigroups The main classes in ``libsemigroups`` are named after the algorithms they implement; see, for example, :cpp:any:`libsemigroups::FroidurePin`, :cpp:any:`libsemigroups::Konieczny`, :cpp:any:`libsemigroups::congruence::ToddCoxeter`, -:cpp:any:`libsemigroups::fpsemigroup::Kambites`, +:cpp:any:`libsemigroups::fpsemigroup::Kambites`, :cpp:any:`libsemigroups::fpsemigroup::KnuthBendix`, and :cpp:any:`libsemigroups::SchreierSims`. @@ -69,7 +69,7 @@ ``libsemigroups`` uses: `HPCombi`_ which uses the SSE and AVX instruction sets for very fast manipulation of transformations, partial permutations, -permutations, and boolean matrices of small size; `catch`_ for tests; +permutations, and boolean matrices of small size; `catch`_ for tests; `fmt`_ for reporting; and `eigen`_ for some linear algebra computations. .. _HPCombi: https://github.com/hivert/HPCombi @@ -80,7 +80,7 @@ .. toctree:: :maxdepth: 1 :caption: Installation and changelog - + install changelog @@ -108,8 +108,8 @@ .. toctree:: :caption: Further info :maxdepth: 1 - + semigroupe authors -.. _Semigroupe: https://www.irif.fr/~jep/Logiciels/Semigroupe2.0/semigroupe2.html +.. _Semigroupe: https://www.irif.fr/~jep/Logiciels/Semigroupe2.0/semigroupe2.html diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsemigroups-2.1.3/docs/source/install.rst new/libsemigroups-2.1.4/docs/source/install.rst --- old/libsemigroups-2.1.3/docs/source/install.rst 2021-12-16 16:57:37.422683288 +0100 +++ new/libsemigroups-2.1.4/docs/source/install.rst 2022-03-04 15:20:00.878957278 +0100 @@ -1,4 +1,4 @@ -.. |libsemigroups-version| replace:: 2.1.3 +.. |libsemigroups-version| replace:: 2.1.4 .. _Installation: @@ -9,7 +9,7 @@ --------------------- This installation method assumes that you have anaconda or miniconda installed. -See the `getting started`_ and `miniconda download page`_ on the conda_ +See the `getting started`_ and `miniconda download page`_ on the conda_ website. .. _getting started: http://bit.ly/33B0Vfs @@ -56,7 +56,7 @@ .. parsed-literal:: curl -L -O https://github.com/libsemigroups/libsemigroups/releases/latest/download/libsemigroups-|libsemigroups-version|.tar.gz - tar -xf libsemigroups-|libsemigroups-version|.tar.gz + tar -xf libsemigroups-|libsemigroups-version|.tar.gz rm -f libsemigroups-|libsemigroups-version|.tar.gz cd libsemigroups-|libsemigroups-version| ./configure && make -j8 && sudo make install @@ -104,7 +104,7 @@ configuration options are available for ``libsemigroups``: ========================== ================================================== -Option +Option -------------------------- -------------------------------------------------- --enable-code-coverage enable code coverage support (default=no) --enable-compile-warnings enable compiler warnings (default=no) @@ -157,7 +157,7 @@ will print the version of the installed ``libsemigroups``. (As usual, ``PKG_CONFIG_PATH`` may be exported, added to shell configuration, etc.) -Building the documentation +Building the documentation -------------------------- The following are required to be able to build the documentation: @@ -171,13 +171,13 @@ :: - brew install doxygen sphinx - pip3 install -r docs/requirements + brew install doxygen sphinx + pip3 install -r docs/requirements .. TODO add ubuntu instructions Then it ought to be possible to just run ``make doc`` in the ``libsemigroups`` -directory. +directory. Issues ------ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsemigroups-2.1.3/etc/post-proc-doc.sh new/libsemigroups-2.1.4/etc/post-proc-doc.sh --- old/libsemigroups-2.1.3/etc/post-proc-doc.sh 1970-01-01 01:00:00.000000000 +0100 +++ new/libsemigroups-2.1.4/etc/post-proc-doc.sh 2021-11-28 12:25:20.049849491 +0100 @@ -0,0 +1,79 @@ +#!/bin/bash +set -e + +cd docs/ + +PREFIX=build/html/_generated/ + +# Action + +FILES=( "libsemigroups__action__constructors.html" \ + "libsemigroups__action__initialization.html" \ + "libsemigroups__action__member_functions_inherited_from_runner.html" \ + "libsemigroups__action__member_types.html" \ + "libsemigroups__action__position__size__empty___.html" \ + "libsemigroups__action__strongly_connected_components.html" ) +LINK="libsemigroups__action__member_functions_inherited_from_runner.html" + +for FILE in "${FILES[@]}"; do + echo "* fixing Runner links in: $FILE" + sed -i'' -e "s:libsemigroups__runner__operators.html\#:$LINK\#:g" "$PREFIX/$FILE" + sed -i'' -e "s:libsemigroups__runner__state.html\#:$LINK\#:g" "$PREFIX/$FILE" + sed -i'' -e "s:libsemigroups__runner__reporting.html\#:$LINK\#:g" "$PREFIX/$FILE" +done + +# CongruenceInterface + +FILES=( "libsemigroups__congruenceinterface.html" \ + "libsemigroups__congruenceinterface__member_types.html" \ + "libsemigroups__congruenceinterface__constructors.html" \ + "libsemigroups__congruenceinterface__deleted_constructors.html" \ + "libsemigroups__congruenceinterface__handedness.html" \ + "libsemigroups__congruenceinterface__initialization.html" \ + "libsemigroups__congruenceinterface__iterators.html" \ + "libsemigroups__congruenceinterface__member_functions_inherited_from_runner.html" \ + "libsemigroups__congruenceinterface__member_types.html" \ + "libsemigroups__congruenceinterface__numbers_of_classes__and_comparisons.html" \ + "libsemigroups__congruenceinterface__related_semigroups.html" \ + "libsemigroups__congruenceinterface__words_and_class_indices.html" ) + +LINK="libsemigroups__congruenceinterface__member_functions_inherited_from_runner.html" + +for FILE in "${FILES[@]}"; do + echo "* fixing Runner links in: $FILE" + sed -i'' -e "s:libsemigroups__runner__operators.html\#:$LINK\#:g" "$PREFIX/$FILE" + sed -i'' -e "s:libsemigroups__runner__state.html\#:$LINK\#:g" "$PREFIX/$FILE" + sed -i'' -e "s:libsemigroups__runner__reporting.html\#:$LINK\#:g" "$PREFIX/$FILE" +done + +# This only works because the structure of the doc for +#??KnuthBendixCongruenceByPairs and CongruenceInterface are the same. +for FILE in "${FILES[@]}"; do + echo "* fixing KnuthBendixCongruenceByPairs links in: $FILE" + sed -i'' -e 's:libsemigroups__knuthbendixcongruencebypairs:libsemigroups__congruenceinterface:g' "$PREFIX/$FILE" +done + +# Congruence + +FILES=( "libsemigroups__congruence__member_functions.html" \ + "libsemigroups__congruence__member_functions_inherited_from_congruenceinterface.html" \ + "libsemigroups__congruence__member_functions_inherited_from_runner.html" \ + "libsemigroups__congruence__member_types.html" ) + +# This only works because the structure of the doc for +#??KnuthBendixCongruenceByPairs and Congruence are the same. +for FILE in "${FILES[@]}"; do + echo "* fixing KnuthBendixCongruenceByPairs links in: $FILE" + sed -i'' -e 's:libsemigroups__knuthbendixcongruencebypairs:libsemigroups__congruence:g' "$PREFIX/$FILE" +done + +LINK="libsemigroups__congruence__member_functions_inherited_from_runner.html" +for FILE in "${FILES[@]}"; do + echo "* fixing Runner links in: $FILE" + sed -i'' -e "s:libsemigroups__runner__operators.html\#:$LINK\#:g" "$PREFIX/$FILE" + sed -i'' -e "s:libsemigroups__runner__state.html\#:$LINK\#:g" "$PREFIX/$FILE" + sed -i'' -e "s:libsemigroups__runner__reporting.html\#:$LINK\#:g" "$PREFIX/$FILE" +done + +# + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsemigroups-2.1.3/include/libsemigroups/config.hpp new/libsemigroups-2.1.4/include/libsemigroups/config.hpp --- old/libsemigroups-2.1.3/include/libsemigroups/config.hpp 2021-12-16 16:57:47.527046009 +0100 +++ new/libsemigroups-2.1.4/include/libsemigroups/config.hpp 2022-03-04 15:20:40.416315298 +0100 @@ -181,7 +181,7 @@ /* Define to the full name and version of this package. */ #ifndef LIBSEMIGROUPS_PACKAGE_STRING -#define LIBSEMIGROUPS_PACKAGE_STRING "libsemigroups 2.1.3" +#define LIBSEMIGROUPS_PACKAGE_STRING "libsemigroups 2.1.4" #endif /* Define to the one symbol short name of this package. */ @@ -196,7 +196,7 @@ /* Define to the version of this package. */ #ifndef LIBSEMIGROUPS_PACKAGE_VERSION -#define LIBSEMIGROUPS_PACKAGE_VERSION "2.1.3" +#define LIBSEMIGROUPS_PACKAGE_VERSION "2.1.4" #endif /* Define to necessary symbol if this constant uses a non-standard name on @@ -232,7 +232,7 @@ /* Version number of package */ #ifndef LIBSEMIGROUPS_VERSION -#define LIBSEMIGROUPS_VERSION "2.1.3" +#define LIBSEMIGROUPS_VERSION "2.1.4" #endif /* Define for Solaris 2.5.1 so the uint64_t typedef from <sys/synch.h>, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsemigroups-2.1.3/include/libsemigroups/kambites.hpp new/libsemigroups-2.1.4/include/libsemigroups/kambites.hpp --- old/libsemigroups-2.1.3/include/libsemigroups/kambites.hpp 2021-12-04 15:47:58.475788840 +0100 +++ new/libsemigroups-2.1.4/include/libsemigroups/kambites.hpp 2022-03-04 13:28:00.264837901 +0100 @@ -410,7 +410,7 @@ size_t i = relation_prefix(it, y.cend()); if (i != UNDEFINED) { size_t n = it - y.cbegin(); - y.erase(y.cbegin() + x.size(), y.cend()); + y.erase(y.begin() + x.size(), y.end()); return std::make_tuple( i, x.cbegin() + n, first + (XY(i).size() - (x.size() - n))); } @@ -628,7 +628,7 @@ std::tie(s, it_zrb, it_wp) = p_active(Z(rb), w.cbegin() + Z(r).size(), w.cend()); LIBSEMIGROUPS_ASSERT(s < _relation_words.size()); - // we could just use w.erase(w.cbegin(), it_wp); if not for the + // we could just use w.erase(w.begin(), it_wp); if not for the // if-statement in the next line requiring the old w. internal_type wp(it_wp, w.cend()); if (!wp_prefix(wp, wp, Z(s))) { @@ -639,7 +639,7 @@ if (sb != UNDEFINED) { // line 10 replace_prefix(wp, Z(s)); - wp.erase(wp.cbegin(), wp.cbegin() + Z(s).size()); + wp.erase(wp.begin(), wp.begin() + Z(s).size()); internal_type b(X(sb).cbegin() + (Z(rb).cend() - it_zrb), X(sb).cend()); // b if (wp_prefix(internal_type(w0), @@ -837,12 +837,12 @@ internal_type u(w.cbegin() + i + XY(j).size(), w.cend()); replace_prefix(u, Z(j)); LIBSEMIGROUPS_ASSERT(detail::is_prefix(u, Z(j))); - u.erase(u.cbegin(), u.cbegin() + Z(j).size()); + u.erase(u.begin(), u.begin() + Z(j).size()); size_t k = prefix_of_complement(j, p.cbegin() + i, p.cend()); LIBSEMIGROUPS_ASSERT(k != UNDEFINED); - w.erase(w.cbegin() + i, w.cend()); + w.erase(w.begin() + i, w.end()); w += XYZ(k); w += u; LIBSEMIGROUPS_ASSERT(detail::is_prefix(w, p)); @@ -943,11 +943,11 @@ v.cbegin() + XY(j).size(), v.cend(), Z(j).cbegin(), Z(j).cend()); if (up_start_Z && vp_start_Z) { // line 22 - u.erase(u.cbegin(), u.cbegin() + XYZ(i).size()); + u.erase(u.begin(), u.begin() + XYZ(i).size()); auto k = Z_active_complement(i, u); k = (k == UNDEFINED ? i : k); u = Z(k) + u; - v.erase(v.cbegin(), v.cbegin() + XYZ(j).size()); + v.erase(v.begin(), v.begin() + XYZ(j).size()); v = Z(k) + v; p.clear(); // line 23 @@ -957,17 +957,17 @@ } else { p = Z(i); } - u.erase(u.cbegin(), u.cbegin() + XY(i).size()); - v.erase(v.cbegin(), v.cbegin() + XY(i).size()); + u.erase(u.begin(), u.begin() + XY(i).size()); + v.erase(v.begin(), v.begin() + XY(i).size()); } else if (vp_start_Z) { // line 30 - u.erase(u.cbegin(), u.cbegin() + XY(i).size()); - v.erase(v.cbegin(), v.cbegin() + XYZ(j).size()); + u.erase(u.begin(), u.begin() + XY(i).size()); + v.erase(v.begin(), v.begin() + XYZ(j).size()); v = Z(i) + v; p.clear(); } else if (up_start_Z) { // line 32 - u.erase(u.cbegin(), u.cbegin() + XYZ(i).size()); + u.erase(u.begin(), u.begin() + XYZ(i).size()); u = Z(j) + u; - v.erase(v.cbegin(), v.cbegin() + XY(j).size()); + v.erase(v.begin(), v.begin() + XY(j).size()); p.clear(); } else { // line 34 p = detail::maximum_common_suffix(Z(i), Z(j)); @@ -981,8 +981,8 @@ Z(j).cend() - p.size())) { return false; } else { - u.erase(u.cbegin(), u.cbegin() + XYZ(i).size() - p.size()); - v.erase(v.cbegin(), v.cbegin() + XYZ(j).size() - p.size()); + u.erase(u.begin(), u.begin() + XYZ(i).size() - p.size()); + v.erase(v.begin(), v.begin() + XYZ(j).size() - p.size()); } } } @@ -1195,7 +1195,7 @@ word_type class_index_to_word_impl(class_index_type) override; size_t number_of_classes_impl() override; - [[noreturn]] std::shared_ptr<FroidurePinBase> quotient_impl() override; + std::shared_ptr<FroidurePinBase> quotient_impl() override; class_index_type word_to_class_index_impl(word_type const&) override; void run_impl() override; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsemigroups-2.1.3/include/libsemigroups/string-view.hpp new/libsemigroups-2.1.4/include/libsemigroups/string-view.hpp --- old/libsemigroups-2.1.3/include/libsemigroups/string-view.hpp 2021-11-29 13:11:01.552115342 +0100 +++ new/libsemigroups-2.1.4/include/libsemigroups/string-view.hpp 2022-03-04 13:28:00.265258982 +0100 @@ -945,6 +945,14 @@ return const_reverse_iterator(cbegin()); } + const_iterator begin() const { + return cbegin(); + } + + const_iterator end() const { + return cend(); + } + //////////////////////////////////////////////////////////////////////// // MultiStringView - operators - public //////////////////////////////////////////////////////////////////////// diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsemigroups-2.1.3/src/bipart.cpp new/libsemigroups-2.1.4/src/bipart.cpp --- old/libsemigroups-2.1.3/src/bipart.cpp 2021-11-28 12:30:48.104918111 +0100 +++ new/libsemigroups-2.1.4/src/bipart.cpp 2022-03-04 11:12:12.626875490 +0100 @@ -171,8 +171,8 @@ // TODO(later) check other things like _nr_blocks is correct etc... void validate(Bipartition const& x) { - size_t const n = 2 * x.degree(); - if (n != static_cast<size_t>(std::distance(x.cbegin(), x.cend()))) { + size_t const n = static_cast<size_t>(std::distance(x.cbegin(), x.cend())); + if (2 * x.degree() != n) { LIBSEMIGROUPS_EXCEPTION( "the degree of a bipartition must be even, found %llu", uint64_t(n)); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsemigroups-2.1.3/src/cong-intf.cpp new/libsemigroups-2.1.4/src/cong-intf.cpp --- old/libsemigroups-2.1.3/src/cong-intf.cpp 2021-11-28 12:30:48.105306269 +0100 +++ new/libsemigroups-2.1.4/src/cong-intf.cpp 2022-03-04 11:12:12.627361887 +0100 @@ -208,9 +208,6 @@ return _quotient; } else if (kind() != congruence_kind::twosided) { LIBSEMIGROUPS_EXCEPTION("the congruence must be two-sided"); - } else if (is_quotient_obviously_infinite()) { - LIBSEMIGROUPS_EXCEPTION( - "cannot find the quotient semigroup, it is infinite"); } _quotient = quotient_impl(); _quotient->immutable(true); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsemigroups-2.1.3/src/kambites.cpp new/libsemigroups-2.1.4/src/kambites.cpp --- old/libsemigroups-2.1.3/src/kambites.cpp 2021-11-28 12:30:48.106403537 +0100 +++ new/libsemigroups-2.1.4/src/kambites.cpp 2022-03-04 11:12:12.627929948 +0100 @@ -138,8 +138,8 @@ return _k->size(); } - [[noreturn]] std::shared_ptr<FroidurePinBase> Kambites::quotient_impl() { - LIBSEMIGROUPS_EXCEPTION("Cannot reach here!"); + std::shared_ptr<FroidurePinBase> Kambites::quotient_impl() { + return _k->froidure_pin(); } class_index_type Kambites::word_to_class_index_impl(word_type const& word) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsemigroups-2.1.3/tests/test-bipart.cpp new/libsemigroups-2.1.4/tests/test-bipart.cpp --- old/libsemigroups-2.1.3/tests/test-bipart.cpp 2021-11-28 12:25:20.195474345 +0100 +++ new/libsemigroups-2.1.4/tests/test-bipart.cpp 2022-03-04 11:12:12.633374230 +0100 @@ -450,6 +450,9 @@ REQUIRE(xxx <= xx); REQUIRE(xx >= xxx); + // Check for odd degree + REQUIRE_THROWS_AS(Bipartition::make({0, 1, 2}), LibsemigroupsException); + REQUIRE_THROWS_AS(Bipartition::make({{0, 2, 3, 4, 5, 6, 9, -1, -2, -7}, {7, 10, -3, -9, -10}, {8, -4}, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsemigroups-2.1.3/tests/test-cong.cpp new/libsemigroups-2.1.4/tests/test-cong.cpp --- old/libsemigroups-2.1.3/tests/test-cong.cpp 2021-11-28 12:30:48.110205997 +0100 +++ new/libsemigroups-2.1.4/tests/test-cong.cpp 2022-03-04 11:12:12.633900668 +0100 @@ -1399,7 +1399,7 @@ // fail. REQUIRE(cong.word_to_class_index({2, 2, 2, 2}) == 254); REQUIRE(cong.class_index_to_word(2) == word_type({2})); - REQUIRE_THROWS_AS(cong.quotient_froidure_pin(), LibsemigroupsException); + REQUIRE_NOTHROW(cong.quotient_froidure_pin()); REQUIRE_THROWS_AS(cong.cbegin_ntc(), LibsemigroupsException); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsemigroups-2.1.3/tests/test-kambites.cpp new/libsemigroups-2.1.4/tests/test-kambites.cpp --- old/libsemigroups-2.1.3/tests/test-kambites.cpp 2021-12-16 15:41:37.525732395 +0100 +++ new/libsemigroups-2.1.4/tests/test-kambites.cpp 2022-03-04 11:12:12.635286445 +0100 @@ -1789,9 +1789,7 @@ REQUIRE(k.contains({4, 5}, {3, 6})); REQUIRE(k.contains({0, 0, 0, 0, 0, 4, 5}, {0, 0, 0, 0, 0, 3, 6})); REQUIRE(k.contains({4, 5, 0, 1, 0, 1, 0}, {3, 6, 0, 1, 0, 1, 0})); - // TODO(later) there's no reason that we can't find the - // quotient_froidure_pin here - REQUIRE_THROWS_AS(k.quotient_froidure_pin(), LibsemigroupsException); + REQUIRE_NOTHROW(k.quotient_froidure_pin()); } LIBSEMIGROUPS_TEST_CASE("Kambites", @@ -1814,7 +1812,7 @@ REQUIRE(!l.is_quotient_obviously_finite()); REQUIRE(l.number_of_classes() == POSITIVE_INFINITY); REQUIRE(l.class_index_to_word(100) == word_type({0, 1, 0, 0})); - REQUIRE_THROWS_AS(l.quotient_froidure_pin(), LibsemigroupsException); + REQUIRE_NOTHROW(l.quotient_froidure_pin()); REQUIRE(l.word_to_class_index({0, 1, 0, 0}) == 100); }