Source: nickle Version: 2.97 Severity: wishlist User: reproducible-bui...@lists.alioth.debian.org Usertags: randomness X-Debbugs-Cc: reproducible-b...@lists.alioth.debian.org
Hi Keith, Whilst working on the Reproducible Builds effort, we noticed that nickle could not be built reproducibly. Looks like an interesting one in usr/share/nickle/test/math-tables.5c @@ -1218,15 +1218,15 @@ { .angle = π * -1.91999999999999993, .sin = 0.24868988716485535, .cos = 0.96858316112863097 }, { .angle = -1.90999999999999992, .sin = -0.94301993129001060, .cos = -0.33273624568084514 }, { .angle = π * -1.90999999999999992, .sin = 0.27899110603922966, .cos = 0.96029368567694295 }, { .angle = -1.89999999999999991, .sin = -0.94630008768741447, .cos = -0.32328956686350335 }, - { .angle = π * -1.89999999999999991, .sin = 0.30901699437494767, .cos = 0.95105651629515353 }, + { .angle = π * -1.89999999999999991, .sin = 0.30901699437494762, .cos = 0.95105651629515353 }, { .angle = -1.88999999999999990, .sin = -0.94948561486463046, .cos = -0.31381055935888225 }, ---------------------------------------> ^ this column ... plus similar changes in the same file. Here is the code in question: #define FMT "%25.17f" double print_val(double x) { if (isnan(x)) return 10000; if (x > 1e10) return 9999; if (x < -1e10) return 9999; if (fabs(x) < 1e-20) return 0; return x; } […] for (a = -800; a <= 800; a += 1) { double a_f = a / 100; printf ("\t{ .angle = " FMT ", .sin = " FMT ", .cos = " FMT " },\n", a_f, print_val(sin(a_f)), print_val(cos(a_f))); printf ("\t{ .angle = π * " FMT ", .sin = " FMT ", .cos = " FMT " },\n", a_f, print_val(sin(M_PI * a_f)), print_val(cos(M_PI * a_f))); } It's easier to see in HTML format: https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/nickle.html This is a native build on amd64/x86_64 both runs, and yet I can't reproduce it locally. I thought the point of IEEE 754 or whatever it was was to ensure this sort of thing didn't happen across runs? :) Hope you can help. Regards, -- ,''`. : :' : Chris Lamb `. `'` la...@debian.org / chris-lamb.co.uk `-