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