Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package libcerf for openSUSE:Factory checked 
in at 2022-12-07 17:34:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libcerf (Old)
 and      /work/SRC/openSUSE:Factory/.libcerf.new.1835 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libcerf"

Wed Dec  7 17:34:10 2022 rev:7 rq:1040785 version:2.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/libcerf/libcerf.changes  2022-07-31 
23:00:13.731567080 +0200
+++ /work/SRC/openSUSE:Factory/.libcerf.new.1835/libcerf.changes        
2022-12-07 17:35:00.424552951 +0100
@@ -1,0 +2,9 @@
+Fri Dec  2 21:12:34 UTC 2022 - Dirk Müller <[email protected]>
+
+- update to 2.2:
+  - No longer raise underflow error in w_of_z for large real arg (contributed 
by Ethan Merritt)
+  - In test suite, confound zero with values close to underflow
+  - Remove some invisible files that had slipped in accidentally (noticed by 
Christoph Junghans)
+  - Windows binary now built with Visual Studio 17 2022
+
+-------------------------------------------------------------------

Old:
----
  libcerf-v2.1.tar.gz

New:
----
  libcerf-v2.2.tar.gz

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

Other differences:
------------------
++++++ libcerf.spec ++++++
--- /var/tmp/diff_new_pack.4jvr9O/_old  2022-12-07 17:35:01.008556149 +0100
+++ /var/tmp/diff_new_pack.4jvr9O/_new  2022-12-07 17:35:01.012556170 +0100
@@ -18,7 +18,7 @@
 
 
 Name:           libcerf
-Version:        2.1
+Version:        2.2
 Release:        0
 Summary:        A library that complex error functions
 License:        MIT

++++++ libcerf-v2.1.tar.gz -> libcerf-v2.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libcerf-v2.1/.gitlab-ci.yml 
new/libcerf-v2.2/.gitlab-ci.yml
--- old/libcerf-v2.1/.gitlab-ci.yml     2022-04-08 21:09:20.000000000 +0200
+++ new/libcerf-v2.2/.gitlab-ci.yml     2022-11-07 11:17:30.000000000 +0100
@@ -1,22 +1,29 @@
 stages:
   - build
 
-mac:
+mac10_15:
   tags:
-  - MacOS
+  - macbuild3
   stage: build
-  script:
+  script: &macbuild
     - mkdir build
     - cd build
-    - cmake .. -DCERF_CPP=ON
+    - cmake ..
     - make
     - ctest --output-on-failure
     - cpack .
