gnu: gsl: Fix poly test on i686.
* gnu/packages/patches/gsl-poly-test-fix-pt1.patch, gnu/packages/patches/gsl-poly-test-fix-pt2.patch: New files. * gnu-system.am (dist_patch_DATA): Add them. * gnu/packages/maths.scm (gsl)[source]: Add patches.
This commit is contained in:
parent
d80b0d4af5
commit
180a93c72a
|
@ -450,6 +450,8 @@ dist_patch_DATA = \
|
|||
gnu/packages/patches/grep-CVE-2015-1345.patch \
|
||||
gnu/packages/patches/grub-gets-undeclared.patch \
|
||||
gnu/packages/patches/grub-freetype.patch \
|
||||
gnu/packages/patches/gsl-poly-test-fix-pt1.patch \
|
||||
gnu/packages/patches/gsl-poly-test-fix-pt2.patch \
|
||||
gnu/packages/patches/guile-1.8-cpp-4.5.patch \
|
||||
gnu/packages/patches/guile-arm-fixes.patch \
|
||||
gnu/packages/patches/guile-default-utf8.patch \
|
||||
|
|
|
@ -154,7 +154,9 @@ semiconductors.")
|
|||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0lrgipi0z6559jqh82yx8n4xgnxkhzj46v96dl77hahdp58jzg3k"))))
|
||||
"0lrgipi0z6559jqh82yx8n4xgnxkhzj46v96dl77hahdp58jzg3k"))
|
||||
(patches (map search-patch '("gsl-poly-test-fix-pt1.patch"
|
||||
"gsl-poly-test-fix-pt2.patch")))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:parallel-tests? #f
|
||||
|
|
|
@ -0,0 +1,84 @@
|
|||
From 9cc12d0377dd634b1b97954d076b715f982853b7 Mon Sep 17 00:00:00 2001
|
||||
From: Patrick Alken <alken@colorado.edu>
|
||||
Date: Fri, 4 Apr 2014 13:36:16 -0600
|
||||
Subject: [PATCH] bug fix in sorting of complex numbers (bug #39055)
|
||||
|
||||
---
|
||||
poly/test.c | 49 ++++++++++++++++++++++++++++++-------------------
|
||||
1 file changed, 30 insertions(+), 19 deletions(-)
|
||||
|
||||
diff --git a/poly/test.c b/poly/test.c
|
||||
index 9c147f6..d090802 100644
|
||||
--- a/poly/test.c
|
||||
+++ b/poly/test.c
|
||||
@@ -25,11 +25,21 @@
|
||||
#include <gsl/gsl_poly.h>
|
||||
#include <gsl/gsl_heapsort.h>
|
||||
|
||||
+/* sort by Re(z) then by Im(z) */
|
||||
static int
|
||||
cmp_cplx(const double *a, const double *b)
|
||||
{
|
||||
- double t = (a[0] * a[0] + a[1] * a[1]) - (b[0] * b[0] + b[1] * b[1]);
|
||||
- return t < 0.0 ? -1 : t > 0.0 ? 1 : 0;
|
||||
+ double r = a[0] - b[0];
|
||||
+
|
||||
+ if (r == 0.0)
|
||||
+ {
|
||||
+ double t = a[1] - b[1];
|
||||
+ return t < 0.0 ? -1 : t > 0.0 ? 1 : 0;
|
||||
+ }
|
||||
+ else if (r < 0.0)
|
||||
+ return -1;
|
||||
+ else
|
||||
+ return 1;
|
||||
}
|
||||
|
||||
int
|
||||
@@ -534,25 +544,26 @@ main (void)
|
||||
Problem reported by Munagala Ramanath (bug #39055)
|
||||
*/
|
||||
|
||||
- double a[16] = { 32, -48, -8, 28, -8, 16, -16, 12, -16, 6, 10, -17, 10, 2, -4, 1 };
|
||||
+ double a[16] = { 32, -48, -8, 28, -8, 16, -16, 12,
|
||||
+ -16, 6, 10, -17, 10, 2, -4, 1 };
|
||||
double z[16*2];
|
||||
|
||||
- double expected[16*20] = {
|
||||
- 1.0000000000000000, 0.00000000000000000,
|
||||
- 1.0000000000000000, 0.00000000000000000,
|
||||
- -1.0000000000000000, 0.00000000000000000,
|
||||
- -0.65893856175240950, 0.83459757287426684,
|
||||
- -0.65893856175240950, -0.83459757287426684,
|
||||
- -0.070891117403341281, -1.1359249087587791,
|
||||
- -0.070891117403341281, 1.1359249087587791,
|
||||
- 1.1142366961812986, -0.48083981203389980,
|
||||
- 1.1142366961812986, 0.48083981203389980,
|
||||
- -1.3066982484920768, 0.00000000000000000,
|
||||
- 0.57284747839410854, 1.1987808988289705,
|
||||
- 0.57284747839410854, -1.1987808988289705,
|
||||
- -1.6078107423472359, 0.00000000000000000,
|
||||
- 2.0000000000000000, 0.00000000000000000,
|
||||
- 2.0000000000000000, 0.00000000000000000 };
|
||||
+ double expected[16*2] = {
|
||||
+ -1.6078107423472359, 0.00000000000000000,
|
||||
+ -1.3066982484920768, 0.00000000000000000,
|
||||
+ -1.0000000000000000, 0.00000000000000000,
|
||||
+ -0.65893856175240950, -0.83459757287426684,
|
||||
+ -0.65893856175240950, 0.83459757287426684,
|
||||
+ -0.070891117403341281, -1.1359249087587791,
|
||||
+ -0.070891117403341281, 1.1359249087587791,
|
||||
+ 0.57284747839410854, -1.1987808988289705,
|
||||
+ 0.57284747839410854, 1.1987808988289705,
|
||||
+ 1.0000000000000000, 0.00000000000000000,
|
||||
+ 1.0000000000000000, 0.00000000000000000,
|
||||
+ 1.1142366961812986, -0.48083981203389980,
|
||||
+ 1.1142366961812986, 0.48083981203389980,
|
||||
+ 2.0000000000000000, 0.00000000000000000,
|
||||
+ 2.0000000000000000, 0.00000000000000000 };
|
||||
|
||||
int i;
|
||||
|
||||
--
|
||||
2.4.3
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
From 0466df8660a7b6ddf2e082a1ec38bc6ea25a3c5c Mon Sep 17 00:00:00 2001
|
||||
From: Patrick Alken <alken@colorado.edu>
|
||||
Date: Mon, 7 Apr 2014 10:59:58 -0600
|
||||
Subject: [PATCH] change error test for 15th degree polynomial (bug #39055)
|
||||
|
||||
---
|
||||
poly/test.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/poly/test.c b/poly/test.c
|
||||
index d090802..f6a7e3f 100644
|
||||
--- a/poly/test.c
|
||||
+++ b/poly/test.c
|
||||
@@ -579,8 +579,8 @@ main (void)
|
||||
|
||||
for (i = 0; i<15; i++)
|
||||
{
|
||||
- gsl_test_abs (z[2*i], expected[2*i], 1e-7, "z%d.real, 15th-order polynomial", i);
|
||||
- gsl_test_abs (z[2*i+1], expected[2*i+1], 1e-7, "z%d.imag, 15th-order polynomial", i);
|
||||
+ gsl_test_rel (z[2*i], expected[2*i], 1e-7, "z%d.real, 15th-order polynomial", i);
|
||||
+ gsl_test_rel (z[2*i+1], expected[2*i+1], 1e-7, "z%d.imag, 15th-order polynomial", i);
|
||||
}
|
||||
}
|
||||
|
||||
--
|
||||
2.4.3
|
||||
|
Loading…
Reference in New Issue