Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package mpfrcx for openSUSE:Factory checked 
in at 2022-04-21 15:43:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mpfrcx (Old)
 and      /work/SRC/openSUSE:Factory/.mpfrcx.new.1538 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "mpfrcx"

Thu Apr 21 15:43:30 2022 rev:3 rq:971620 version:0.6.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/mpfrcx/mpfrcx.changes    2021-05-08 
22:08:37.645428248 +0200
+++ /work/SRC/openSUSE:Factory/.mpfrcx.new.1538/mpfrcx.changes  2022-04-21 
15:49:26.176366076 +0200
@@ -1,0 +2,11 @@
+Thu Apr 21 10:48:09 UTC 2022 - Jan Engelhardt <jeng...@inai.de>
+
+- Update to release 0.6.3
+  * Correct a bug that prevented the reconstruction of real towers
+    when no real conjugate is present.
+  * Correct a memory leak in mpcx_tower_clear.
+  * Correct a bug that prevented the reconstruction of real
+    towers when a supposedly complex conjugate pair of roots has
+    become the same real root.
+
+-------------------------------------------------------------------

Old:
----
  mpfrcx-0.6.1.tar.gz
  mpfrcx-0.6.1.tar.gz.asc

New:
----
  mpfrcx-0.6.3.tar.gz
  mpfrcx-0.6.3.tar.gz.asc

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

Other differences:
------------------
++++++ mpfrcx.spec ++++++
--- /var/tmp/diff_new_pack.cfNM8t/_old  2022-04-21 15:49:26.584366512 +0200
+++ /var/tmp/diff_new_pack.cfNM8t/_new  2022-04-21 15:49:26.588366516 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package mpfrcx
 #
-# 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:           mpfrcx
 %define lname  libmpfrcx1
-Version:        0.6.1
+Version:        0.6.3
 Release:        0
 Summary:        Multi-precision floating-point arithmetic of univariate 
polynomials
 License:        LGPL-3.0-or-later

++++++ mpfrcx-0.6.1.tar.gz -> mpfrcx-0.6.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mpfrcx-0.6.1/Makefile.in new/mpfrcx-0.6.3/Makefile.in
--- old/mpfrcx-0.6.1/Makefile.in        2021-04-29 12:18:12.000000000 +0200
+++ new/mpfrcx-0.6.3/Makefile.in        2021-09-10 15:47:49.000000000 +0200
@@ -202,8 +202,8 @@
        $(top_srcdir)/build-aux/missing AUTHORS COPYING.LESSER \
        ChangeLog INSTALL NEWS README build-aux/ar-lib \
        build-aux/compile build-aux/config.guess build-aux/config.sub \
-       build-aux/depcomp build-aux/install-sh build-aux/ltmain.sh \
-       build-aux/mdate-sh build-aux/missing build-aux/texinfo.tex
+       build-aux/install-sh build-aux/ltmain.sh build-aux/mdate-sh \
+       build-aux/missing build-aux/texinfo.tex
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 distdir = $(PACKAGE)-$(VERSION)
 top_distdir = $(distdir)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mpfrcx-0.6.1/NEWS new/mpfrcx-0.6.3/NEWS
--- old/mpfrcx-0.6.1/NEWS       2021-04-26 17:21:19.000000000 +0200
+++ new/mpfrcx-0.6.3/NEWS       2021-07-07 17:27:19.000000000 +0200
@@ -1,3 +1,15 @@
+Changes in version 0.6.3:
+   - Bugs
+     * Correct a bug that prevented the reconstruction of real towers
+       when a supposedly complex conjugate pair of roots has become
+       the same real root.
+
+Changes in version 0.6.2:
+   - Bugs
+     * Correct a bug that prevented the reconstruction of real towers
+       when no real conjugate is present.
+     * Correct a memory leak in mpcx_tower_clear.
+
 Changes in version 0.6.1:
    - Bugs
      * In mpfrcx_tower_decomposition, correct the check whether a relative
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mpfrcx-0.6.1/README new/mpfrcx-0.6.3/README
--- old/mpfrcx-0.6.1/README     2020-08-18 16:03:49.000000000 +0200
+++ new/mpfrcx-0.6.3/README     2021-06-21 16:23:19.000000000 +0200
@@ -18,8 +18,8 @@
 
 1. In the directory of the MPFRCX archive, type
 
