Average Error: 59.7 → 57.5
Time: 10.8s
Precision: binary64
Cost: 91392
\[0 \leq x \land x \leq 0.5\]
\[\cos^{-1} \left(1 - x\right) \]
\[\begin{array}{l} t_0 := \sin^{-1} \left(1 - x\right)\\ \frac{\mathsf{fma}\left({\pi}^{2}, {\pi}^{2} \cdot 0.0625, -{t_0}^{4}\right)}{\frac{\mathsf{fma}\left({\pi}^{2}, 0.25, {t_0}^{2}\right)}{\frac{1}{2 \cdot t_0 + \cos^{-1} \left(1 - x\right)}}} \end{array} \]
(FPCore (x) :precision binary64 (acos (- 1.0 x)))
(FPCore (x)
 :precision binary64
 (let* ((t_0 (asin (- 1.0 x))))
   (/
    (fma (pow PI 2.0) (* (pow PI 2.0) 0.0625) (- (pow t_0 4.0)))
    (/
     (fma (pow PI 2.0) 0.25 (pow t_0 2.0))
     (/ 1.0 (+ (* 2.0 t_0) (acos (- 1.0 x))))))))
double code(double x) {
	return acos((1.0 - x));
}
double code(double x) {
	double t_0 = asin((1.0 - x));
	return fma(pow(((double) M_PI), 2.0), (pow(((double) M_PI), 2.0) * 0.0625), -pow(t_0, 4.0)) / (fma(pow(((double) M_PI), 2.0), 0.25, pow(t_0, 2.0)) / (1.0 / ((2.0 * t_0) + acos((1.0 - x)))));
}
function code(x)
	return acos(Float64(1.0 - x))
end
function code(x)
	t_0 = asin(Float64(1.0 - x))
	return Float64(fma((pi ^ 2.0), Float64((pi ^ 2.0) * 0.0625), Float64(-(t_0 ^ 4.0))) / Float64(fma((pi ^ 2.0), 0.25, (t_0 ^ 2.0)) / Float64(1.0 / Float64(Float64(2.0 * t_0) + acos(Float64(1.0 - x))))))
