\frac{\tan \left(\frac{x}{y \cdot 2}\right)}{\sin \left(\frac{x}{y \cdot 2}\right)}\begin{array}{l}
\mathbf{if}\;\frac{x}{y \cdot 2} \le -0.0:\\
\;\;\;\;1\\
\mathbf{elif}\;\frac{x}{y \cdot 2} \le 5.25966741260588092 \cdot 10^{125}:\\
\;\;\;\;\left(\sqrt[3]{\frac{\frac{\sin \left(\frac{x}{y \cdot 2}\right)}{\cos \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{\frac{\sin \left(\frac{x}{y \cdot 2}\right)}{\cos \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 r522762 = x;
double r522763 = y;
double r522764 = 2.0;
double r522765 = r522763 * r522764;
double r522766 = r522762 / r522765;
double r522767 = tan(r522766);
double r522768 = sin(r522766);
double r522769 = r522767 / r522768;
return r522769;
}
double f(double x, double y) {
double r522770 = x;
double r522771 = y;
double r522772 = 2.0;
double r522773 = r522771 * r522772;
double r522774 = r522770 / r522773;
double r522775 = -0.0;
bool r522776 = r522774 <= r522775;
double r522777 = 1.0;
double r522778 = 5.259667412605881e+125;
bool r522779 = r522774 <= r522778;
double r522780 = sin(r522774);
double r522781 = cos(r522774);
double r522782 = r522780 / r522781;
double r522783 = r522782 / r522780;
double r522784 = cbrt(r522783);
double r522785 = tan(r522774);
double r522786 = r522785 / r522780;
double r522787 = cbrt(r522786);
double r522788 = r522784 * r522787;
double r522789 = r522788 * r522784;
double r522790 = r522779 ? r522789 : r522777;
double r522791 = r522776 ? r522777 : r522790;
return r522791;
}




Bits error versus x




Bits error versus y
Results
| Original | 35.9 |
|---|---|
| Target | 29.1 |
| Herbie | 28.1 |
if (/ x (* y 2.0)) < -0.0 or 5.259667412605881e+125 < (/ x (* y 2.0)) Initial program 43.5
Taylor expanded around 0 32.5
if -0.0 < (/ x (* y 2.0)) < 5.259667412605881e+125Initial program 17.1
rmApplied add-cube-cbrt17.1
rmApplied tan-quot17.1
rmApplied tan-quot17.1
Final simplification28.1
herbie shell --seed 2020062 +o rules:numerics
(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)))))