\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.04266136491719:\\
\;\;\;\;\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 r772811 = x;
double r772812 = y;
double r772813 = 2.0;
double r772814 = r772812 * r772813;
double r772815 = r772811 / r772814;
double r772816 = tan(r772815);
double r772817 = sin(r772815);
double r772818 = r772816 / r772817;
return r772818;
}
double f(double x, double y) {
double r772819 = x;
double r772820 = y;
double r772821 = 2.0;
double r772822 = r772820 * r772821;
double r772823 = r772819 / r772822;
double r772824 = tan(r772823);
double r772825 = sin(r772823);
double r772826 = r772824 / r772825;
double r772827 = 3.042661364917194;
bool r772828 = r772826 <= r772827;
double r772829 = cbrt(r772826);
double r772830 = r772829 * r772829;
double r772831 = r772830 * r772829;
double r772832 = 1.0;
double r772833 = r772828 ? r772831 : r772832;
return r772833;
}




Bits error versus x




Bits error versus y
Results
| Original | 35.9 |
|---|---|
| Target | 28.7 |
| Herbie | 27.4 |
if (/ (tan (/ x (* y 2.0))) (sin (/ x (* y 2.0)))) < 3.042661364917194Initial program 25.4
rmApplied add-cube-cbrt25.4
if 3.042661364917194 < (/ (tan (/ x (* y 2.0))) (sin (/ x (* y 2.0)))) Initial program 63.0
Taylor expanded around 0 32.4
Final simplification27.4
herbie shell --seed 2020060
(FPCore (x y)
:name "Diagrams.TwoD.Layout.CirclePacking:approxRadius from diagrams-contrib-1.3.0.5"
:precision binary64
:herbie-target
(if (< y -1.2303690911306994e+114) 1 (if (< y -9.102852406811914e-222) (/ (sin (/ x (* y 2))) (* (sin (/ x (* y 2))) (log (exp (cos (/ x (* y 2))))))) 1))
(/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))))