summaryrefslogtreecommitdiff
path: root/missing/isinf.c
blob: 0297efdfd4b2554a49e8770bf663831b2523b6f5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
static double zero()	{ return 0.0; }
static double one()	{ return 1.0; }
static double inf()	{ return one() / zero(); }

int
isinf(n)
    double n;
{
    static double pinf = 0.0;
    static double ninf = 0.0;

    if (pinf == 0.0) {
	pinf = inf();
	ninf = -pinf;
    }
    return memcmp(&n, &pinf, sizeof n) == 0
	|| memcmp(&n, &ninf, sizeof n) == 0;
}