\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 4.0313566927824009:\\
\;\;\;\;\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 r654501 = x;
double r654502 = y;
double r654503 = 2.0;
double r654504 = r654502 * r654503;
double r654505 = r654501 / r654504;
double r654506 = tan(r654505);
double r654507 = sin(r654505);
double r654508 = r654506 / r654507;
return r654508;
}
double f(double x, double y) {
double r654509 = x;
double r654510 = y;
double r654511 = 2.0;
double r654512 = r654510 * r654511;
double r654513 = r654509 / r654512;
double r654514 = tan(r654513);
double r654515 = sin(r654513);
double r654516 = r654514 / r654515;
double r654517 = 4.031356692782401;
bool r654518 = r654516 <= r654517;
double r654519 = cbrt(r654516);
double r654520 = r654519 * r654519;
double r654521 = r654520 * r654519;
double r654522 = 1.0;
double r654523 = r654518 ? r654521 : r654522;
return r654523;
}




Bits error versus x




Bits error versus y
Results
| Original | 34.8 |
|---|---|
| Target | 28.5 |
| Herbie | 27.1 |
if (/ (tan (/ x (* y 2.0))) (sin (/ x (* y 2.0)))) < 4.031356692782401Initial program 25.0
rmApplied add-cube-cbrt25.0
if 4.031356692782401 < (/ (tan (/ x (* y 2.0))) (sin (/ x (* y 2.0)))) Initial program 63.0
Taylor expanded around 0 33.1
Final simplification27.1
herbie shell --seed 2020024
(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)))))