diff options
Diffstat (limited to 'lib/libm/src')
| -rw-r--r-- | lib/libm/src/s_scalbln.c | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/lib/libm/src/s_scalbln.c b/lib/libm/src/s_scalbln.c new file mode 100644 index 00000000000..28edf3115a4 --- /dev/null +++ b/lib/libm/src/s_scalbln.c @@ -0,0 +1,42 @@ +/* $OpenBSD: s_scalbln.c,v 1.1 2009/07/25 11:38:10 martynas Exp $ */ + +/* + * Written by Martynas Venckus. Public domain + */ + +#include <limits.h> +#include <math.h> + +double +scalbln(double x, long n) +{ + if (n < INT_MIN) + return scalbn(x, INT_MIN); + else if (n > INT_MAX) + return scalbn(x, INT_MAX); + else + return scalbn(x, (int)n); +} + +float +scalblnf(float x, long n) +{ + if (n < INT_MIN) + return scalbnf(x, INT_MIN); + else if (n > INT_MAX) + return scalbnf(x, INT_MAX); + else + return scalbnf(x, (int)n); +} + +long double +scalblnl(long double x, long n) +{ + if (n < INT_MIN) + return scalbnl(x, INT_MIN); + else if (n > INT_MAX) + return scalbnl(x, INT_MAX); + else + return scalbnl(x, (int)n); +} + |
