xref: /inferno-os/libmath/fdlibm/s_finite.c (revision 37da2899f40661e3e9631e497da8dc59b971cbd0)
1*37da2899SCharles.Forsyth /* derived from /netlib/fdlibm */
2*37da2899SCharles.Forsyth 
3*37da2899SCharles.Forsyth /* @(#)s_finite.c 1.3 95/01/18 */
4*37da2899SCharles.Forsyth /*
5*37da2899SCharles.Forsyth  * ====================================================
6*37da2899SCharles.Forsyth  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
7*37da2899SCharles.Forsyth  *
8*37da2899SCharles.Forsyth  * Developed at SunSoft, a Sun Microsystems, Inc. business.
9*37da2899SCharles.Forsyth  * Permission to use, copy, modify, and distribute this
10*37da2899SCharles.Forsyth  * software is freely granted, provided that this notice
11*37da2899SCharles.Forsyth  * is preserved.
12*37da2899SCharles.Forsyth  * ====================================================
13*37da2899SCharles.Forsyth  */
14*37da2899SCharles.Forsyth 
15*37da2899SCharles.Forsyth /*
16*37da2899SCharles.Forsyth  * finite(x) returns 1 is x is finite, else 0;
17*37da2899SCharles.Forsyth  * no branching!
18*37da2899SCharles.Forsyth  */
19*37da2899SCharles.Forsyth 
20*37da2899SCharles.Forsyth #include "fdlibm.h"
21*37da2899SCharles.Forsyth 
finite(double x)22*37da2899SCharles.Forsyth 	int finite(double x)
23*37da2899SCharles.Forsyth {
24*37da2899SCharles.Forsyth 	int hx;
25*37da2899SCharles.Forsyth 	hx = __HI(x);
26*37da2899SCharles.Forsyth 	return  (unsigned)((hx&0x7fffffff)-0x7ff00000)>>31;
27*37da2899SCharles.Forsyth }
28