-      tar xzf mpfrcx-0.6.1.tar.gz
-      cd mpfrcx-0.6.1
+      tar xzf mpfrcx-0.6.3.tar.gz
+      cd mpfrcx-0.6.3
       ./configure
       make
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mpfrcx-0.6.1/build-aux/config.guess 
new/mpfrcx-0.6.3/build-aux/config.guess
--- old/mpfrcx-0.6.1/build-aux/config.guess     2021-04-29 12:09:03.000000000 
+0200
+++ new/mpfrcx-0.6.3/build-aux/config.guess     2021-09-10 15:52:20.000000000 
+0200
@@ -1,4 +1,4 @@
-#!/gnu/store/pwcp239kjf7lnj5i4lkdzcfcxwcfyk72-bash-minimal-5.0.16/bin/sh
+#!/bin/sh
 # Attempt to guess a canonical system name.
 #   Copyright 1992-2021 Free Software Foundation, Inc.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mpfrcx-0.6.1/build-aux/config.sub 
new/mpfrcx-0.6.3/build-aux/config.sub
--- old/mpfrcx-0.6.1/build-aux/config.sub       2021-04-29 12:09:03.000000000 
+0200
+++ new/mpfrcx-0.6.3/build-aux/config.sub       2021-09-10 15:52:26.000000000 
+0200
@@ -1,4 +1,4 @@
-#!/gnu/store/pwcp239kjf7lnj5i4lkdzcfcxwcfyk72-bash-minimal-5.0.16/bin/sh
+#!/bin/sh
 # Configuration validation subroutine script.
 #   Copyright 1992-2021 Free Software Foundation, Inc.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mpfrcx-0.6.1/build-aux/install-sh 
new/mpfrcx-0.6.3/build-aux/install-sh
--- old/mpfrcx-0.6.1/build-aux/install-sh       2021-04-29 12:09:03.000000000 
+0200
+++ new/mpfrcx-0.6.3/build-aux/install-sh       2021-09-10 15:52:11.000000000 
+0200
@@ -1,4 +1,4 @@
-#!/gnu/store/pwcp239kjf7lnj5i4lkdzcfcxwcfyk72-bash-minimal-5.0.16/bin/sh
+#!/bin/sh
 # install - install a program, script, or datafile
 
 scriptversion=2020-11-14.01; # UTC
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mpfrcx-0.6.1/configure new/mpfrcx-0.6.3/configure
--- old/mpfrcx-0.6.1/configure  2021-04-29 12:18:12.000000000 +0200
+++ new/mpfrcx-0.6.3/configure  2021-09-10 15:47:49.000000000 +0200
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.71 for mpfrcx 0.6.1.
+# Generated by GNU Autoconf 2.71 for mpfrcx 0.6.3.
 #
 # Report bugs to <andreas.e...@inria.fr>.
 #
@@ -621,8 +621,8 @@
 # Identity of this package.
 PACKAGE_NAME='mpfrcx'
 PACKAGE_TARNAME='mpfrcx'
-PACKAGE_VERSION='0.6.1'
-PACKAGE_STRING='mpfrcx 0.6.1'
+PACKAGE_VERSION='0.6.3'
+PACKAGE_STRING='mpfrcx 0.6.3'
 PACKAGE_BUGREPORT='andreas.e...@inria.fr'
 PACKAGE_URL=''
 
