Hello community,

here is the log from the commit of package libsemigroups for openSUSE:Factory 
checked in at 2020-10-05 19:36:50
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libsemigroups (Old)
 and      /work/SRC/openSUSE:Factory/.libsemigroups.new.4249 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libsemigroups"

Mon Oct  5 19:36:50 2020 rev:3 rq:839169 version:1.3.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/libsemigroups/libsemigroups.changes      
2020-09-25 16:34:06.316027294 +0200
+++ /work/SRC/openSUSE:Factory/.libsemigroups.new.4249/libsemigroups.changes    
2020-10-05 19:36:50.593418133 +0200
@@ -1,0 +2,9 @@
+Fri Oct  2 13:58:11 UTC 2020 - Jan Engelhardt <[email protected]>
+
+- Update to release 1.3.2
+  * Fixed: 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` also did not work properly in all cases.
+
+-------------------------------------------------------------------

Old:
----
  libsemigroups-1.3.1.tar.gz

New:
----
  libsemigroups-1.3.2.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ libsemigroups.spec ++++++
--- /var/tmp/diff_new_pack.D0q063/_old  2020-10-05 19:36:51.121418649 +0200
+++ /var/tmp/diff_new_pack.D0q063/_new  2020-10-05 19:36:51.125418652 +0200
@@ -18,7 +18,7 @@
 
 Name:           libsemigroups
 %define lname  libsemigroups1
-Version:        1.3.1
+Version:        1.3.2
 Release:        0
 Summary:        Library with algorithms for computing finite and finitely 
presented semigroups
 License:        GPL-3.0-or-later

++++++ libsemigroups-1.3.1.tar.gz -> libsemigroups-1.3.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsemigroups-1.3.1/.VERSION 
new/libsemigroups-1.3.2/.VERSION
--- old/libsemigroups-1.3.1/.VERSION    2020-08-28 18:59:55.423653684 +0200
+++ new/libsemigroups-1.3.2/.VERSION    2020-10-02 15:54:46.336688260 +0200
@@ -1 +1 @@
-1.3.1
+1.3.2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsemigroups-1.3.1/Makefile.am 
new/libsemigroups-1.3.2/Makefile.am
--- old/libsemigroups-1.3.1/Makefile.am 2020-08-28 16:26:14.441973842 +0200
+++ new/libsemigroups-1.3.2/Makefile.am 2020-10-02 14:24:21.277853546 +0200
@@ -8,8 +8,11 @@
 AM_CXXFLAGS += $(WARNING_CXXFLAGS)
 AM_CXXFLAGS += $(FMT_CFLAGS)
 AM_CXXFLAGS += $(EIGEN3_CFLAGS)
+if LIBSEMIGROUPS_HPCOMBI_ENABLED
+AM_CXXFLAGS += $(HPCOMBI_CXXFLAGS)
+endif
 
-AM_LDFLAGS  =  -no-undefined -lpthread
+AM_LDFLAGS  =  -no-undefined -lpthread $(FMT_LIBS)
 
 if LIBSEMIGROUPS_DEBUG
 AM_CPPFLAGS = -DDEBUG
@@ -25,7 +28,7 @@
 AM_CPPFLAGS += $(CODE_COVERAGE_CPPFLAGS)
 AM_CXXFLAGS += $(CODE_COVERAGE_CXXFLAGS)
 
-if LIBSEMIGROUPS_FMT_ENABLED
+if LIBSEMIGROUPS_WITH_INTERNAL_FMT
 AM_CPPFLAGS += -DFMT_HEADER_ONLY
 endif
 
@@ -119,7 +122,7 @@
 hpcombifallbackinclude_HEADERS += extern/HPCombi/include/fallback/seq.hpp
 endif ## LIBSEMIGROUPS_HPCOMBI_ENABLED
 
-if LIBSEMIGROUPS_FMT_ENABLED
+if LIBSEMIGROUPS_WITH_INTERNAL_FMT
 fmtincludedir = $(includedir)/libsemigroups/fmt
 fmtinclude_HEADERS =  extern/fmt-5.3.0/include/fmt/chrono.h  
 fmtinclude_HEADERS += extern/fmt-5.3.0/include/fmt/color.h  
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsemigroups-1.3.1/Makefile.in 
new/libsemigroups-1.3.2/Makefile.in
--- old/libsemigroups-1.3.1/Makefile.in 2020-08-28 18:59:37.251103677 +0200
+++ new/libsemigroups-1.3.2/Makefile.in 2020-10-02 15:54:29.114608831 +0200
@@ -94,9 +94,10 @@
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
-@LIBSEMIGROUPS_DEBUG_TRUE@am__append_1 = -g3 -O0 -fno-omit-frame-pointer 
-@HPCOMBI_CONSTEXPR_FUN_ARGS_TRUE@am__append_2 = -DHPCOMBI_CONSTEXPR_FUN_ARGS
-@LIBSEMIGROUPS_FMT_ENABLED_TRUE@am__append_3 = -DFMT_HEADER_ONLY
+@LIBSEMIGROUPS_HPCOMBI_ENABLED_TRUE@am__append_1 = $(HPCOMBI_CXXFLAGS)
+@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)
 EXTRA_PROGRAMS = test_action$(EXEEXT) test_bitset$(EXEEXT) \
        test_blocks$(EXEEXT) test_bmat8$(EXEEXT) \
@@ -1356,6 +1357,7 @@
 GENHTML = @GENHTML@
 GREP = @GREP@
 HAVE_CXX11 = @HAVE_CXX11@
+HPCOMBI_CXXFLAGS = @HPCOMBI_CXXFLAGS@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -1459,15 +1461,15 @@
 top_srcdir = @top_srcdir@
 AM_CXXFLAGS = -I$(abs_top_srcdir)/include -I$(abs_top_srcdir)/extern \
        -std=gnu++11 -O3 -Wall -Wextra $(WARNING_CXXFLAGS) \
-       $(FMT_CFLAGS) $(EIGEN3_CFLAGS) $(am__append_1) \
+       $(FMT_CFLAGS) $(EIGEN3_CFLAGS) $(am__append_1) $(am__append_2) \
        $(CODE_COVERAGE_CXXFLAGS)
-AM_LDFLAGS = -no-undefined -lpthread
-@LIBSEMIGROUPS_DEBUG_FALSE@AM_CPPFLAGS = -DNDEBUG $(am__append_2) \
+AM_LDFLAGS = -no-undefined -lpthread $(FMT_LIBS)
+@LIBSEMIGROUPS_DEBUG_FALSE@AM_CPPFLAGS = -DNDEBUG $(am__append_3) \
 @LIBSEMIGROUPS_DEBUG_FALSE@    $(CODE_COVERAGE_CPPFLAGS) \
-@LIBSEMIGROUPS_DEBUG_FALSE@    $(am__append_3)
-@LIBSEMIGROUPS_DEBUG_TRUE@AM_CPPFLAGS = -DDEBUG $(am__append_2) \
+@LIBSEMIGROUPS_DEBUG_FALSE@    $(am__append_4)
+@LIBSEMIGROUPS_DEBUG_TRUE@AM_CPPFLAGS = -DDEBUG $(am__append_3) \
 @LIBSEMIGROUPS_DEBUG_TRUE@     $(CODE_COVERAGE_CPPFLAGS) \
-@LIBSEMIGROUPS_DEBUG_TRUE@     $(am__append_3)
+@LIBSEMIGROUPS_DEBUG_TRUE@     $(am__append_4)
 ACLOCAL_AMFLAGS = -I m4
 pkgconfigdir = $(libdir)/pkgconfig
 pkgconfig_DATA = libsemigroups.pc
@@ -1540,18 +1542,18 @@
 @LIBSEMIGROUPS_HPCOMBI_ENABLED_TRUE@hpcombifallbackincludedir = 
$(includedir)/libsemigroups/HPCombi/include/fallback
 @LIBSEMIGROUPS_HPCOMBI_ENABLED_TRUE@hpcombifallbackinclude_HEADERS = 
extern/HPCombi/include/fallback/gcdlcm.hpp \
 @LIBSEMIGROUPS_HPCOMBI_ENABLED_TRUE@   extern/HPCombi/include/fallback/seq.hpp
-@LIBSEMIGROUPS_FMT_ENABLED_TRUE@fmtincludedir = $(includedir)/libsemigroups/fmt
-@LIBSEMIGROUPS_FMT_ENABLED_TRUE@fmtinclude_HEADERS = 
extern/fmt-5.3.0/include/fmt/chrono.h \
-@LIBSEMIGROUPS_FMT_ENABLED_TRUE@       extern/fmt-5.3.0/include/fmt/color.h \
-@LIBSEMIGROUPS_FMT_ENABLED_TRUE@       extern/fmt-5.3.0/include/fmt/core.h \
-@LIBSEMIGROUPS_FMT_ENABLED_TRUE@       
extern/fmt-5.3.0/include/fmt/format-inl.h \
-@LIBSEMIGROUPS_FMT_ENABLED_TRUE@       extern/fmt-5.3.0/include/fmt/format.h \
-@LIBSEMIGROUPS_FMT_ENABLED_TRUE@       extern/fmt-5.3.0/include/fmt/locale.h \
-@LIBSEMIGROUPS_FMT_ENABLED_TRUE@       extern/fmt-5.3.0/include/fmt/ostream.h \
-@LIBSEMIGROUPS_FMT_ENABLED_TRUE@       extern/fmt-5.3.0/include/fmt/posix.h \
-@LIBSEMIGROUPS_FMT_ENABLED_TRUE@       extern/fmt-5.3.0/include/fmt/printf.h \
-@LIBSEMIGROUPS_FMT_ENABLED_TRUE@       extern/fmt-5.3.0/include/fmt/ranges.h \
-@LIBSEMIGROUPS_FMT_ENABLED_TRUE@       extern/fmt-5.3.0/include/fmt/time.h
+@LIBSEMIGROUPS_WITH_INTERNAL_FMT_TRUE@fmtincludedir = 
$(includedir)/libsemigroups/fmt
+@LIBSEMIGROUPS_WITH_INTERNAL_FMT_TRUE@fmtinclude_HEADERS = 
extern/fmt-5.3.0/include/fmt/chrono.h \
+@LIBSEMIGROUPS_WITH_INTERNAL_FMT_TRUE@ extern/fmt-5.3.0/include/fmt/color.h \
+@LIBSEMIGROUPS_WITH_INTERNAL_FMT_TRUE@ extern/fmt-5.3.0/include/fmt/core.h \
+@LIBSEMIGROUPS_WITH_INTERNAL_FMT_TRUE@ 
extern/fmt-5.3.0/include/fmt/format-inl.h \
+@LIBSEMIGROUPS_WITH_INTERNAL_FMT_TRUE@ extern/fmt-5.3.0/include/fmt/format.h \
+@LIBSEMIGROUPS_WITH_INTERNAL_FMT_TRUE@ extern/fmt-5.3.0/include/fmt/locale.h \
+@LIBSEMIGROUPS_WITH_INTERNAL_FMT_TRUE@ extern/fmt-5.3.0/include/fmt/ostream.h \
+@LIBSEMIGROUPS_WITH_INTERNAL_FMT_TRUE@ extern/fmt-5.3.0/include/fmt/posix.h \
+@LIBSEMIGROUPS_WITH_INTERNAL_FMT_TRUE@ extern/fmt-5.3.0/include/fmt/printf.h \
+@LIBSEMIGROUPS_WITH_INTERNAL_FMT_TRUE@ extern/fmt-5.3.0/include/fmt/ranges.h \
+@LIBSEMIGROUPS_WITH_INTERNAL_FMT_TRUE@ extern/fmt-5.3.0/include/fmt/time.h
 @LIBSEMIGROUPS_EIGEN_ENABLED_TRUE@eigenincludedir = 
$(includedir)/libsemigroups/Eigen
 @LIBSEMIGROUPS_EIGEN_ENABLED_TRUE@eigeninclude_HEADERS = 
extern/eigen-3.3.7/Eigen/StdList \
 @LIBSEMIGROUPS_EIGEN_ENABLED_TRUE@     extern/eigen-3.3.7/Eigen/Jacobi \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsemigroups-1.3.1/README.rst 
new/libsemigroups-1.3.2/README.rst
--- old/libsemigroups-1.3.1/README.rst  2020-08-28 18:59:28.239008675 +0200
+++ new/libsemigroups-1.3.2/README.rst  2020-10-02 15:54:19.949765441 +0200
@@ -4,7 +4,7 @@
 
    The full license is in the file LICENSE, distributed with this software.
 
-libsemigroups - Version 1.3.1
+libsemigroups - Version 1.3.2
 =============================
 
 .. image:: https://readthedocs.org/projects/libsemigroups/badge/?version=master
@@ -151,7 +151,7 @@
 
 We thank the `Engineering and Physical Sciences Research Council (EPSRC)`_ for
 funding the PhD scholarships of `M. Torpey`_ and `F. Smith`_ when they worked
-on this project (EP/M506631/1).
+on this project (EP/M506631/1, EP/N509759/1).
 
 .. _OpenDreamKit: https://opendreamkit.org/
 .. _Carnegie Trust for the Universities of Scotland: 
https://www.carnegie-trust.org/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsemigroups-1.3.1/configure 
new/libsemigroups-1.3.2/configure
--- old/libsemigroups-1.3.1/configure   2020-08-28 18:59:35.695814937 +0200
+++ new/libsemigroups-1.3.2/configure   2020-10-02 15:54:27.754973843 +0200
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for libsemigroups 1.3.1.
+# Generated by GNU Autoconf 2.69 for libsemigroups 1.3.2.
 #
 # Report bugs to <[email protected]>.
 #
@@ -590,8 +590,8 @@
 # Identity of this package.
 PACKAGE_NAME='libsemigroups'
 PACKAGE_TARNAME='libsemigroups'
-PACKAGE_VERSION='1.3.1'
-PACKAGE_STRING='libsemigroups 1.3.1'
+PACKAGE_VERSION='1.3.2'
+PACKAGE_STRING='libsemigroups 1.3.2'
 PACKAGE_BUGREPORT='[email protected]'
 PACKAGE_URL=''
 
@@ -639,6 +639,8 @@
 LIBSEMIGROUPS_EIGEN_ENABLED_TRUE
 EIGEN3_LIBS
 EIGEN3_CFLAGS
+LIBSEMIGROUPS_WITH_INTERNAL_FMT_FALSE
+LIBSEMIGROUPS_WITH_INTERNAL_FMT_TRUE
 FMT_LIBS
 FMT_CFLAGS
 PKG_CONFIG_LIBDIR
@@ -646,6 +648,7 @@
 PKG_CONFIG
 LIBSEMIGROUPS_FMT_ENABLED_FALSE
 LIBSEMIGROUPS_FMT_ENABLED_TRUE
+HPCOMBI_CXXFLAGS
 HPCOMBI_CONSTEXPR_FUN_ARGS_FALSE
 HPCOMBI_CONSTEXPR_FUN_ARGS_TRUE
 LIBSEMIGROUPS_HPCOMBI_ENABLED_FALSE
@@ -1383,7 +1386,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 1.3.1 to adapt to many kinds of systems.
+\`configure' configures libsemigroups 1.3.2 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1453,7 +1456,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of libsemigroups 1.3.1:";;
+     short | recursive ) echo "Configuration of libsemigroups 1.3.2:";;
    esac
   cat <<\_ACEOF
 
@@ -1592,7 +1595,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-libsemigroups configure 1.3.1
+libsemigroups configure 1.3.2
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2558,7 +2561,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 1.3.1, which was
+It was created by libsemigroups $as_me 1.3.2, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3429,7 +3432,7 @@
 
 # Define the identity of the package.
  PACKAGE='libsemigroups'
- VERSION='1.3.1'
+ VERSION='1.3.2'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -19622,6 +19625,7 @@
 
 # Check if HPCombi is enable, and available
 
+
   # Check whether --enable-hpcombi was given.
 if test "${enable_hpcombi+set}" = set; then :
   enableval=$enable_hpcombi;
@@ -19752,20 +19756,20 @@
 $as_echo "$ax_cv_check_cxxflags___march_native" >&6; }
 if test "x$ax_cv_check_cxxflags___march_native" = xyes; then :
 
-if ${CXXFLAGS+:} false; then :
+if ${HPCOMBI_CXXFLAGS+:} false; then :
 
-  case " $CXXFLAGS " in #(
+  case " $HPCOMBI_CXXFLAGS " in #(
   *" -march=native "*) :
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: : CXXFLAGS already contains 
-march=native"; } >&5
-  (: CXXFLAGS already contains -march=native) 2>&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: : HPCOMBI_CXXFLAGS already 
contains -march=native"; } >&5
+  (: HPCOMBI_CXXFLAGS already contains -march=native) 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; } ;; #(
   *) :
 
-     as_fn_append CXXFLAGS " -march=native"
-     { { $as_echo "$as_me:${as_lineno-$LINENO}: : CXXFLAGS=\"\$CXXFLAGS\""; } 
>&5
-  (: CXXFLAGS="$CXXFLAGS") 2>&5
+     as_fn_append HPCOMBI_CXXFLAGS " -march=native"
+     { { $as_echo "$as_me:${as_lineno-$LINENO}: : 
HPCOMBI_CXXFLAGS=\"\$HPCOMBI_CXXFLAGS\""; } >&5
+  (: HPCOMBI_CXXFLAGS="$HPCOMBI_CXXFLAGS") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }
@@ -19774,9 +19778,9 @@
 
 else
 
-  CXXFLAGS=-march=native
-  { { $as_echo "$as_me:${as_lineno-$LINENO}: : CXXFLAGS=\"\$CXXFLAGS\""; } >&5
-  (: CXXFLAGS="$CXXFLAGS") 2>&5
+  HPCOMBI_CXXFLAGS=-march=native
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: : 
HPCOMBI_CXXFLAGS=\"\$HPCOMBI_CXXFLAGS\""; } >&5
+  (: HPCOMBI_CXXFLAGS="$HPCOMBI_CXXFLAGS") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }
@@ -19823,20 +19827,20 @@
 $as_echo "$ax_cv_check_cxxflags___flax_vector_conversions" >&6; }
 if test "x$ax_cv_check_cxxflags___flax_vector_conversions" = xyes; then :
 
-if ${CXXFLAGS+:} false; then :
+if ${HPCOMBI_CXXFLAGS+:} false; then :
 
-  case " $CXXFLAGS " in #(
+  case " $HPCOMBI_CXXFLAGS " in #(
   *" -flax-vector-conversions "*) :
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: : CXXFLAGS already contains 
-flax-vector-conversions"; } >&5
-  (: CXXFLAGS already contains -flax-vector-conversions) 2>&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: : HPCOMBI_CXXFLAGS already 
contains -flax-vector-conversions"; } >&5
+  (: HPCOMBI_CXXFLAGS already contains -flax-vector-conversions) 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; } ;; #(
   *) :
 
-     as_fn_append CXXFLAGS " -flax-vector-conversions"
-     { { $as_echo "$as_me:${as_lineno-$LINENO}: : CXXFLAGS=\"\$CXXFLAGS\""; } 
>&5
-  (: CXXFLAGS="$CXXFLAGS") 2>&5
+     as_fn_append HPCOMBI_CXXFLAGS " -flax-vector-conversions"
+     { { $as_echo "$as_me:${as_lineno-$LINENO}: : 
HPCOMBI_CXXFLAGS=\"\$HPCOMBI_CXXFLAGS\""; } >&5
+  (: HPCOMBI_CXXFLAGS="$HPCOMBI_CXXFLAGS") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }
@@ -19845,9 +19849,9 @@
 
 else
 
-  CXXFLAGS=-flax-vector-conversions
-  { { $as_echo "$as_me:${as_lineno-$LINENO}: : CXXFLAGS=\"\$CXXFLAGS\""; } >&5
-  (: CXXFLAGS="$CXXFLAGS") 2>&5
+  HPCOMBI_CXXFLAGS=-flax-vector-conversions
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: : 
HPCOMBI_CXXFLAGS=\"\$HPCOMBI_CXXFLAGS\""; } >&5
+  (: HPCOMBI_CXXFLAGS="$HPCOMBI_CXXFLAGS") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }
@@ -19888,6 +19892,8 @@
   if test "x$enable_hpcombi" = xyes; then :
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _mm_blendv_epi8" >&5
 $as_echo_n "checking for _mm_blendv_epi8... " >&6; }
+    saved_CXXFLAGS="$CXXFLAGS"
+    CXXFLAGS="-march=native -flax-vector-conversions"
     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <x86intrin.h>
@@ -19911,11 +19917,14 @@
     conftest$ac_exeext conftest.$ac_ext
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_hpcombi" >&5
 $as_echo "$enable_hpcombi" >&6; }
+    CXXFLAGS="$saved_CXXFLAGS"
 
 fi
   if test "x$enable_hpcombi" = xyes; then :
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _mm_cmpeq_epi8" >&5
 $as_echo_n "checking for _mm_cmpeq_epi8... " >&6; }
+    saved_CXXFLAGS="$CXXFLAGS"
+    CXXFLAGS="-march=native -flax-vector-conversions"
     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <x86intrin.h>
@@ -19939,11 +19948,14 @@
     conftest$ac_exeext conftest.$ac_ext
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_hpcombi" >&5
 $as_echo "$enable_hpcombi" >&6; }
+    CXXFLAGS="$saved_CXXFLAGS"
 
 fi
   if test "x$enable_hpcombi" = xyes; then :
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _mm_cmpestri" >&5
 $as_echo_n "checking for _mm_cmpestri... " >&6; }
+    saved_CXXFLAGS="$CXXFLAGS"
+    CXXFLAGS="-march=native -flax-vector-conversions"
     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <x86intrin.h>
@@ -19967,11 +19979,14 @@
     conftest$ac_exeext conftest.$ac_ext
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_hpcombi" >&5
 $as_echo "$enable_hpcombi" >&6; }
+    CXXFLAGS="$saved_CXXFLAGS"
 
 fi
   if test "x$enable_hpcombi" = xyes; then :
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _mm_cmpestrm" >&5
 $as_echo_n "checking for _mm_cmpestrm... " >&6; }
+    saved_CXXFLAGS="$CXXFLAGS"
+    CXXFLAGS="-march=native -flax-vector-conversions"
     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <x86intrin.h>
@@ -19995,11 +20010,14 @@
     conftest$ac_exeext conftest.$ac_ext
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_hpcombi" >&5
 $as_echo "$enable_hpcombi" >&6; }
+    CXXFLAGS="$saved_CXXFLAGS"
 
 fi
   if test "x$enable_hpcombi" = xyes; then :
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _mm_cmplt_epi8" >&5
 $as_echo_n "checking for _mm_cmplt_epi8... " >&6; }
+    saved_CXXFLAGS="$CXXFLAGS"
+    CXXFLAGS="-march=native -flax-vector-conversions"
     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <x86intrin.h>
@@ -20023,11 +20041,14 @@
     conftest$ac_exeext conftest.$ac_ext
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_hpcombi" >&5
 $as_echo "$enable_hpcombi" >&6; }
+    CXXFLAGS="$saved_CXXFLAGS"
 
 fi
   if test "x$enable_hpcombi" = xyes; then :
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _mm_extract_epi64" >&5
 $as_echo_n "checking for _mm_extract_epi64... " >&6; }
+    saved_CXXFLAGS="$CXXFLAGS"
+    CXXFLAGS="-march=native -flax-vector-conversions"
     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <x86intrin.h>
@@ -20051,11 +20072,14 @@
     conftest$ac_exeext conftest.$ac_ext
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_hpcombi" >&5
 $as_echo "$enable_hpcombi" >&6; }
+    CXXFLAGS="$saved_CXXFLAGS"
 
 fi
   if test "x$enable_hpcombi" = xyes; then :
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _mm_max_epi8" >&5
 $as_echo_n "checking for _mm_max_epi8... " >&6; }
+    saved_CXXFLAGS="$CXXFLAGS"
+    CXXFLAGS="-march=native -flax-vector-conversions"
     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <x86intrin.h>
@@ -20079,11 +20103,14 @@
     conftest$ac_exeext conftest.$ac_ext
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_hpcombi" >&5
 $as_echo "$enable_hpcombi" >&6; }
+    CXXFLAGS="$saved_CXXFLAGS"
 
 fi
   if test "x$enable_hpcombi" = xyes; then :
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _mm_max_epu8" >&5
 $as_echo_n "checking for _mm_max_epu8... " >&6; }
+    saved_CXXFLAGS="$CXXFLAGS"
+    CXXFLAGS="-march=native -flax-vector-conversions"
     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <x86intrin.h>
@@ -20107,11 +20134,14 @@
     conftest$ac_exeext conftest.$ac_ext
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_hpcombi" >&5
 $as_echo "$enable_hpcombi" >&6; }
+    CXXFLAGS="$saved_CXXFLAGS"
 
 fi
   if test "x$enable_hpcombi" = xyes; then :
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _mm_min_epi8" >&5
 $as_echo_n "checking for _mm_min_epi8... " >&6; }
+    saved_CXXFLAGS="$CXXFLAGS"
+    CXXFLAGS="-march=native -flax-vector-conversions"
     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <x86intrin.h>
@@ -20135,11 +20165,14 @@
     conftest$ac_exeext conftest.$ac_ext
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_hpcombi" >&5
 $as_echo "$enable_hpcombi" >&6; }
+    CXXFLAGS="$saved_CXXFLAGS"
 
 fi
   if test "x$enable_hpcombi" = xyes; then :
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _mm_min_epu8" >&5
 $as_echo_n "checking for _mm_min_epu8... " >&6; }
+    saved_CXXFLAGS="$CXXFLAGS"
+    CXXFLAGS="-march=native -flax-vector-conversions"
     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <x86intrin.h>
@@ -20163,11 +20196,14 @@
     conftest$ac_exeext conftest.$ac_ext
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_hpcombi" >&5
 $as_echo "$enable_hpcombi" >&6; }
+    CXXFLAGS="$saved_CXXFLAGS"
 
 fi
   if test "x$enable_hpcombi" = xyes; then :
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _mm_movemask_epi8" >&5
 $as_echo_n "checking for _mm_movemask_epi8... " >&6; }
+    saved_CXXFLAGS="$CXXFLAGS"
+    CXXFLAGS="-march=native -flax-vector-conversions"
     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <x86intrin.h>
@@ -20191,11 +20227,14 @@
     conftest$ac_exeext conftest.$ac_ext
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_hpcombi" >&5
 $as_echo "$enable_hpcombi" >&6; }
+    CXXFLAGS="$saved_CXXFLAGS"
 
 fi
   if test "x$enable_hpcombi" = xyes; then :
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _mm_popcnt_u32" >&5
 $as_echo_n "checking for _mm_popcnt_u32... " >&6; }
+    saved_CXXFLAGS="$CXXFLAGS"
+    CXXFLAGS="-march=native -flax-vector-conversions"
     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <x86intrin.h>
@@ -20219,11 +20258,14 @@
     conftest$ac_exeext conftest.$ac_ext
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_hpcombi" >&5
 $as_echo "$enable_hpcombi" >&6; }
+    CXXFLAGS="$saved_CXXFLAGS"
 
 fi
   if test "x$enable_hpcombi" = xyes; then :
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _mm_set_epi64x" >&5
 $as_echo_n "checking for _mm_set_epi64x... " >&6; }
+    saved_CXXFLAGS="$CXXFLAGS"
+    CXXFLAGS="-march=native -flax-vector-conversions"
     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <x86intrin.h>
@@ -20247,11 +20289,14 @@
     conftest$ac_exeext conftest.$ac_ext
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_hpcombi" >&5
 $as_echo "$enable_hpcombi" >&6; }
+    CXXFLAGS="$saved_CXXFLAGS"
 
 fi
   if test "x$enable_hpcombi" = xyes; then :
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _mm_shuffle_epi8" >&5
 $as_echo_n "checking for _mm_shuffle_epi8... " >&6; }
+    saved_CXXFLAGS="$CXXFLAGS"
+    CXXFLAGS="-march=native -flax-vector-conversions"
     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <x86intrin.h>
@@ -20275,11 +20320,14 @@
     conftest$ac_exeext conftest.$ac_ext
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_hpcombi" >&5
 $as_echo "$enable_hpcombi" >&6; }
+    CXXFLAGS="$saved_CXXFLAGS"
 
 fi
   if test "x$enable_hpcombi" = xyes; then :
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _mm_slli_epi32" >&5
 $as_echo_n "checking for _mm_slli_epi32... " >&6; }
+    saved_CXXFLAGS="$CXXFLAGS"
+    CXXFLAGS="-march=native -flax-vector-conversions"
     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <x86intrin.h>
@@ -20303,6 +20351,7 @@
     conftest$ac_exeext conftest.$ac_ext
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_hpcombi" >&5
 $as_echo "$enable_hpcombi" >&6; }
+    CXXFLAGS="$saved_CXXFLAGS"
 
 fi
 
@@ -20365,6 +20414,9 @@
 fi
 
 
+  if test "x$enable_hpcombi" = xyes; then :
+
+fi
 
 
 # Check if the vendored fmt should be used or not
@@ -20489,22 +20541,25 @@
        fi
 fi
 
-    # Check whether --enable-fmt was given.
+  # Check whether --enable-fmt was given.
 if test "${enable_fmt+set}" = set; then :
   enableval=$enable_fmt;
-$as_echo "#define FMT_ENABLED 1" >>confdefs.h
-
 else
   enable_fmt=no
 
 fi
 
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable fmt" 
>&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable fmt" >&5
 $as_echo_n "checking whether to enable fmt... " >&6; }
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_fmt" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_fmt" >&5
 $as_echo "$enable_fmt" >&6; }
 
-     if test "x$enable_fmt" = xyes; then
+  if test "x$enable_fmt" = xyes; then :
+
+$as_echo "#define FMT_ENABLED 1" >>confdefs.h
+
+fi
+   if test "x$enable_fmt" = xyes; then
   LIBSEMIGROUPS_FMT_ENABLED_TRUE=
   LIBSEMIGROUPS_FMT_ENABLED_FALSE='#'
 else
@@ -20517,9 +20572,10 @@
 
 # Check whether --with-external-fmt was given.
 if test "${with_external_fmt+set}" = set; then :
-  withval=$with_external_fmt; with_external_fmt=yes
+  withval=$with_external_fmt;
 else
   with_external_fmt=no
+
 fi
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use external 
fmt" >&5
@@ -20628,6 +20684,15 @@
     fi
   fi
 
+   if test "x$enable_fmt" = xyes && test "x$with_external_fmt" != xyes; then
+  LIBSEMIGROUPS_WITH_INTERNAL_FMT_TRUE=
+  LIBSEMIGROUPS_WITH_INTERNAL_FMT_FALSE='#'
+else
+  LIBSEMIGROUPS_WITH_INTERNAL_FMT_TRUE='#'
+  LIBSEMIGROUPS_WITH_INTERNAL_FMT_FALSE=
+fi
+
+
 
 # Check if the vendored eigen should be used or not, or if eigen should be
 # disabled altogether
@@ -20752,7 +20817,7 @@
        EIGEN3_LIBS=$pkg_cv_EIGEN3_LIBS
         { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
-
+       eigen_enabled=yes
 fi
     else
           as_ac_File=`$as_echo 
