Initial import from FreeBSD RELENG_4:
[dragonfly.git] / lib / msun / src / w_y0f.c
1 /* w_y0f.c -- float version of w_y0.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 #ifndef lint
17 static char rcsid[] = "$FreeBSD: src/lib/msun/src/w_y0f.c,v 1.3 1999/08/28 00:07:10 peter Exp $";
18 #endif
19
20 /*
21  * wrapper y0f(float x)
22  */
23
24 #include "math.h"
25 #include "math_private.h"
26
27 #ifdef __STDC__
28         float y0f(float x)              /* wrapper y0f */
29 #else
30         float y0f(x)                    /* wrapper y0f */
31         float x;
32 #endif
33 {
34 #ifdef _IEEE_LIBM
35         return __ieee754_y0f(x);
36 #else
37         float z;
38         z = __ieee754_y0f(x);
39         if(_LIB_VERSION == _IEEE_ || isnanf(x) ) return z;
40         if(x <= (float)0.0){
41                 if(x==(float)0.0)
42                     /* d= -one/(x-x); */
43                     return (float)__kernel_standard((double)x,(double)x,108);
44                 else
45                     /* d = zero/(x-x); */
46                     return (float)__kernel_standard((double)x,(double)x,109);
47         }
48         if(x>(float)X_TLOSS) {
49                 /* y0(x>X_TLOSS) */
50                 return (float)__kernel_standard((double)x,(double)x,135);
51         } else
52             return z;
53 #endif
54 }