Back to index

glibc  2.9
w_j0l.c
Go to the documentation of this file.
00001 /* w_j0l.c -- long double version of w_j0.c.
00002  * Conversion to long double by Ulrich Drepper,
00003  * Cygnus Support, drepper@cygnus.com.
00004  */
00005 
00006 /*
00007  * ====================================================
00008  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
00009  *
00010  * Developed at SunPro, a Sun Microsystems, Inc. business.
00011  * Permission to use, copy, modify, and distribute this
00012  * software is freely granted, provided that this notice
00013  * is preserved.
00014  * ====================================================
00015  */
00016 
00017 #if defined(LIBM_SCCS) && !defined(lint)
00018 static char rcsid[] = "$NetBSD: $";
00019 #endif
00020 
00021 /*
00022  * wrapper j0l(long double x), y0l(long double x)
00023  */
00024 
00025 #include <math.h>
00026 #include "math_private.h"
00027 
00028 #ifdef __STDC__
00029        long double __j0l(long double x)          /* wrapper j0l */
00030 #else
00031        long double __j0l(x)                      /* wrapper j0 */
00032        long double x;
00033 #endif
00034 {
00035 #ifdef _IEEE_LIBM
00036        return __ieee754_j0l(x);
00037 #else
00038        long double z = __ieee754_j0l(x);
00039        if(_LIB_VERSION == _IEEE_ || __isnanl(x)) return z;
00040        if(fabsl(x)>X_TLOSS) {
00041                return __kernel_standard(x,x,234); /* j0(|x|>X_TLOSS) */
00042        } else
00043            return z;
00044 #endif
00045 }
00046 weak_alias (__j0l, j0l)
00047 
00048 #ifdef __STDC__
00049        long double __y0l(long double x)          /* wrapper y0l */
00050 #else
00051        long double __y0l(x)                      /* wrapper y0 */
00052        long double x;
00053 #endif
00054 {
00055 #ifdef _IEEE_LIBM
00056        return __ieee754_y0l(x);
00057 #else
00058        long double z;
00059        z = __ieee754_y0l(x);
00060        if(_LIB_VERSION == _IEEE_ || __isnanl(x) ) return z;
00061         if(x <= 0.0){
00062                 if(x==0.0)
00063                     /* d= -one/(x-x); */
00064                     return __kernel_standard(x,x,208);
00065                 else
00066                     /* d = zero/(x-x); */
00067                     return __kernel_standard(x,x,209);
00068         }
00069        if(x>X_TLOSS) {
00070                return __kernel_standard(x,x,235); /* y0(x>X_TLOSS) */
00071        } else
00072            return z;
00073 #endif
00074 }
00075 
00076 weak_alias (__y0l, y0l)