+    - make install
   artifacts:
     paths:
     - build/*zip
     expire_in: 10 days
 
+mac12_2:
+  tags:
+  - scgmac4
+  stage: build
+  script: *macbuild
+
 windows:
   tags:
   - Windows
@@ -24,8 +31,7 @@
   script:
     - New-Item -ItemType "directory" -Confirm:$false -Force:$true -Name "build"
     - cd build
-    - cmd.exe "C:\Program Files (x86)\Microsoft Visual 
Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat"
-    - cmake -G "Visual Studio 16 2019" -A x64 -T host=x64 -DCERF_CPP=ON 
-DLIB_MAN=OFF -DCMAKE_INSTALL_PREFIX=C:\opt\x64 -B. ..
+    - cmake -G "Visual Studio 17 2022" -A x64 -T host=x64 -DCERF_CPP=ON 
-DLIB_MAN=OFF -DCMAKE_INSTALL_PREFIX=C:\opt\x64 -B. ..
     - cmake --build . --config Release
     - Get-Location
     - dir
@@ -53,6 +59,7 @@
     - cmake -DWERROR=ON ..
     - make -j6
     - ctest -j6 --output-on-failure
+    - make install
 
 # ## Dockerized:
 #
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libcerf-v2.1/CHANGELOG new/libcerf-v2.2/CHANGELOG
--- old/libcerf-v2.1/CHANGELOG  2022-04-08 21:09:20.000000000 +0200
+++ new/libcerf-v2.2/CHANGELOG  2022-11-07 11:17:30.000000000 +0100
@@ -1,9 +1,15 @@
 == Revision history of libcerf, maintained by Joachim Wuttke ==
 
+libcerf-2.2, released 7nov22:
+  - No longer raise underflow error in w_of_z for large real arg (contributed 
by Ethan Merritt)
+  - In test suite, confound zero with values close to underflow
+  - Remove some invisible files that had slipped in accidentally (noticed by 
Christoph Junghans)
+  - Windows binary now built with Visual Studio 17 2022
+
 libcerf-2.1, released 8apr22:
-  - provide cerfConfig.cmake (contributed by Lori A. Burns and Christoph 
Junghans)
-  - libcerf.pc: remove hard-coded lib/
-  - version number incremented to overcome upstream problems with withdrawn 
release 2.0
+  - Provide cerfConfig.cmake (contributed by Lori A. Burns and Christoph 
Junghans)
+  - libcerf.pc: Remove hard-coded lib/
+  - Version number incremented to overcome upstream problems with withdrawn 
release 2.0
 
 libcerf-1.17, released 29jun21:
   - Correct pkgconfig installation directory (use GNU install dirs, install to 
LIBDIR/pkgconfig)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libcerf-v2.1/CMakeLists.txt 
new/libcerf-v2.2/CMakeLists.txt
--- old/libcerf-v2.1/CMakeLists.txt     2022-04-08 21:09:20.000000000 +0200
+++ new/libcerf-v2.2/CMakeLists.txt     2022-11-07 11:17:30.000000000 +0100
@@ -33,7 +33,7 @@
 endif()
 
 set(CERF_SOVERSION                 2) # API version
-set(CERF_VERSION ${CERF_SOVERSION}.1) # minor version
+set(CERF_VERSION ${CERF_SOVERSION}.2) # minor version
 
 include(GNUInstallDirs)
 
Binary files old/libcerf-v2.1/fortran/__MACOSX/ccerflib_f95_interface/._LICENSE 
and new/libcerf-v2.2/fortran/__MACOSX/ccerflib_f95_interface/._LICENSE differ
Binary files old/libcerf-v2.1/fortran/__MACOSX/ccerflib_f95_interface/._README 
and new/libcerf-v2.2/fortran/__MACOSX/ccerflib_f95_interface/._README differ
Binary files 
old/libcerf-v2.1/fortran/__MACOSX/ccerflib_f95_interface/._cerflib_main_test.f90
 and 
new/libcerf-v2.2/fortran/__MACOSX/ccerflib_f95_interface/._cerflib_main_test.f90
 differ
Binary files 
old/libcerf-v2.1/fortran/__MACOSX/ccerflib_f95_interface/._use_libcerf_mod.f90 
and 
new/libcerf-v2.2/fortran/__MACOSX/ccerflib_f95_interface/._use_libcerf_mod.f90 
differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libcerf-v2.1/lib/w_of_z.c 
new/libcerf-v2.2/lib/w_of_z.c
--- old/libcerf-v2.1/lib/w_of_z.c       2022-04-08 21:09:20.000000000 +0200
+++ new/libcerf-v2.2/lib/w_of_z.c       2022-11-07 11:17:30.000000000 +0100
@@ -167,7 +167,10 @@
     }
     if (cimag(z) == 0) {
         // Purely real input, complex output.
-        return C(exp(-sqr(creal(z))),  im_w_of_x(creal(z)));
+        // Avoid floating underflow for real term of large z.
+        const double Wreal = fabs(creal(z)) > 27. ? 0. :  exp(-sqr(creal(z)));
+        const double Wimag = im_w_of_x(creal(z));
+        return C(Wreal, Wimag);
     }
 
     const double relerr = DBL_EPSILON;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libcerf-v2.1/test/testtool.h 
new/libcerf-v2.2/test/testtool.h
--- old/libcerf-v2.1/test/testtool.h    2022-04-08 21:09:20.000000000 +0200
+++ new/libcerf-v2.2/test/testtool.h    2022-11-07 11:17:30.000000000 +0100
@@ -41,7 +41,8 @@
     int total;
 } result_t;
 
-// Compute relative error |b-a|/|a|, handling case of NaN and Inf,
+// Compute relative error |b-a|/|b+offs|, handling case of NaN and Inf.
+// The tiny offset offs ensures a resonable return value for a=(almost 
underflowing), b=0.
 static double relerr(double a, double b)
 {
     if (!isfinite(a))
@@ -50,9 +51,7 @@
         assert(isfinite(a)); // implied by the above
         return Inf;
     }
-    if (a == 0)
-        return b == 0 ? 0 : Inf;
-    return fabs((b - a) / a);
+   return fabs((b - a)) / (fabs(b) + 1e-300);
 }
 
 // Test whether real numbers 'computed' and 'expected' agree within relative 
error bound 'limit'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libcerf-v2.1/test/wofztest.c 
new/libcerf-v2.2/test/wofztest.c
--- old/libcerf-v2.1/test/wofztest.c    2022-04-08 21:09:20.000000000 +0200
+++ new/libcerf-v2.2/test/wofztest.c    2022-11-07 11:17:30.000000000 +0100
@@ -229,6 +229,13 @@
     ZTEST(result, 1e-13, w_of_z(C(NaN, Inf)), C(NaN, NaN));
     ZTEST(result, 1e-13, w_of_z(C(Inf, NaN)), C(NaN, NaN));
 
+    // Continuity when exp(-x^2) runs into underflow
+    ZTEST(result, 1e-13, w_of_z(C(26.99999999999999, 0)), C(0, 
0.0209102719931009));
+    ZTEST(result, 1e-13, w_of_z(C(27.00000000000001, 0)), C(0, 
0.0209102719931009));
+
+    // Where does real part of w_of_z(real) exceed 1e-300?
+    ZTEST(result, 1e-10, w_of_z(C(26.28260884878466, 0)), C(1e-300, 
+0.0214818418828509));
+
     printf("%i/%i tests failed\n", result.failed, result.total);
     return result.failed;
 }

Reply via email to