summaryrefslogtreecommitdiff
path: root/native/fdlibm/w_sqrt.c
diff options
context:
space:
mode:
Diffstat (limited to 'native/fdlibm/w_sqrt.c')
-rw-r--r--native/fdlibm/w_sqrt.c61
1 files changed, 3 insertions, 58 deletions
diff --git a/native/fdlibm/w_sqrt.c b/native/fdlibm/w_sqrt.c
index 23a793ce7..4dd589e25 100644
--- a/native/fdlibm/w_sqrt.c
+++ b/native/fdlibm/w_sqrt.c
@@ -1,58 +1,21 @@
-/* @(#)w_sqrt.c 5.1 93/09/24 */
+/* @(#)w_sqrt.c 1.3 95/01/18 */
/*
* ====================================================
* Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
*
- * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
* Permission to use, copy, modify, and distribute this
* software is freely granted, provided that this notice
* is preserved.
* ====================================================
*/
-/*
-FUNCTION
- <<sqrt>>, <<sqrtf>>---positive square root
-
-INDEX
- sqrt
-INDEX
- sqrtf
-
-ANSI_SYNOPSIS
- #include <math.h>
- double sqrt(double <[x]>);
- float sqrtf(float <[x]>);
-
-TRAD_SYNOPSIS
- #include <math.h>
- double sqrt(<[x]>);
- float sqrtf(<[x]>);
-
-DESCRIPTION
- <<sqrt>> computes the positive square root of the argument.
- You can modify error handling for this function with
- <<matherr>>.
-
-RETURNS
- On success, the square root is returned. If <[x]> is real and
- positive, then the result is positive. If <[x]> is real and
- negative, the global value <<errno>> is set to <<EDOM>> (domain error).
-
-
-PORTABILITY
- <<sqrt>> is ANSI C. <<sqrtf>> is an extension.
-*/
-
/*
* wrapper sqrt(x)
*/
#include "fdlibm.h"
-#include <errno.h>
-
-#ifndef _DOUBLE_IS_32BITS
#ifdef __STDC__
double sqrt(double x) /* wrapper sqrt */
@@ -64,30 +27,12 @@ PORTABILITY
#ifdef _IEEE_LIBM
return __ieee754_sqrt(x);
#else
- struct exception exc;
double z;
z = __ieee754_sqrt(x);
if(_LIB_VERSION == _IEEE_ || isnan(x)) return z;
if(x<0.0) {
- exc.type = DOMAIN;
- exc.name = "sqrt";
- exc.err = 0;
- exc.arg1 = exc.arg2 = x;
- if (_LIB_VERSION == _SVID_)
- exc.retval = 0.0;
- else
- exc.retval = 0.0/0.0;
- if (_LIB_VERSION == _POSIX_)
- errno = EDOM;
- else if (!matherr(&exc)) {
- errno = EDOM;
- }
- if (exc.err != 0)
- errno = exc.err;
- return exc.retval;
+ return __kernel_standard(x,x,26); /* sqrt(negative) */
} else
return z;
#endif
}
-
-#endif /* defined(_DOUBLE_IS_32BITS) */