Hello community,

here is the log from the commit of package gsl for openSUSE:Factory checked in 
at 2015-06-12 20:27:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gsl (Old)
 and      /work/SRC/openSUSE:Factory/.gsl.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gsl"

Changes:
--------
--- /work/SRC/openSUSE:Factory/gsl/gsl.changes  2015-03-01 14:57:40.000000000 
+0100
+++ /work/SRC/openSUSE:Factory/.gsl.new/gsl.changes     2015-06-12 
20:27:12.000000000 +0200
@@ -1,0 +2,6 @@
+Mon Jun  8 07:25:20 UTC 2015 - dims...@opensuse.org
+
+- Add gsl-sorting-complex-numbers.patch: fix in sorting of complex
+  numbers (http://savannah.gnu.org/bugs/?39055).
+
+-------------------------------------------------------------------

New:
----
  gsl-sorting-complex-numbers.patch

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

Other differences:
------------------
++++++ gsl.spec ++++++
--- /var/tmp/diff_new_pack.sNRuoo/_old  2015-06-12 20:27:13.000000000 +0200
+++ /var/tmp/diff_new_pack.sNRuoo/_new  2015-06-12 20:27:13.000000000 +0200
@@ -32,6 +32,7 @@
 Patch6:         gsl-qawc-test-x86-precision.diff
 Patch7:         gsl-disable-fma.patch
 Patch8:         gsl-fsf_address.patch
+Patch9:         gsl-sorting-complex-numbers.patch
 BuildRequires:  autoconf
 BuildRequires:  automake
 BuildRequires:  blas-devel
@@ -134,6 +135,7 @@
 %patch6
 %patch7 -p1
 %patch8
+%patch9 -p1
 
 %build
 autoreconf -fi


++++++ gsl-sorting-complex-numbers.patch ++++++
>From 9cc12d0377dd634b1b97954d076b715f982853b7 Mon Sep 17 00:00:00 2001
From: Patrick Alken <al...@colorado.edu>
Date: Fri, 04 Apr 2014 19:36:16 +0000
Subject: bug fix in sorting of complex numbers (bug #39055)

---
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;
 
--
cgit v0.9.0.2



Reply via email to