xref: /openbsd/regress/lib/libm/exp/exp.c (revision 09467b48)
1 /*	$OpenBSD: exp.c,v 1.3 2017/08/06 20:31:58 robert Exp $	*/
2 
3 /*	Written by Otto Moerbeek, 2006,  Public domain.	*/
4 
5 #include <math.h>
6 #include <err.h>
7 
8 int
9 main(void)
10 {
11 	double rd, bigd = HUGE_VAL;
12 	float rf, bigf = HUGE_VALF;
13 	long double rl, bigl = HUGE_VALL;
14 
15 	rd = exp(bigd);
16 	if (!isinf(rd))
17 		errx(1, "exp(bigd) = %f", rd);
18 	rd = exp(-bigd);
19 	if (rd != 0.0)
20 		errx(1, "exp(-bigd) = %f", rd);
21 
22 	rf = expf(bigf);
23 	if (!isinf(rf))
24 		errx(1, "exp(bigf) = %f", rf);
25 	rf = expf(-bigf);
26 	if (rf != 0.0F)
27 		errx(1, "exp(-bigf) = %f", rf);
28 
29 	rl = expl(bigl);
30 	if (!isinf(rl))
31 		errx(1, "exp(bigl) = %Lf", rl);
32 	rl = expl(-bigl);
33 	if (rl != 0.0L)
34 		errx(1, "exp(-bigl) = %Lf", rl);
35 
36 	return (0);
37 }
38