c886bb math: in lgamma* only check signgam when it's specified

Authored and Committed by Szabolcs Nagy 12 years ago
    math: in lgamma* only check signgam when it's specified
    
        
file modified
+1 -1
src/math/lgamma.c CHANGED
@@ -35,7 +35,7 @@ int main(void)
35
35
err++;
36
36
}
37
37
d = ulperr(y, p->y, p->dy);
38
- if (!checkulp(d, p->r) || yi != p->i) {
38
+ if (!checkulp(d, p->r) || (!isnan(p->x) && p->x!=-inf && !(p->e&DIVBYZERO) && yi != p->i)) {
39
39
printf("%s:%d: %s lgamma(%a) want %a,%lld got %a,%d ulperr %.3f = %a + %a\n",
40
40
p->file, p->line, rstr(p->r), p->x, p->y, p->i, y, yi, d, d-p->dy, p->dy);
41
41
err++;
file modified
+1 -1
src/math/lgamma_r.c CHANGED
@@ -34,7 +34,7 @@ int main(void)
34
34
err++;
35
35
}
36
36
d = ulperr(y, p->y, p->dy);
37
- if (!checkulp(d, p->r) || yi != p->i) {
37
+ if (!checkulp(d, p->r) || (!isnan(p->x) && p->x!=-inf && !(p->e&DIVBYZERO) && yi != p->i)) {
38
38
printf("%s:%d: %s lgamma_r(%a) want %a,%lld got %a,%d ulperr %.3f = %a + %a\n",
39
39
p->file, p->line, rstr(p->r), p->x, p->y, p->i, y, yi, d, d-p->dy, p->dy);
40
40
err++;
file modified
+1 -1
src/math/lgammaf.c CHANGED
@@ -35,7 +35,7 @@ int main(void)
35
35
err++;
36
36
}
37
37
d = ulperrf(y, p->y, p->dy);
38
- if (!checkulp(d, p->r) || yi != p->i) {
38
+ if (!checkulp(d, p->r) || (!isnan(p->x) && p->x!=-inf && !(p->e&DIVBYZERO) && yi != p->i)) {
39
39
printf("%s:%d: %s lgammaf(%a) want %a,%lld got %a,%d ulperr %.3f = %a + %a\n",
40
40
p->file, p->line, rstr(p->r), p->x, p->y, p->i, y, yi, d, d-p->dy, p->dy);
41
41
err++;
file modified
+1 -1
src/math/lgammaf_r.c CHANGED
@@ -34,7 +34,7 @@ int main(void)
34
34
err++;
35
35
}
36
36
d = ulperrf(y, p->y, p->dy);
37
- if (!checkulp(d, p->r) || yi != p->i) {
37
+ if (!checkulp(d, p->r) || (!isnan(p->x) && p->x!=-inf && !(p->e&DIVBYZERO) && yi != p->i)) {
38
38
printf("%s:%d: %s lgammaf_r(%a) want %a,%lld got %a,%d ulperr %.3f = %a + %a\n",
39
39
p->file, p->line, rstr(p->r), p->x, p->y, p->i, y, yi, d, d-p->dy, p->dy);
40
40
err++;
file modified
+1 -1
src/math/lgammal.c CHANGED
@@ -41,7 +41,7 @@ int main(void)
41
41
err++;
42
42
}
43
43
d = ulperrl(y, p->y, p->dy);
44
- if (!checkulp(d, p->r) || yi != p->i) {
44
+ if (!checkulp(d, p->r) || (!isnan(p->x) && p->x!=-inf && !(p->e&DIVBYZERO) && yi != p->i)) {
45
45
printf("%s:%d: %s lgammal(%La) want %La,%lld got %La,%d ulperr %.3f = %a + %a\n",
46
46
p->file, p->line, rstr(p->r), p->x, p->y, p->i, y, yi, d, d-p->dy, p->dy);
47
47
err++;
file modified
+1 -1
src/math/lgammal_r.c CHANGED
@@ -40,7 +40,7 @@ int main(void)
40
40
err++;
41
41
}
42
42
d = ulperrl(y, p->y, p->dy);
43
- if (!checkulp(d, p->r) || yi != p->i) {
43
+ if (!checkulp(d, p->r) || (!isnan(p->x) && p->x!=-inf && !(p->e&DIVBYZERO) && yi != p->i)) {
44
44
printf("%s:%d: %s lgammal_r(%La) want %La,%lld got %La,%d ulperr %.3f = %a + %a\n",
45
45
p->file, p->line, rstr(p->r), p->x, p->y, p->i, y, yi, d, d-p->dy, p->dy);
46
46
err++;