Average Error: 38.8 → 20.7
Time: 14.7s
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 -1.68578209479783180545998421086186392498 \cdot 10^{-10}:\\ \;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(-1 \cdot re - re\right)}\\ \mathbf{elif}\;re \le -5.201857708777203638520435967734604418811 \cdot 10^{-42}:\\ \;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(-\left(re + im\right)\right)}\\ \mathbf{elif}\;re \le -1.578664519533145820935744094339933684966 \cdot 10^{-101}:\\ \;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(-1 \cdot re - re\right)}\\ \mathbf{elif}\;re \le -5.259805741457812420396753775709430528865 \cdot 10^{-204}:\\ \;\;\;\;0.5 \cdot \left(\left(\sqrt[3]{\sqrt{2}} \cdot \sqrt[3]{\sqrt{2}}\right) \cdot \left(\sqrt[3]{\sqrt{2}} \cdot \left|\frac{im}{\sqrt{re + \sqrt{re \cdot re + im \cdot im}}}\right|\right)\right)\\ \mathbf{elif}\;re \le -1.151206757702833058082466539382970933253 \cdot 10^{-304}:\\ \;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(im - re\right)}\\ \mathbf{elif}\;re \le 3.541857872203963491164772955139563574803 \cdot 10^{75}:\\ \;\;\;\;0.5 \cdot \left(\left(\sqrt[3]{\sqrt{2}} \cdot \sqrt[3]{\sqrt{2}}\right) \cdot \left(\sqrt[3]{\sqrt{2}} \cdot \left|\frac{im}{\sqrt{re + \sqrt{re \cdot re + im \cdot im}}}\right|\right)\right)\\ \mathbf{else}:\\ \;\;\;\;0.5 \cdot \left(\sqrt{2} \cdot \left|\frac{im}{\sqrt{re + re}}\right|\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 \le -1.68578209479783180545998421086186392498 \cdot 10^{-10}:\\
\;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(-1 \cdot re - re\right)}\\

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

\mathbf{elif}\;re \le -1.578664519533145820935744094339933684966 \cdot 10^{-101}:\\
\;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(-1 \cdot re - re\right)}\\

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

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

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

\mathbf{else}:\\
\;\;\;\;0.5 \cdot \left(\sqrt{2} \cdot \left|\frac{im}{\sqrt{re + re}}\right|\right)\\

\end{array}
double f(double re, double im) {
        double r29169 = 0.5;
        double r29170 = 2.0;
        double r29171 = re;
        double r29172 = r29171 * r29171;
        double r29173 = im;
        double r29174 = r29173 * r29173;
        double r29175 = r29172 + r29174;
        double r29176 = sqrt(r29175);
        double r29177 = r29176 - r29171;
        double r29178 = r29170 * r29177;
        double r29179 = sqrt(r29178);
        double r29180 = r29169 * r29179;
        return r29180;
}