end
code[x_] := N[ArcCos[N[(1.0 - x), $MachinePrecision]], $MachinePrecision]
code[x_] := Block[{t$95$0 = N[ArcSin[N[(1.0 - x), $MachinePrecision]], $MachinePrecision]}, N[(N[(N[Power[Pi, 2.0], $MachinePrecision] * N[(N[Power[Pi, 2.0], $MachinePrecision] * 0.0625), $MachinePrecision] + (-N[Power[t$95$0, 4.0], $MachinePrecision])), $MachinePrecision] / N[(N[(N[Power[Pi, 2.0], $MachinePrecision] * 0.25 + N[Power[t$95$0, 2.0], $MachinePrecision]), $MachinePrecision] / N[(1.0 / N[(N[(2.0 * t$95$0), $MachinePrecision] + N[ArcCos[N[(1.0 - x), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\cos^{-1} \left(1 - x\right)
\begin{array}{l}
t_0 := \sin^{-1} \left(1 - x\right)\\
\frac{\mathsf{fma}\left({\pi}^{2}, {\pi}^{2} \cdot 0.0625, -{t_0}^{4}\right)}{\frac{\mathsf{fma}\left({\pi}^{2}, 0.25, {t_0}^{2}\right)}{\frac{1}{2 \cdot t_0 + \cos^{-1} \left(1 - x\right)}}}
\end{array}

Error

Target

Original59.7
Target0.0
Herbie57.5
\[2 \cdot \sin^{-1} \left(\sqrt{\frac{x}{2}}\right) \]

Derivation

  1. Initial program 59.7

    \[\cos^{-1} \left(1 - x\right) \]
  2. Applied egg-rr59.7

    \[\leadsto \color{blue}{\frac{\left(\pi \cdot 0.5\right) \cdot \left(\pi \cdot 0.5\right) - \sin^{-1} \left(1 - x\right) \cdot \sin^{-1} \left(1 - x\right)}{\pi \cdot 0.5 + \sin^{-1} \left(1 - x\right)}} \]
  3. Applied egg-rr57.6

    \[\leadsto \color{blue}{\pi \cdot 0.5 + \left(\left(-\sin^{-1} \left(1 - x\right)\right) + \mathsf{fma}\left(-\sqrt[3]{\sin^{-1} \left(1 - x\right)}, {\left(\sqrt[3]{\sin^{-1} \left(1 - x\right)}\right)}^{2}, \sin^{-1} \left(1 - x\right)\right)\right)} \]
  4. Applied egg-rr59.7

    \[\leadsto \color{blue}{\frac{\left(\left({\pi}^{2} \cdot 0.25\right) \cdot \left({\pi}^{2} \cdot 0.25\right) - {\left(\left(\sin^{-1} \left(1 - x\right) - \cos^{-1} \left(1 - x\right)\right) + \cos^{-1} \left(1 - x\right)\right)}^{2} \cdot {\left(\left(\sin^{-1} \left(1 - x\right) - \cos^{-1} \left(1 - x\right)\right) + \cos^{-1} \left(1 - x\right)\right)}^{2}\right) \cdot \frac{1}{\sin^{-1} \left(1 - x\right) + \left(\sin^{-1} \left(1 - x\right) + \cos^{-1} \left(1 - x\right)\right)}}{{\pi}^{2} \cdot 0.25 + {\left(\left(\sin^{-1} \left(1 - x\right) - \cos^{-1} \left(1 - x\right)\right) + \cos^{-1} \left(1 - x\right)\right)}^{2}}} \]
  5. Simplified57.5

    \[\leadsto \color{blue}{\frac{\left({\pi}^{2} \cdot {\pi}^{2}\right) \cdot 0.0625 - {\sin^{-1} \left(1 - x\right)}^{4}}{\frac{\mathsf{fma}\left({\pi}^{2}, 0.25, {\sin^{-1} \left(1 - x\right)}^{2}\right)}{\frac{1}{2 \cdot \sin^{-1} \left(1 - x\right) + \cos^{-1} \left(1 - x\right)}}}} \]
    Proof

    [Start]59.7

    \[ \frac{\left(\left({\pi}^{2} \cdot 0.25\right) \cdot \left({\pi}^{2} \cdot 0.25\right) - {\left(\left(\sin^{-1} \left(1 - x\right) - \cos^{-1} \left(1 - x\right)\right) + \cos^{-1} \left(1 - x\right)\right)}^{2} \cdot {\left(\left(\sin^{-1} \left(1 - x\right) - \cos^{-1} \left(1 - x\right)\right) + \cos^{-1} \left(1 - x\right)\right)}^{2}\right) \cdot \frac{1}{\sin^{-1} \left(1 - x\right) + \left(\sin^{-1} \left(1 - x\right) + \cos^{-1} \left(1 - x\right)\right)}}{{\pi}^{2} \cdot 0.25 + {\left(\left(\sin^{-1} \left(1 - x\right) - \cos^{-1} \left(1 - x\right)\right) + \cos^{-1} \left(1 - x\right)\right)}^{2}} \]

    associate-/l* [=>]59.7

    \[ \color{blue}{\frac{\left({\pi}^{2} \cdot 0.25\right) \cdot \left({\pi}^{2} \cdot 0.25\right) - {\left(\left(\sin^{-1} \left(1 - x\right) - \cos^{-1} \left(1 - x\right)\right) + \cos^{-1} \left(1 - x\right)\right)}^{2} \cdot {\left(\left(\sin^{-1} \left(1 - x\right) - \cos^{-1} \left(1 - x\right)\right) + \cos^{-1} \left(1 - x\right)\right)}^{2}}{\frac{{\pi}^{2} \cdot 0.25 + {\left(\left(\sin^{-1} \left(1 - x\right) - \cos^{-1} \left(1 - x\right)\right) + \cos^{-1} \left(1 - x\right)\right)}^{2}}{\frac{1}{\sin^{-1} \left(1 - x\right) + \left(\sin^{-1} \left(1 - x\right) + \cos^{-1} \left(1 - x\right)\right)}}}} \]

    swap-sqr [=>]59.7

    \[ \frac{\color{blue}{\left({\pi}^{2} \cdot {\pi}^{2}\right) \cdot \left(0.25 \cdot 0.25\right)} - {\left(\left(\sin^{-1} \left(1 - x\right) - \cos^{-1} \left(1 - x\right)\right) + \cos^{-1} \left(1 - x\right)\right)}^{2} \cdot {\left(\left(\sin^{-1} \left(1 - x\right) - \cos^{-1} \left(1 - x\right)\right) + \cos^{-1} \left(1 - x\right)\right)}^{2}}{\frac{{\pi}^{2} \cdot 0.25 + {\left(\left(\sin^{-1} \left(1 - x\right) - \cos^{-1} \left(1 - x\right)\right) + \cos^{-1} \left(1 - x\right)\right)}^{2}}{\frac{1}{\sin^{-1} \left(1 - x\right) + \left(\sin^{-1} \left(1 - x\right) + \cos^{-1} \left(1 - x\right)\right)}}} \]

    metadata-eval [=>]59.7

    \[ \frac{\left({\pi}^{2} \cdot {\pi}^{2}\right) \cdot \color{blue}{0.0625} - {\left(\left(\sin^{-1} \left(1 - x\right) - \cos^{-1} \left(1 - x\right)\right) + \cos^{-1} \left(1 - x\right)\right)}^{2} \cdot {\left(\left(\sin^{-1} \left(1 - x\right) - \cos^{-1} \left(1 - x\right)\right) + \cos^{-1} \left(1 - x\right)\right)}^{2}}{\frac{{\pi}^{2} \cdot 0.25 + {\left(\left(\sin^{-1} \left(1 - x\right) - \cos^{-1} \left(1 - x\right)\right) + \cos^{-1} \left(1 - x\right)\right)}^{2}}{\frac{1}{\sin^{-1} \left(1 - x\right) + \left(\sin^{-1} \left(1 - x\right) + \cos^{-1} \left(1 - x\right)\right)}}} \]

    pow-sqr [=>]57.5

    \[ \frac{\left({\pi}^{2} \cdot {\pi}^{2}\right) \cdot 0.0625 - \color{blue}{{\left(\left(\sin^{-1} \left(1 - x\right) - \cos^{-1} \left(1 - x\right)\right) + \cos^{-1} \left(1 - x\right)\right)}^{\left(2 \cdot 2\right)}}}{\frac{{\pi}^{2} \cdot 0.25 + {\left(\left(\sin^{-1} \left(1 - x\right) - \cos^{-1} \left(1 - x\right)\right) + \cos^{-1} \left(1 - x\right)\right)}^{2}}{\frac{1}{\sin^{-1} \left(1 - x\right) + \left(\sin^{-1} \left(1 - x\right) + \cos^{-1} \left(1 - x\right)\right)}}} \]

    associate-+l- [=>]57.5

    \[ \frac{\left({\pi}^{2} \cdot {\pi}^{2}\right) \cdot 0.0625 - {\color{blue}{\left(\sin^{-1} \left(1 - x\right) - \left(\cos^{-1} \left(1 - x\right) - \cos^{-1} \left(1 - x\right)\right)\right)}}^{\left(2 \cdot 2\right)}}{\frac{{\pi}^{2} \cdot 0.25 + {\left(\left(\sin^{-1} \left(1 - x\right) - \cos^{-1} \left(1 - x\right)\right) + \cos^{-1} \left(1 - x\right)\right)}^{2}}{\frac{1}{\sin^{-1} \left(1 - x\right) + \left(\sin^{-1} \left(1 - x\right) + \cos^{-1} \left(1 - x\right)\right)}}} \]

    +-inverses [=>]57.5

    \[ \frac{\left({\pi}^{2} \cdot {\pi}^{2}\right) \cdot 0.0625 - {\left(\sin^{-1} \left(1 - x\right) - \color{blue}{0}\right)}^{\left(2 \cdot 2\right)}}{\frac{{\pi}^{2} \cdot 0.25 + {\left(\left(\sin^{-1} \left(1 - x\right) - \cos^{-1} \left(1 - x\right)\right) + \cos^{-1} \left(1 - x\right)\right)}^{2}}{\frac{1}{\sin^{-1} \left(1 - x\right) + \left(\sin^{-1} \left(1 - x\right) + \cos^{-1} \left(1 - x\right)\right)}}} \]

    --rgt-identity [=>]57.5

    \[ \frac{\left({\pi}^{2} \cdot {\pi}^{2}\right) \cdot 0.0625 - {\color{blue}{\sin^{-1} \left(1 - x\right)}}^{\left(2 \cdot 2\right)}}{\frac{{\pi}^{2} \cdot 0.25 + {\left(\left(\sin^{-1} \left(1 - x\right) - \cos^{-1} \left(1 - x\right)\right) + \cos^{-1} \left(1 - x\right)\right)}^{2}}{\frac{1}{\sin^{-1} \left(1 - x\right) + \left(\sin^{-1} \left(1 - x\right) + \cos^{-1} \left(1 - x\right)\right)}}} \]

    metadata-eval [=>]57.5

    \[ \frac{\left({\pi}^{2} \cdot {\pi}^{2}\right) \cdot 0.0625 - {\sin^{-1} \left(1 - x\right)}^{\color{blue}{4}}}{\frac{{\pi}^{2} \cdot 0.25 + {\left(\left(\sin^{-1} \left(1 - x\right) - \cos^{-1} \left(1 - x\right)\right) + \cos^{-1} \left(1 - x\right)\right)}^{2}}{\frac{1}{\sin^{-1} \left(1 - x\right) + \left(\sin^{-1} \left(1 - x\right) + \cos^{-1} \left(1 - x\right)\right)}}} \]

    fma-def [=>]57.5

    \[ \frac{\left({\pi}^{2} \cdot {\pi}^{2}\right) \cdot 0.0625 - {\sin^{-1} \left(1 - x\right)}^{4}}{\frac{\color{blue}{\mathsf{fma}\left({\pi}^{2}, 0.25, {\left(\left(\sin^{-1} \left(1 - x\right) - \cos^{-1} \left(1 - x\right)\right) + \cos^{-1} \left(1 - x\right)\right)}^{2}\right)}}{\frac{1}{\sin^{-1} \left(1 - x\right) + \left(\sin^{-1} \left(1 - x\right) + \cos^{-1} \left(1 - x\right)\right)}}} \]

    associate-+l- [=>]57.5

    \[ \frac{\left({\pi}^{2} \cdot {\pi}^{2}\right) \cdot 0.0625 - {\sin^{-1} \left(1 - x\right)}^{4}}{\frac{\mathsf{fma}\left({\pi}^{2}, 0.25, {\color{blue}{\left(\sin^{-1} \left(1 - x\right) - \left(\cos^{-1} \left(1 - x\right) - \cos^{-1} \left(1 - x\right)\right)\right)}}^{2}\right)}{\frac{1}{\sin^{-1} \left(1 - x\right) + \left(\sin^{-1} \left(1 - x\right) + \cos^{-1} \left(1 - x\right)\right)}}} \]

    +-inverses [=>]57.5

    \[ \frac{\left({\pi}^{2} \cdot {\pi}^{2}\right) \cdot 0.0625 - {\sin^{-1} \left(1 - x\right)}^{4}}{\frac{\mathsf{fma}\left({\pi}^{2}, 0.25, {\left(\sin^{-1} \left(1 - x\right) - \color{blue}{0}\right)}^{2}\right)}{\frac{1}{\sin^{-1} \left(1 - x\right) + \left(\sin^{-1} \left(1 - x\right) + \cos^{-1} \left(1 - x\right)\right)}}} \]

    --rgt-identity [=>]57.5

    \[ \frac{\left({\pi}^{2} \cdot {\pi}^{2}\right) \cdot 0.0625 - {\sin^{-1} \left(1 - x\right)}^{4}}{\frac{\mathsf{fma}\left({\pi}^{2}, 0.25, {\color{blue}{\sin^{-1} \left(1 - x\right)}}^{2}\right)}{\frac{1}{\sin^{-1} \left(1 - x\right) + \left(\sin^{-1} \left(1 - x\right) + \cos^{-1} \left(1 - x\right)\right)}}} \]

    associate-+r+ [=>]57.5

    \[ \frac{\left({\pi}^{2} \cdot {\pi}^{2}\right) \cdot 0.0625 - {\sin^{-1} \left(1 - x\right)}^{4}}{\frac{\mathsf{fma}\left({\pi}^{2}, 0.25, {\sin^{-1} \left(1 - x\right)}^{2}\right)}{\frac{1}{\color{blue}{\left(\sin^{-1} \left(1 - x\right) + \sin^{-1} \left(1 - x\right)\right) + \cos^{-1} \left(1 - x\right)}}}} \]

    count-2 [=>]57.5

    \[ \frac{\left({\pi}^{2} \cdot {\pi}^{2}\right) \cdot 0.0625 - {\sin^{-1} \left(1 - x\right)}^{4}}{\frac{\mathsf{fma}\left({\pi}^{2}, 0.25, {\sin^{-1} \left(1 - x\right)}^{2}\right)}{\frac{1}{\color{blue}{2 \cdot \sin^{-1} \left(1 - x\right)} + \cos^{-1} \left(1 - x\right)}}} \]
  6. Applied egg-rr57.5

    \[\leadsto \frac{\color{blue}{\mathsf{fma}\left({\pi}^{2}, {\pi}^{2} \cdot 0.0625, -{\sin^{-1} \left(1 - x\right)}^{4}\right)}}{\frac{\mathsf{fma}\left({\pi}^{2}, 0.25, {\sin^{-1} \left(1 - x\right)}^{2}\right)}{\frac{1}{2 \cdot \sin^{-1} \left(1 - x\right) + \cos^{-1} \left(1 - x\right)}}} \]
  7. Final simplification57.5

    \[\leadsto \frac{\mathsf{fma}\left({\pi}^{2}, {\pi}^{2} \cdot 0.0625, -{\sin^{-1} \left(1 - x\right)}^{4}\right)}{\frac{\mathsf{fma}\left({\pi}^{2}, 0.25, {\sin^{-1} \left(1 - x\right)}^{2}\right)}{\frac{1}{2 \cdot \sin^{-1} \left(1 - x\right) + \cos^{-1} \left(1 - x\right)}}} \]

Alternatives

Alternative 1
Error57.5
Cost85056
\[\begin{array}{l} t_0 := \sin^{-1} \left(1 - x\right)\\ \frac{0.0625 \cdot \left({\pi}^{2} \cdot {\pi}^{2}\right) - {t_0}^{4}}{\frac{\mathsf{fma}\left({\pi}^{2}, 0.25, {t_0}^{2}\right)}{\frac{1}{2 \cdot t_0 + \cos^{-1} \left(1 - x\right)}}} \end{array} \]
Alternative 2
Error57.5
Cost78336
\[\begin{array}{l} t_0 := \sin^{-1} \left(1 - x\right)\\ \frac{0.0625 \cdot \left({\pi}^{2} \cdot {\pi}^{2}\right) - {t_0}^{4}}{\left(\pi - \cos^{-1} \left(1 - x\right)\right) \cdot \left({t_0}^{2} + {\pi}^{2} \cdot 0.25\right)} \end{array} \]
Alternative 3
Error57.5
Cost78144
\[\begin{array}{l} t_0 := \sin^{-1} \left(1 - x\right)\\ \frac{{\pi}^{3} \cdot 0.125 - \mathsf{expm1}\left(\mathsf{log1p}\left({t_0}^{3}\right)\right)}{0.25 \cdot \left(\pi \cdot \pi\right) + t_0 \cdot \mathsf{fma}\left(\pi, 0.5, t_0\right)} \end{array} \]
Alternative 4
Error57.5
Cost71552
\[\begin{array}{l} t_0 := \sin^{-1} \left(1 - x\right)\\ \frac{\mathsf{fma}\left(\sqrt[3]{{\left(\pi \cdot 0.5\right)}^{4}}, \sqrt[3]{{\pi}^{2} \cdot 0.25}, -{t_0}^{2}\right)}{t_0 + \pi \cdot 0.5} \end{array} \]
Alternative 5
Error57.6
Cost52288
\[\begin{array}{l} t_0 := \sin^{-1} \left(1 - x\right)\\ t_1 := \sqrt[3]{t_0}\\ \cos^{-1} \left(1 - x\right) + 2 \cdot \mathsf{fma}\left(-t_1, {t_1}^{2}, t_0\right) \end{array} \]
Alternative 6
Error57.6
Cost52160
\[\begin{array}{l} t_0 := \sin^{-1} \left(1 - x\right)\\ t_1 := \sqrt[3]{t_0}\\ \cos^{-1} \left(1 - x\right) + \mathsf{fma}\left(-t_1, {t_1}^{2}, t_0\right) \end{array} \]
Alternative 7
Error57.6
Cost39104
\[\begin{array}{l} t_0 := \sqrt[3]{\sin^{-1} \left(1 - x\right)}\\ \pi \cdot 0.5 - t_0 \cdot {t_0}^{2} \end{array} \]
Alternative 8
Error58.1
Cost26884
\[\begin{array}{l} t_0 := \cos^{-1} \left(1 - x\right)\\ \mathbf{if}\;t_0 \leq 0:\\ \;\;\;\;2 \cdot \sin^{-1} \left(1 - x\right) + t_0\\ \mathbf{else}:\\ \;\;\;\;-1 + \left(1 - {t_0}^{2}\right) \cdot \frac{-1}{t_0 + -1}\\ \end{array} \]
Alternative 9
Error57.6
Cost26048
\[\pi \cdot 0.5 - {\left(\sqrt[3]{\sin^{-1} \left(1 - x\right)}\right)}^{3} \]
Alternative 10
Error58.1
Cost20036
\[\begin{array}{l} t_0 := \cos^{-1} \left(1 - x\right)\\ \mathbf{if}\;t_0 \leq 0:\\ \;\;\;\;2 \cdot \sin^{-1} \left(1 - x\right) + t_0\\ \mathbf{else}:\\ \;\;\;\;1 + \left(t_0 + -1\right)\\ \end{array} \]
Alternative 11
Error59.7
Cost6848
\[1 + \left(\cos^{-1} \left(1 - x\right) + -1\right) \]
Alternative 12
Error59.7
Cost6592
\[\cos^{-1} \left(1 - x\right) \]

Error

Reproduce

herbie shell --seed 2022364 
(FPCore (x)
  :name "bug323 (missed optimization)"
  :precision binary64
  :pre (and (<= 0.0 x) (<= x 0.5))

  :herbie-target
  (* 2.0 (asin (sqrt (/ x 2.0))))

  (acos (- 1.0 x)))