Average Error: 38.2 → 23.5
Time: 9.3s
Precision: 64
\[0.5 \cdot \sqrt{2 \cdot \left(\sqrt{re \cdot re + im \cdot im} - re\right)}\]
\[\begin{array}{l} \mathbf{if}\;re \le -6.52307626026875473 \cdot 10^{150}:\\ \;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(-2 \cdot re\right)}\\ \mathbf{elif}\;re \le 1.66118578644665393 \cdot 10^{-162}:\\ \;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(\sqrt{re \cdot re + im \cdot im} - re\right)}\\ \mathbf{elif}\;re \le 2.79117419776841501 \cdot 10^{-132}:\\ \;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(-\left(re + im\right)\right)}\\ \mathbf{elif}\;re \le 1.9233986607295234 \cdot 10^{-11}:\\ \;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(\frac{\left|im\right|}{\sqrt[3]{re + \sqrt{im \cdot im + re \cdot re}} \cdot \sqrt[3]{re + \sqrt{im \cdot im + re \cdot re}}} \cdot \frac{\left|im\right|}{\sqrt[3]{re + \sqrt{im \cdot im + re \cdot re}}}\right)}\\ \mathbf{elif}\;re \le 154181558422709.656:\\ \;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(im - re\right)}\\ \mathbf{elif}\;re \le 1.11640916162610467 \cdot 10^{150}:\\ \;\;\;\;0.5 \cdot \frac{\sqrt{im \cdot im} \cdot \sqrt{2}}{\sqrt{\sqrt{re \cdot re + im \cdot im} + re}}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{\frac{im \cdot im}{re + re} \cdot 2} \cdot 0.5\\ \end{array}\]
0.5 \cdot \sqrt{2 \cdot \left(\sqrt{re \cdot re + im \cdot im} - re\right)}
\begin{array}{l}
\mathbf{if}\;re \le -6.52307626026875473 \cdot 10^{150}:\\
\;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(-2 \cdot re\right)}\\

\mathbf{elif}\;re \le 1.66118578644665393 \cdot 10^{-162}:\\
\;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(\sqrt{re \cdot re + im \cdot im} - re\right)}\\

\mathbf{elif}\;re \le 2.79117419776841501 \cdot 10^{-132}:\\
\;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(-\left(re + im\right)\right)}\\

\mathbf{elif}\;re \le 1.9233986607295234 \cdot 10^{-11}:\\
\;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(\frac{\left|im\right|}{\sqrt[3]{re + \sqrt{im \cdot im + re \cdot re}} \cdot \sqrt[3]{re + \sqrt{im \cdot im + re \cdot re}}} \cdot \frac{\left|im\right|}{\sqrt[3]{re + \sqrt{im \cdot im + re \cdot re}}}\right)}\\

\mathbf{elif}\;re \le 154181558422709.656:\\
\;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(im - re\right)}\\

\mathbf{elif}\;re \le 1.11640916162610467 \cdot 10^{150}:\\
\;\;\;\;0.5 \cdot \frac{\sqrt{im \cdot im} \cdot \sqrt{2}}{\sqrt{\sqrt{re \cdot re + im \cdot im} + re}}\\

\mathbf{else}:\\
\;\;\;\;\sqrt{\frac{im \cdot im}{re + re} \cdot 2} \cdot 0.5\\

\end{array}
double f(double re, double im) {
        double r20207 = 0.5;
        double r20208 = 2.0;
        double r20209 = re;
        double r20210 = r20209 * r20209;
        double r20211 = im;
        double r20212 = r20211 * r20211;
        double r20213 = r20210 + r20212;
        double r20214 = sqrt(r20213);
        double r20215 = r20214 - r20209;
        double r20216 = r20208 * r20215;
        double r20217 = sqrt(r20216);
        double r20218 = r20207 * r20217;
        return r20218;
}