"ac_cv_file_$srcdir/extern/eigen-3.3.7/Eigen/QR" | $as_tr_sh`
@@ -21077,6 +21142,10 @@
   as_fn_error $? "conditional \"LIBSEMIGROUPS_FMT_ENABLED\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
+if test -z "${LIBSEMIGROUPS_WITH_INTERNAL_FMT_TRUE}" && test -z 
"${LIBSEMIGROUPS_WITH_INTERNAL_FMT_FALSE}"; then
+  as_fn_error $? "conditional \"LIBSEMIGROUPS_WITH_INTERNAL_FMT\" was never 
defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
 if test -z "${LIBSEMIGROUPS_EIGEN_ENABLED_TRUE}" && test -z 
"${LIBSEMIGROUPS_EIGEN_ENABLED_FALSE}"; then
   as_fn_error $? "conditional \"LIBSEMIGROUPS_EIGEN_ENABLED\" was never 
defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -21478,7 +21547,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 1.3.1, which was
+This file was extended by libsemigroups $as_me 1.3.2, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -21544,7 +21613,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-libsemigroups config.status 1.3.1
+libsemigroups config.status 1.3.2
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
Binary files old/libsemigroups-1.3.1/docs/.yml.swp and 
new/libsemigroups-1.3.2/docs/.yml.swp differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsemigroups-1.3.1/docs/source/authors.rst 
new/libsemigroups-1.3.2/docs/source/authors.rst
--- old/libsemigroups-1.3.1/docs/source/authors.rst     2020-08-28 
16:26:14.450993054 +0200
+++ new/libsemigroups-1.3.2/docs/source/authors.rst     2020-10-02 
14:24:21.278979653 +0200
@@ -53,9 +53,9 @@
 We thank the `Carnegie Trust for the Universities of Scotland`_ for funding
 the PhD scholarship of `J. Jonušas`_ when he worked on this project.
 
-We thank the `Engineering and Physical Sciences Research Council (EPSRC)`_
-for funding the PhD scholarship of `M. Torpey`_ when he worked on this
-project (EP/M506631/1).
+We thank the `Engineering and Physical Sciences Research Council (EPSRC)`_ for
+funding the PhD scholarships of `M. Torpey`_ and `F. Smith`_ when they worked
+on this project (EP/M506631/1, EP/N509759/1).
 
 .. _OpenDreamKit: https://opendreamkit.org/
 .. _Carnegie Trust for the Universities of Scotland: 
https://www.carnegie-trust.org/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsemigroups-1.3.1/docs/source/changelog.rst 
new/libsemigroups-1.3.2/docs/source/changelog.rst
--- old/libsemigroups-1.3.1/docs/source/changelog.rst   2020-08-28 
18:59:28.239388708 +0200
+++ new/libsemigroups-1.3.2/docs/source/changelog.rst   2020-10-02 
15:54:19.950402289 +0200
@@ -1,6 +1,29 @@
 Changelog
 =========
 
+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)
 ----------------------------
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsemigroups-1.3.1/docs/source/index.rst 
new/libsemigroups-1.3.2/docs/source/index.rst
--- old/libsemigroups-1.3.1/docs/source/index.rst       2020-08-28 
18:59:28.240429115 +0200
+++ new/libsemigroups-1.3.2/docs/source/index.rst       2020-10-02 
15:54:19.951641680 +0200
@@ -1,4 +1,4 @@
-libsemigroups - Version 1.3.1
+libsemigroups - Version 1.3.2
 =============================
 
 C++ library for semigroups and monoids
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsemigroups-1.3.1/docs/source/install.rst 
new/libsemigroups-1.3.2/docs/source/install.rst
--- old/libsemigroups-1.3.1/docs/source/install.rst     2020-08-28 
18:59:28.240860641 +0200
+++ new/libsemigroups-1.3.2/docs/source/install.rst     2020-10-02 
15:54:19.952426729 +0200
@@ -1,4 +1,4 @@
-.. |libsemigroups-version| replace:: 1.3.1
+.. |libsemigroups-version| replace:: 1.3.2
 
 .. _Installation:
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsemigroups-1.3.1/docs/source/semigroupe.rst 
new/libsemigroups-1.3.2/docs/source/semigroupe.rst
--- old/libsemigroups-1.3.1/docs/source/semigroupe.rst  2020-06-24 
15:43:36.528960801 +0200
+++ new/libsemigroups-1.3.2/docs/source/semigroupe.rst  2020-10-02 
14:24:21.279448053 +0200
@@ -1,7 +1,8 @@
 Semigroupe
 ==========
 
-``libsemigroups`` is partly based on `Algorithms for computing finite
+The algorithm implemented in the class ``FroidurePin``
+is based on `Algorithms for computing finite
 semigroups <https://www.irif.fr/~jep/PDF/Rio.pdf>`__, `Expository
 Slides <https://www.irif.fr/~jep/PDF/Exposes/StAndrews.pdf>`__, and
 `Semigroupe
@@ -10,7 +11,7 @@
 
 Some of the features of `Semigroupe
 2.01 <https://www.irif.fr/~jep/Logiciels/Semigroupe2.0/semigroupe2.html>`__
