\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 31.94683024742445454080552735831588506699:\\
\;\;\;\;\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 r700783 = x;
double r700784 = y;
double r700785 = 2.0;
double r700786 = r700784 * r700785;
double r700787 = r700783 / r700786;
double r700788 = tan(r700787);
double r700789 = sin(r700787);
double r700790 = r700788 / r700789;
return r700790;
}
double f(double x, double y) {
double r700791 = x;
double r700792 = y;
double r700793 = 2.0;
double r700794 = r700792 * r700793;
double r700795 = r700791 / r700794;
double r700796 = tan(r700795);
double r700797 = sin(r700795);
double r700798 = r700796 / r700797;
double r700799 = 31.946830247424455;
bool r700800 = r700798 <= r700799;
double r700801 = cbrt(r700798);
double r700802 = r700801 * r700801;
double r700803 = r700802 * r700801;
double r700804 = 1.0;
double r700805 = r700800 ? r700803 : r700804;
return r700805;
}




Bits error versus x




Bits error versus y
Results
| Original | 35.5 |
|---|---|
| Target | 28.7 |
| Herbie | 27.3 |
if (/ (tan (/ x (* y 2.0))) (sin (/ x (* y 2.0)))) < 31.946830247424455Initial program 26.5
rmApplied add-cube-cbrt26.6
if 31.946830247424455 < (/ (tan (/ x (* y 2.0))) (sin (/ x (* y 2.0)))) Initial program 63.9
Taylor expanded around 0 29.8
Final simplification27.3
herbie shell --seed 2019354
(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)))))