#1096018 bart-cuda: autopkgtest failure with glibc 2.41 due to increased accuracy of atan2f function

Package:
src:bart-cuda
Source:
src:bart-cuda
Submitter:
Aurelien Jarno
Date:
2025-08-11 15:25:24 UTC
Severity:
normal
Tags:
#1096018#5
Date:
2025-02-15 10:06:44 UTC
From:
To:
Dear maintainer,

The bart-cuda autopkgtest fails when run against glibc 2.41, which is
currently in experiemntal. It fails with [1]:

| 3772s touch tests/test-traj-custom
| 3772s set -e ; mkdir /tmp/autopkgtest-lxc.oedkyjwg/downtmp/autopkgtest_tmp/tests/tmp/$$/ ; cd /tmp/autopkgtest-lxc.oedkyjwg/downtmp/autopkgtest_tmp/tests/tmp/$$/			;\
| 3772s /tmp/autopkgtest-lxc.oedkyjwg/downtmp/autopkgtest_tmp//traj -R0. -r -y360 -D t0.ra 				;\
| 3772s /tmp/autopkgtest-lxc.oedkyjwg/downtmp/autopkgtest_tmp//phantom -k -t t0.ra k0.ra 				;\
| 3772s /tmp/autopkgtest-lxc.oedkyjwg/downtmp/autopkgtest_tmp//traj -R30. -r -y360 -D t30.ra			;\
| 3772s /tmp/autopkgtest-lxc.oedkyjwg/downtmp/autopkgtest_tmp//phantom -k -t t30.ra k30.ra 				;\
| 3772s /tmp/autopkgtest-lxc.oedkyjwg/downtmp/autopkgtest_tmp//estshift 4 k0.ra k30.ra | grep "30.00000" 		;\
| 3772s rm *.ra ; cd .. ; rmdir /tmp/autopkgtest-lxc.oedkyjwg/downtmp/autopkgtest_tmp/tests/tmp/$$/
| 3774s make: *** [tests/traj.mk:53: tests/test-traj-rot] Error 1

Investigation shows that this is due to improved accuracy of the atan2f
function in glibc 2.41. In details bart-cuda computes
atan2f(0x1.166202p-4, 0x1.e22c5ap-4) and it expects it to be 30.00000
when converted from radian to degrees, ie it expects the atan2f function
to return 0x1.0c1524p-1.

With glibc 2.41, the atan2f function has been improved [2] and now
returns instead 0x1.0c1522p-1 which is closer to the real value than
0x1.0c1524p-1.  This corresponds to 29.999998 when converted to degrees.
The patch below fixes the issue by accepting both values.

Regards
Aurelien
--- bart-cuda-0.8.00.orig/tests/traj.mk
+++ bart-cuda-0.8.00/tests/traj.mk
@@ -55,7 +55,7 @@ tests/test-traj-rot: traj phantom estshi
 	$(TOOLDIR)/phantom -k -t t0.ra k0.ra 				;\
 	$(TOOLDIR)/traj -R30. -r -y360 -D t30.ra			;\
 	$(TOOLDIR)/phantom -k -t t30.ra k30.ra 				;\
-	$(TOOLDIR)/estshift 4 k0.ra k30.ra | grep "30.00000" 		;\
+	$(TOOLDIR)/estshift 4 k0.ra k30.ra | grep "30.00000\|29.999998"	;\
 	rm *.ra ; cd .. ; rmdir $(TESTS_TMP)
 	touch $@

[1] https://ci.debian.net/data/autopkgtest/unstable/amd64/b/bart-cuda/57639405/log.gz
[2] https://sourceware.org/git/?p=glibc.git;a=commit;h=6f9bacf36b20b1a87fa4ec24c9d67c47985fbc8b

#1096018#10
Date:
2025-03-03 21:16:52 UTC
From:
To:
control: severity -1 serious

Hi,

glibc 2.41 is now in unstable, bumping the severity accordingly.

Regards
Aurelien