diff options
author | 2010-07-19 00:04:07 +0000 | |
---|---|---|
committer | 2010-07-19 00:04:07 +0000 | |
commit | d20eac9f637e56bdcb8eda4846734731c365bae1 (patch) | |
tree | 327820de590db4f0ad3c3c6c20a0d274b1b07422 /lib/libm/noieee_src | |
parent | remove some nasty hacks; (diff) | |
download | wireguard-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.c | 4 | ||||
-rw-r--r-- | lib/libm/noieee_src/n_cprojf.c | 4 |
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; |