double f(double re, double im) {
        double r20219 = re;
        double r20220 = -6.523076260268755e+150;
        bool r20221 = r20219 <= r20220;
        double r20222 = 0.5;
        double r20223 = 2.0;
        double r20224 = -2.0;
        double r20225 = r20224 * r20219;
        double r20226 = r20223 * r20225;
        double r20227 = sqrt(r20226);
        double r20228 = r20222 * r20227;
        double r20229 = 1.661185786446654e-162;
        bool r20230 = r20219 <= r20229;
        double r20231 = r20219 * r20219;
        double r20232 = im;
        double r20233 = r20232 * r20232;
        double r20234 = r20231 + r20233;
        double r20235 = sqrt(r20234);
        double r20236 = r20235 - r20219;
        double r20237 = r20223 * r20236;
        double r20238 = sqrt(r20237);
        double r20239 = r20222 * r20238;
        double r20240 = 2.791174197768415e-132;
        bool r20241 = r20219 <= r20240;
        double r20242 = r20219 + r20232;
        double r20243 = -r20242;
        double r20244 = r20223 * r20243;
        double r20245 = sqrt(r20244);
        double r20246 = r20222 * r20245;
        double r20247 = 1.9233986607295234e-11;
        bool r20248 = r20219 <= r20247;
        double r20249 = fabs(r20232);
        double r20250 = r20233 + r20231;
        double r20251 = sqrt(r20250);
        double r20252 = r20219 + r20251;
        double r20253 = cbrt(r20252);
        double r20254 = r20253 * r20253;
        double r20255 = r20249 / r20254;
        double r20256 = r20249 / r20253;
        double r20257 = r20255 * r20256;
        double r20258 = r20223 * r20257;
        double r20259 = sqrt(r20258);
        double r20260 = r20222 * r20259;
        double r20261 = 154181558422709.66;
        bool r20262 = r20219 <= r20261;
        double r20263 = r20232 - r20219;
        double r20264 = r20223 * r20263;
        double r20265 = sqrt(r20264);
        double r20266 = r20222 * r20265;
        double r20267 = 1.1164091616261047e+150;
        bool r20268 = r20219 <= r20267;
        double r20269 = sqrt(r20233);
        double r20270 = sqrt(r20223);
        double r20271 = r20269 * r20270;
        double r20272 = r20235 + r20219;
        double r20273 = sqrt(r20272);
        double r20274 = r20271 / r20273;
        double r20275 = r20222 * r20274;
        double r20276 = r20219 + r20219;
        double r20277 = r20233 / r20276;
        double r20278 = r20277 * r20223;
        double r20279 = sqrt(r20278);
        double r20280 = r20279 * r20222;
        double r20281 = r20268 ? r20275 : r20280;
        double r20282 = r20262 ? r20266 : r20281;
        double r20283 = r20248 ? r20260 : r20282;
        double r20284 = r20241 ? r20246 : r20283;
        double r20285 = r20230 ? r20239 : r20284;
        double r20286 = r20221 ? r20228 : r20285;
        return r20286;
}

Error

Bits error versus re