-are not yet implemented in ``libsemigroups``, this is a work in progress.
+are not yet implemented in ``FroidurePin``, this is a work in progress.
 Missing features include those for:
 
 -  Green’s relations, or classes
@@ -27,35 +28,24 @@
 2.01 <https://www.irif.fr/~jep/Logiciels/Semigroupe2.0/semigroupe2.html>`__
 when there is a known upper bound on the size of the semigroup being
 enumerated, and this is used to initialise the data structures for the
-semigroup; see libsemigroups::Semigroup::reserve for more details. Note
+semigroup; see ``libsemigroups::FroidurePin::reserve`` for more details. Note
 that in `Semigroupe
 2.01 <https://www.irif.fr/~jep/Logiciels/Semigroupe2.0/semigroupe2.html>`__
 it is always necessary to provide such an upper bound, but in
 ``libsemigroups`` it is not.
 
-``libsemigroups`` also has some advantages over `Semigroupe
+The ``FroidurePin`` class has some advantages over `Semigroupe
 2.01 <https://www.irif.fr/~jep/Logiciels/Semigroupe2.0/semigroupe2.html>`__
 
 -  there is a (hopefully) convenient C++ API, which makes it relatively
    easy to create and manipulate semigroups and monoids
--  there are some multithreaded methods for semigroups and their
-   congruences
--  you do not have to know/guess the size of a semigroup or monoid
-   before you begin
--  ``libsemigroups`` supports more types of elements than `Semigroupe
-   2.01 <https://www.irif.fr/~jep/Logiciels/Semigroupe2.0/semigroupe2.html>`__
+-  more types of elements are supported
 -  it is relatively straightforward to add support for further types of