@@ -1357,7 +1357,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 mpfrcx 0.6.1 to adapt to many kinds of systems.
+\`configure' configures mpfrcx 0.6.3 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1428,7 +1428,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of mpfrcx 0.6.1:";;
+     short | recursive ) echo "Configuration of mpfrcx 0.6.3:";;
    esac
   cat <<\_ACEOF
 
@@ -1546,7 +1546,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-mpfrcx configure 0.6.1
+mpfrcx configure 0.6.3
 generated by GNU Autoconf 2.71
 
 Copyright (C) 2021 Free Software Foundation, Inc.
@@ -1807,7 +1807,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by mpfrcx $as_me 0.6.1, which was
+It was created by mpfrcx $as_me 0.6.3, which was
 generated by GNU Autoconf 2.71.  Invocation command line was
 
   $ $0$ac_configure_args_raw
@@ -3086,7 +3086,7 @@
 
 # Define the identity of the package.
  PACKAGE='mpfrcx'
- VERSION='0.6.1'
+ VERSION='0.6.3'
 
 
 printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@@ -14229,85 +14229,6 @@
 
 
 
-  flag=`echo "-Werror" | $SED 'y% .=/+-(){}<>:*,%_______________%'`
-
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C 
compiler accepts the -Werror flag" >&5
-printf %s "checking whether the C compiler accepts the -Werror flag... " >&6; }
-if eval test \${ax_cv_c_check_flag_$flag+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-
-
-    ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext 
$LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-    save_CFLAGS="$CFLAGS"
-    CFLAGS="$CFLAGS -Werror"
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-
-int
-main (void)
-{
-
-  ;
-  return 0;
-}
-
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
-
-      eval "ax_cv_c_check_flag_$flag=yes"
-
-else $as_nop
-
-      eval "ax_cv_c_check_flag_$flag=no"
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-
-    CFLAGS="$save_CFLAGS"
-
-    ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext 
$LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-fi
-eval ac_res=\$ax_cv_c_check_flag_$flag
-              { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" 
>&5
-printf "%s\n" "$ac_res" >&6; }
-
-  if eval "test \"`echo '$ax_cv_c_check_flag_'$flag`\" = yes"
-then :
-
-    :
-    CFLAGS="$CFLAGS -Werror"
-
-else $as_nop
-
-    :
-
-
-fi
-
-
-
-
-
-
-
-
   flag=`echo "-Wdeclaration-after-statement" | $SED 'y% 
.=/+-(){}<>:*,%_______________%'`
 
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C 
compiler accepts the -Wdeclaration-after-statement flag" >&5
@@ -15774,7 +15695,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by mpfrcx $as_me 0.6.1, which was
+This file was extended by mpfrcx $as_me 0.6.3, which was
 generated by GNU Autoconf 2.71.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -15842,7 +15763,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config='$ac_cs_config_escaped'
 ac_cs_version="\\
-mpfrcx config.status 0.6.1
+mpfrcx config.status 0.6.3
 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/mpfrcx-0.6.1/configure.ac 
new/mpfrcx-0.6.3/configure.ac
--- old/mpfrcx-0.6.1/configure.ac       2021-04-29 12:17:11.000000000 +0200
+++ new/mpfrcx-0.6.3/configure.ac       2021-09-10 15:44:33.000000000 +0200
@@ -23,12 +23,12 @@
 
 
 AC_PREREQ(2.61)
-AC_INIT(mpfrcx, 0.6.1, andreas.e...@inria.fr)
+AC_INIT(mpfrcx, 0.6.3, andreas.e...@inria.fr)
 AC_CONFIG_SRCDIR([src/mpfrcx-impl.h])
 AC_CONFIG_AUX_DIR([build-aux])
 AC_CONFIG_HEADER([config.h])
 
-AM_INIT_AUTOMAKE([1.9 -Wall -Werror])
+AM_INIT_AUTOMAKE
 AM_MAINTAINER_MODE
 AM_PROG_AR
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mpfrcx-0.6.1/doc/mpfrcx.info 
new/mpfrcx-0.6.3/doc/mpfrcx.info
--- old/mpfrcx-0.6.1/doc/mpfrcx.info    2021-04-29 12:13:02.000000000 +0200
+++ new/mpfrcx-0.6.3/doc/mpfrcx.info    2021-09-10 15:49:40.000000000 +0200
@@ -2,7 +2,7 @@
 
 This manual is for MPFRCX, a library for the arithmetic of polynomials
 with multiple precision real or complex floating point coefficients,
-version 0.6.1 of April 2021.
+version 0.6.3 of June 2021.
 
    Copyright ?? 2007, 2008, 2009, 2010, 2011, 2012, 2017, 2018, 2020,
 2021 Andreas Enge
@@ -23,7 +23,7 @@
 ******
 
 This manual documents how to install and use the Multiple Precision Real
