\left(\left(\left(x + y\right) + z\right) - z \cdot \log t\right) + \left(a - 0.5\right) \cdot b
\left(\left(\left(\left(y + z\right) + x\right) - \left(\log \left(\sqrt[3]{t}\right) \cdot z + \log \left(\sqrt[3]{t}\right) \cdot z\right)\right) - \log \left(\sqrt[3]{t}\right) \cdot z\right) + b \cdot \left(a - 0.5\right)double f(double x, double y, double z, double t, double a, double b) {
double r12978814 = x;
double r12978815 = y;
double r12978816 = r12978814 + r12978815;
double r12978817 = z;
double r12978818 = r12978816 + r12978817;
double r12978819 = t;
double r12978820 = log(r12978819);
double r12978821 = r12978817 * r12978820;
double r12978822 = r12978818 - r12978821;
double r12978823 = a;
double r12978824 = 0.5;
double r12978825 = r12978823 - r12978824;
double r12978826 = b;
double r12978827 = r12978825 * r12978826;
double r12978828 = r12978822 + r12978827;
return r12978828;
}
double f(double x, double y, double z, double t, double a, double b) {
double r12978829 = y;
double r12978830 = z;
double r12978831 = r12978829 + r12978830;
double r12978832 = x;
double r12978833 = r12978831 + r12978832;
double r12978834 = t;
double r12978835 = cbrt(r12978834);
double r12978836 = log(r12978835);
double r12978837 = r12978836 * r12978830;
double r12978838 = r12978837 + r12978837;
double r12978839 = r12978833 - r12978838;
double r12978840 = r12978839 - r12978837;
double r12978841 = b;
double r12978842 = a;
double r12978843 = 0.5;
double r12978844 = r12978842 - r12978843;
double r12978845 = r12978841 * r12978844;
double r12978846 = r12978840 + r12978845;
return r12978846;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a




Bits error versus b
Results
| Original | 0.1 |
|---|---|
| Target | 0.4 |
| Herbie | 0.1 |
Initial program 0.1
rmApplied add-cube-cbrt0.1
Applied log-prod0.1
Applied distribute-lft-in0.1
Applied associate--r+0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2019172 +o rules:numerics
(FPCore (x y z t a b)
:name "Numeric.SpecFunctions:logBeta from math-functions-0.1.5.2, A"
:herbie-target
(+ (+ (+ x y) (/ (* (- 1.0 (pow (log t) 2.0)) z) (+ 1.0 (log t)))) (* (- a 0.5) b))
(+ (- (+ (+ x y) z) (* z (log t))) (* (- a 0.5) b)))