-   elements and semigroups
+   elements
 -  it is possible to enumerate a certain number of elements of a
    semigroup or monoid (say if you are looking for an element with a
    particular property), to stop, and then to start the enumeration
    again at a later point
--  you can instantiate as many semigroups and monoids as you can fit in
-   memory
 -  it is possible to add more generators after a semigroup or monoid has
    been constructed, without losing or having to recompute any
    information that was previously known
--  ``libsemigroups`` contains implementations of the Todd-Coxeter and
-   Knuth-Bendix algorithms for finitely presented semigroups, which can
-   also be used to compute congruences of a (not necessarily finitely
-   presented) semigroup or monoid.
Binary files old/libsemigroups-1.3.1/docs/yml/.fpsemigroup.yml.swp and 
new/libsemigroups-1.3.2/docs/yml/.fpsemigroup.yml.swp differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libsemigroups-1.3.1/include/libsemigroups/libsemigroups-config.hpp 
new/libsemigroups-1.3.2/include/libsemigroups/libsemigroups-config.hpp
--- old/libsemigroups-1.3.1/include/libsemigroups/libsemigroups-config.hpp      
2020-08-28 18:59:55.234810628 +0200
+++ new/libsemigroups-1.3.2/include/libsemigroups/libsemigroups-config.hpp      
2020-10-02 15:54:46.132464647 +0200
@@ -178,7 +178,7 @@
 
 /* Define to the full name and version of this package. */
 #ifndef LIBSEMIGROUPS_PACKAGE_STRING
