\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{\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}double f(double x, double y, double z, double t, double a, double b, double c, double i) {
double r87722 = x;
double r87723 = y;
double r87724 = r87722 * r87723;
double r87725 = z;
double r87726 = r87724 + r87725;
double r87727 = r87726 * r87723;
double r87728 = 27464.7644705;
double r87729 = r87727 + r87728;
double r87730 = r87729 * r87723;
double r87731 = 230661.510616;
double r87732 = r87730 + r87731;
double r87733 = r87732 * r87723;
double r87734 = t;
double r87735 = r87733 + r87734;
double r87736 = a;
double r87737 = r87723 + r87736;
double r87738 = r87737 * r87723;
double r87739 = b;
double r87740 = r87738 + r87739;
double r87741 = r87740 * r87723;
double r87742 = c;
double r87743 = r87741 + r87742;
double r87744 = r87743 * r87723;
double r87745 = i;
double r87746 = r87744 + r87745;
double r87747 = r87735 / r87746;
return r87747;
}
double f(double x, double y, double z, double t, double a, double b, double c, double i) {
double r87748 = x;
double r87749 = y;
double r87750 = r87748 * r87749;
double r87751 = z;
double r87752 = r87750 + r87751;
double r87753 = r87752 * r87749;
double r87754 = 27464.7644705;
double r87755 = r87753 + r87754;
double r87756 = r87755 * r87749;
double r87757 = 230661.510616;
double r87758 = r87756 + r87757;
double r87759 = r87758 * r87749;
double r87760 = t;
double r87761 = r87759 + r87760;
double r87762 = a;
double r87763 = r87749 + r87762;
double r87764 = r87763 * r87749;
double r87765 = b;
double r87766 = r87764 + r87765;
double r87767 = r87766 * r87749;
double r87768 = c;
double r87769 = r87767 + r87768;
double r87770 = r87769 * r87749;
double r87771 = i;
double r87772 = r87770 + r87771;
double r87773 = r87761 / r87772;
return r87773;
}



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
Results
Initial program 28.7
Final simplification28.7
herbie shell --seed 2019350 +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)))