-and Complex Polynomial Library, version 0.6.1 as of April 2021.
+and Complex Polynomial Library, version 0.6.3 as of June 2021.
 
 * Menu:
 
@@ -81,9 +81,9 @@
 
    Here are the steps needed to install the library on Unix systems:
 
-  1. ???tar xzf mpfrcx-0.6.1.tar.gz???
+  1. ???tar xzf mpfrcx-0.6.3.tar.gz???
 
-  2. ???cd mpfrcx-0.6.1???
+  2. ???cd mpfrcx-0.6.3???
 
   3. ???./configure???
 
@@ -1685,28 +1685,28 @@
 
 
 Tag Table:
-Node: Top798
-Node: Copying1534
-Node: Introduction to MPFRCX2210
-Node: Installing MPFRCX2567
-Node: Reporting Bugs6008
-Node: MPFRCX Basics7082
-Node: Functions10230
-Node: Initialisation Functions10913
-Node: Assignment Functions12383
-Node: Simultaneous Init & Assign13484
-Node: Access Functions13916
-Node: Comparison and Miscellaneous Functions15938
-Node: I/O Functions17665
-Node: Basic Polynomial Arithmetic18813
-Node: Higher Level Functions21198
-Node: Tree Based Functions22126
-Node: Functions for Galois Field Towers33462
-Node: Contributors42733
-Node: References42982
-Node: Concept Index44142
-Node: Function Index46636
-Node: GNU Free Documentation License59981
+Node: Top797
+Node: Copying1532
+Node: Introduction to MPFRCX2208
+Node: Installing MPFRCX2565
+Node: Reporting Bugs6006
+Node: MPFRCX Basics7080
+Node: Functions10228
+Node: Initialisation Functions10911
+Node: Assignment Functions12381
+Node: Simultaneous Init & Assign13482
+Node: Access Functions13914
+Node: Comparison and Miscellaneous Functions15936
+Node: I/O Functions17663
+Node: Basic Polynomial Arithmetic18811
+Node: Higher Level Functions21196
+Node: Tree Based Functions22124
+Node: Functions for Galois Field Towers33460
+Node: Contributors42731
+Node: References42980
+Node: Concept Index44140
+Node: Function Index46634
+Node: GNU Free Documentation License59979
 
 End Tag Table
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mpfrcx-0.6.1/doc/stamp-vti 
new/mpfrcx-0.6.3/doc/stamp-vti
--- old/mpfrcx-0.6.1/doc/stamp-vti      2021-04-29 12:26:23.000000000 +0200
+++ new/mpfrcx-0.6.3/doc/stamp-vti      2021-09-10 15:49:39.000000000 +0200
@@ -1,4 +1,4 @@
-@set UPDATED 29 April 2021
-@set UPDATED-MONTH April 2021
-@set EDITION 0.6.1
-@set VERSION 0.6.1
+@set UPDATED 21 June 2021
+@set UPDATED-MONTH June 2021
+@set EDITION 0.6.3
+@set VERSION 0.6.3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mpfrcx-0.6.1/doc/version.texi 
new/mpfrcx-0.6.3/doc/version.texi
--- old/mpfrcx-0.6.1/doc/version.texi   2021-04-29 12:13:02.000000000 +0200
+++ new/mpfrcx-0.6.3/doc/version.texi   2021-09-10 15:49:39.000000000 +0200
@@ -1,4 +1,4 @@
-@set UPDATED 29 April 2021
-@set UPDATED-MONTH April 2021
-@set EDITION 0.6.1
-@set VERSION 0.6.1
+@set UPDATED 21 June 2021
+@set UPDATED-MONTH June 2021
+@set EDITION 0.6.3
+@set VERSION 0.6.3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mpfrcx-0.6.1/m4/mpfrcx.m4 
new/mpfrcx-0.6.3/m4/mpfrcx.m4
--- old/mpfrcx-0.6.1/m4/mpfrcx.m4       2017-07-10 17:53:28.000000000 +0200
+++ new/mpfrcx-0.6.3/m4/mpfrcx.m4       2021-04-29 13:11:30.000000000 +0200
@@ -38,7 +38,6 @@
       MPC_C_CHECK_FLAG(-Wno-long-long)
       MPC_C_CHECK_FLAG(-Wall)
       MPC_C_CHECK_FLAG(-Wextra)