Bits error versus im

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 7 regimes
  2. if re < -6.523076260268755e+150

    1. Initial program 63.1

      \[0.5 \cdot \sqrt{2 \cdot \left(\sqrt{re \cdot re + im \cdot im} - re\right)}\]
    2. Taylor expanded around -inf 7.8

      \[\leadsto 0.5 \cdot \sqrt{2 \cdot \color{blue}{\left(-2 \cdot re\right)}}\]

    if -6.523076260268755e+150 < re < 1.661185786446654e-162

    1. Initial program 22.4

      \[0.5 \cdot \sqrt{2 \cdot \left(\sqrt{re \cdot re + im \cdot im} - re\right)}\]

    if 1.661185786446654e-162 < re < 2.791174197768415e-132

    1. Initial program 34.3

      \[0.5 \cdot \sqrt{2 \cdot \left(\sqrt{re \cdot re + im \cdot im} - re\right)}\]
    2. Using strategy rm
    3. Applied add-cube-cbrt35.0

      \[\leadsto 0.5 \cdot \sqrt{2 \cdot \left(\color{blue}{\left(\sqrt[3]{\sqrt{re \cdot re + im \cdot im}} \cdot \sqrt[3]{\sqrt{re \cdot re + im \cdot im}}\right) \cdot \sqrt[3]{\sqrt{re \cdot re + im \cdot im}}} - re\right)}\]
    4. Using strategy rm
    5. Applied flip--35.0

      \[\leadsto 0.5 \cdot \sqrt{2 \cdot \color{blue}{\frac{\left(\left(\sqrt[3]{\sqrt{re \cdot re + im \cdot im}} \cdot \sqrt[3]{\sqrt{re \cdot re + im \cdot im}}\right) \cdot \sqrt[3]{\sqrt{re \cdot re + im \cdot im}}\right) \cdot \left(\left(\sqrt[3]{\sqrt{re \cdot re + im \cdot im}} \cdot \sqrt[3]{\sqrt{re \cdot re + im \cdot im}}\right) \cdot \sqrt[3]{\sqrt{re \cdot re + im \cdot im}}\right) - re \cdot re}{\left(\sqrt[3]{\sqrt{re \cdot re + im \cdot im}} \cdot \sqrt[3]{\sqrt{re \cdot re + im \cdot im}}\right) \cdot \sqrt[3]{\sqrt{re \cdot re + im \cdot im}} + re}}}\]
    6. Simplified33.7

      \[\leadsto 0.5 \cdot \sqrt{2 \cdot \frac{\color{blue}{im \cdot im + 0}}{\left(\sqrt[3]{\sqrt{re \cdot re + im \cdot im}} \cdot \sqrt[3]{\sqrt{re \cdot re + im \cdot im}}\right) \cdot \sqrt[3]{\sqrt{re \cdot re + im \cdot im}} + re}}\]
    7. Simplified33.3

      \[\leadsto 0.5 \cdot \sqrt{2 \cdot \frac{im \cdot im + 0}{\color{blue}{re + \sqrt{im \cdot im + re \cdot re}}}}\]
    8. Taylor expanded around -inf 42.2

      \[\leadsto 0.5 \cdot \sqrt{2 \cdot \color{blue}{\left(-\left(re + im\right)\right)}}\]

    if 2.791174197768415e-132 < re < 1.9233986607295234e-11

    1. Initial program 40.3

      \[0.5 \cdot \sqrt{2 \cdot \left(\sqrt{re \cdot re + im \cdot im} - re\right)}\]
    2. Using strategy rm
    3. Applied add-cube-cbrt41.4

      \[\leadsto 0.5 \cdot \sqrt{2 \cdot \left(\color{blue}{\left(\sqrt[3]{\sqrt{re \cdot re + im \cdot im}} \cdot \sqrt[3]{\sqrt{re \cdot re + im \cdot im}}\right) \cdot \sqrt[3]{\sqrt{re \cdot re + im \cdot im}}} - re\right)}\]
    4. Using strategy rm
    5. Applied flip--41.4

      \[\leadsto 0.5 \cdot \sqrt{2 \cdot \color{blue}{\frac{\left(\left(\sqrt[3]{\sqrt{re \cdot re + im \cdot im}} \cdot \sqrt[3]{\sqrt{re \cdot re + im \cdot im}}\right) \cdot \sqrt[3]{\sqrt{re \cdot re + im \cdot im}}\right) \cdot \left(\left(\sqrt[3]{\sqrt{re \cdot re + im \cdot im}} \cdot \sqrt[3]{\sqrt{re \cdot re + im \cdot im}}\right) \cdot \sqrt[3]{\sqrt{re \cdot re + im \cdot im}}\right) - re \cdot re}{\left(\sqrt[3]{\sqrt{re \cdot re + im \cdot im}} \cdot \sqrt[3]{\sqrt{re \cdot re + im \cdot im}}\right) \cdot \sqrt[3]{\sqrt{re \cdot re + im \cdot im}} + re}}}\]
    6. Simplified31.9

      \[\leadsto 0.5 \cdot \sqrt{2 \cdot \frac{\color{blue}{im \cdot im + 0}}{\left(\sqrt[3]{\sqrt{re \cdot re + im \cdot im}} \cdot \sqrt[3]{\sqrt{re \cdot re + im \cdot im}}\right) \cdot \sqrt[3]{\sqrt{re \cdot re + im \cdot im}} + re}}\]
    7. Simplified31.5

      \[\leadsto 0.5 \cdot \sqrt{2 \cdot \frac{im \cdot im + 0}{\color{blue}{re + \sqrt{im \cdot im + re \cdot re}}}}\]
    8. Using strategy rm
    9. Applied add-cube-cbrt31.9

      \[\leadsto 0.5 \cdot \sqrt{2 \cdot \frac{im \cdot im + 0}{\color{blue}{\left(\sqrt[3]{re + \sqrt{im \cdot im + re \cdot re}} \cdot \sqrt[3]{re + \sqrt{im \cdot im + re \cdot re}}\right) \cdot \sqrt[3]{re + \sqrt{im \cdot im + re \cdot re}}}}}\]
    10. Applied add-sqr-sqrt31.9

      \[\leadsto 0.5 \cdot \sqrt{2 \cdot \frac{\color{blue}{\sqrt{im \cdot im + 0} \cdot \sqrt{im \cdot im + 0}}}{\left(\sqrt[3]{re + \sqrt{im \cdot im + re \cdot re}} \cdot \sqrt[3]{re + \sqrt{im \cdot im + re \cdot re}}\right) \cdot \sqrt[3]{re + \sqrt{im \cdot im + re \cdot re}}}}\]
    11. Applied times-frac32.0

      \[\leadsto 0.5 \cdot \sqrt{2 \cdot \color{blue}{\left(\frac{\sqrt{im \cdot im + 0}}{\sqrt[3]{re + \sqrt{im \cdot im + re \cdot re}} \cdot \sqrt[3]{re + \sqrt{im \cdot im + re \cdot re}}} \cdot \frac{\sqrt{im \cdot im + 0}}{\sqrt[3]{re + \sqrt{im \cdot im + re \cdot re}}}\right)}}\]
    12. Simplified31.9

      \[\leadsto 0.5 \cdot \sqrt{2 \cdot \left(\color{blue}{\frac{\left|im\right|}{\sqrt[3]{re + \sqrt{im \cdot im + re \cdot re}} \cdot \sqrt[3]{re + \sqrt{im \cdot im + re \cdot re}}}} \cdot \frac{\sqrt{im \cdot im + 0}}{\sqrt[3]{re + \sqrt{im \cdot im + re \cdot re}}}\right)}\]
    13. Simplified28.2

      \[\leadsto 0.5 \cdot \sqrt{2 \cdot \left(\frac{\left|im\right|}{\sqrt[3]{re + \sqrt{im \cdot im + re \cdot re}} \cdot \sqrt[3]{re + \sqrt{im \cdot im + re \cdot re}}} \cdot \color{blue}{\frac{\left|im\right|}{\sqrt[3]{re + \sqrt{im \cdot im + re \cdot re}}}}\right)}\]

    if 1.9233986607295234e-11 < re < 154181558422709.66

    1. Initial program 44.7

      \[0.5 \cdot \sqrt{2 \cdot \left(\sqrt{re \cdot re + im \cdot im} - re\right)}\]
    2. Taylor expanded around 0 50.0

      \[\leadsto 0.5 \cdot \sqrt{2 \cdot \left(\color{blue}{im} - re\right)}\]

    if 154181558422709.66 < re < 1.1164091616261047e+150

    1. Initial program 49.4

      \[0.5 \cdot \sqrt{2 \cdot \left(\sqrt{re \cdot re + im \cdot im} - re\right)}\]
    2. Using strategy rm
    3. Applied sqrt-prod49.4

      \[\leadsto 0.5 \cdot \color{blue}{\left(\sqrt{2} \cdot \sqrt{\sqrt{re \cdot re + im \cdot im} - re}\right)}\]
    4. Using strategy rm
    5. Applied flip--49.4

      \[\leadsto 0.5 \cdot \left(\sqrt{2} \cdot \sqrt{\color{blue}{\frac{\sqrt{re \cdot re + im \cdot im} \cdot \sqrt{re \cdot re + im \cdot im} - re \cdot re}{\sqrt{re \cdot re + im \cdot im} + re}}}\right)\]
    6. Applied sqrt-div49.4

      \[\leadsto 0.5 \cdot \left(\sqrt{2} \cdot \color{blue}{\frac{\sqrt{\sqrt{re \cdot re + im \cdot im} \cdot \sqrt{re \cdot re + im \cdot im} - re \cdot re}}{\sqrt{\sqrt{re \cdot re + im \cdot im} + re}}}\right)\]
    7. Applied associate-*r/49.4

      \[\leadsto 0.5 \cdot \color{blue}{\frac{\sqrt{2} \cdot \sqrt{\sqrt{re \cdot re + im \cdot im} \cdot \sqrt{re \cdot re + im \cdot im} - re \cdot re}}{\sqrt{\sqrt{re \cdot re + im \cdot im} + re}}}\]
    8. Simplified25.8

      \[\leadsto 0.5 \cdot \frac{\color{blue}{\sqrt{im \cdot im + 0} \cdot \sqrt{2}}}{\sqrt{\sqrt{re \cdot re + im \cdot im} + re}}\]

    if 1.1164091616261047e+150 < re

    1. Initial program 63.9

      \[0.5 \cdot \sqrt{2 \cdot \left(\sqrt{re \cdot re + im \cdot im} - re\right)}\]
    2. Using strategy rm
    3. Applied add-cube-cbrt64.0

      \[\leadsto 0.5 \cdot \sqrt{2 \cdot \left(\color{blue}{\left(\sqrt[3]{\sqrt{re \cdot re + im \cdot im}} \cdot \sqrt[3]{\sqrt{re \cdot re + im \cdot im}}\right) \cdot \sqrt[3]{\sqrt{re \cdot re + im \cdot im}}} - re\right)}\]
    4. Using strategy rm
    5. Applied flip--64.0

      \[\leadsto 0.5 \cdot \sqrt{2 \cdot \color{blue}{\frac{\left(\left(\sqrt[3]{\sqrt{re \cdot re + im \cdot im}} \cdot \sqrt[3]{\sqrt{re \cdot re + im \cdot im}}\right) \cdot \sqrt[3]{\sqrt{re \cdot re + im \cdot im}}\right) \cdot \left(\left(\sqrt[3]{\sqrt{re \cdot re + im \cdot im}} \cdot \sqrt[3]{\sqrt{re \cdot re + im \cdot im}}\right) \cdot \sqrt[3]{\sqrt{re \cdot re + im \cdot im}}\right) - re \cdot re}{\left(\sqrt[3]{\sqrt{re \cdot re + im \cdot im}} \cdot \sqrt[3]{\sqrt{re \cdot re + im \cdot im}}\right) \cdot \sqrt[3]{\sqrt{re \cdot re + im \cdot im}} + re}}}\]
    6. Simplified49.2

      \[\leadsto 0.5 \cdot \sqrt{2 \cdot \frac{\color{blue}{im \cdot im + 0}}{\left(\sqrt[3]{\sqrt{re \cdot re + im \cdot im}} \cdot \sqrt[3]{\sqrt{re \cdot re + im \cdot im}}\right) \cdot \sqrt[3]{\sqrt{re \cdot re + im \cdot im}} + re}}\]
    7. Simplified49.2

      \[\leadsto 0.5 \cdot \sqrt{2 \cdot \frac{im \cdot im + 0}{\color{blue}{re + \sqrt{im \cdot im + re \cdot re}}}}\]
    8. Taylor expanded around 0 29.6

      \[\leadsto 0.5 \cdot \sqrt{2 \cdot \frac{im \cdot im + 0}{re + \color{blue}{re}}}\]
  3. Recombined 7 regimes into one program.
  4. Final simplification23.5

    \[\leadsto \begin{array}{l} \mathbf{if}\;re \le -6.52307626026875473 \cdot 10^{150}:\\ \;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(-2 \cdot re\right)}\\ \mathbf{elif}\;re \le 1.66118578644665393 \cdot 10^{-162}:\\ \;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(\sqrt{re \cdot re + im \cdot im} - re\right)}\\ \mathbf{elif}\;re \le 2.79117419776841501 \cdot 10^{-132}:\\ \;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(-\left(re + im\right)\right)}\\ \mathbf{elif}\;re \le 1.9233986607295234 \cdot 10^{-11}:\\ \;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(\frac{\left|im\right|}{\sqrt[3]{re + \sqrt{im \cdot im + re \cdot re}} \cdot \sqrt[3]{re + \sqrt{im \cdot im + re \cdot re}}} \cdot \frac{\left|im\right|}{\sqrt[3]{re + \sqrt{im \cdot im + re \cdot re}}}\right)}\\ \mathbf{elif}\;re \le 154181558422709.656:\\ \;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(im - re\right)}\\ \mathbf{elif}\;re \le 1.11640916162610467 \cdot 10^{150}:\\ \;\;\;\;0.5 \cdot \frac{\sqrt{im \cdot im} \cdot \sqrt{2}}{\sqrt{\sqrt{re \cdot re + im \cdot im} + re}}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{\frac{im \cdot im}{re + re} \cdot 2} \cdot 0.5\\ \end{array}\]

Reproduce

herbie shell --seed 2020045 
(FPCore (re im)
  :name "math.sqrt on complex, imaginary part, im greater than 0 branch"
  :precision binary64
  (* 0.5 (sqrt (* 2 (- (sqrt (+ (* re re) (* im im))) re)))))