Skip to content

Commit a2f4e10

Browse files
committed
Update to the latest s_scalbln.c from msun.
1 parent 763da44 commit a2f4e10

1 file changed

Lines changed: 9 additions & 34 deletions

File tree

src/s_scalbln.c

Lines changed: 9 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -24,55 +24,30 @@
2424
* SUCH DAMAGE.
2525
*/
2626

27-
#include "cdefs-compat.h"
28-
//__FBSDID("$FreeBSD: src/lib/msun/src/s_scalbln.c,v 1.2 2005/03/07 04:57:50 das Exp $");
27+
#include <sys/cdefs.h>
2928

30-
#include <limits.h>
3129
#include <openlibm_math.h>
3230

33-
#include "math_private.h"
31+
#define NMAX 65536
32+
#define NMIN -65536
3433

3534
DLLEXPORT double
36-
scalbln (double x, long n)
35+
scalbln(double x, long n)
3736
{
38-
int in;
3937

40-
in = (int)n;
41-
if (in != n) {
42-
if (n > 0)
43-
in = INT_MAX;
44-
else
45-
in = INT_MIN;
46-
}
47-
return (scalbn(x, in));
38+
return (scalbn(x, (n > NMAX) ? NMAX : (n < NMIN) ? NMIN : (int)n));
4839
}
4940

5041
DLLEXPORT float
51-
scalblnf (float x, long n)
42+
scalblnf(float x, long n)
5243
{
53-
int in;
5444

55-
in = (int)n;
56-
if (in != n) {
57-
if (n > 0)
58-
in = INT_MAX;
59-
else
60-
in = INT_MIN;
61-
}
62-
return (scalbnf(x, in));
45+
return (scalbnf(x, (n > NMAX) ? NMAX : (n < NMIN) ? NMIN : (int)n));
6346
}
6447

6548
DLLEXPORT long double
66-
scalblnl (long double x, long n)
49+
scalblnl(long double x, long n)
6750
{
68-
int in;
6951

70-
in = (int)n;
71-
if (in != n) {
72-
if (n > 0)
73-
in = INT_MAX;
74-
else
75-
in = INT_MIN;
76-
}
77-
return (scalbnl(x, (int)n));
52+
return (scalbnl(x, (n > NMAX) ? NMAX : (n < NMIN) ? NMIN : (int)n));
7853
}

0 commit comments

Comments
 (0)