-      MPC_C_CHECK_FLAG(-Werror)
       MPC_C_CHECK_FLAG(-Wdeclaration-after-statement)
       MPC_C_CHECK_FLAG(-Wshadow)
       MPC_C_CHECK_FLAG(-Wstrict-prototypes)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mpfrcx-0.6.1/src/Makefile.am 
new/mpfrcx-0.6.3/src/Makefile.am
--- old/mpfrcx-0.6.1/src/Makefile.am    2021-04-29 12:08:46.000000000 +0200
+++ new/mpfrcx-0.6.3/src/Makefile.am    2021-09-10 15:46:15.000000000 +0200
@@ -1,6 +1,6 @@
 ## src/Makefile.am -- Process this file with automake to produce Makefile.in
 lib_LTLIBRARIES = libmpfrcx.la
-libmpfrcx_la_LDFLAGS = -version-info 3:1:2
+libmpfrcx_la_LDFLAGS = -version-info 3:3:2
 
 F_COPYSOURCES = \
    f_init.c f_clear.c f_realloc.c f_set.c f_init_set.c f_mv.c f_swap.c \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mpfrcx-0.6.1/src/Makefile.in 
new/mpfrcx-0.6.3/src/Makefile.in
--- old/mpfrcx-0.6.1/src/Makefile.in    2021-04-29 12:18:12.000000000 +0200
+++ new/mpfrcx-0.6.3/src/Makefile.in    2021-09-10 15:47:49.000000000 +0200
@@ -367,7 +367,7 @@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 lib_LTLIBRARIES = libmpfrcx.la
-libmpfrcx_la_LDFLAGS = -version-info 3:1:2
+libmpfrcx_la_LDFLAGS = -version-info 3:3:2
 F_COPYSOURCES = \
    f_init.c f_clear.c f_realloc.c f_set.c f_init_set.c f_mv.c f_swap.c \
    f_set_prec.c f_set_deg.c f_set_coeff.c f_get_coeff.c \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mpfrcx-0.6.1/src/c_tower.c 
new/mpfrcx-0.6.3/src/c_tower.c
--- old/mpfrcx-0.6.1/src/c_tower.c      2021-04-26 17:21:19.000000000 +0200
+++ new/mpfrcx-0.6.3/src/c_tower.c      2021-05-07 18:42:46.000000000 +0200
@@ -105,7 +105,7 @@
          of their bits; since in the algorithms we have a large choice of
          generators, it is better to err by declaring distinct numbers as
          equal than the other way around. */
-      if (mpc_coinciding_bits (embeddings [0], embeddings [1]) > min_prec)
+      if (mpc_coinciding_bits (embeddings [0], embeddings [i]) > min_prec)
          return (0);
 
    return (1);
@@ -154,6 +154,7 @@
          mpcx_clear (twr->W [i][j]);
       free (twr->W [i]);
    }
+   mpcx_clear (twr->W [0][0]);
    free (twr->W [0]);
    free (twr->W);
    free (twr->d);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mpfrcx-0.6.1/src/f_tower.c 
new/mpfrcx-0.6.3/src/f_tower.c
--- old/mpfrcx-0.6.1/src/f_tower.c      2021-04-26 17:21:19.000000000 +0200
+++ new/mpfrcx-0.6.3/src/f_tower.c      2021-07-07 17:25:43.000000000 +0200
@@ -26,40 +26,46 @@
 
 #include "mpfrcx-impl.h"
 
-static int mpfrcx_is_generator (mpc_t *roots, int *conjugates, int n);
+static int mpfrcx_is_galois_generator (mpc_t *embeddings, int *conjugates,
+   int n);
 static void mpfrcx_tower_decomposition_rec (int levels, int *d,
    mpfrx_t **W, mpfrx_ptr V, mpc_t *roots, int *conjugates);
 
 /**************************************************************************/
 
