\frac{\tan \left(\frac{x}{y \cdot 2}\right)}{\sin \left(\frac{x}{y \cdot 2}\right)}\sqrt[3]{\frac{1}{\cos \left(\frac{x}{y \cdot 2}\right)}} \cdot \left(\left(\sqrt[3]{\frac{\frac{1}{\sqrt[3]{\cos \left(\frac{x}{y \cdot 2}\right)}}}{\sqrt[3]{\cos \left(\frac{x}{y \cdot 2}\right)}}} \cdot \sqrt[3]{\frac{1}{\cos \left(\frac{x}{y \cdot 2}\right)}}\right) \cdot \sqrt[3]{\frac{1}{\sqrt[3]{\cos \left(\frac{x}{y \cdot 2}\right)}}}\right)double f(double x, double y) {
double r622670 = x;
double r622671 = y;
double r622672 = 2.0;
double r622673 = r622671 * r622672;
double r622674 = r622670 / r622673;
double r622675 = tan(r622674);
double r622676 = sin(r622674);
double r622677 = r622675 / r622676;
return r622677;
}
double f(double x, double y) {
double r622678 = 1.0;
double r622679 = x;
double r622680 = y;
double r622681 = 2.0;
double r622682 = r622680 * r622681;
double r622683 = r622679 / r622682;
double r622684 = cos(r622683);
double r622685 = r622678 / r622684;
double r622686 = cbrt(r622685);
double r622687 = cbrt(r622684);
double r622688 = r622678 / r622687;
double r622689 = r622688 / r622687;
double r622690 = cbrt(r622689);
double r622691 = r622690 * r622686;
double r622692 = cbrt(r622688);
double r622693 = r622691 * r622692;
double r622694 = r622686 * r622693;
return r622694;
}




Bits error versus x




Bits error versus y
Results
| Original | 35.9 |
|---|---|
| Target | 29.1 |
| Herbie | 28.8 |
Initial program 35.9
Simplified35.9
rmApplied tan-quot35.9
Applied associate-/l/35.9
Simplified35.9
rmApplied add-cube-cbrt35.9
Simplified35.9
Simplified28.8
rmApplied add-cube-cbrt28.8
Applied *-un-lft-identity28.8
Applied times-frac28.8
Applied cbrt-prod28.8
Applied associate-*r*28.8
Simplified28.8
Final simplification28.8
herbie shell --seed 2019196 +o rules:numerics
(FPCore (x y)
:name "Diagrams.TwoD.Layout.CirclePacking:approxRadius from diagrams-contrib-1.3.0.5"
:herbie-target
(if (< y -1.2303690911306994e+114) 1.0 (if (< y -9.102852406811914e-222) (/ (sin (/ x (* y 2.0))) (* (sin (/ x (* y 2.0))) (log (exp (cos (/ x (* y 2.0))))))) 1.0))
(/ (tan (/ x (* y 2.0))) (sin (/ x (* y 2.0)))))