b963c681653e554c7b834eb2ffd626244696446e
[dragonfly.git] / lib / msun / src / w_ynf.c
1 /* w_ynf.c -- float version of w_yn.c.
2  * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
3  *
4  * $FreeBSD: src/lib/msun/src/w_ynf.c,v 1.3 1999/08/28 00:07:11 peter Exp $
5  * $DragonFly: src/lib/msun/src/Attic/w_ynf.c,v 1.2 2003/06/17 04:26:54 dillon Exp $
6  */
7
8 /*
9  * ====================================================
10  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
11  *
12  * Developed at SunPro, a Sun Microsystems, Inc. business.
13  * Permission to use, copy, modify, and distribute this
14  * software is freely granted, provided that this notice
15  * is preserved.
16  * ====================================================
17  */
18
19 #include "math.h"
20 #include "math_private.h"
21
22 #ifdef __STDC__
23         float ynf(int n, float x)       /* wrapper ynf */
24 #else
25         float ynf(n,x)                  /* wrapper ynf */
26         float x; int n;
27 #endif
28 {
29 #ifdef _IEEE_LIBM
30         return __ieee754_ynf(n,x);
31 #else
32         float z;
33         z = __ieee754_ynf(n,x);
34         if(_LIB_VERSION == _IEEE_ || isnanf(x) ) return z;
35         if(x <= (float)0.0){
36                 if(x==(float)0.0)
37                     /* d= -one/(x-x); */
38                     return (float)__kernel_standard((double)n,(double)x,112);
39                 else
40                     /* d = zero/(x-x); */
41                     return (float)__kernel_standard((double)n,(double)x,113);
42         }
43         if(x>(float)X_TLOSS) {
44             /* yn(x>X_TLOSS,n) */
45             return (float)__kernel_standard((double)n,(double)x,139);
46         } else
47             return z;
48 #endif
49 }