\left(\left(\left(x + y\right) + z\right) - z \cdot \log t\right) + \left(a - 0.5\right) \cdot b
\left(\left(\left(\left(x + y\right) + z\right) - \log \left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right) \cdot z\right) - z \cdot \log \left({\left({\left({t}^{\frac{1}{3}}\right)}^{\left(\sqrt[3]{\frac{2}{3}} \cdot \sqrt[3]{\frac{2}{3}}\right)}\right)}^{\left(\sqrt[3]{\frac{2}{3}}\right)} \cdot {\left(\sqrt[3]{t}\right)}^{\frac{1}{3}}\right)\right) + \left(a - 0.5\right) \cdot bdouble f(double x, double y, double z, double t, double a, double b) {
double r480820 = x;
double r480821 = y;
double r480822 = r480820 + r480821;
double r480823 = z;
double r480824 = r480822 + r480823;
double r480825 = t;
double r480826 = log(r480825);
double r480827 = r480823 * r480826;
double r480828 = r480824 - r480827;
double r480829 = a;
double r480830 = 0.5;
double r480831 = r480829 - r480830;
double r480832 = b;
double r480833 = r480831 * r480832;
double r480834 = r480828 + r480833;
return r480834;
}
double f(double x, double y, double z, double t, double a, double b) {
double r480835 = x;
double r480836 = y;
double r480837 = r480835 + r480836;
double r480838 = z;
double r480839 = r480837 + r480838;
double r480840 = t;
double r480841 = cbrt(r480840);
double r480842 = r480841 * r480841;
double r480843 = log(r480842);
double r480844 = r480843 * r480838;
double r480845 = r480839 - r480844;
double r480846 = 0.3333333333333333;
double r480847 = pow(r480840, r480846);
double r480848 = 0.6666666666666666;
double r480849 = cbrt(r480848);
double r480850 = r480849 * r480849;
double r480851 = pow(r480847, r480850);
double r480852 = pow(r480851, r480849);
double r480853 = pow(r480841, r480846);
double r480854 = r480852 * r480853;
double r480855 = log(r480854);
double r480856 = r480838 * r480855;
double r480857 = r480845 - r480856;
double r480858 = a;
double r480859 = 0.5;
double r480860 = r480858 - r480859;
double r480861 = b;
double r480862 = r480860 * r480861;
double r480863 = r480857 + r480862;
return r480863;
}




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
rmApplied pow1/30.1
rmApplied add-cube-cbrt0.1
Simplified0.1
Simplified0.1
rmApplied add-cube-cbrt0.1
Applied pow-unpow0.1
Final simplification0.1
herbie shell --seed 2020100
(FPCore (x y z t a b)
:name "Numeric.SpecFunctions:logBeta from math-functions-0.1.5.2, A"
:precision binary64
:herbie-target
(+ (+ (+ x y) (/ (* (- 1 (pow (log t) 2)) z) (+ 1 (log t)))) (* (- a 0.5) b))
(+ (- (+ (+ x y) z) (* z (log t))) (* (- a 0.5) b)))