summaryrefslogtreecommitdiff
path: root/src/math/asin.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/math/asin.c')
-rw-r--r--src/math/asin.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/math/asin.c b/src/math/asin.c
index 92dae8c8..a94338f5 100644
--- a/src/math/asin.c
+++ b/src/math/asin.c
@@ -6,11 +6,15 @@
/** arc sine **/
TYPE TGFN(asin)(TYPE x)
{
- if (x < -1.0 || x > 1.0) {
+ if (TGFN(fabs)(x) > 1.0) {
errno = EDOM; /* ARGUMENT(x) is not in the range [-1, +1] */
return TGHUGE;
}
+ if (fpclassify(x) == FP_ZERO) {
+ return x;
+ }
+
if (0) {
errno = ERANGE; /* The result cannot be represented */
/* RETURN_FAILURE(CONSTANT(HUGE_VAL), A range error occurred); */