double f(double re, double im) {
        double r29181 = re;
        double r29182 = -1.6857820947978318e-10;
        bool r29183 = r29181 <= r29182;
        double r29184 = 0.5;
        double r29185 = 2.0;
        double r29186 = -1.0;
        double r29187 = r29186 * r29181;
        double r29188 = r29187 - r29181;
        double r29189 = r29185 * r29188;
        double r29190 = sqrt(r29189);
        double r29191 = r29184 * r29190;
        double r29192 = -5.2018577087772036e-42;
        bool r29193 = r29181 <= r29192;
        double r29194 = im;
        double r29195 = r29181 + r29194;
        double r29196 = -r29195;
        double r29197 = r29185 * r29196;
        double r29198 = sqrt(r29197);
        double r29199 = r29184 * r29198;
        double r29200 = -1.5786645195331458e-101;
        bool r29201 = r29181 <= r29200;
        double r29202 = -5.2598057414578124e-204;
        bool r29203 = r29181 <= r29202;
        double r29204 = sqrt(r29185);
        double r29205 = cbrt(r29204);
        double r29206 = r29205 * r29205;
        double r29207 = r29181 * r29181;
        double r29208 = r29194 * r29194;
        double r29209 = r29207 + r29208;
        double r29210 = sqrt(r29209);
        double r29211 = r29181 + r29210;
        double r29212 = sqrt(r29211);
        double r29213 = r29194 / r29212;
        double r29214 = fabs(r29213);
        double r29215 = r29205 * r29214;
        double r29216 = r29206 * r29215;
        double r29217 = r29184 * r29216;
        double r29218 = -1.151206757702833e-304;
        bool r29219 = r29181 <= r29218;
        double r29220 = r29194 - r29181;
        double r29221 = r29185 * r29220;
        double r29222 = sqrt(r29221);
        double r29223 = r29184 * r29222;
        double r29224 = 3.5418578722039635e+75;
        bool r29225 = r29181 <= r29224;
        double r29226 = r29181 + r29181;
        double r29227 = sqrt(r29226);
        double r29228 = r29194 / r29227;
        double r29229 = fabs(r29228);
        double r29230 = r29204 * r29229;
        double r29231 = r29184 * r29230;
        double r29232 = r29225 ? r29217 : r29231;
        double r29233 = r29219 ? r29223 : r29232;
        double r29234 = r29203 ? r29217 : r29233;
        double r29235 = r29201 ? r29191 : r29234;
        double r29236 = r29193 ? r29199 : r29235;
        double r29237 = r29183 ? r29191 : r29236;
        return r29237;
}

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 5 regimes
  2. if re < -1.6857820947978318e-10 or -5.2018577087772036e-42 < re < -1.5786645195331458e-101

    1. Initial program 36.4

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

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

    if -1.6857820947978318e-10 < re < -5.2018577087772036e-42

    1. Initial program 16.8

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

      \[\leadsto 0.5 \cdot \sqrt{2 \cdot \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}}}\]
    4. Simplified42.2

      \[\leadsto 0.5 \cdot \sqrt{2 \cdot \frac{\color{blue}{{im}^{2}}}{\sqrt{re \cdot re + im \cdot im} + re}}\]
    5. Simplified42.2

      \[\leadsto 0.5 \cdot \sqrt{2 \cdot \frac{{im}^{2}}{\color{blue}{re + \sqrt{re \cdot re + im \cdot im}}}}\]
    6. Taylor expanded around -inf 39.7

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

    if -1.5786645195331458e-101 < re < -5.2598057414578124e-204 or -1.151206757702833e-304 < re < 3.5418578722039635e+75

    1. Initial program 33.4

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

      \[\leadsto 0.5 \cdot \sqrt{2 \cdot \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}}}\]
    4. Simplified30.6

      \[\leadsto 0.5 \cdot \sqrt{2 \cdot \frac{\color{blue}{{im}^{2}}}{\sqrt{re \cdot re + im \cdot im} + re}}\]
    5. Simplified30.6

      \[\leadsto 0.5 \cdot \sqrt{2 \cdot \frac{{im}^{2}}{\color{blue}{re + \sqrt{re \cdot re + im \cdot im}}}}\]
    6. Using strategy rm
    7. Applied add-sqr-sqrt30.7

      \[\leadsto 0.5 \cdot \sqrt{2 \cdot \frac{{im}^{2}}{\color{blue}{\sqrt{re + \sqrt{re \cdot re + im \cdot im}} \cdot \sqrt{re + \sqrt{re \cdot re + im \cdot im}}}}}\]
    8. Applied add-sqr-sqrt47.7

      \[\leadsto 0.5 \cdot \sqrt{2 \cdot \frac{{\color{blue}{\left(\sqrt{im} \cdot \sqrt{im}\right)}}^{2}}{\sqrt{re + \sqrt{re \cdot re + im \cdot im}} \cdot \sqrt{re + \sqrt{re \cdot re + im \cdot im}}}}\]
    9. Applied unpow-prod-down47.7

      \[\leadsto 0.5 \cdot \sqrt{2 \cdot \frac{\color{blue}{{\left(\sqrt{im}\right)}^{2} \cdot {\left(\sqrt{im}\right)}^{2}}}{\sqrt{re + \sqrt{re \cdot re + im \cdot im}} \cdot \sqrt{re + \sqrt{re \cdot re + im \cdot im}}}}\]
    10. Applied times-frac46.9

      \[\leadsto 0.5 \cdot \sqrt{2 \cdot \color{blue}{\left(\frac{{\left(\sqrt{im}\right)}^{2}}{\sqrt{re + \sqrt{re \cdot re + im \cdot im}}} \cdot \frac{{\left(\sqrt{im}\right)}^{2}}{\sqrt{re + \sqrt{re \cdot re + im \cdot im}}}\right)}}\]
    11. Simplified46.8

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

      \[\leadsto 0.5 \cdot \sqrt{2 \cdot \left(\frac{im}{\sqrt{re + \sqrt{re \cdot re + im \cdot im}}} \cdot \color{blue}{\frac{im}{\sqrt{re + \sqrt{re \cdot re + im \cdot im}}}}\right)}\]
    13. Using strategy rm
    14. Applied sqrt-prod29.1

      \[\leadsto 0.5 \cdot \color{blue}{\left(\sqrt{2} \cdot \sqrt{\frac{im}{\sqrt{re + \sqrt{re \cdot re + im \cdot im}}} \cdot \frac{im}{\sqrt{re + \sqrt{re \cdot re + im \cdot im}}}}\right)}\]
    15. Simplified23.4

      \[\leadsto 0.5 \cdot \left(\sqrt{2} \cdot \color{blue}{\left|\frac{im}{\sqrt{re + \sqrt{re \cdot re + im \cdot im}}}\right|}\right)\]
    16. Using strategy rm
    17. Applied add-cube-cbrt23.4

      \[\leadsto 0.5 \cdot \left(\color{blue}{\left(\left(\sqrt[3]{\sqrt{2}} \cdot \sqrt[3]{\sqrt{2}}\right) \cdot \sqrt[3]{\sqrt{2}}\right)} \cdot \left|\frac{im}{\sqrt{re + \sqrt{re \cdot re + im \cdot im}}}\right|\right)\]
    18. Applied associate-*l*23.4

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

    if -5.2598057414578124e-204 < re < -1.151206757702833e-304

    1. Initial program 29.3

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

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

    if 3.5418578722039635e+75 < re

    1. Initial program 59.7

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

      \[\leadsto 0.5 \cdot \sqrt{2 \cdot \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}}}\]
    4. Simplified42.8

      \[\leadsto 0.5 \cdot \sqrt{2 \cdot \frac{\color{blue}{{im}^{2}}}{\sqrt{re \cdot re + im \cdot im} + re}}\]
    5. Simplified42.8

      \[\leadsto 0.5 \cdot \sqrt{2 \cdot \frac{{im}^{2}}{\color{blue}{re + \sqrt{re \cdot re + im \cdot im}}}}\]
    6. Using strategy rm
    7. Applied add-sqr-sqrt42.8

      \[\leadsto 0.5 \cdot \sqrt{2 \cdot \frac{{im}^{2}}{\color{blue}{\sqrt{re + \sqrt{re \cdot re + im \cdot im}} \cdot \sqrt{re + \sqrt{re \cdot re + im \cdot im}}}}}\]
    8. Applied add-sqr-sqrt53.1

      \[\leadsto 0.5 \cdot \sqrt{2 \cdot \frac{{\color{blue}{\left(\sqrt{im} \cdot \sqrt{im}\right)}}^{2}}{\sqrt{re + \sqrt{re \cdot re + im \cdot im}} \cdot \sqrt{re + \sqrt{re \cdot re + im \cdot im}}}}\]
    9. Applied unpow-prod-down53.1

      \[\leadsto 0.5 \cdot \sqrt{2 \cdot \frac{\color{blue}{{\left(\sqrt{im}\right)}^{2} \cdot {\left(\sqrt{im}\right)}^{2}}}{\sqrt{re + \sqrt{re \cdot re + im \cdot im}} \cdot \sqrt{re + \sqrt{re \cdot re + im \cdot im}}}}\]
    10. Applied times-frac52.9

      \[\leadsto 0.5 \cdot \sqrt{2 \cdot \color{blue}{\left(\frac{{\left(\sqrt{im}\right)}^{2}}{\sqrt{re + \sqrt{re \cdot re + im \cdot im}}} \cdot \frac{{\left(\sqrt{im}\right)}^{2}}{\sqrt{re + \sqrt{re \cdot re + im \cdot im}}}\right)}}\]
    11. Simplified52.9

      \[\leadsto 0.5 \cdot \sqrt{2 \cdot \left(\color{blue}{\frac{im}{\sqrt{re + \sqrt{re \cdot re + im \cdot im}}}} \cdot \frac{{\left(\sqrt{im}\right)}^{2}}{\sqrt{re + \sqrt{re \cdot re + im \cdot im}}}\right)}\]
    12. Simplified42.5

      \[\leadsto 0.5 \cdot \sqrt{2 \cdot \left(\frac{im}{\sqrt{re + \sqrt{re \cdot re + im \cdot im}}} \cdot \color{blue}{\frac{im}{\sqrt{re + \sqrt{re \cdot re + im \cdot im}}}}\right)}\]
    13. Using strategy rm
    14. Applied sqrt-prod42.5

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

      \[\leadsto 0.5 \cdot \left(\sqrt{2} \cdot \color{blue}{\left|\frac{im}{\sqrt{re + \sqrt{re \cdot re + im \cdot im}}}\right|}\right)\]
    16. Taylor expanded around inf 10.9

      \[\leadsto 0.5 \cdot \left(\sqrt{2} \cdot \left|\frac{im}{\sqrt{re + \color{blue}{re}}}\right|\right)\]
  3. Recombined 5 regimes into one program.
  4. Final simplification20.7

    \[\leadsto \begin{array}{l} \mathbf{if}\;re \le -1.68578209479783180545998421086186392498 \cdot 10^{-10}:\\ \;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(-1 \cdot re - re\right)}\\ \mathbf{elif}\;re \le -5.201857708777203638520435967734604418811 \cdot 10^{-42}:\\ \;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(-\left(re + im\right)\right)}\\ \mathbf{elif}\;re \le -1.578664519533145820935744094339933684966 \cdot 10^{-101}:\\ \;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(-1 \cdot re - re\right)}\\ \mathbf{elif}\;re \le -5.259805741457812420396753775709430528865 \cdot 10^{-204}:\\ \;\;\;\;0.5 \cdot \left(\left(\sqrt[3]{\sqrt{2}} \cdot \sqrt[3]{\sqrt{2}}\right) \cdot \left(\sqrt[3]{\sqrt{2}} \cdot \left|\frac{im}{\sqrt{re + \sqrt{re \cdot re + im \cdot im}}}\right|\right)\right)\\ \mathbf{elif}\;re \le -1.151206757702833058082466539382970933253 \cdot 10^{-304}:\\ \;\;\;\;0.5 \cdot \sqrt{2 \cdot \left(im - re\right)}\\ \mathbf{elif}\;re \le 3.541857872203963491164772955139563574803 \cdot 10^{75}:\\ \;\;\;\;0.5 \cdot \left(\left(\sqrt[3]{\sqrt{2}} \cdot \sqrt[3]{\sqrt{2}}\right) \cdot \left(\sqrt[3]{\sqrt{2}} \cdot \left|\frac{im}{\sqrt{re + \sqrt{re \cdot re + im \cdot im}}}\right|\right)\right)\\ \mathbf{else}:\\ \;\;\;\;0.5 \cdot \left(\sqrt{2} \cdot \left|\frac{im}{\sqrt{re + re}}\right|\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2019291 
(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)))))