-static int mpfrcx_is_generator (mpc_t *roots, int *conjugates, int n)
-   /* Given in roots the n complex embeddings of an algebraic number in a
-      real subfield of a ray class field of an imaginary-quadratic number
-      field, the function returns 1 if the number is (modulo rounding
+static int mpfrcx_is_galois_generator (mpc_t *embeddings, int *conjugates,
+   int n)
+   /* Given the n complex embeddings of a real algebraic number in a Galois
+      number field, the function returns 1 if the number is (modulo rounding
       errors) a generator of the field and 0 otherwise. The meaning of
       conjugates is as usual to keep track of real and pairs of complex
-      roots. In fact the implementation only uses the real roots. */
+      roots.
+      The implementation is copied over from mpcx_is_galois_generator
+      in c_tower.c; but we must make sure to consider only roots that
+      have been set following conjugates.
+      Additionally, it may happen that two embeddings marked as a complex
+      conjugate pair have in fact become the same real number; we consider
+      that this is the case when the imaginary part is sufficiently small
+      compared to the real part. */
 {
-   int i, j;
+   int i;
    mpfr_prec_t prec, min_prec;
 
-   /* Look for the first real embedding. */
-   for (i = 0; conjugates [i] != i; i++);
-
-   /* Check if there is another real embedding with the same value. */
-   prec = mpc_get_prec (roots [0]);
+   prec = mpc_get_prec (embeddings [0]);
    min_prec = prec / 2;
-   for (j = i+1; j < n; j++)
-      /* We consider two numbers as equal if they coincide in at least half
-         of their bits; since in the algorithms we have a large choice of
-         generators, it is better to err by declaring distinct numbers as
-         equal than the other way around. */
-      if (conjugates [j] == j
-          && mpfr_coinciding_bits (mpc_realref (roots [i]),
-                                   mpc_realref (roots [j])) > min_prec)
-         return (0);
 
-   return (1);
+   for (i = 1; i < n; i++)
+      if (conjugates [i] >= i &&
+         mpc_coinciding_bits (embeddings [0], embeddings [i]) > min_prec)
+         return 0;
+
+   for (i = 0; i < n; i++)
+      if (conjugates [i] > i &&
+         mpfr_get_exp (mpc_realref (embeddings [i]))
+            - mpfr_get_exp (mpc_imagref (embeddings [i])) > min_prec)
+         return 0;
+
+   return 1;
 }
 
 /**************************************************************************/
@@ -107,6 +113,7 @@
          mpfrx_clear (twr->W [i][j]);
       free (twr->W [i]);
    }
+   mpfrx_clear (twr->W [0][0]);
    free (twr->W [0]);
    free (twr->W);
    free (twr->d);
@@ -190,7 +197,7 @@
       for (i = 0; i < n; i++)
          if (conjugates [i] >= i)
             mpc_set (roots [i], mpcx_get_coeff (U [i], j), MPC_RNDNN);
-      if (mpfrcx_is_generator (roots, conjugates, n))
+      if (mpfrcx_is_galois_generator (roots, conjugates, n))
          found = 1;
       else
          j--;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mpfrcx-0.6.1/src/get_version.c 
new/mpfrcx-0.6.3/src/get_version.c
--- old/mpfrcx-0.6.1/src/get_version.c  2021-04-29 12:26:01.000000000 +0200
+++ new/mpfrcx-0.6.3/src/get_version.c  2021-09-10 15:44:59.000000000 +0200
@@ -26,5 +26,5 @@
 #include "mpfrcx-impl.h"
 
 const char * mpfrcx_get_version (void) {
-  return "0.6.1";
+  return "0.6.3";
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mpfrcx-0.6.1/src/mpfrcx.h 
new/mpfrcx-0.6.3/src/mpfrcx.h
--- old/mpfrcx-0.6.1/src/mpfrcx.h       2021-04-29 12:24:33.000000000 +0200
+++ new/mpfrcx-0.6.3/src/mpfrcx.h       2021-09-10 15:46:27.000000000 +0200
@@ -38,8 +38,8 @@
 
 #define MPFRCX_VERSION_MAJOR      0
 #define MPFRCX_VERSION_MINOR      6
-#define MPFRCX_VERSION_PATCHLEVEL 1
-#define MPFRCX_VERSION_STRING     "0.6.1"
+#define MPFRCX_VERSION_PATCHLEVEL 3
+#define MPFRCX_VERSION_STRING     "0.6.3"
 
 typedef struct {
    int size;

Reply via email to