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