summaryrefslogtreecommitdiffstats
path: root/lib/libm/src/s_scalbln.c
blob: 28edf3115a41c7bffa1a357000581ce054d934c7 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
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);
}