summaryrefslogtreecommitdiff
path: root/gnu/packages/patches/fuzzylite-soften-float-equality.patch
diff options
context:
space:
mode:
authorLiliana Marie Prikler <liliana.prikler@gmail.com>2023-07-13 17:21:32 +0200
committerLiliana Marie Prikler <liliana.prikler@gmail.com>2023-07-13 17:21:32 +0200
commit15406013fe63f2ab238eec2d7a8adbc586806ac8 (patch)
tree8377d7c70a925f7c5ea4c04473c4eb547610b64b /gnu/packages/patches/fuzzylite-soften-float-equality.patch
parenta3ac317ab4a90f66ac65055fa26dee58ed2367b8 (diff)
parentdd4c1992103a65b8fbdc80fe07a9fe9be822769a (diff)
Merge branch 'master' into emacs-team
Diffstat (limited to 'gnu/packages/patches/fuzzylite-soften-float-equality.patch')
-rw-r--r--gnu/packages/patches/fuzzylite-soften-float-equality.patch30
1 files changed, 30 insertions, 0 deletions
diff --git a/gnu/packages/patches/fuzzylite-soften-float-equality.patch b/gnu/packages/patches/fuzzylite-soften-float-equality.patch
new file mode 100644
index 0000000000..47403605dd
--- /dev/null
+++ b/gnu/packages/patches/fuzzylite-soften-float-equality.patch
@@ -0,0 +1,30 @@
+Origin: https://salsa.debian.org/debian/fuzzylite/-/blob/debian/6.0+dfsg-6/debian/patches/when-testing-large-float-numbers-for-equ.patch
+From: Johannes 'josch' Schauer <josch@debian.org>
+Date: Sun, 3 Feb 2019 10:33:22 +0100
+X-Dgit-Generated: 6.0+dfsg-2 80960ae38da9db032dfbfec6405398653e8205ff
+Subject: when testing large float numbers for equality, use a larger epsilon
+
+
+---
+
+--- fuzzylite-6.0+dfsg.orig/fuzzylite/test/BenchmarkTest.cpp
++++ fuzzylite-6.0+dfsg/fuzzylite/test/BenchmarkTest.cpp
+@@ -96,7 +96,17 @@ namespace fl {
+ CHECK(Op::isEq(1.0, Benchmark::convert(1000.0, Benchmark::MilliSeconds, Benchmark::Seconds)));
+ FL_LOG(Benchmark::convert(1000.0, Benchmark::MilliSeconds, Benchmark::Seconds));
+
+- CHECK(Op::isEq(35e9, Benchmark::convert(35, Benchmark::Seconds, Benchmark::NanoSeconds)));
++ scalar eps =
++#ifndef __i386__
++ fuzzylite::macheps();
++#else
++ // on i386, due to the 80bit x87 register, double floating point
++ // numbers are handled differently and thus the difference between
++ // 35e9 and the result of Benchmark::convert() will be 2.179e-6,
++ // which is greater than the default epsilon of 1e-6.
++ 1e-5;
++#endif
++ CHECK(Op::isEq(35e9, Benchmark::convert(35, Benchmark::Seconds, Benchmark::NanoSeconds), eps));
+ CHECK(Op::isEq(35, Benchmark::convert(35e9, Benchmark::NanoSeconds, Benchmark::Seconds)));
+ }
+