(FPCore (x y) :precision binary64 (/ (tan (/ x (* y 2.0))) (sin (/ x (* y 2.0)))))
(FPCore (x y) :precision binary64 (pow (cbrt (/ 1.0 (cos (* (/ 0.5 y) x)))) 3.0))
double code(double x, double y) {
return tan((x / (y * 2.0))) / sin((x / (y * 2.0)));
}
double code(double x, double y) {
return pow(cbrt((1.0 / cos(((0.5 / y) * x)))), 3.0);
}
public static double code(double x, double y) {
return Math.tan((x / (y * 2.0))) / Math.sin((x / (y * 2.0)));
}
public static double code(double x, double y) {
return Math.pow(Math.cbrt((1.0 / Math.cos(((0.5 / y) * x)))), 3.0);
}
function code(x, y) return Float64(tan(Float64(x / Float64(y * 2.0))) / sin(Float64(x / Float64(y * 2.0)))) end
function code(x, y) return cbrt(Float64(1.0 / cos(Float64(Float64(0.5 / y) * x)))) ^ 3.0 end
code[x_, y_] := N[(N[Tan[N[(x / N[(y * 2.0), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / N[Sin[N[(x / N[(y * 2.0), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]
code[x_, y_] := N[Power[N[Power[N[(1.0 / N[Cos[N[(N[(0.5 / y), $MachinePrecision] * x), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], 1/3], $MachinePrecision], 3.0], $MachinePrecision]
\frac{\tan \left(\frac{x}{y \cdot 2}\right)}{\sin \left(\frac{x}{y \cdot 2}\right)}
{\left(\sqrt[3]{\frac{1}{\cos \left(\frac{0.5}{y} \cdot x\right)}}\right)}^{3}




Bits error versus x




Bits error versus y
Results
| Original | 36.1 |
|---|---|
| Target | 29.3 |
| Herbie | 28.9 |
Initial program 36.1
Applied egg-rr36.1
Taylor expanded in x around inf 29.0
Taylor expanded in x around inf 30.6
Simplified28.9
Final simplification28.9
herbie shell --seed 2022162
(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.0 (if (< y -9.102852406811914e-222) (/ (sin (/ x (* y 2.0))) (* (sin (/ x (* y 2.0))) (log (exp (cos (/ x (* y 2.0))))))) 1.0))
(/ (tan (/ x (* y 2.0))) (sin (/ x (* y 2.0)))))