-#define LIBSEMIGROUPS_PACKAGE_STRING "libsemigroups 1.3.1"
+#define LIBSEMIGROUPS_PACKAGE_STRING "libsemigroups 1.3.2"
 #endif
 
 /* Define to the one symbol short name of this package. */
@@ -193,7 +193,7 @@
 
 /* Define to the version of this package. */
 #ifndef LIBSEMIGROUPS_PACKAGE_VERSION
-#define LIBSEMIGROUPS_PACKAGE_VERSION "1.3.1"
+#define LIBSEMIGROUPS_PACKAGE_VERSION "1.3.2"
 #endif
 
 /* Define to necessary symbol if this constant uses a non-standard name on
@@ -225,7 +225,7 @@
 
 /* Version number of package */
 #ifndef LIBSEMIGROUPS_VERSION
-#define LIBSEMIGROUPS_VERSION "1.3.1"
+#define LIBSEMIGROUPS_VERSION "1.3.2"
 #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-1.3.1/include/libsemigroups/string.hpp 
new/libsemigroups-1.3.2/include/libsemigroups/string.hpp
--- old/libsemigroups-1.3.1/include/libsemigroups/string.hpp    2020-08-28 
16:26:15.066026067 +0200
+++ new/libsemigroups-1.3.2/include/libsemigroups/string.hpp    2020-10-02 
14:24:21.279714084 +0200
@@ -61,6 +61,10 @@
   // A << function for vectors
   template <typename T>
   std::ostream& operator<<(std::ostream& os, std::vector<T> const& vec) {
+    if (vec.empty()) {
+      os << "{}";
+      return os;
+    }
     os << "{{";  // {{ is an escaped single { for fmt
     for (auto it = vec.cbegin(); it < vec.cend() - 1; ++it) {
       os << detail::to_string(*it) << ", ";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsemigroups-1.3.1/m4/ax_check_eigen.m4 
new/libsemigroups-1.3.2/m4/ax_check_eigen.m4
--- old/libsemigroups-1.3.1/m4/ax_check_eigen.m4        2020-08-28 
16:26:15.068860527 +0200
+++ new/libsemigroups-1.3.2/m4/ax_check_eigen.m4        2020-10-02 
15:14:48.104009727 +0200
@@ -27,7 +27,8 @@
     if test "$with_external_eigen" = yes;  then
           m4_ifdef([PKG_CHECK_MODULES], [
           PKG_CHECK_MODULES([EIGEN3], 
-                            [eigen3 >= $REQUI_EIGEN_VERSION])],
+                            [eigen3 >= $REQUI_EIGEN_VERSION],
+                            [eigen_enabled=yes])],
           [AC_MSG_ERROR([cannot use flag --with-external-eigen, the 
libsemigroups configure file was created on a system without m4 macros for 
pkg-config available...])])
     else
           AC_CHECK_FILE(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsemigroups-1.3.1/m4/ax_check_fmt.m4 
new/libsemigroups-1.3.2/m4/ax_check_fmt.m4
--- old/libsemigroups-1.3.1/m4/ax_check_fmt.m4  2020-08-28 16:26:15.069562821 
+0200
+++ new/libsemigroups-1.3.2/m4/ax_check_fmt.m4  2020-10-02 15:17:46.886626398 
+0200
@@ -4,22 +4,26 @@
 dnl known to pkg-config and is new enough; otherwise use the included version
 dnl
 AC_DEFUN([AX_CHECK_FMT], [
-    AC_ARG_ENABLE([fmt],
-      [AS_HELP_STRING([--enable-fmt], [enable fmt])],
-      [AC_DEFINE([FMT_ENABLED], [1], [define if building with fmt])],
-      [enable_fmt=no]
-      )
-    AC_MSG_CHECKING([whether to enable fmt])
-    AC_MSG_RESULT([$enable_fmt])
+  AC_ARG_ENABLE(
+    [fmt],
+    [AS_HELP_STRING([--enable-fmt], [enable fmt])],
+    [],
+    [enable_fmt=no]
+  )
+  AC_MSG_CHECKING([whether to enable fmt])
+  AC_MSG_RESULT([$enable_fmt])
 
-    AM_CONDITIONAL([LIBSEMIGROUPS_FMT_ENABLED], [test "x$enable_fmt" = xyes])
+  AS_IF([test "x$enable_fmt" = xyes], 
+    [AC_DEFINE([FMT_ENABLED], [1], [define if building with fmt])])
+  AM_CONDITIONAL([LIBSEMIGROUPS_FMT_ENABLED], [test "x$enable_fmt" = xyes])
 
   if test "x$enable_fmt" = xyes;  then
-    AC_ARG_WITH([external-fmt],
-                [AC_HELP_STRING([--with-external-fmt],
-                                [use the external fmt])],
-        [with_external_fmt=yes], 
-        [with_external_fmt=no])
+    AC_ARG_WITH(
+      [external-fmt],
+      [AC_HELP_STRING([--with-external-fmt], [use the external fmt])],
+      [],
+      [with_external_fmt=no]
+    )
     AC_MSG_CHECKING([whether to use external fmt])
     AC_MSG_RESULT([$with_external_fmt])
 
@@ -34,4 +38,7 @@
           AC_SUBST(FMT_CFLAGS, ['-I$(srcdir)/extern/fmt-5.3.0/include'])
     fi
   fi
+
+  AM_CONDITIONAL([LIBSEMIGROUPS_WITH_INTERNAL_FMT], [test "x$enable_fmt" = 
xyes && test "x$with_external_fmt" != xyes])
 ])
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsemigroups-1.3.1/m4/ax_check_hpcombi.m4 
new/libsemigroups-1.3.2/m4/ax_check_hpcombi.m4
--- old/libsemigroups-1.3.1/m4/ax_check_hpcombi.m4      2020-08-28 
16:26:15.070107939 +0200
+++ new/libsemigroups-1.3.2/m4/ax_check_hpcombi.m4      2020-10-02 
14:24:21.281415293 +0200
@@ -2,6 +2,8 @@
 
 AC_DEFUN([CHECK_INTRINSIC],
     [AC_MSG_CHECKING([for $1])
+    saved_CXXFLAGS="$CXXFLAGS"
+    CXXFLAGS="-march=native -flax-vector-conversions"
     AC_LINK_IFELSE(
       [AC_LANG_PROGRAM(
         [[#include <x86intrin.h>]],
@@ -12,9 +14,11 @@
       [enable_hpcombi=no]
       )
     AC_MSG_RESULT([$enable_hpcombi])
+    CXXFLAGS="$saved_CXXFLAGS"
     ])
 
 AC_DEFUN([AX_CHECK_HPCOMBI], [
+  m4_define([ax_hpcombi_cxxflags_variable],[HPCOMBI_CXXFLAGS])
   AC_ARG_ENABLE([hpcombi],
       [AS_HELP_STRING([--enable-hpcombi], [enable HPCombi])],
       [],
@@ -50,13 +54,13 @@
   dnl # Check if the flags required for HPCombi are supported 
   AS_IF([test "x$enable_hpcombi" = xyes], 
         [AX_CHECK_COMPILE_FLAG(-march=native, 
-                               AX_APPEND_FLAG(-march=native),
+                               AX_APPEND_FLAG(-march=native, 
[ax_hpcombi_cxxflags_variable]),
                                [AC_MSG_WARN([flag -march=native not supported, 
HPCombi is disabled])
                               enable_hpcombi=no])])
 
   AS_IF([test "x$enable_hpcombi" = xyes], 
         [AX_CHECK_COMPILE_FLAG(-flax-vector-conversions, 
-                               AX_APPEND_FLAG(-flax-vector-conversions),
+                               AX_APPEND_FLAG(-flax-vector-conversions, 
[ax_hpcombi_cxxflags_variable]),
                                [AC_MSG_WARN([flag -flax-vector-conversions not 
supported, HPCombi is disabled])
                                enable_hpcombi=no])])
 
@@ -110,5 +114,7 @@
 
   AM_CONDITIONAL([HPCOMBI_CONSTEXPR_FUN_ARGS], 
                  [test "x$hpcombi_constexpr_fun_args" = xyes])
-
+    
+  AS_IF([test "x$enable_hpcombi" = xyes],
+        AC_SUBST(ax_hpcombi_cxxflags_variable))
 ])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsemigroups-1.3.1/src/element.cpp 
new/libsemigroups-1.3.2/src/element.cpp
--- old/libsemigroups-1.3.1/src/element.cpp     2020-08-28 16:26:15.072722350 
+0200
+++ new/libsemigroups-1.3.2/src/element.cpp     2020-10-02 14:24:21.281967939 
+0200
@@ -612,20 +612,30 @@
   }
 
   std::ostringstream& operator<<(std::ostringstream& os, PBR const& pbr) {
+    if (pbr.degree() == 0) {
+      os << "{}";
+      return os;
+    }
     os << "{";
     for (size_t i = 0; i < pbr.degree() * 2 - 1; ++i) {
       os << "{";
-      for (size_t j = 0; j < pbr[i].size() - 1; ++j) {
-        os << pbr[i][j] << ", ";
+      if (!pbr[i].empty()) {
+        for (size_t j = 0; j + 1 < pbr[i].size(); ++j) {
+          os << pbr[i][j] << ", ";
+        }
+        os << detail::to_string(pbr[i].back());
       }
-      os << detail::to_string(pbr[i].back()) << "}, ";
+      os << "}, ";
     }
 
     os << "{";
-    for (size_t j = 0; j < pbr[2 * pbr.degree() - 1].size() - 1; ++j) {
-      os << pbr[2 * pbr.degree() - 1][j] << ", ";
+    if (!pbr[2 * pbr.degree() - 1].empty()) {
+      for (size_t j = 0; j + 1 < pbr[2 * pbr.degree() - 1].size(); ++j) {
+        os << pbr[2 * pbr.degree() - 1][j] << ", ";
+      }
+      os << detail::to_string(pbr[2 * pbr.degree() - 1].back());
     }
-    os << detail::to_string(pbr[2 * pbr.degree() - 1].back()) << "}}";
+    os << "}}";
     return os;
   }
 
@@ -649,6 +659,14 @@
         }
       }
     }
+    for (size_t u = 0; u < n; ++u) {
+      if (!std::is_sorted(this->_vector.at(u).cbegin(),
+                          this->_vector.at(u).cend())) {
+        LIBSEMIGROUPS_EXCEPTION("the adjacencies of vertex ",
+                                detail::to_string(u).c_str(),
+                                " are unsorted");
+        }
+    }
   }
 
   size_t PBR::complexity() const {
@@ -860,13 +878,17 @@
               n,
               x);
         }
-        if (x < 0) {
-          v.push_back(static_cast<uint32_t>(n - x - 1));
-        }
         if (x > 0) {
           v.push_back(static_cast<uint32_t>(x - 1));
         }
       }
+      // We have to go backwards through the vector to add the negative 
entries,
+      // so that users can input those negative entries in the natural order
+      for (auto it = vec.rbegin(); it < vec.rend(); ++it) {
+        if (*it < 0) {
+          v.push_back(static_cast<uint32_t>(n - *it - 1));
+        }
+      }
       out.push_back(v);
     }
     for (std::vector<int32_t> vec : right) {
@@ -881,13 +903,15 @@
               n,
               x);
         }
