\frac{\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.764470499998\right) \cdot y + 230661.510616000014\right) \cdot y + t}{\left(\left(\left(y + a\right) \cdot y + b\right) \cdot y + c\right) \cdot y + i}\left(\left(\left(y \cdot \mathsf{fma}\left(x, y, z\right) + 27464.764470499998\right) \cdot y + 230661.510616000014\right) \cdot 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) \cdot 1}double f(double x, double y, double z, double t, double a, double b, double c, double i) {
double r297 = x;
double r298 = y;
double r299 = r297 * r298;
double r300 = z;
double r301 = r299 + r300;
double r302 = r301 * r298;
double r303 = 27464.7644705;
double r304 = r302 + r303;
double r305 = r304 * r298;
double r306 = 230661.510616;
double r307 = r305 + r306;
double r308 = r307 * r298;
double r309 = t;
double r310 = r308 + r309;
double r311 = a;
double r312 = r298 + r311;
double r313 = r312 * r298;
double r314 = b;
double r315 = r313 + r314;
double r316 = r315 * r298;
double r317 = c;
double r318 = r316 + r317;
double r319 = r318 * r298;
double r320 = i;
double r321 = r319 + r320;
double r322 = r310 / r321;
return r322;
}
double f(double x, double y, double z, double t, double a, double b, double c, double i) {
double r323 = y;
double r324 = x;
double r325 = z;
double r326 = fma(r324, r323, r325);
double r327 = r323 * r326;
double r328 = 27464.7644705;
double r329 = r327 + r328;
double r330 = r329 * r323;
double r331 = 230661.510616;
double r332 = r330 + r331;
double r333 = r332 * r323;
double r334 = t;
double r335 = r333 + r334;
double r336 = 1.0;
double r337 = a;
double r338 = r323 + r337;
double r339 = b;
double r340 = fma(r338, r323, r339);
double r341 = c;
double r342 = fma(r340, r323, r341);
double r343 = i;
double r344 = fma(r342, r323, r343);
double r345 = r344 * r336;
double r346 = r336 / r345;
double r347 = r335 * r346;
return r347;
}



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
rmApplied div-inv29.3
Simplified29.3
Taylor expanded around 0 29.3
Simplified29.3
Final simplification29.3
herbie shell --seed 2020025 +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.7644705) y) 230661.510616) y) t) (+ (* (+ (* (+ (* (+ y a) y) b) y) c) y) i)))