summaryrefslogtreecommitdiffstats
path: root/lib/libm/noieee_src
diff options
context:
space:
mode:
authorguenther <guenther@openbsd.org>2010-07-19 00:04:07 +0000
committerguenther <guenther@openbsd.org>2010-07-19 00:04:07 +0000
commitd20eac9f637e56bdcb8eda4846734731c365bae1 (patch)
tree327820de590db4f0ad3c3c6c20a0d274b1b07422 /lib/libm/noieee_src
parentremove some nasty hacks; (diff)
downloadwireguard-openbsd-d20eac9f637e56bdcb8eda4846734731c365bae1.tar.xz
wireguard-openbsd-d20eac9f637e56bdcb8eda4846734731c365bae1.zip
Fix the cproj family to not return garbage on finite arguments.
ok millert@
Diffstat (limited to 'lib/libm/noieee_src')
-rw-r--r--lib/libm/noieee_src/n_cproj.c4
-rw-r--r--lib/libm/noieee_src/n_cprojf.c4
2 files changed, 6 insertions, 2 deletions
diff --git a/lib/libm/noieee_src/n_cproj.c b/lib/libm/noieee_src/n_cproj.c
index 373cef865fb..b177b35ae89 100644
--- a/lib/libm/noieee_src/n_cproj.c
+++ b/lib/libm/noieee_src/n_cproj.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: n_cproj.c,v 1.1 2008/10/07 22:25:53 martynas Exp $ */
+/* $OpenBSD: n_cproj.c,v 1.2 2010/07/19 00:04:07 guenther Exp $ */
/*
* Copyright (c) 2008 Martynas Venckus <martynas@openbsd.org>
*
@@ -26,6 +26,8 @@ cproj(double complex z)
if (isinf(__real__ z) || isinf(__imag__ z)) {
__real__ res = INFINITY;
__imag__ res = copysign(0.0, __imag__ z);
+ } else {
+ res = z;
}
return res;
diff --git a/lib/libm/noieee_src/n_cprojf.c b/lib/libm/noieee_src/n_cprojf.c
index 978d36f9395..3b948e821f1 100644
--- a/lib/libm/noieee_src/n_cprojf.c
+++ b/lib/libm/noieee_src/n_cprojf.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: n_cprojf.c,v 1.1 2008/10/07 22:25:53 martynas Exp $ */
+/* $OpenBSD: n_cprojf.c,v 1.2 2010/07/19 00:04:07 guenther Exp $ */
/*
* Copyright (c) 2008 Martynas Venckus <martynas@openbsd.org>
*
@@ -26,6 +26,8 @@ cprojf(float complex z)
if (isinf(__real__ z) || isinf(__imag__ z)) {
__real__ res = INFINITY;
__imag__ res = copysign(0.0, __imag__ z);
+ } else {
+ res = z;
}
return res;