Average Error: 38.5 → 15.7
Time: 3.2min
Precision: binary64
Cost: 29378
Math TeX FPCore C \[0.5 \cdot \sqrt{2 \cdot \left(\sqrt{re \cdot re + im \cdot im} - re\right)}\]
↓
\[\begin{array}{l}
\mathbf{if}\;re \leq -1.5530469120283839 \cdot 10^{+31}:\\
\;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(re \cdot -2\right)}\\
\mathbf{elif}\;re \leq -9.763024991212806 \cdot 10^{-91}:\\
\;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(\left(im \cdot im + re \cdot \left(re + \left(re + \sqrt{im \cdot im + re \cdot re}\right)\right)\right) \cdot \frac{\sqrt{im \cdot im + re \cdot re} - re}{im \cdot im + re \cdot \left(re + \left(re + \sqrt{im \cdot im + re \cdot re}\right)\right)}\right)}\\
\mathbf{elif}\;re \leq 4.1097956679905474 \cdot 10^{+119}:\\
\;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(0.5 \cdot \frac{re \cdot re}{im} + \left(im - re\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;0.5 \cdot \left(\left(\sqrt{0.5} \cdot \left(im \cdot \sqrt{2}\right)\right) \cdot \sqrt{\frac{1}{re}}\right)\\
\end{array}\]
0.5 \cdot \sqrt{2 \cdot \left(\sqrt{re \cdot re + im \cdot im} - re\right)} ↓
\begin{array}{l}
\mathbf{if}\;re \leq -1.5530469120283839 \cdot 10^{+31}:\\
\;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(re \cdot -2\right)}\\
\mathbf{elif}\;re \leq -9.763024991212806 \cdot 10^{-91}:\\
\;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(\left(im \cdot im + re \cdot \left(re + \left(re + \sqrt{im \cdot im + re \cdot re}\right)\right)\right) \cdot \frac{\sqrt{im \cdot im + re \cdot re} - re}{im \cdot im + re \cdot \left(re + \left(re + \sqrt{im \cdot im + re \cdot re}\right)\right)}\right)}\\
\mathbf{elif}\;re \leq 4.1097956679905474 \cdot 10^{+119}:\\
\;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(0.5 \cdot \frac{re \cdot re}{im} + \left(im - re\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;0.5 \cdot \left(\left(\sqrt{0.5} \cdot \left(im \cdot \sqrt{2}\right)\right) \cdot \sqrt{\frac{1}{re}}\right)\\
\end{array} (FPCore (re im)
:precision binary64
(* 0.5 (sqrt (* 2.0 (- (sqrt (+ (* re re) (* im im))) re))))) ↓
(FPCore (re im)
:precision binary64
(if (<= re -1.5530469120283839e+31)
(* 0.5 (sqrt (* 2.0 (* re -2.0))))
(if (<= re -9.763024991212806e-91)
(*
0.5
(sqrt
(*
2.0
(*
(+ (* im im) (* re (+ re (+ re (sqrt (+ (* im im) (* re re)))))))
(/
(- (sqrt (+ (* im im) (* re re))) re)
(+
(* im im)
(* re (+ re (+ re (sqrt (+ (* im im) (* re re))))))))))))
(if (<= re 4.1097956679905474e+119)
(* 0.5 (sqrt (* 2.0 (+ (* 0.5 (/ (* re re) im)) (- im re)))))
(* 0.5 (* (* (sqrt 0.5) (* im (sqrt 2.0))) (sqrt (/ 1.0 re)))))))) double code(double re, double im) {
return 0.5 * sqrt(2.0 * (sqrt((re * re) + (im * im)) - re));
}
↓
double code(double re, double im) {
double tmp;
if (re <= -1.5530469120283839e+31) {
tmp = 0.5 * sqrt(2.0 * (re * -2.0));
} else if (re <= -9.763024991212806e-91) {
tmp = 0.5 * sqrt(2.0 * (((im * im) + (re * (re + (re + sqrt((im * im) + (re * re)))))) * ((sqrt((im * im) + (re * re)) - re) / ((im * im) + (re * (re + (re + sqrt((im * im) + (re * re)))))))));
} else if (re <= 4.1097956679905474e+119) {
tmp = 0.5 * sqrt(2.0 * ((0.5 * ((re * re) / im)) + (im - re)));
} else {
tmp = 0.5 * ((sqrt(0.5) * (im * sqrt(2.0))) * sqrt(1.0 / re));
}
return tmp;
}
Try it out Enter valid numbers for all inputs
Alternatives Alternative 1 Error 15.7 Cost 20867
\[\begin{array}{l}
\mathbf{if}\;re \leq -1.5530469120283839 \cdot 10^{+31}:\\
\;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(re \cdot -2\right)}\\
\mathbf{elif}\;re \leq -9.763024991212806 \cdot 10^{-91}:\\
\;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(\sqrt{im \cdot im + re \cdot re} - re\right)}\\
\mathbf{elif}\;re \leq 2.4044662356673948 \cdot 10^{+119}:\\
\;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(0.5 \cdot \frac{re \cdot re}{im} + \left(im - re\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;0.5 \cdot \left(\left(\sqrt{0.5} \cdot \left(im \cdot \sqrt{2}\right)\right) \cdot \sqrt{\frac{1}{re}}\right)\\
\end{array}\]
Alternative 2 Error 15.8 Cost 20867
\[\begin{array}{l}
\mathbf{if}\;re \leq -1.5530469120283839 \cdot 10^{+31}:\\
\;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(re \cdot -2\right)}\\
\mathbf{elif}\;re \leq -9.763024991212806 \cdot 10^{-91}:\\
\;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(\sqrt{im \cdot im + re \cdot re} - re\right)}\\
\mathbf{elif}\;re \leq 1.8654415876206885 \cdot 10^{+121}:\\
\;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(0.5 \cdot \frac{re \cdot re}{im} + \left(im - re\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;0.5 \cdot \left(im \cdot \left(\sqrt{\frac{1}{re}} \cdot \left(\sqrt{0.5} \cdot \sqrt{2}\right)\right)\right)\\
\end{array}\]
Alternative 3 Error 19.1 Cost 14274
\[\begin{array}{l}
\mathbf{if}\;re \leq -1.5530469120283839 \cdot 10^{+31}:\\
\;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(re \cdot -2\right)}\\
\mathbf{elif}\;re \leq -9.763024991212806 \cdot 10^{-91}:\\
\;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(\sqrt{im \cdot im + re \cdot re} - re\right)}\\
\mathbf{elif}\;re \leq 2.4044662356673948 \cdot 10^{+119}:\\
\;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(0.5 \cdot \frac{re \cdot re}{im} + \left(im - re\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(0.5 \cdot \frac{im \cdot im}{re}\right)}\\
\end{array}\]
Alternative 4 Error 21.0 Cost 8002
\[\begin{array}{l}
\mathbf{if}\;re \leq -3.0165856771399735 \cdot 10^{-90}:\\
\;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(re \cdot -2\right)}\\
\mathbf{elif}\;re \leq 1.8148680767354007 \cdot 10^{+121}:\\
\;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(0.5 \cdot \frac{re \cdot re}{im} + \left(im - re\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(0.5 \cdot \frac{im \cdot im}{re}\right)}\\
\end{array}\]
Alternative 5 Error 20.3 Cost 7746
\[\begin{array}{l}
\mathbf{if}\;re \leq -7.63619430887308 \cdot 10^{-21}:\\
\;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(re \cdot -2\right)}\\
\mathbf{elif}\;re \leq 2.4044662356673948 \cdot 10^{+119}:\\
\;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(im - re\right)}\\
\mathbf{else}:\\
\;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(0.5 \cdot \frac{im \cdot im}{re}\right)}\\
\end{array}\]
Alternative 6 Error 23.2 Cost 7490
\[\begin{array}{l}
\mathbf{if}\;re \leq -1.5951665240998073 \cdot 10^{-20}:\\
\;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(re \cdot -2\right)}\\
\mathbf{elif}\;re \leq 3.759282418990992 \cdot 10^{+120}:\\
\;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(im - re\right)}\\
\mathbf{else}:\\
\;\;\;\;0\\
\end{array}\]
Alternative 7 Error 23.7 Cost 7362
\[\begin{array}{l}
\mathbf{if}\;re \leq -1.2835885576867102 \cdot 10^{-90}:\\
\;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(re \cdot -2\right)}\\
\mathbf{elif}\;re \leq 8.840591102330343 \cdot 10^{+260}:\\
\;\;\;\;0.5 \cdot \sqrt{2 \cdot im}\\
\mathbf{else}:\\
\;\;\;\;0\\
\end{array}\]
Alternative 8 Error 30.7 Cost 7041
\[\begin{array}{l}
\mathbf{if}\;re \leq 8.840591102330343 \cdot 10^{+260}:\\
\;\;\;\;0.5 \cdot \sqrt{2 \cdot im}\\
\mathbf{else}:\\
\;\;\;\;0\\
\end{array}\]
Alternative 9 Error 58.2 Cost 385
\[\begin{array}{l}
\mathbf{if}\;im \leq 2.0790521550319519 \cdot 10^{-181}:\\
\;\;\;\;0\\
\mathbf{else}:\\
\;\;\;\;1\\
\end{array}\]
Alternative 10 Error 59.8 Cost 64
\[1\]
Error Time Derivation Split input into 4 regimes if re < -1.55304691202838387e31 Initial program 42.3
\[0.5 \cdot \sqrt{2 \cdot \left(\sqrt{re \cdot re + im \cdot im} - re\right)}\]
Taylor expanded around -inf 13.8
\[\leadsto 0.5 \cdot \sqrt{2 \cdot \color{blue}{\left(-2 \cdot re\right)}}\]
Simplified13.8
\[\leadsto 0.5 \cdot \sqrt{2 \cdot \color{blue}{\left(re \cdot -2\right)}}\]
Simplified13.8
\[\leadsto \color{blue}{0.5 \cdot \sqrt{2 \cdot \left(re \cdot -2\right)}}\]
if -1.55304691202838387e31 < re < -9.7630249912128057e-91 Initial program 16.1
\[0.5 \cdot \sqrt{2 \cdot \left(\sqrt{re \cdot re + im \cdot im} - re\right)}\]
Using strategy rm Applied flip3--_binary64_423 21.9
\[\leadsto 0.5 \cdot \sqrt{2 \cdot \color{blue}{\frac{{\left(\sqrt{re \cdot re + im \cdot im}\right)}^{3} - {re}^{3}}{\sqrt{re \cdot re + im \cdot im} \cdot \sqrt{re \cdot re + im \cdot im} + \left(re \cdot re + \sqrt{re \cdot re + im \cdot im} \cdot re\right)}}}\]
Simplified21.9
\[\leadsto 0.5 \cdot \sqrt{2 \cdot \frac{{\left(\sqrt{re \cdot re + im \cdot im}\right)}^{3} - {re}^{3}}{\color{blue}{im \cdot im + re \cdot \left(re + \left(re + \sqrt{re \cdot re + im \cdot im}\right)\right)}}}\]
Using strategy rm Applied *-un-lft-identity_binary64_419 21.9
\[\leadsto 0.5 \cdot \sqrt{2 \cdot \frac{{\left(\sqrt{re \cdot re + im \cdot im}\right)}^{3} - {re}^{3}}{\color{blue}{1 \cdot \left(im \cdot im + re \cdot \left(re + \left(re + \sqrt{re \cdot re + im \cdot im}\right)\right)\right)}}}\]
Applied difference-cubes_binary64_421 21.8
\[\leadsto 0.5 \cdot \sqrt{2 \cdot \frac{\color{blue}{\left(\sqrt{re \cdot re + im \cdot im} \cdot \sqrt{re \cdot re + im \cdot im} + \left(re \cdot re + \sqrt{re \cdot re + im \cdot im} \cdot re\right)\right) \cdot \left(\sqrt{re \cdot re + im \cdot im} - re\right)}}{1 \cdot \left(im \cdot im + re \cdot \left(re + \left(re + \sqrt{re \cdot re + im \cdot im}\right)\right)\right)}}\]
Applied times-frac_binary64_425 16.2
\[\leadsto 0.5 \cdot \sqrt{2 \cdot \color{blue}{\left(\frac{\sqrt{re \cdot re + im \cdot im} \cdot \sqrt{re \cdot re + im \cdot im} + \left(re \cdot re + \sqrt{re \cdot re + im \cdot im} \cdot re\right)}{1} \cdot \frac{\sqrt{re \cdot re + im \cdot im} - re}{im \cdot im + re \cdot \left(re + \left(re + \sqrt{re \cdot re + im \cdot im}\right)\right)}\right)}}\]
Simplified16.2
\[\leadsto 0.5 \cdot \sqrt{2 \cdot \left(\color{blue}{\left(im \cdot im + re \cdot \left(re + \left(re + \sqrt{re \cdot re + im \cdot im}\right)\right)\right)} \cdot \frac{\sqrt{re \cdot re + im \cdot im} - re}{im \cdot im + re \cdot \left(re + \left(re + \sqrt{re \cdot re + im \cdot im}\right)\right)}\right)}\]
Simplified16.2
\[\leadsto \color{blue}{0.5 \cdot \sqrt{2 \cdot \left(\left(im \cdot im + re \cdot \left(re + \left(re + \sqrt{re \cdot re + im \cdot im}\right)\right)\right) \cdot \frac{\sqrt{re \cdot re + im \cdot im} - re}{im \cdot im + re \cdot \left(re + \left(re + \sqrt{re \cdot re + im \cdot im}\right)\right)}\right)}}\]
if -9.7630249912128057e-91 < re < 4.10979566799054738e119 Initial program 34.4
\[0.5 \cdot \sqrt{2 \cdot \left(\sqrt{re \cdot re + im \cdot im} - re\right)}\]
Taylor expanded around 0 18.5
\[\leadsto 0.5 \cdot \sqrt{2 \cdot \color{blue}{\left(\left(0.5 \cdot \frac{{re}^{2}}{im} + im\right) - re\right)}}\]
Simplified18.5
\[\leadsto 0.5 \cdot \sqrt{2 \cdot \color{blue}{\left(0.5 \cdot \frac{re \cdot re}{im} + \left(im - re\right)\right)}}\]
Simplified18.5
\[\leadsto \color{blue}{0.5 \cdot \sqrt{2 \cdot \left(0.5 \cdot \frac{re \cdot re}{im} + \left(im - re\right)\right)}}\]
if 4.10979566799054738e119 < re Initial program 62.1
\[0.5 \cdot \sqrt{2 \cdot \left(\sqrt{re \cdot re + im \cdot im} - re\right)}\]
Taylor expanded around 0 9.0
\[\leadsto 0.5 \cdot \color{blue}{\left(\left(\sqrt{0.5} \cdot \left(im \cdot \sqrt{2}\right)\right) \cdot \sqrt{\frac{1}{re}}\right)}\]
Simplified9.0
\[\leadsto \color{blue}{0.5 \cdot \left(\left(\sqrt{0.5} \cdot \left(im \cdot \sqrt{2}\right)\right) \cdot \sqrt{\frac{1}{re}}\right)}\]
Recombined 4 regimes into one program. Final simplification15.7
\[\leadsto \begin{array}{l}
\mathbf{if}\;re \leq -1.5530469120283839 \cdot 10^{+31}:\\
\;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(re \cdot -2\right)}\\
\mathbf{elif}\;re \leq -9.763024991212806 \cdot 10^{-91}:\\
\;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(\left(im \cdot im + re \cdot \left(re + \left(re + \sqrt{im \cdot im + re \cdot re}\right)\right)\right) \cdot \frac{\sqrt{im \cdot im + re \cdot re} - re}{im \cdot im + re \cdot \left(re + \left(re + \sqrt{im \cdot im + re \cdot re}\right)\right)}\right)}\\
\mathbf{elif}\;re \leq 4.1097956679905474 \cdot 10^{+119}:\\
\;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(0.5 \cdot \frac{re \cdot re}{im} + \left(im - re\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;0.5 \cdot \left(\left(\sqrt{0.5} \cdot \left(im \cdot \sqrt{2}\right)\right) \cdot \sqrt{\frac{1}{re}}\right)\\
\end{array}\]
Reproduce herbie shell --seed 2021065
(FPCore (re im)
:name "math.sqrt on complex, imaginary part, im greater than 0 branch"
:precision binary64
:pre (> im 0.0)
(* 0.5 (sqrt (* 2.0 (- (sqrt (+ (* re re) (* im im))) re)))))