68
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
1 /*
|
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
2 * Written by J.T. Conklin <jtc@netbsd.org>.
|
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
3 * Change for long double by Jakub Jelinek <jj@ultra.linux.cz>
|
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
4 * Public domain.
|
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
5 */
|
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
6
|
145
|
7 #if defined(LIBM_SCCS) && !defined(lint)
|
|
8 static char rcsid[] = "$NetBSD: $";
|
|
9 #endif
|
|
10
|
|
11 /*
|
|
12 * isinfq(x) returns 1 if x is inf, -1 if x is -inf, else 0;
|
|
13 * no branching!
|
|
14 */
|
|
15
|
68
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
16 #include "quadmath-imp.h"
|
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
17
|
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
18 int
|
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
19 isinfq (__float128 x)
|
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
20 {
|
145
|
21 int64_t hx,lx;
|
|
22 GET_FLT128_WORDS64(hx,lx,x);
|
|
23 lx |= (hx & 0x7fffffffffffffffLL) ^ 0x7fff000000000000LL;
|
|
24 lx |= -lx;
|
|
25 return ~(lx >> 63) & (hx >> 62);
|
68
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
26 }
|