1 /* w_jnf.c -- float version of w_jn.c. 2 * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. 3 */ 4 5 /* 6 * ==================================================== 7 * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. 8 * 9 * Developed at SunPro, a Sun Microsystems, Inc. business. 10 * Permission to use, copy, modify, and distribute this 11 * software is freely granted, provided that this notice 12 * is preserved. 13 * ==================================================== 14 */ 15 16 #if defined(LIBM_SCCS) && !defined(lint) 17 static char rcsid[] = "$Id: w_jnf.c,v 1.2 1994/09/22 16:45:49 jtc Exp $"; 18 #endif 19 20 #include "math.h" 21 #include "math_private.h" 22 23 #ifdef __STDC__ 24 float jnf(int n, float x) /* wrapper jnf */ 25 #else 26 float jnf(n,x) /* wrapper jnf */ 27 float x; int n; 28 #endif 29 { 30 #ifdef _IEEE_LIBM 31 return __ieee754_jnf(n,x); 32 #else 33 float z; 34 z = __ieee754_jnf(n,x); 35 if(_LIB_VERSION == _IEEE_ || isnanf(x) ) return z; 36 if(fabsf(x)>(float)X_TLOSS) { 37 /* jn(|x|>X_TLOSS,n) */ 38 return (float)__kernel_standard((double)n,(double)x,138); 39 } else 40 return z; 41 #endif 42 } 43 44 #ifdef __STDC__ 45 float ynf(int n, float x) /* wrapper ynf */ 46 #else 47 float ynf(n,x) /* wrapper ynf */ 48 float x; int n; 49 #endif 50 { 51 #ifdef _IEEE_LIBM 52 return __ieee754_ynf(n,x); 53 #else 54 float z; 55 z = __ieee754_ynf(n,x); 56 if(_LIB_VERSION == _IEEE_ || isnanf(x) ) return z; 57 if(x <= (float)0.0){ 58 if(x==(float)0.0) 59 /* d= -one/(x-x); */ 60 return (float)__kernel_standard((double)n,(double)x,112); 61 else 62 /* d = zero/(x-x); */ 63 return (float)__kernel_standard((double)n,(double)x,113); 64 } 65 if(x>(float)X_TLOSS) { 66 /* yn(x>X_TLOSS,n) */ 67 return (float)__kernel_standard((double)n,(double)x,139); 68 } else 69 return z; 70 #endif 71 } 72