summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorenge <enge@211d60ee-9f03-0410-a15a-8952a2c7a4e4>2013-08-26 15:06:41 +0000
committerenge <enge@211d60ee-9f03-0410-a15a-8952a2c7a4e4>2013-08-26 15:06:41 +0000
commit116e71300f59cf299ba206c5fcab5c70f61fe62d (patch)
tree49c877cc5a94b6d52741adfbe55001045c5cf381
parentdea4bb627df4b2f9aef4cfd3f8c95fd44c667bfc (diff)
downloadmpc-116e71300f59cf299ba206c5fcab5c70f61fe62d.tar.gz
Backport fix in r1301 to branch 1.0.
git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/branches/1.0@1302 211d60ee-9f03-0410-a15a-8952a2c7a4e4
-rw-r--r--NEWS2
-rw-r--r--src/atan.c10
-rw-r--r--tests/atan.dat12
-rw-r--r--tests/atanh.dat3
4 files changed, 14 insertions, 13 deletions
diff --git a/NEWS b/NEWS
index 0e2179a..0aab447 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,6 @@
Changes in version 1.0.2:
+ - Fixed mpc_atan, mpc_atanh for (+-0, +-1), see
+ http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57994#c7
- Fixed mpc_log10 for purely imaginary argument, see
http://lists.gforge.inria.fr/pipermail/mpc-discuss/2012-September/001208.html
diff --git a/src/atan.c b/src/atan.c
index c0b01a4..285f79f 100644
--- a/src/atan.c
+++ b/src/atan.c
@@ -1,6 +1,6 @@
/* mpc_atan -- arctangent of a complex number.
-Copyright (C) 2009, 2010, 2011, 2012 INRIA
+Copyright (C) 2009, 2010, 2011, 2012, 2013 INRIA
This file is part of GNU MPC.
@@ -133,10 +133,10 @@ mpc_atan (mpc_ptr rop, mpc_srcptr op, mpc_rnd_t rnd)
}
else if (cmp_1 == 0)
{
- /* atan(+/-0+i) = NaN +i*inf
- atan(+/-0-i) = NaN -i*inf */
- mpfr_set_nan (mpc_realref (rop));
- mpfr_set_inf (mpc_imagref (rop), s_im ? -1 : +1);
+ /* atan(+/-0 +i) = +/-0 +i*inf
+ atan(+/-0 -i) = +/-0 -i*inf */
+ mpfr_set_zero (mpc_realref (rop), s_re ? -1 : +1);
+ mpfr_set_inf (mpc_imagref (rop), s_im ? -1 : +1);
}
else
{
diff --git a/tests/atan.dat b/tests/atan.dat
index f3ba3ec..871f706 100644
--- a/tests/atan.dat
+++ b/tests/atan.dat
@@ -1,6 +1,6 @@
# Data file for mpc_atan.
#
-# Copyright (C) 2009, 2012 INRIA
+# Copyright (C) 2009, 2012, 2013 INRIA
#
# This file is part of GNU MPC.
#
@@ -113,8 +113,8 @@
- + 53 +0x1921FB54442D18p-52 53 -0x1269621134DB92p-55 53 +0 53 -7 N N
+ + 53 -0x1921FB54442D18p-52 53 -0x19C041F7ED8D33p-53 53 -0 53 -1.5 N N
- + 53 +0x1921FB54442D18p-52 53 -0x19C041F7ED8D33p-53 53 +0 53 -1.5 N N
-0 0 53 nan 53 -inf 53 -0 53 -1 N N
-0 0 53 nan 53 -inf 53 +0 53 -1 N N
+0 0 53 -0 53 -inf 53 -0 53 -1 N N
+0 0 53 +0 53 -inf 53 +0 53 -1 N N
0 + 53 -0 53 -0x15AA16394D481Fp-52 53 -0 53 -0.875 N N
0 + 53 +0 53 -0x15AA16394D481Fp-52 53 +0 53 -0.875 N N
0 + 53 -0 53 -0x1015891C9EAEF7p-55 53 -0 53 -0.125 N N
@@ -123,15 +123,13 @@
0 - 53 -0 53 +0x1015891C9EAEF7p-55 53 -0 53 +0.125 N N
0 - 53 +0 53 +0x15AA16394D481Fp-52 53 +0 53 +0.875 N N
0 - 53 -0 53 +0x15AA16394D481Fp-52 53 -0 53 +0.875 N N
-0 0 53 nan 53 +inf 53 +0 53 +1 N N
-0 0 53 nan 53 +inf 53 -0 53 +1 N N
+0 0 53 +0 53 +inf 53 +0 53 +1 N N
+0 0 53 -0 53 +inf 53 -0 53 +1 N N
- - 53 +0x1921FB54442D18p-52 53 +0x19C041F7ED8D33p-53 53 +0 53 +1.5 N N
+ - 53 -0x1921FB54442D18p-52 53 +0x19C041F7ED8D33p-53 53 -0 53 +1.5 N N
- - 53 +0x1921FB54442D18p-52 53 +0x1269621134DB92p-55 53 +0 53 +7 N N
+ - 53 -0x1921FB54442D18p-52 53 +0x1269621134DB92p-55 53 -0 53 +7 N N
0 + 53 +0 53 0x1FFFFFFFFFFF82p-52 53 +0 53 0x1ED9505E1BC3C2p-53 N N
-0 0 53 nan 53 -inf 53 +0 53 -1 N N
-0 0 53 nan 53 +inf 53 +0 53 +1 N N
+ - 512 0x6487ED5110B4611A62633145C06E0E68948127044533E63A0105DF531D89CD9128A5043CC71A026EF7CA8CD9E69D218D98158536F92F8A1BA7F09AB6B6A8E123p-510 512 0x5D137113B914461DA3202D77346EE4980DA5FD0BAD68F5A7928DCA9F632750D9BFFA00654C523929F15DED554EC6BC476DB2C46FA433E569227085E0BDEA86FFp-509 512 0 512 0x1018734E311AB77B710F9212969B3C86E8F388BB7DA5BAF74ADE078F43D96456D088C8A0B2A370159DFB8D4A4BC51BCDA91F2DCD01B2EC610C62AA33FAD1688p-504 N Z
+ - 12 0xC91p-11 12 0x6F1p-50 12 +0 12 0x9380000000 N N
diff --git a/tests/atanh.dat b/tests/atanh.dat
index b0f9977..c6517a8 100644
--- a/tests/atanh.dat
+++ b/tests/atanh.dat
@@ -1,6 +1,6 @@
# Data file for mpc_atanh.
#
-# Copyright (C) 2009 INRIA
+# Copyright (C) 2009, 2013 INRIA
#
# This file is part of GNU MPC.
#
@@ -85,6 +85,7 @@
0 0 53 nan 53 nan 53 nan 53 +1 N N
0 - 53 0 53 +0x1921FB54442D18p-52 53 nan 53 +inf N N
0 0 53 nan 53 nan 53 nan 53 nan N N
+0 0 53 +inf 53 +0 53 1 53 +0 N N
# pure real argument
- + 53 -0x1E27076E2AF2E6p-57 53 -0x1921FB54442D18p-52 53 -17 53 -0 N N