| OLD | NEW | 
|---|
| 1 #include "libm.h" | 1 #include "libm.h" | 
| 2 | 2 | 
| 3 #if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024 | 3 #if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024 | 
| 4 long double tanl(long double x) | 4 long double tanl(long double x) { | 
| 5 { | 5   return tan(x); | 
| 6 »       return tan(x); |  | 
| 7 } | 6 } | 
| 8 #elif (LDBL_MANT_DIG == 64 || LDBL_MANT_DIG == 113) && LDBL_MAX_EXP == 16384 | 7 #elif (LDBL_MANT_DIG == 64 || LDBL_MANT_DIG == 113) && LDBL_MAX_EXP == 16384 | 
| 9 long double tanl(long double x) | 8 long double tanl(long double x) { | 
| 10 { | 9   union ldshape u = {x}; | 
| 11 »       union ldshape u = {x}; | 10   long double y[2]; | 
| 12 »       long double y[2]; | 11   unsigned n; | 
| 13 »       unsigned n; |  | 
| 14 | 12 | 
| 15 »       u.i.se &= 0x7fff; | 13   u.i.se &= 0x7fff; | 
| 16 »       if (u.i.se == 0x7fff) | 14   if (u.i.se == 0x7fff) | 
| 17 »       »       return x - x; | 15     return x - x; | 
| 18 »       if (u.f < M_PI_4) { | 16   if (u.f < M_PI_4) { | 
| 19 »       »       if (u.i.se < 0x3fff - LDBL_MANT_DIG/2) { | 17     if (u.i.se < 0x3fff - LDBL_MANT_DIG / 2) { | 
| 20 »       »       »       /* raise inexact if x!=0 and underflow if subnormal */ | 18       /* raise inexact if x!=0 and underflow if subnormal */ | 
| 21 »       »       »       FORCE_EVAL(u.i.se == 0 ? x*0x1p-120f : x+0x1p120f); | 19       FORCE_EVAL(u.i.se == 0 ? x * 0x1p-120f : x + 0x1p120f); | 
| 22 »       »       »       return x; | 20       return x; | 
| 23 »       »       } | 21     } | 
| 24 »       »       return __tanl(x, 0, 0); | 22     return __tanl(x, 0, 0); | 
| 25 »       } | 23   } | 
| 26 »       n = __rem_pio2l(x, y); | 24   n = __rem_pio2l(x, y); | 
| 27 »       return __tanl(y[0], y[1], n&1); | 25   return __tanl(y[0], y[1], n & 1); | 
| 28 } | 26 } | 
| 29 #endif | 27 #endif | 
| OLD | NEW | 
|---|