| Alternative 1 | |
|---|---|
| Accuracy | 8.1% |
| Cost | 26432 |
\[\frac{\pi}{2} + 2 \cdot \left(\cos^{-1} \left(\sqrt{0.5 - 0.5 \cdot x}\right) - 0.5 \cdot \pi\right)
\]
(FPCore (x) :precision binary64 (- (/ PI 2.0) (* 2.0 (asin (sqrt (/ (- 1.0 x) 2.0))))))
(FPCore (x) :precision binary64 (cbrt (pow (+ (* 0.5 PI) (* -2.0 (- (* 0.5 PI) (acos (sqrt (fma x -0.5 0.5)))))) 3.0)))
double code(double x) {
return (((double) M_PI) / 2.0) - (2.0 * asin(sqrt(((1.0 - x) / 2.0))));
}
double code(double x) {
return cbrt(pow(((0.5 * ((double) M_PI)) + (-2.0 * ((0.5 * ((double) M_PI)) - acos(sqrt(fma(x, -0.5, 0.5)))))), 3.0));
}
function code(x) return Float64(Float64(pi / 2.0) - Float64(2.0 * asin(sqrt(Float64(Float64(1.0 - x) / 2.0))))) end
function code(x) return cbrt((Float64(Float64(0.5 * pi) + Float64(-2.0 * Float64(Float64(0.5 * pi) - acos(sqrt(fma(x, -0.5, 0.5)))))) ^ 3.0)) end
code[x_] := N[(N[(Pi / 2.0), $MachinePrecision] - N[(2.0 * N[ArcSin[N[Sqrt[N[(N[(1.0 - x), $MachinePrecision] / 2.0), $MachinePrecision]], $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
code[x_] := N[Power[N[Power[N[(N[(0.5 * Pi), $MachinePrecision] + N[(-2.0 * N[(N[(0.5 * Pi), $MachinePrecision] - N[ArcCos[N[Sqrt[N[(x * -0.5 + 0.5), $MachinePrecision]], $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 3.0], $MachinePrecision], 1/3], $MachinePrecision]
\frac{\pi}{2} - 2 \cdot \sin^{-1} \left(\sqrt{\frac{1 - x}{2}}\right)
\sqrt[3]{{\left(0.5 \cdot \pi + -2 \cdot \left(0.5 \cdot \pi - \cos^{-1} \left(\sqrt{\mathsf{fma}\left(x, -0.5, 0.5\right)}\right)\right)\right)}^{3}}
| Original | 6.6% |
|---|---|
| Target | 100.0% |
| Herbie | 8.1% |
Initial program 6.1%
Applied egg-rr6.1%
[Start]6.1 | \[ \frac{\pi}{2} - 2 \cdot \sin^{-1} \left(\sqrt{\frac{1 - x}{2}}\right)
\] |
|---|---|
add-cbrt-cube [=>]6.1 | \[ \color{blue}{\sqrt[3]{\left(\left(\frac{\pi}{2} - 2 \cdot \sin^{-1} \left(\sqrt{\frac{1 - x}{2}}\right)\right) \cdot \left(\frac{\pi}{2} - 2 \cdot \sin^{-1} \left(\sqrt{\frac{1 - x}{2}}\right)\right)\right) \cdot \left(\frac{\pi}{2} - 2 \cdot \sin^{-1} \left(\sqrt{\frac{1 - x}{2}}\right)\right)}}
\] |
pow3 [=>]6.1 | \[ \sqrt[3]{\color{blue}{{\left(\frac{\pi}{2} - 2 \cdot \sin^{-1} \left(\sqrt{\frac{1 - x}{2}}\right)\right)}^{3}}}
\] |
Applied egg-rr7.8%
[Start]6.1 | \[ \sqrt[3]{{\left(\mathsf{fma}\left(\sin^{-1} \left(\sqrt{0.5 - x \cdot 0.5}\right), -2, \pi \cdot 0.5\right)\right)}^{3}}
\] |
|---|---|
asin-acos [=>]7.8 | \[ \sqrt[3]{{\left(\mathsf{fma}\left(\color{blue}{\frac{\pi}{2} - \cos^{-1} \left(\sqrt{0.5 - x \cdot 0.5}\right)}, -2, \pi \cdot 0.5\right)\right)}^{3}}
\] |
div-inv [=>]7.8 | \[ \sqrt[3]{{\left(\mathsf{fma}\left(\color{blue}{\pi \cdot \frac{1}{2}} - \cos^{-1} \left(\sqrt{0.5 - x \cdot 0.5}\right), -2, \pi \cdot 0.5\right)\right)}^{3}}
\] |
metadata-eval [=>]7.8 | \[ \sqrt[3]{{\left(\mathsf{fma}\left(\pi \cdot \color{blue}{0.5} - \cos^{-1} \left(\sqrt{0.5 - x \cdot 0.5}\right), -2, \pi \cdot 0.5\right)\right)}^{3}}
\] |
sub-neg [=>]7.8 | \[ \sqrt[3]{{\left(\mathsf{fma}\left(\pi \cdot 0.5 - \cos^{-1} \left(\sqrt{\color{blue}{0.5 + \left(-x \cdot 0.5\right)}}\right), -2, \pi \cdot 0.5\right)\right)}^{3}}
\] |
+-commutative [=>]7.8 | \[ \sqrt[3]{{\left(\mathsf{fma}\left(\pi \cdot 0.5 - \cos^{-1} \left(\sqrt{\color{blue}{\left(-x \cdot 0.5\right) + 0.5}}\right), -2, \pi \cdot 0.5\right)\right)}^{3}}
\] |
distribute-rgt-neg-in [=>]7.8 | \[ \sqrt[3]{{\left(\mathsf{fma}\left(\pi \cdot 0.5 - \cos^{-1} \left(\sqrt{\color{blue}{x \cdot \left(-0.5\right)} + 0.5}\right), -2, \pi \cdot 0.5\right)\right)}^{3}}
\] |
metadata-eval [=>]7.8 | \[ \sqrt[3]{{\left(\mathsf{fma}\left(\pi \cdot 0.5 - \cos^{-1} \left(\sqrt{x \cdot \color{blue}{-0.5} + 0.5}\right), -2, \pi \cdot 0.5\right)\right)}^{3}}
\] |
metadata-eval [<=]7.8 | \[ \sqrt[3]{{\left(\mathsf{fma}\left(\pi \cdot 0.5 - \cos^{-1} \left(\sqrt{x \cdot \color{blue}{\frac{1}{-2}} + 0.5}\right), -2, \pi \cdot 0.5\right)\right)}^{3}}
\] |
metadata-eval [<=]7.8 | \[ \sqrt[3]{{\left(\mathsf{fma}\left(\pi \cdot 0.5 - \cos^{-1} \left(\sqrt{x \cdot \frac{1}{\color{blue}{-2}} + 0.5}\right), -2, \pi \cdot 0.5\right)\right)}^{3}}
\] |
fma-def [=>]7.8 | \[ \sqrt[3]{{\left(\mathsf{fma}\left(\pi \cdot 0.5 - \cos^{-1} \left(\sqrt{\color{blue}{\mathsf{fma}\left(x, \frac{1}{-2}, 0.5\right)}}\right), -2, \pi \cdot 0.5\right)\right)}^{3}}
\] |
metadata-eval [=>]7.8 | \[ \sqrt[3]{{\left(\mathsf{fma}\left(\pi \cdot 0.5 - \cos^{-1} \left(\sqrt{\mathsf{fma}\left(x, \frac{1}{\color{blue}{-2}}, 0.5\right)}\right), -2, \pi \cdot 0.5\right)\right)}^{3}}
\] |
metadata-eval [=>]7.8 | \[ \sqrt[3]{{\left(\mathsf{fma}\left(\pi \cdot 0.5 - \cos^{-1} \left(\sqrt{\mathsf{fma}\left(x, \color{blue}{-0.5}, 0.5\right)}\right), -2, \pi \cdot 0.5\right)\right)}^{3}}
\] |
Taylor expanded in x around 0 7.8%
Final simplification7.8%
| Alternative 1 | |
|---|---|
| Accuracy | 8.1% |
| Cost | 26432 |
| Alternative 2 | |
|---|---|
| Accuracy | 6.6% |
| Cost | 19840 |
herbie shell --seed 2023157
(FPCore (x)
:name "Ian Simplification"
:precision binary64
:herbie-target
(asin x)
(- (/ PI 2.0) (* 2.0 (asin (sqrt (/ (- 1.0 x) 2.0))))))