\left(\left(\left(x + y\right) + z\right) - z \cdot \log t\right) + \left(a - 0.5\right) \cdot b
\left(\left(\left(\left(z + \left(y + x\right)\right) - \left(z + z\right) \cdot \log \left({t}^{\frac{1}{6}}\right)\right) - \log \left(\sqrt[3]{\sqrt{t}}\right) \cdot z\right) - z \cdot \log \left(\sqrt{t}\right)\right) + b \cdot \left(a - 0.5\right)double f(double x, double y, double z, double t, double a, double b) {
double r20602150 = x;
double r20602151 = y;
double r20602152 = r20602150 + r20602151;
double r20602153 = z;
double r20602154 = r20602152 + r20602153;
double r20602155 = t;
double r20602156 = log(r20602155);
double r20602157 = r20602153 * r20602156;
double r20602158 = r20602154 - r20602157;
double r20602159 = a;
double r20602160 = 0.5;
double r20602161 = r20602159 - r20602160;
double r20602162 = b;
double r20602163 = r20602161 * r20602162;
double r20602164 = r20602158 + r20602163;
return r20602164;
}
double f(double x, double y, double z, double t, double a, double b) {
double r20602165 = z;
double r20602166 = y;
double r20602167 = x;
double r20602168 = r20602166 + r20602167;
double r20602169 = r20602165 + r20602168;
double r20602170 = r20602165 + r20602165;
double r20602171 = t;
double r20602172 = 0.16666666666666666;
double r20602173 = pow(r20602171, r20602172);
double r20602174 = log(r20602173);
double r20602175 = r20602170 * r20602174;
double r20602176 = r20602169 - r20602175;
double r20602177 = sqrt(r20602171);
double r20602178 = cbrt(r20602177);
double r20602179 = log(r20602178);
double r20602180 = r20602179 * r20602165;
double r20602181 = r20602176 - r20602180;
double r20602182 = log(r20602177);
double r20602183 = r20602165 * r20602182;
double r20602184 = r20602181 - r20602183;
double r20602185 = b;
double r20602186 = a;
double r20602187 = 0.5;
double r20602188 = r20602186 - r20602187;
double r20602189 = r20602185 * r20602188;
double r20602190 = r20602184 + r20602189;
return r20602190;
}




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.3 |
| Herbie | 0.1 |
Initial program 0.1
rmApplied add-sqr-sqrt0.1
Applied log-prod0.1
Applied distribute-lft-in0.1
Applied associate--r+0.1
rmApplied add-cube-cbrt0.1
Applied log-prod0.1
Applied distribute-rgt-in0.1
Applied associate--r+0.1
Simplified0.1
Taylor expanded around 0 0.1
Final simplification0.1
herbie shell --seed 2019163
(FPCore (x y z t a b)
:name "Numeric.SpecFunctions:logBeta from math-functions-0.1.5.2, A"
: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)))