1 |
|
|
/* $OpenBSD: s_scalbln.c,v 1.1 2009/07/25 11:38:10 martynas Exp $ */ |
2 |
|
|
|
3 |
|
|
/* |
4 |
|
|
* Written by Martynas Venckus. Public domain |
5 |
|
|
*/ |
6 |
|
|
|
7 |
|
|
#include <limits.h> |
8 |
|
|
#include <math.h> |
9 |
|
|
|
10 |
|
|
double |
11 |
|
|
scalbln(double x, long n) |
12 |
|
|
{ |
13 |
|
|
if (n < INT_MIN) |
14 |
|
|
return scalbn(x, INT_MIN); |
15 |
|
|
else if (n > INT_MAX) |
16 |
|
|
return scalbn(x, INT_MAX); |
17 |
|
|
else |
18 |
|
|
return scalbn(x, (int)n); |
19 |
|
|
} |
20 |
|
|
|
21 |
|
|
float |
22 |
|
|
scalblnf(float x, long n) |
23 |
|
|
{ |
24 |
|
|
if (n < INT_MIN) |
25 |
|
|
return scalbnf(x, INT_MIN); |
26 |
|
|
else if (n > INT_MAX) |
27 |
|
|
return scalbnf(x, INT_MAX); |
28 |
|
|
else |
29 |
|
|
return scalbnf(x, (int)n); |
30 |
|
|
} |
31 |
|
|
|
32 |
|
|
long double |
33 |
|
|
scalblnl(long double x, long n) |
34 |
|
|
{ |
35 |
|
|
if (n < INT_MIN) |
36 |
|
|
return scalbnl(x, INT_MIN); |
37 |
|
|
else if (n > INT_MAX) |
38 |
|
|
return scalbnl(x, INT_MAX); |
39 |
|
|
else |
40 |
|
|
return scalbnl(x, (int)n); |
41 |
|
|
} |
42 |
|
|
|