Average Error: 30.7 → 17.3
Time: 21.0s
Precision: 64
\[\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\]
\[\begin{array}{l} \mathbf{if}\;re \le -2.7728325482865987 \cdot 10^{+132}:\\ \;\;\;\;\frac{\log \left(\frac{-1}{re}\right)}{\log 10} \cdot -1\\ \mathbf{elif}\;re \le -3.454520874704003 \cdot 10^{-249}:\\ \;\;\;\;\left(\frac{1}{\sqrt{\log 10}} \cdot \left(\log \left(\sqrt{im \cdot im + re \cdot re}\right) \cdot \sqrt{\frac{1}{\sqrt{\log 10}}}\right)\right) \cdot \sqrt{\frac{1}{\sqrt{\log 10}}}\\ \mathbf{elif}\;re \le 1.0730314248253915 \cdot 10^{-288}:\\ \;\;\;\;\left(\frac{1}{\sqrt{\log 10}} \cdot \log im\right) \cdot \frac{1}{\sqrt{\log 10}}\\ \mathbf{elif}\;re \le 1.1882351325142646 \cdot 10^{+39}:\\ \;\;\;\;\left(\frac{1}{\sqrt{\log 10}} \cdot \left(\log \left(\sqrt{im \cdot im + re \cdot re}\right) \cdot \sqrt{\frac{1}{\sqrt{\log 10}}}\right)\right) \cdot \sqrt{\frac{1}{\sqrt{\log 10}}}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \left(\frac{1}{\sqrt{\log 10}} \cdot \log re\right)\\ \end{array}\]
\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}
\begin{array}{l}
\mathbf{if}\;re \le -2.7728325482865987 \cdot 10^{+132}:\\
\;\;\;\;\frac{\log \left(\frac{-1}{re}\right)}{\log 10} \cdot -1\\

\mathbf{elif}\;re \le -3.454520874704003 \cdot 10^{-249}:\\
\;\;\;\;\left(\frac{1}{\sqrt{\log 10}} \cdot \left(\log \left(\sqrt{im \cdot im + re \cdot re}\right) \cdot \sqrt{\frac{1}{\sqrt{\log 10}}}\right)\right) \cdot \sqrt{\frac{1}{\sqrt{\log 10}}}\\

\mathbf{elif}\;re \le 1.0730314248253915 \cdot 10^{-288}:\\
\;\;\;\;\left(\frac{1}{\sqrt{\log 10}} \cdot \log im\right) \cdot \frac{1}{\sqrt{\log 10}}\\

\mathbf{elif}\;re \le 1.1882351325142646 \cdot 10^{+39}:\\
\;\;\;\;\left(\frac{1}{\sqrt{\log 10}} \cdot \left(\log \left(\sqrt{im \cdot im + re \cdot re}\right) \cdot \sqrt{\frac{1}{\sqrt{\log 10}}}\right)\right) \cdot \sqrt{\frac{1}{\sqrt{\log 10}}}\\

\mathbf{else}:\\
\;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \left(\frac{1}{\sqrt{\log 10}} \cdot \log re\right)\\

\end{array}
double f(double re, double im) {
        double r806001 = re;
        double r806002 = r806001 * r806001;
        double r806003 = im;
        double r806004 = r806003 * r806003;
        double r806005 = r806002 + r806004;
        double r806006 = sqrt(r806005);
        double r806007 = log(r806006);
        double r806008 = 10.0;
        double r806009 = log(r806008);
        double r806010 = r806007 / r806009;
        return r806010;
}

