Skip to content

Commit 8247b5a

Browse files
committed
Revert "Update to the latest s_scalbln.c from msun."
This reverts commit a2f4e10.
1 parent a2f4e10 commit 8247b5a

1 file changed

Lines changed: 34 additions & 9 deletions

File tree

src/s_scalbln.c

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

27-
#include <sys/cdefs.h>
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 $");
2829

30+
#include <limits.h>
2931
#include <openlibm_math.h>
3032

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

3435
DLLEXPORT double
35-
scalbln(double x, long n)
36+
scalbln (double x, long n)
3637
{
38+
int in;
3739

38-
return (scalbn(x, (n > NMAX) ? NMAX : (n < NMIN) ? NMIN : (int)n));
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));
3948
}
4049

4150
DLLEXPORT float
42-
scalblnf(float x, long n)
51+
scalblnf (float x, long n)
4352
{
53+
int in;
4454

45-
return (scalbnf(x, (n > NMAX) ? NMAX : (n < NMIN) ? NMIN : (int)n));
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));
4663
}
4764

4865
DLLEXPORT long double
49-
scalblnl(long double x, long n)
66+
scalblnl (long double x, long n)
5067
{
68+
int in;
5169

52-
return (scalbnl(x, (n > NMAX) ? NMAX : (n < NMIN) ? NMIN : (int)n));
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));
5378
}

0 commit comments

Comments
 (0)