\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}\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(x, y, z\right), y, 27464.7644704999984242022037506103515625\right), y, 230661.5106160000141244381666183471679688\right), y, t\right) \cdot \frac{1}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(y + a, y, b\right), y, c\right), y, i\right)}double f(double x, double y, double z, double t, double a, double b, double c, double i) {
double r54353 = x;
double r54354 = y;
double r54355 = r54353 * r54354;
double r54356 = z;
double r54357 = r54355 + r54356;
double r54358 = r54357 * r54354;
double r54359 = 27464.7644705;
double r54360 = r54358 + r54359;
double r54361 = r54360 * r54354;
double r54362 = 230661.510616;
double r54363 = r54361 + r54362;
double r54364 = r54363 * r54354;
double r54365 = t;
double r54366 = r54364 + r54365;
double r54367 = a;
double r54368 = r54354 + r54367;
double r54369 = r54368 * r54354;
double r54370 = b;
double r54371 = r54369 + r54370;
double r54372 = r54371 * r54354;
double r54373 = c;
double r54374 = r54372 + r54373;
double r54375 = r54374 * r54354;
double r54376 = i;
double r54377 = r54375 + r54376;
double r54378 = r54366 / r54377;
return r54378;
}
double f(double x, double y, double z, double t, double a, double b, double c, double i) {
double r54379 = x;
double r54380 = y;
double r54381 = z;
double r54382 = fma(r54379, r54380, r54381);
double r54383 = 27464.7644705;
double r54384 = fma(r54382, r54380, r54383);
double r54385 = 230661.510616;
double r54386 = fma(r54384, r54380, r54385);
double r54387 = t;
double r54388 = fma(r54386, r54380, r54387);
double r54389 = 1.0;
double r54390 = a;
double r54391 = r54380 + r54390;
double r54392 = b;
double r54393 = fma(r54391, r54380, r54392);
double r54394 = c;
double r54395 = fma(r54393, r54380, r54394);
double r54396 = i;
double r54397 = fma(r54395, r54380, r54396);
double r54398 = r54389 / r54397;
double r54399 = r54388 * r54398;
return r54399;
}



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 28.6
Simplified28.6
rmApplied div-inv28.7
Final simplification28.7
herbie shell --seed 2019306 +o rules:numerics
(FPCore (x y z t a b c i)
:name "Numeric.SpecFunctions:logGamma from math-functions-0.1.5.2"
:precision binary64
(/ (+ (* (+ (* (+ (* (+ (* x y) z) y) 27464.764470499998) y) 230661.510616000014) y) t) (+ (* (+ (* (+ (* (+ y a) y) b) y) c) y) i)))