-        if (x < 0) {
-          v.push_back(static_cast<uint32_t>(n - x - 1));
-        }
         if (x > 0) {
           v.push_back(static_cast<uint32_t>(x - 1));
         }
       }
+      for (auto it = vec.rbegin(); it < vec.rend(); ++it) {
+        if (*it < 0) {
+          v.push_back(static_cast<uint32_t>(n - *it - 1));
+        }
+      }
       out.push_back(v);
     }
     return out;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsemigroups-1.3.1/src/report.cpp 
new/libsemigroups-1.3.2/src/report.cpp
--- old/libsemigroups-1.3.1/src/report.cpp      2020-08-28 16:26:15.075331968 
+0200
+++ new/libsemigroups-1.3.2/src/report.cpp      2020-10-02 14:24:21.282414776 
+0200
@@ -119,7 +119,7 @@
         }
 #endif
         _msg[tid] = wrap(_options[tid].prefix.length(), _msg[tid]);
-#ifdef LIBSEMIGROUPS_ENABLE_FMT
+#ifdef LIBSEMIGROUPS_FMT_ENABLED
         fmt::print(fg(_options[tid].color), _msg[tid]);
 #else
         std::cout << _msg[tid];
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsemigroups-1.3.1/tests/test-element.cpp 
new/libsemigroups-1.3.2/tests/test-element.cpp
--- old/libsemigroups-1.3.1/tests/test-element.cpp      2020-08-28 
16:26:15.080197345 +0200
+++ new/libsemigroups-1.3.2/tests/test-element.cpp      2020-10-02 
14:24:21.283036101 +0200
@@ -1286,18 +1286,18 @@
     Element* z = new PBR({{-3, -2, -1, 1}, {-3, -2, 3}, {-3, 2, 3}},
                          {{-3, -2, -1, 3}, {-3, -2, -1, 3}, {-2, 2, 3}});
 
