\frac{\tan \left(\frac{x}{y \cdot 2}\right)}{\sin \left(\frac{x}{y \cdot 2}\right)}\begin{array}{l}
\mathbf{if}\;\frac{\tan \left(\frac{x}{y \cdot 2}\right)}{\sin \left(\frac{x}{y \cdot 2}\right)} \le 3.52662206173374803697129209467675536871:\\
\;\;\;\;\left(\sqrt[3]{\frac{\tan \left(\frac{x}{y \cdot 2}\right)}{\sin \left(\frac{x}{y \cdot 2}\right)}} \cdot \sqrt[3]{\frac{\tan \left(\frac{x}{y \cdot 2}\right)}{\sin \left(\frac{x}{y \cdot 2}\right)}}\right) \cdot \sqrt[3]{\frac{\tan \left(\frac{x}{y \cdot 2}\right)}{\sin \left(\frac{x}{y \cdot 2}\right)}}\\
\mathbf{else}:\\
\;\;\;\;1\\
\end{array}double f(double x, double y) {
double r432094 = x;
double r432095 = y;
double r432096 = 2.0;
double r432097 = r432095 * r432096;
double r432098 = r432094 / r432097;
double r432099 = tan(r432098);
double r432100 = sin(r432098);
double r432101 = r432099 / r432100;
return r432101;
}
double f(double x, double y) {
double r432102 = x;
double r432103 = y;
double r432104 = 2.0;
double r432105 = r432103 * r432104;
double r432106 = r432102 / r432105;
double r432107 = tan(r432106);
double r432108 = sin(r432106);
double r432109 = r432107 / r432108;
double r432110 = 3.526622061733748;
bool r432111 = r432109 <= r432110;
double r432112 = cbrt(r432109);
double r432113 = r432112 * r432112;
double r432114 = r432113 * r432112;
double r432115 = 1.0;
double r432116 = r432111 ? r432114 : r432115;
return r432116;
}




Bits error versus x




Bits error versus y
Results
| Original | 36.1 |
|---|---|
| Target | 29.2 |
| Herbie | 27.9 |
if (/ (tan (/ x (* y 2.0))) (sin (/ x (* y 2.0)))) < 3.526622061733748Initial program 26.0
rmApplied add-cube-cbrt26.0
if 3.526622061733748 < (/ (tan (/ x (* y 2.0))) (sin (/ x (* y 2.0)))) Initial program 63.0
Taylor expanded around 0 33.0
Final simplification27.9
herbie shell --seed 2019297
(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)))))