Merge branch 'vendor/GCC50'
[dragonfly.git] / lib / libm / src / s_finite.c
1 /* @(#)s_finite.c 5.1 93/09/24 */
2 /* $FreeBSD: head/lib/msun/src/s_finite.c 176451 2008-02-22 02:30:36Z das $ */
3 /*
4  * ====================================================
5  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
6  *
7  * Developed at SunPro, 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 "math.h"
20 #include "math_private.h"
21
22         int finite(double x)
23 {
24         int32_t hx;
25         GET_HIGH_WORD(hx,x);
26         return (int)((u_int32_t)((hx&0x7fffffff)-0x7ff00000)>>31);
27 }