-    Element* xx = new PBR({{5, 3},
-                           {5, 4, 3, 0, 1, 2},
-                           {5, 4, 3, 0, 2},
-                           {5, 3, 0, 1, 2},
-                           {5, 0, 2},
-                           {5, 4, 3, 1, 2}});
-    Element* yy = new PBR({{5, 4, 3, 0},
-                           {5, 4, 2},
-                           {5, 1, 2},
-                           {5, 4, 3, 2},
-                           {5, 4, 3, 2},
-                           {4, 1, 2}});
+    Element* xx = new PBR({{3, 5},
+                           {0, 1, 2, 3, 4, 5},
+                           {0, 2, 3, 4, 5},
+                           {0, 1, 2, 3, 5},
+                           {0, 2, 5},
+                           {1, 2, 3, 4, 5}});
+    Element* yy = new PBR({{0, 3, 4, 5},
+                           {2, 4, 5},
+                           {1, 2, 5},
+                           {2, 3, 4, 5},
+                           {2, 3, 4, 5},
+                           {1, 2, 4}});
 
     REQUIRE(*x == *xx);
     REQUIRE(*y == *yy);
@@ -1324,25 +1324,25 @@
                           "002",
                           "universal product",
                           "[quick][element]") {
-    Element* x = new PBR({{5, 3},
-                          {5, 4, 3, 0, 1, 2},
-                          {5, 4, 3, 0, 2},
-                          {5, 3, 0, 1, 2},
-                          {5, 0, 2},
-                          {5, 4, 3, 1, 2}});
-    Element* y = new PBR({{5, 4, 3, 0},
-                          {5, 4, 2},
-                          {5, 1, 2},
-                          {5, 4, 3, 2},
-                          {5, 4, 3, 2},
-                          {4, 1, 2}});
-
-    Element* z = new PBR({{5, 4, 3, 0},
-                          {5, 4, 2},
-                          {5, 1, 2},
-                          {5, 4, 3, 2},
-                          {5, 4, 3, 2},
-                          {4, 1, 2}});
+    Element* x = new PBR({{3, 5},
+                          {0, 1, 2, 3, 4, 5},
+                          {0, 2, 3, 4, 5},
+                          {0, 1, 2, 3, 5},
+                          {0, 2, 5},
+                          {1, 2, 3, 4, 5}});
+    Element* y = new PBR({{0, 3, 4, 5},
+                          {2, 4, 5},
+                          {1, 2, 5},
+                          {2, 3, 4, 5},
+                          {2, 3, 4, 5},
+                          {1, 2, 4}});
+
+    Element* z = new PBR({{0, 3, 4, 5},
+                          {2, 4, 5},
+                          {1, 2, 5},
+                          {2, 3, 4, 5},
+                          {2, 3, 4, 5},
+                          {1, 2, 4}});
     z->redefine(x, y);
 
     Element* expected = new PBR({{0, 1, 2, 3, 4, 5},
@@ -1363,20 +1363,20 @@
                           "003",
                           "product [bigger than previous]",
                           "[quick][element]") {
-    Element* x = new PBR({{5, 3},
-                          {5, 4, 3, 0, 1, 2},
-                          {5, 4, 3, 0, 2},
-                          {5, 3, 0, 1, 2},
-                          {5, 0, 2},
-                          {5, 4, 3, 1, 2},
+    Element* x = new PBR({{3, 5},
+                          {0, 1, 2, 3, 4, 5},
+                          {0, 2, 3, 4, 5},
+                          {0, 1, 2, 3, 5},
+                          {0, 2, 5},
+                          {1, 2, 3, 4, 5},
                           {},
                           {}});
-    Element* y = new PBR({{5, 3},
-                          {5, 4, 3, 0, 1, 2},
-                          {5, 4, 3, 0, 2},
-                          {5, 3, 0, 1, 2},
-                          {5, 0, 2},
-                          {5, 4, 3, 1, 2},
+    Element* y = new PBR({{3, 5},
+                          {0, 1, 2, 3, 4, 5},
+                          {0, 2, 3, 4, 5},
+                          {0, 1, 2, 3, 5},
+                          {0, 2, 5},
+                          {1, 2, 3, 4, 5},
                           {},
                           {6}});
     x->redefine(y, y);
@@ -1457,6 +1457,8 @@
         PBR({{-4, -1}, {-3, -2, -1, 1, 2, 3}, {-3, -2, -1, 1, 3}},
             {{-3, -1, 1, 2, 3}, {-3, 1, 3}, {-3, -2, -1, 2, 3}, {-1, -2}}),
         LibsemigroupsException);
+
+    REQUIRE_THROWS_AS(PBR({{}, {2}, {1}, {3, 0}}), LibsemigroupsException);
   }
 
   template <typename T>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libsemigroups-1.3.1/tests/test-froidure-pin-pbr.cpp 
new/libsemigroups-1.3.2/tests/test-froidure-pin-pbr.cpp
--- old/libsemigroups-1.3.1/tests/test-froidure-pin-pbr.cpp     2020-08-28 
16:26:15.083216006 +0200
+++ new/libsemigroups-1.3.2/tests/test-froidure-pin-pbr.cpp     2020-10-02 
14:24:21.283695247 +0200
@@ -38,24 +38,24 @@
                           "(pbrs)",
                           "[quick][froidure-pin][pbr]") {
     auto             rg   = ReportGuard(REPORT);
-    std::vector<PBR> gens = {PBR({{5, 3},
-                                  {5, 4, 3, 0, 1, 2},
-                                  {5, 4, 3, 0, 2},
-                                  {5, 3, 0, 1, 2},
-                                  {5, 0, 2},
-                                  {5, 4, 3, 1, 2}}),
-                             PBR({{5, 4, 3, 0},
-                                  {5, 4, 2},
-                                  {5, 1, 2},
-                                  {5, 4, 3, 2},
-                                  {5, 4, 3, 2},
-                                  {4, 1, 2}}),
-                             PBR({{5, 4, 3, 0},
-                                  {5, 4, 2},
-                                  {5, 1, 2},
-                                  {5, 4, 3, 2},
-                                  {5, 4, 3, 2},
-                                  {4, 1, 2}})};
+    std::vector<PBR> gens = {PBR({{3, 5},
+                                  {0, 1, 2, 3, 4, 5},
+                                  {0, 2, 3, 4, 5},
+                                  {0, 1, 2, 3, 5},
+                                  {0, 2, 5},
+                                  {1, 2, 3, 4, 5}}),
+                             PBR({{0, 3, 4, 5},
+                                  {2, 4, 5},
+                                  {1, 2, 5},
+                                  {2, 3, 4, 5},
+                                  {2, 3, 4, 5},
+                                  {1, 2, 4}}),
+                             PBR({{0, 3, 4, 5},
+                                  {2, 4, 5},
+                                  {1, 2, 5},
+                                  {2, 3, 4, 5},
+                                  {2, 3, 4, 5},
+                                  {1, 2, 4}})};
     FroidurePin<PBR> S(gens);
 
     S.reserve(4);
@@ -68,47 +68,47 @@
       REQUIRE(S.position(*it) == pos);
       pos++;
     }
-    S.add_generators({PBR({{5, 4, 3},
-                           {5, 4, 2},
-                           {4, 2, 1},
-                           {5, 3, 0},
-                           {5, 3, 2, 1},
-                           {3, 1, 2}})});
+    S.add_generators({PBR({{3, 4, 5},
+                           {2, 4, 5},
+                           {1, 2, 4},
+                           {0, 3, 5},
+                           {1, 2, 3, 5},
+                           {1, 2, 3}})});
     REQUIRE(S.size() == 6);
-    S.closure({PBR({{5, 4, 3},
-                    {5, 4, 2},
-                    {4, 2, 1},
-                    {5, 3, 0},
-                    {5, 3, 2, 1},
-                    {3, 1, 2}})});
+    S.closure({PBR({{3, 4, 5},
+                    {2, 4, 5},
+                    {1, 2, 4},
+                    {0, 3, 5},
+                    {1, 2, 3, 5},
+                    {1, 2, 3}})});
     REQUIRE(S.size() == 6);
-    REQUIRE(S.minimal_factorisation(PBR({{5, 3},
-                                         {5, 4, 3, 0, 1, 2},
-                                         {5, 4, 3, 0, 2},
-                                         {5, 3, 0, 1, 2},
-                                         {5, 0, 2},
-                                         {5, 4, 3, 1, 2}})
-                                    * PBR({{5, 4, 3},
-                                           {5, 4, 2},
-                                           {4, 2, 1},
-                                           {5, 3, 0},
-                                           {5, 3, 2, 1},
-                                           {3, 1, 2}}))
+    REQUIRE(S.minimal_factorisation(PBR({{3, 5},
+                                         {0, 1, 2, 3, 4, 5},
+                                         {0, 2, 3, 4, 5},
+                                         {0, 1, 2, 3, 5},
+                                         {0, 2, 5},
+                                         {1, 2, 3, 4, 5}})
+                                    * PBR({{3, 4, 5},
+                                           {2, 4, 5},
+                                           {1, 2, 4},
+                                           {0, 3, 5},
+                                           {1, 2, 3, 5},
+                                           {1, 2, 3}}))
             == word_type({0, 0}));
     REQUIRE(S.minimal_factorisation(5) == word_type({3, 3}));
     REQUIRE(S.at(5)
-            == PBR({{5, 4, 3},
-                    {5, 4, 2},
-                    {4, 2, 1},
-                    {5, 3, 0},
-                    {5, 3, 2, 1},
-                    {3, 1, 2}})
-                   * PBR({{5, 4, 3},
-                          {5, 4, 2},
-                          {4, 2, 1},
-                          {5, 3, 0},
-                          {5, 3, 2, 1},
-                          {3, 1, 2}}));
+            == PBR({{3, 4, 5},
+                    {2, 4, 5},
+                    {1, 2, 4},
+                    {0, 3, 5},
+                    {1, 2, 3, 5},
+                    {1, 2, 3}})
+                   * PBR({{3, 4, 5},
+                          {2, 4, 5},
+                          {1, 2, 4},
+                          {0, 3, 5},
+                          {1, 2, 3, 5},
+                          {1, 2, 3}}));
     REQUIRE_THROWS_AS(S.minimal_factorisation(1000000000),
                       LibsemigroupsException);
     pos = 0;


Reply via email to