~ubuntu-branches/ubuntu/trusty/emscripten/trusty-proposed

« back to all changes in this revision

Viewing changes to system/lib/libc/musl/src/math/scalbnl.c

  • Committer: Package Import Robot
  • Author(s): Sylvestre Ledru
  • Date: 2014-01-19 14:12:40 UTC
  • mfrom: (1.2.4)
  • Revision ID: package-import@ubuntu.com-20140119141240-jg1l42cc158j59tn
Tags: 1.9.0~20140119~7dc8c2f-1
* New snapshot release (Closes: #733714)
* Provide sources for javascript and flash. Done in orig-tar.sh
  Available in third_party/websockify/include/web-socket-js/src/
  (Closes: #735903)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#include "libm.h"
 
2
 
 
3
#if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
 
4
long 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
 
9
long 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;
 
24
                n += 16382;
 
25
                if (n < -16382) {
 
26
                        x *= 0x1p-16382L;
 
27
                        n += 16382;
 
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