\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 r2089221 = x;
double r2089222 = y;
double r2089223 = r2089221 * r2089222;
double r2089224 = z;
double r2089225 = r2089223 + r2089224;
double r2089226 = r2089225 * r2089222;
double r2089227 = 27464.7644705;
double r2089228 = r2089226 + r2089227;
double r2089229 = r2089228 * r2089222;
double r2089230 = 230661.510616;
double r2089231 = r2089229 + r2089230;
double r2089232 = r2089231 * r2089222;
double r2089233 = t;
double r2089234 = r2089232 + r2089233;
double r2089235 = a;
double r2089236 = r2089222 + r2089235;
double r2089237 = r2089236 * r2089222;
double r2089238 = b;
double r2089239 = r2089237 + r2089238;
double r2089240 = r2089239 * r2089222;
double r2089241 = c;
double r2089242 = r2089240 + r2089241;
double r2089243 = r2089242 * r2089222;
double r2089244 = i;
double r2089245 = r2089243 + r2089244;
double r2089246 = r2089234 / r2089245;
return r2089246;
}
double f(double x, double y, double z, double t, double a, double b, double c, double i) {
double r2089247 = y;
double r2089248 = x;
double r2089249 = z;
double r2089250 = fma(r2089247, r2089248, r2089249);
double r2089251 = 27464.7644705;
double r2089252 = fma(r2089247, r2089250, r2089251);
double r2089253 = 230661.510616;
double r2089254 = fma(r2089247, r2089252, r2089253);
double r2089255 = t;
double r2089256 = fma(r2089254, r2089247, r2089255);
double r2089257 = r2089247 * r2089247;
double r2089258 = a;
double r2089259 = r2089247 + r2089258;
double r2089260 = b;
double r2089261 = r2089260 * r2089247;
double r2089262 = fma(r2089257, r2089259, r2089261);
double r2089263 = c;
double r2089264 = r2089262 + r2089263;
double r2089265 = i;
double r2089266 = fma(r2089264, r2089247, r2089265);
double r2089267 = r2089256 / r2089266;
return r2089267;
}



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)))