\frac{\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.7644704999984242022037506103515625\right) \cdot y + 230661.5106160000141244381666183471679688\right) \cdot y + t}{\left(\left(\left(y + a\right) \cdot y + b\right) \cdot y + c\right) \cdot y + i}\frac{\mathsf{fma}\left(\mathsf{fma}\left(y, \mathsf{fma}\left(y, \mathsf{fma}\left(y, x, z\right), 27464.7644704999984242022037506103515625\right), 230661.5106160000141244381666183471679688\right), y, t\right)}{\mathsf{fma}\left(\mathsf{fma}\left(y \cdot y, y + a, b \cdot y\right) + c, y, i\right)}double f(double x, double y, double z, double t, double a, double b, double c, double i) {
double r61385 = x;
double r61386 = y;
double r61387 = r61385 * r61386;
double r61388 = z;
double r61389 = r61387 + r61388;
double r61390 = r61389 * r61386;
double r61391 = 27464.7644705;
double r61392 = r61390 + r61391;
double r61393 = r61392 * r61386;
double r61394 = 230661.510616;
double r61395 = r61393 + r61394;
double r61396 = r61395 * r61386;
double r61397 = t;
double r61398 = r61396 + r61397;
double r61399 = a;
double r61400 = r61386 + r61399;
double r61401 = r61400 * r61386;
double r61402 = b;
double r61403 = r61401 + r61402;
double r61404 = r61403 * r61386;
double r61405 = c;
double r61406 = r61404 + r61405;
double r61407 = r61406 * r61386;
double r61408 = i;
double r61409 = r61407 + r61408;
double r61410 = r61398 / r61409;
return r61410;
}
double f(double x, double y, double z, double t, double a, double b, double c, double i) {
double r61411 = y;
double r61412 = x;
double r61413 = z;
double r61414 = fma(r61411, r61412, r61413);
double r61415 = 27464.7644705;
double r61416 = fma(r61411, r61414, r61415);
double r61417 = 230661.510616;
double r61418 = fma(r61411, r61416, r61417);
double r61419 = t;
double r61420 = fma(r61418, r61411, r61419);
double r61421 = r61411 * r61411;
double r61422 = a;
double r61423 = r61411 + r61422;
double r61424 = b;
double r61425 = r61424 * r61411;
double r61426 = fma(r61421, r61423, r61425);
double r61427 = c;
double r61428 = r61426 + r61427;
double r61429 = i;
double r61430 = fma(r61428, r61411, r61429);
double r61431 = r61420 / r61430;
return r61431;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t



Bits error versus a



Bits error versus b



Bits error versus c



Bits error versus i
Initial program 29.2
Simplified29.2
rmApplied fma-udef29.2
Taylor expanded around inf 29.3
Simplified29.2
Final simplification29.2
herbie shell --seed 2019174 +o rules:numerics
(FPCore (x y z t a b c i)
:name "Numeric.SpecFunctions:logGamma from math-functions-0.1.5.2"
(/ (+ (* (+ (* (+ (* (+ (* x y) z) y) 27464.7644705) y) 230661.510616) y) t) (+ (* (+ (* (+ (* (+ y a) y) b) y) c) y) i)))