| Alternative 1 | |
|---|---|
| Error | 28.7 |
| Cost | 32576 |
\[\frac{1}{\log \log \left(1 + \mathsf{expm1}\left(e^{\cos \left(0.5 \cdot \frac{x}{y}\right)}\right)\right)}
\]
(FPCore (x y) :precision binary64 (/ (tan (/ x (* y 2.0))) (sin (/ x (* y 2.0)))))
(FPCore (x y)
:precision binary64
(/
1.0
(cos
(*
(pow (cbrt (cbrt x)) 3.0)
(/ (/ 0.5 (pow (cbrt y) 2.0)) (/ (cbrt y) (pow (cbrt x) 2.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 1.0 / cos((pow(cbrt(cbrt(x)), 3.0) * ((0.5 / pow(cbrt(y), 2.0)) / (cbrt(y) / pow(cbrt(x), 2.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 1.0 / Math.cos((Math.pow(Math.cbrt(Math.cbrt(x)), 3.0) * ((0.5 / Math.pow(Math.cbrt(y), 2.0)) / (Math.cbrt(y) / Math.pow(Math.cbrt(x), 2.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 Float64(1.0 / cos(Float64((cbrt(cbrt(x)) ^ 3.0) * Float64(Float64(0.5 / (cbrt(y) ^ 2.0)) / Float64(cbrt(y) / (cbrt(x) ^ 2.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[(1.0 / N[Cos[N[(N[Power[N[Power[N[Power[x, 1/3], $MachinePrecision], 1/3], $MachinePrecision], 3.0], $MachinePrecision] * N[(N[(0.5 / N[Power[N[Power[y, 1/3], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] / N[(N[Power[y, 1/3], $MachinePrecision] / N[Power[N[Power[x, 1/3], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]
\frac{\tan \left(\frac{x}{y \cdot 2}\right)}{\sin \left(\frac{x}{y \cdot 2}\right)}
\frac{1}{\cos \left({\left(\sqrt[3]{\sqrt[3]{x}}\right)}^{3} \cdot \frac{\frac{0.5}{{\left(\sqrt[3]{y}\right)}^{2}}}{\frac{\sqrt[3]{y}}{{\left(\sqrt[3]{x}\right)}^{2}}}\right)}
Results
| Original | 35.4 |
|---|---|
| Target | 29.2 |
| Herbie | 28.8 |
Initial program 35.4
Taylor expanded in x around inf 28.7
Applied egg-rr28.7
Simplified28.7
[Start]28.7 | \[ \frac{1}{\cos \left(\frac{\frac{0.5}{\frac{{\left(\sqrt[3]{y}\right)}^{2}}{{\left(\sqrt[3]{x}\right)}^{2}}}}{\frac{\sqrt[3]{y}}{\sqrt[3]{x}}}\right)}
\] |
|---|---|
associate-/r/ [=>]28.7 | \[ \frac{1}{\cos \color{blue}{\left(\frac{\frac{0.5}{\frac{{\left(\sqrt[3]{y}\right)}^{2}}{{\left(\sqrt[3]{x}\right)}^{2}}}}{\sqrt[3]{y}} \cdot \sqrt[3]{x}\right)}}
\] |
*-commutative [=>]28.7 | \[ \frac{1}{\cos \color{blue}{\left(\sqrt[3]{x} \cdot \frac{\frac{0.5}{\frac{{\left(\sqrt[3]{y}\right)}^{2}}{{\left(\sqrt[3]{x}\right)}^{2}}}}{\sqrt[3]{y}}\right)}}
\] |
associate-/r/ [=>]28.7 | \[ \frac{1}{\cos \left(\sqrt[3]{x} \cdot \frac{\color{blue}{\frac{0.5}{{\left(\sqrt[3]{y}\right)}^{2}} \cdot {\left(\sqrt[3]{x}\right)}^{2}}}{\sqrt[3]{y}}\right)}
\] |
associate-/l* [=>]28.7 | \[ \frac{1}{\cos \left(\sqrt[3]{x} \cdot \color{blue}{\frac{\frac{0.5}{{\left(\sqrt[3]{y}\right)}^{2}}}{\frac{\sqrt[3]{y}}{{\left(\sqrt[3]{x}\right)}^{2}}}}\right)}
\] |
Applied egg-rr28.8
Final simplification28.8
| Alternative 1 | |
|---|---|
| Error | 28.7 |
| Cost | 32576 |
| Alternative 2 | |
|---|---|
| Error | 28.7 |
| Cost | 19648 |
| Alternative 3 | |
|---|---|
| Error | 28.7 |
| Cost | 6848 |
| Alternative 4 | |
|---|---|
| Error | 28.8 |
| Cost | 64 |
herbie shell --seed 2023023
(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)))))