\frac{\tan \left(\frac{x}{y \cdot 2}\right)}{\sin \left(\frac{x}{y \cdot 2}\right)}\sqrt[3]{\frac{1}{\log \left(e^{{\left(\cos \left(\frac{x}{y \cdot 2}\right)\right)}^{3}}\right)}}double f(double x, double y) {
double r554410 = x;
double r554411 = y;
double r554412 = 2.0;
double r554413 = r554411 * r554412;
double r554414 = r554410 / r554413;
double r554415 = tan(r554414);
double r554416 = sin(r554414);
double r554417 = r554415 / r554416;
return r554417;
}
double f(double x, double y) {
double r554418 = 1.0;
double r554419 = x;
double r554420 = y;
double r554421 = 2.0;
double r554422 = r554420 * r554421;
double r554423 = r554419 / r554422;
double r554424 = cos(r554423);
double r554425 = 3.0;
double r554426 = pow(r554424, r554425);
double r554427 = exp(r554426);
double r554428 = log(r554427);
double r554429 = r554418 / r554428;
double r554430 = cbrt(r554429);
return r554430;
}




Bits error versus x




Bits error versus y
Results
| Original | 35.7 |
|---|---|
| Target | 29.1 |
| Herbie | 28.6 |
Initial program 35.7
rmApplied tan-quot35.7
Applied associate-/l/35.7
rmApplied add-cbrt-cube35.7
Applied add-cbrt-cube50.5
Applied cbrt-unprod50.5
Applied add-cbrt-cube50.3
Applied cbrt-undiv50.3
Simplified28.6
rmApplied add-log-exp28.6
Final simplification28.6
herbie shell --seed 2019306
(FPCore (x y)
:name "Diagrams.TwoD.Layout.CirclePacking:approxRadius from diagrams-contrib-1.3.0.5"
:precision binary64
:herbie-target
(if (< y -1.23036909113069936e114) 1 (if (< y -9.1028524068119138e-222) (/ (sin (/ x (* y 2))) (* (sin (/ x (* y 2))) (log (exp (cos (/ x (* y 2))))))) 1))
(/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))))