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