2005-12-13 Ulrich Drepper <drepper@redhat.com>
[platform/upstream/linaro-glibc.git] / sysdeps / generic / w_j1l.c
1 /* w_j1l.c -- long double version of w_j1.c.
2  * Conversion to long double by Ulrich Drepper,
3  * Cygnus Support, drepper@cygnus.com.
4  */
5
6 /*
7  * ====================================================
8  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
9  *
10  * Developed at SunPro, a Sun Microsystems, Inc. business.
11  * Permission to use, copy, modify, and distribute this
12  * software is freely granted, provided that this notice
13  * is preserved.
14  * ====================================================
15  */
16
17 #if defined(LIBM_SCCS) && !defined(lint)
18 static char rcsid[] = "$NetBSD: $";
19 #endif
20
21 /*
22  * wrapper of j1l,y1l
23  */
24
25 #include "math.h"
26 #include "math_private.h"
27
28 #ifdef __STDC__
29         long double j1l(long double x)  /* wrapper j1l */
30 #else
31         long double j1l(x)                      /* wrapper j1l */
32         long double x;
33 #endif
34 {
35 #ifdef _IEEE_LIBM
36         return __ieee754_j1l(x);
37 #else
38         long double z;
39         z = __ieee754_j1l(x);
40         if(_LIB_VERSION == _IEEE_ || __isnanl(x) ) return z;
41         if(fabsl(x)>X_TLOSS) {
42                 return __kernel_standard(x,x,236); /* j1(|x|>X_TLOSS) */
43         } else
44             return z;
45 #endif
46 }
47
48 #ifdef __STDC__
49         long double y1l(long double x)  /* wrapper y1l */
50 #else
51         long double y1l(x)                      /* wrapper y1l */
52         long double x;
53 #endif
54 {
55 #ifdef _IEEE_LIBM
56         return __ieee754_y1l(x);
57 #else
58         long double z;
59         z = __ieee754_y1l(x);
60         if(_LIB_VERSION == _IEEE_ || __isnanl(x) ) return z;
61         if(x <= 0.0){
62                 if(x==0.0)
63                     /* d= -one/(x-x); */
64                     return __kernel_standard(x,x,210);
65                 else
66                     /* d = zero/(x-x); */
67                     return __kernel_standard(x,x,211);
68         }
69         if(x>X_TLOSS) {
70                 return __kernel_standard(x,x,237); /* y1(x>X_TLOSS) */
71         } else
72             return z;
73 #endif
74 }