We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
2 parents c05828f + aa19cee commit e9b040dCopy full SHA for e9b040d
amd/device-libs/ocml/src/tgammaF.cl
@@ -42,9 +42,16 @@ MATH_MANGLE(tgamma)(float x)
42
ret = x > 0x1.18521ep+5f ? PINF_F32 : ret;
43
} else {
44
float s = MATH_MANGLE(sinpi)(x);
45
- float p = s*x*t2*t1*t1;
46
- ret = MATH_DIV(-sqrtpiby2*d, MATH_MAD(p, pt, p));
47
- ret = x < -42.0f ? 0.0f : ret;
+ if (x > -30.0f) {
+ float p = s*x*t2*t1*t1;
+ ret = MATH_DIV(-sqrtpiby2*d, MATH_MAD(p, pt, p));
48
+ } else if (x > -41.0f) {
49
+ float t3 = t2*t1;
50
+ float p1 = MATH_MAD(t3, pt, t3);
51
+ float p2 = s*x*t1;
52
+ ret = MATH_DIV(MATH_DIV(-sqrtpiby2*d, p1), p2);
53
+ } else
54
+ ret = 0.0f;
55
ret = BUILTIN_FRACTION_F32(x) == 0.0f ? QNAN_F32 : ret;
56
}
57
0 commit comments