double f(double re, double im) {
        double r806011 = re;
        double r806012 = -2.7728325482865987e+132;
        bool r806013 = r806011 <= r806012;
        double r806014 = -1.0;
        double r806015 = r806014 / r806011;
        double r806016 = log(r806015);
        double r806017 = 10.0;
        double r806018 = log(r806017);
        double r806019 = r806016 / r806018;
        double r806020 = r806019 * r806014;
        double r806021 = -3.454520874704003e-249;
        bool r806022 = r806011 <= r806021;
        double r806023 = 1.0;
        double r806024 = sqrt(r806018);
        double r806025 = r806023 / r806024;
        double r806026 = im;
        double r806027 = r806026 * r806026;
        double r806028 = r806011 * r806011;
        double r806029 = r806027 + r806028;
        double r806030 = sqrt(r806029);
        double r806031 = log(r806030);
        double r806032 = sqrt(r806025);
        double r806033 = r806031 * r806032;
        double r806034 = r806025 * r806033;
        double r806035 = r806034 * r806032;
        double r806036 = 1.0730314248253915e-288;
        bool r806037 = r806011 <= r806036;
        double r806038 = log(r806026);
        double r806039 = r806025 * r806038;
        double r806040 = r806039 * r806025;
        double r806041 = 1.1882351325142646e+39;
        bool r806042 = r806011 <= r806041;
        double r806043 = log(r806011);
        double r806044 = r806025 * r806043;
        double r806045 = r806025 * r806044;
        double r806046 = r806042 ? r806035 : r806045;
        double r806047 = r806037 ? r806040 : r806046;
        double r806048 = r806022 ? r806035 : r806047;
        double r806049 = r806013 ? r806020 : r806048;
        return r806049;
}

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 4 regimes
  2. if re < -2.7728325482865987e+132

    1. Initial program 56.6

      \[\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\]
    2. Using strategy rm
    3. Applied add-sqr-sqrt56.6

      \[\leadsto \frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\color{blue}{\sqrt{\log 10} \cdot \sqrt{\log 10}}}\]
    4. Applied *-un-lft-identity56.6

      \[\leadsto \frac{\color{blue}{1 \cdot \log \left(\sqrt{re \cdot re + im \cdot im}\right)}}{\sqrt{\log 10} \cdot \sqrt{\log 10}}\]
    5. Applied times-frac56.5

      \[\leadsto \color{blue}{\frac{1}{\sqrt{\log 10}} \cdot \frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\sqrt{\log 10}}}\]
    6. Using strategy rm
    7. Applied div-inv56.5

      \[\leadsto \frac{1}{\sqrt{\log 10}} \cdot \color{blue}{\left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \frac{1}{\sqrt{\log 10}}\right)}\]
    8. Using strategy rm
    9. Applied add-sqr-sqrt56.5

      \[\leadsto \frac{1}{\sqrt{\log 10}} \cdot \left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \color{blue}{\left(\sqrt{\frac{1}{\sqrt{\log 10}}} \cdot \sqrt{\frac{1}{\sqrt{\log 10}}}\right)}\right)\]
    10. Applied associate-*r*56.6

      \[\leadsto \frac{1}{\sqrt{\log 10}} \cdot \color{blue}{\left(\left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \sqrt{\frac{1}{\sqrt{\log 10}}}\right) \cdot \sqrt{\frac{1}{\sqrt{\log 10}}}\right)}\]
    11. Taylor expanded around -inf 8.6

      \[\leadsto \color{blue}{-1 \cdot \frac{\log \left(\frac{-1}{re}\right)}{\log 10}}\]

    if -2.7728325482865987e+132 < re < -3.454520874704003e-249 or 1.0730314248253915e-288 < re < 1.1882351325142646e+39

    1. Initial program 20.1

      \[\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\]
    2. Using strategy rm
    3. Applied add-sqr-sqrt20.1

      \[\leadsto \frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\color{blue}{\sqrt{\log 10} \cdot \sqrt{\log 10}}}\]
    4. Applied *-un-lft-identity20.1

      \[\leadsto \frac{\color{blue}{1 \cdot \log \left(\sqrt{re \cdot re + im \cdot im}\right)}}{\sqrt{\log 10} \cdot \sqrt{\log 10}}\]
    5. Applied times-frac20.0

      \[\leadsto \color{blue}{\frac{1}{\sqrt{\log 10}} \cdot \frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\sqrt{\log 10}}}\]
    6. Using strategy rm
    7. Applied div-inv19.9

      \[\leadsto \frac{1}{\sqrt{\log 10}} \cdot \color{blue}{\left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \frac{1}{\sqrt{\log 10}}\right)}\]
    8. Using strategy rm
    9. Applied add-sqr-sqrt19.9

      \[\leadsto \frac{1}{\sqrt{\log 10}} \cdot \left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \color{blue}{\left(\sqrt{\frac{1}{\sqrt{\log 10}}} \cdot \sqrt{\frac{1}{\sqrt{\log 10}}}\right)}\right)\]
    10. Applied associate-*r*20.0

      \[\leadsto \frac{1}{\sqrt{\log 10}} \cdot \color{blue}{\left(\left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \sqrt{\frac{1}{\sqrt{\log 10}}}\right) \cdot \sqrt{\frac{1}{\sqrt{\log 10}}}\right)}\]
    11. Using strategy rm
    12. Applied associate-*r*20.0

      \[\leadsto \color{blue}{\left(\frac{1}{\sqrt{\log 10}} \cdot \left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \sqrt{\frac{1}{\sqrt{\log 10}}}\right)\right) \cdot \sqrt{\frac{1}{\sqrt{\log 10}}}}\]

    if -3.454520874704003e-249 < re < 1.0730314248253915e-288

    1. Initial program 30.7

      \[\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\]
    2. Using strategy rm
    3. Applied add-sqr-sqrt30.7

      \[\leadsto \frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\color{blue}{\sqrt{\log 10} \cdot \sqrt{\log 10}}}\]
    4. Applied *-un-lft-identity30.7

      \[\leadsto \frac{\color{blue}{1 \cdot \log \left(\sqrt{re \cdot re + im \cdot im}\right)}}{\sqrt{\log 10} \cdot \sqrt{\log 10}}\]
    5. Applied times-frac30.7

      \[\leadsto \color{blue}{\frac{1}{\sqrt{\log 10}} \cdot \frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\sqrt{\log 10}}}\]
    6. Using strategy rm
    7. Applied div-inv30.6

      \[\leadsto \frac{1}{\sqrt{\log 10}} \cdot \color{blue}{\left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \frac{1}{\sqrt{\log 10}}\right)}\]
    8. Taylor expanded around 0 30.3

      \[\leadsto \frac{1}{\sqrt{\log 10}} \cdot \left(\log \color{blue}{im} \cdot \frac{1}{\sqrt{\log 10}}\right)\]

    if 1.1882351325142646e+39 < re

    1. Initial program 41.8

      \[\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\]
    2. Using strategy rm
    3. Applied add-sqr-sqrt41.8

      \[\leadsto \frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\color{blue}{\sqrt{\log 10} \cdot \sqrt{\log 10}}}\]
    4. Applied *-un-lft-identity41.8

      \[\leadsto \frac{\color{blue}{1 \cdot \log \left(\sqrt{re \cdot re + im \cdot im}\right)}}{\sqrt{\log 10} \cdot \sqrt{\log 10}}\]
    5. Applied times-frac41.8

      \[\leadsto \color{blue}{\frac{1}{\sqrt{\log 10}} \cdot \frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\sqrt{\log 10}}}\]
    6. Using strategy rm
    7. Applied div-inv41.8

      \[\leadsto \frac{1}{\sqrt{\log 10}} \cdot \color{blue}{\left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \frac{1}{\sqrt{\log 10}}\right)}\]
    8. Taylor expanded around inf 12.3

      \[\leadsto \frac{1}{\sqrt{\log 10}} \cdot \left(\log \color{blue}{re} \cdot \frac{1}{\sqrt{\log 10}}\right)\]
  3. Recombined 4 regimes into one program.
  4. Final simplification17.3

    \[\leadsto \begin{array}{l} \mathbf{if}\;re \le -2.7728325482865987 \cdot 10^{+132}:\\ \;\;\;\;\frac{\log \left(\frac{-1}{re}\right)}{\log 10} \cdot -1\\ \mathbf{elif}\;re \le -3.454520874704003 \cdot 10^{-249}:\\ \;\;\;\;\left(\frac{1}{\sqrt{\log 10}} \cdot \left(\log \left(\sqrt{im \cdot im + re \cdot re}\right) \cdot \sqrt{\frac{1}{\sqrt{\log 10}}}\right)\right) \cdot \sqrt{\frac{1}{\sqrt{\log 10}}}\\ \mathbf{elif}\;re \le 1.0730314248253915 \cdot 10^{-288}:\\ \;\;\;\;\left(\frac{1}{\sqrt{\log 10}} \cdot \log im\right) \cdot \frac{1}{\sqrt{\log 10}}\\ \mathbf{elif}\;re \le 1.1882351325142646 \cdot 10^{+39}:\\ \;\;\;\;\left(\frac{1}{\sqrt{\log 10}} \cdot \left(\log \left(\sqrt{im \cdot im + re \cdot re}\right) \cdot \sqrt{\frac{1}{\sqrt{\log 10}}}\right)\right) \cdot \sqrt{\frac{1}{\sqrt{\log 10}}}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \left(\frac{1}{\sqrt{\log 10}} \cdot \log re\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2019137 
(FPCore (re im)
  :name "math.log10 on complex, real part"
  (/ (log (sqrt (+ (* re re) (* im im)))) (log 10)))