Average Error: 32.3 → 17.8
Time: 5.8s
Precision: 64
\[\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\]
\[\begin{array}{l} \mathbf{if}\;re \le -9.16501881147335996 \cdot 10^{142}:\\ \;\;\;\;\frac{\frac{1}{2}}{\sqrt{\log 10}} \cdot \left(-2 \cdot \left(\log \left(\frac{-1}{re}\right) \cdot \sqrt{\frac{1}{\log 10}}\right)\right)\\ \mathbf{elif}\;re \le -3.7537984120066598 \cdot 10^{-296}:\\ \;\;\;\;\log \left({\left({\left(re \cdot re + im \cdot im\right)}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right)}^{\left(\frac{\frac{1}{2}}{\sqrt{\log 10}}\right)}\right)\\ \mathbf{elif}\;re \le 3.2705168987572832 \cdot 10^{-186}:\\ \;\;\;\;\frac{\frac{1}{2}}{\sqrt{\log 10}} \cdot \left(2 \cdot \left(\log im \cdot \sqrt{\frac{1}{\log 10}}\right)\right)\\ \mathbf{elif}\;re \le 1.24542053155599481 \cdot 10^{141}:\\ \;\;\;\;\log \left({\left({\left(re \cdot re + im \cdot im\right)}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right)}^{\left(\frac{\frac{1}{2}}{\sqrt{\log 10}}\right)}\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{1}{2}}{\sqrt{\log 10}} \cdot \left(\left(\log re \cdot 2\right) \cdot \frac{1}{\sqrt{\log 10}}\right)\\ \end{array}\]
\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}
\begin{array}{l}
\mathbf{if}\;re \le -9.16501881147335996 \cdot 10^{142}:\\
\;\;\;\;\frac{\frac{1}{2}}{\sqrt{\log 10}} \cdot \left(-2 \cdot \left(\log \left(\frac{-1}{re}\right) \cdot \sqrt{\frac{1}{\log 10}}\right)\right)\\

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

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

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

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

\end{array}
double f(double re, double im) {
        double r91831 = re;
        double r91832 = r91831 * r91831;
        double r91833 = im;
        double r91834 = r91833 * r91833;
        double r91835 = r91832 + r91834;
        double r91836 = sqrt(r91835);
        double r91837 = log(r91836);
        double r91838 = 10.0;
        double r91839 = log(r91838);
        double r91840 = r91837 / r91839;
        return r91840;
}

double f(double re, double im) {
        double r91841 = re;
        double r91842 = -9.16501881147336e+142;
        bool r91843 = r91841 <= r91842;
        double r91844 = 0.5;
        double r91845 = 10.0;
        double r91846 = log(r91845);
        double r91847 = sqrt(r91846);
        double r91848 = r91844 / r91847;
        double r91849 = -2.0;
        double r91850 = -1.0;
        double r91851 = r91850 / r91841;
        double r91852 = log(r91851);
        double r91853 = 1.0;
        double r91854 = r91853 / r91846;
        double r91855 = sqrt(r91854);
        double r91856 = r91852 * r91855;
        double r91857 = r91849 * r91856;
        double r91858 = r91848 * r91857;
        double r91859 = -3.75379841200666e-296;
        bool r91860 = r91841 <= r91859;
        double r91861 = r91841 * r91841;
        double r91862 = im;
        double r91863 = r91862 * r91862;
        double r91864 = r91861 + r91863;
        double r91865 = r91853 / r91847;
        double r91866 = pow(r91864, r91865);
        double r91867 = pow(r91866, r91848);
        double r91868 = log(r91867);
        double r91869 = 3.2705168987572832e-186;
        bool r91870 = r91841 <= r91869;
        double r91871 = 2.0;
        double r91872 = log(r91862);
        double r91873 = r91872 * r91855;
        double r91874 = r91871 * r91873;
        double r91875 = r91848 * r91874;
        double r91876 = 1.2454205315559948e+141;
        bool r91877 = r91841 <= r91876;
        double r91878 = log(r91841);
        double r91879 = r91878 * r91871;
        double r91880 = r91879 * r91865;
        double r91881 = r91848 * r91880;
        double r91882 = r91877 ? r91868 : r91881;
        double r91883 = r91870 ? r91875 : r91882;
        double r91884 = r91860 ? r91868 : r91883;
        double r91885 = r91843 ? r91858 : r91884;
        return r91885;
}

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 < -9.16501881147336e+142

    1. Initial program 61.3

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

      \[\leadsto \frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\color{blue}{\sqrt{\log 10} \cdot \sqrt{\log 10}}}\]
    4. Applied pow1/261.3

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

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

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

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

    if -9.16501881147336e+142 < re < -3.75379841200666e-296 or 3.2705168987572832e-186 < re < 1.2454205315559948e+141

    1. Initial program 19.7

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

      \[\leadsto \frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\color{blue}{\sqrt{\log 10} \cdot \sqrt{\log 10}}}\]
    4. Applied pow1/219.7

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

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

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

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

      \[\leadsto \color{blue}{\log \left(e^{\frac{\frac{1}{2}}{\sqrt{\log 10}} \cdot \left(\log \left(re \cdot re + im \cdot im\right) \cdot \frac{1}{\sqrt{\log 10}}\right)}\right)}\]
    11. Simplified19.4

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

    if -3.75379841200666e-296 < re < 3.2705168987572832e-186

    1. Initial program 31.7

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

      \[\leadsto \frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\color{blue}{\sqrt{\log 10} \cdot \sqrt{\log 10}}}\]
    4. Applied pow1/231.7

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

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

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

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

    if 1.2454205315559948e+141 < re

    1. Initial program 60.3

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

      \[\leadsto \frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\color{blue}{\sqrt{\log 10} \cdot \sqrt{\log 10}}}\]
    4. Applied pow1/260.3

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

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

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

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

      \[\leadsto \frac{\frac{1}{2}}{\sqrt{\log 10}} \cdot \left(\color{blue}{\left(-2 \cdot \log \left(\frac{1}{re}\right)\right)} \cdot \frac{1}{\sqrt{\log 10}}\right)\]
    10. Simplified7.6

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;re \le -9.16501881147335996 \cdot 10^{142}:\\ \;\;\;\;\frac{\frac{1}{2}}{\sqrt{\log 10}} \cdot \left(-2 \cdot \left(\log \left(\frac{-1}{re}\right) \cdot \sqrt{\frac{1}{\log 10}}\right)\right)\\ \mathbf{elif}\;re \le -3.7537984120066598 \cdot 10^{-296}:\\ \;\;\;\;\log \left({\left({\left(re \cdot re + im \cdot im\right)}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right)}^{\left(\frac{\frac{1}{2}}{\sqrt{\log 10}}\right)}\right)\\ \mathbf{elif}\;re \le 3.2705168987572832 \cdot 10^{-186}:\\ \;\;\;\;\frac{\frac{1}{2}}{\sqrt{\log 10}} \cdot \left(2 \cdot \left(\log im \cdot \sqrt{\frac{1}{\log 10}}\right)\right)\\ \mathbf{elif}\;re \le 1.24542053155599481 \cdot 10^{141}:\\ \;\;\;\;\log \left({\left({\left(re \cdot re + im \cdot im\right)}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right)}^{\left(\frac{\frac{1}{2}}{\sqrt{\log 10}}\right)}\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{1}{2}}{\sqrt{\log 10}} \cdot \left(\left(\log re \cdot 2\right) \cdot \frac{1}{\sqrt{\log 10}}\right)\\ \end{array}\]

Reproduce

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