summaryrefslogtreecommitdiff
path: root/lib/libm/complex
diff options
context:
space:
mode:
authormaya <maya@NetBSD.org>2016-12-31 22:54:56 +0000
committermaya <maya@NetBSD.org>2016-12-31 22:54:56 +0000
commitd7cd6cbd0d4a0170aa3c06cce9e35fc9d72be745 (patch)
tree054b7de22355f055a46d6ae50287f07be68b2dfa /lib/libm/complex
parenta5a78d3c3e84ae535d9bff4b6ca184c372a8b731 (diff)
similar to csqrt, spare ourselves a fabsf call. we already check sign
later on, use this to our advantage. No functional change.
Diffstat (limited to 'lib/libm/complex')
-rw-r--r--lib/libm/complex/csqrtf.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/lib/libm/complex/csqrtf.c b/lib/libm/complex/csqrtf.c
index da276d33ccb..8deb0525c82 100644
--- a/lib/libm/complex/csqrtf.c
+++ b/lib/libm/complex/csqrtf.c
@@ -1,4 +1,4 @@
-/* $NetBSD: csqrtf.c,v 1.2 2016/12/31 20:01:15 maya Exp $ */
+/* $NetBSD: csqrtf.c,v 1.3 2016/12/31 22:54:56 maya Exp $ */
/*-
* Copyright (c) 2007 The NetBSD Foundation, Inc.
@@ -55,12 +55,13 @@ csqrtf(float complex z)
}
if (x == 0.0f) {
- r = fabsf(y);
- r = sqrtf(0.5f * r);
- if (y > 0)
+ if (y > 0) {
+ r = sqrtf(0.5f * y);
w = r + r * I;
- else
+ } else {
+ r = sqrtf(-0.5f * y);
w = r - r * I;
+ }
return w;
}