source: asp3_tinet_ecnl_arm/trunk/musl-1.1.18/src/math/scalbnl.c@ 352

Last change on this file since 352 was 352, checked in by coas-nagasima, 6 years ago

arm向けASP3版ECNLを追加

  • Property svn:eol-style set to native
  • Property svn:mime-type set to text/x-csrc;charset=UTF-8
File size: 669 bytes
Line 
1#include "libm.h"
2
3#if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
4long double scalbnl(long double x, int n)
5{
6 return scalbn(x, n);
7}
8#elif (LDBL_MANT_DIG == 64 || LDBL_MANT_DIG == 113) && LDBL_MAX_EXP == 16384
9long double scalbnl(long double x, int n)
10{
11 union ldshape u;
12
13 if (n > 16383) {
14 x *= 0x1p16383L;
15 n -= 16383;
16 if (n > 16383) {
17 x *= 0x1p16383L;
18 n -= 16383;
19 if (n > 16383)
20 n = 16383;
21 }
22 } else if (n < -16382) {
23 x *= 0x1p-16382L * 0x1p113L;
24 n += 16382 - 113;
25 if (n < -16382) {
26 x *= 0x1p-16382L * 0x1p113L;
27 n += 16382 - 113;
28 if (n < -16382)
29 n = -16382;
30 }
31 }
32 u.f = 1.0;
33 u.i.se = 0x3fff + n;
34 return x * u.f;
35}
36#endif
Note: See TracBrowser for help on using the repository browser.