\left(\left(\left(\left(x \cdot \log y + z\right) + t\right) + a\right) + \left(b - 0.5\right) \cdot \log c\right) + y \cdot i
\mathsf{fma}\left(y, i, \log c \cdot \left(b - 0.5\right) + \left(a + \left(\mathsf{fma}\left(x, \log y, z\right) + t\right)\right)\right)double f(double x, double y, double z, double t, double a, double b, double c, double i) {
double r98638 = x;
double r98639 = y;
double r98640 = log(r98639);
double r98641 = r98638 * r98640;
double r98642 = z;
double r98643 = r98641 + r98642;
double r98644 = t;
double r98645 = r98643 + r98644;
double r98646 = a;
double r98647 = r98645 + r98646;
double r98648 = b;
double r98649 = 0.5;
double r98650 = r98648 - r98649;
double r98651 = c;
double r98652 = log(r98651);
double r98653 = r98650 * r98652;
double r98654 = r98647 + r98653;
double r98655 = i;
double r98656 = r98639 * r98655;
double r98657 = r98654 + r98656;
return r98657;
}
double f(double x, double y, double z, double t, double a, double b, double c, double i) {
double r98658 = y;
double r98659 = i;
double r98660 = c;
double r98661 = log(r98660);
double r98662 = b;
double r98663 = 0.5;
double r98664 = r98662 - r98663;
double r98665 = r98661 * r98664;
double r98666 = a;
double r98667 = x;
double r98668 = log(r98658);
double r98669 = z;
double r98670 = fma(r98667, r98668, r98669);
double r98671 = t;
double r98672 = r98670 + r98671;
double r98673 = r98666 + r98672;
double r98674 = r98665 + r98673;
double r98675 = fma(r98658, r98659, r98674);
return r98675;
}



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 0.1
Simplified0.1
rmApplied fma-udef0.1
Final simplification0.1
herbie shell --seed 2020047 +o rules:numerics
(FPCore (x y z t a b c i)
:name "Numeric.SpecFunctions:logBeta from math-functions-0.1.5.2, B"
:precision binary64
(+ (+ (+ (+ (+ (* x (log y)) z) t) a) (* (- b 0.5) (log c))) (* y i)))