- if(!isfinite(x))
- return fabs(x) * '1 0 0' + copysign(1, x) * '0 1 0';
- if(x < 1 && x == floor(x))
+ if(!isfinite(e))
+ return fabs(e) * '1 0 0' + copysign(1, e) * '0 1 0';
+ if(e < 1 && e == floor(e))
// reflection formula:
// gamma(1-z) * gamma(z) = pi / sin(pi*z)
// lgamma(1-z) + lgamma(z) = log(pi) - log(sin(pi*z))
// sign of gamma(1-z) = sign of gamma(z) * sign of sin(pi*z)
// reflection formula:
// gamma(1-z) * gamma(z) = pi / sin(pi*z)
// lgamma(1-z) + lgamma(z) = log(pi) - log(sin(pi*z))
// sign of gamma(1-z) = sign of gamma(z) * sign of sin(pi*z)
- if(x < 1.1)
- return lgamma(x + 1) - log(x) * '1 0 0';
- x -= 1;
- return (0.5 * log(2 * M_PI * x) + x * (log(x) - 1)) * '1 0 0' + '0 1 0';
+ if(e < 1.1)
+ return lgamma(e + 1) - log(e) * '1 0 0';
+ e -= 1;
+ return (0.5 * log(2 * M_PI * e) + e * (log(e) - 1)) * '1 0 0' + '0 1 0';
- if(x > y)
- return -nextafter(-x, -y);
- // now we know that x < y
- // so we need the next number > x
+ if(e > f)
+ return -nextafter(-e, -f);
+ // now we know that e < f
+ // so we need the next number > e
-int isgreater(float x, float y)
-{
- return x > y;
-}
-int isgreaterequal(float x, float y)
+int isgreater(float e, float f)