Average Error: 32.4 → 19.0
Time: 7.6s
Precision: 64
\[\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\]
\[\begin{array}{l} \mathbf{if}\;re \le -5.9648958467837301 \cdot 10^{102}:\\ \;\;\;\;\frac{-1 \cdot \log \left(\frac{-1}{re}\right)}{\log 10}\\ \mathbf{elif}\;re \le 2.3223338671593632 \cdot 10^{-278}:\\ \;\;\;\;\frac{\left(3 \cdot \log \left(\sqrt[3]{\sqrt{re \cdot re + im \cdot im}}\right)\right) \cdot \left(-1\right)}{-\log 10}\\ \mathbf{elif}\;re \le 9.7861409713485531 \cdot 10^{-239}:\\ \;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \frac{3}{-3 \cdot \frac{\sqrt{\log 10}}{\log \left(\frac{1}{re}\right)}}\\ \mathbf{elif}\;re \le 3.1269387827755257 \cdot 10^{72}:\\ \;\;\;\;\frac{\left(3 \cdot \log \left(\sqrt[3]{\sqrt{re \cdot re + im \cdot im}}\right)\right) \cdot \left(-1\right)}{-\log 10}\\ \mathbf{else}:\\ \;\;\;\;\frac{-1 \cdot \log \left(\frac{1}{re}\right)}{\log 10}\\ \end{array}\]
\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}
\begin{array}{l}
\mathbf{if}\;re \le -5.9648958467837301 \cdot 10^{102}:\\
\;\;\;\;\frac{-1 \cdot \log \left(\frac{-1}{re}\right)}{\log 10}\\

\mathbf{elif}\;re \le 2.3223338671593632 \cdot 10^{-278}:\\
\;\;\;\;\frac{\left(3 \cdot \log \left(\sqrt[3]{\sqrt{re \cdot re + im \cdot im}}\right)\right) \cdot \left(-1\right)}{-\log 10}\\

\mathbf{elif}\;re \le 9.7861409713485531 \cdot 10^{-239}:\\
\;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \frac{3}{-3 \cdot \frac{\sqrt{\log 10}}{\log \left(\frac{1}{re}\right)}}\\

\mathbf{elif}\;re \le 3.1269387827755257 \cdot 10^{72}:\\
\;\;\;\;\frac{\left(3 \cdot \log \left(\sqrt[3]{\sqrt{re \cdot re + im \cdot im}}\right)\right) \cdot \left(-1\right)}{-\log 10}\\

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

\end{array}
double f(double re, double im) {
        double r43636 = re;
        double r43637 = r43636 * r43636;
        double r43638 = im;
        double r43639 = r43638 * r43638;
        double r43640 = r43637 + r43639;
        double r43641 = sqrt(r43640);
        double r43642 = log(r43641);
        double r43643 = 10.0;
        double r43644 = log(r43643);
        double r43645 = r43642 / r43644;
        return r43645;
}

double f(double re, double im) {
        double r43646 = re;
        double r43647 = -5.96489584678373e+102;
        bool r43648 = r43646 <= r43647;
        double r43649 = -1.0;
        double r43650 = r43649 / r43646;
        double r43651 = log(r43650);
        double r43652 = r43649 * r43651;
        double r43653 = 10.0;
        double r43654 = log(r43653);
        double r43655 = r43652 / r43654;
        double r43656 = 2.3223338671593632e-278;
        bool r43657 = r43646 <= r43656;
        double r43658 = 3.0;
        double r43659 = r43646 * r43646;
        double r43660 = im;
        double r43661 = r43660 * r43660;
        double r43662 = r43659 + r43661;
        double r43663 = sqrt(r43662);
        double r43664 = cbrt(r43663);
        double r43665 = log(r43664);
        double r43666 = r43658 * r43665;
        double r43667 = 1.0;
        double r43668 = -r43667;
        double r43669 = r43666 * r43668;
        double r43670 = -r43654;
        double r43671 = r43669 / r43670;
        double r43672 = 9.786140971348553e-239;
        bool r43673 = r43646 <= r43672;
        double r43674 = sqrt(r43654);
        double r43675 = r43667 / r43674;
        double r43676 = -3.0;
        double r43677 = r43667 / r43646;
        double r43678 = log(r43677);
        double r43679 = r43674 / r43678;
        double r43680 = r43676 * r43679;
        double r43681 = r43658 / r43680;
        double r43682 = r43675 * r43681;
        double r43683 = 3.1269387827755257e+72;
        bool r43684 = r43646 <= r43683;
        double r43685 = r43649 * r43678;
        double r43686 = r43685 / r43654;
        double r43687 = r43684 ? r43671 : r43686;
        double r43688 = r43673 ? r43682 : r43687;
        double r43689 = r43657 ? r43671 : r43688;
        double r43690 = r43648 ? r43655 : r43689;
        return r43690;
}

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 < -5.96489584678373e+102

    1. Initial program 53.1

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

      \[\leadsto \frac{\log \color{blue}{\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)}}{\log 10}\]
    4. Using strategy rm
    5. Applied pow353.1

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

      \[\leadsto \frac{\color{blue}{3 \cdot \log \left(\sqrt[3]{\sqrt{re \cdot re + im \cdot im}}\right)}}{\log 10}\]
    7. Applied associate-/l*53.1

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

      \[\leadsto \color{blue}{3 \cdot \frac{\log \left({\left(\frac{-1}{re}\right)}^{\frac{-1}{3}}\right)}{\log 10}}\]
    9. Simplified9.1

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

    if -5.96489584678373e+102 < re < 2.3223338671593632e-278 or 9.786140971348553e-239 < re < 3.1269387827755257e+72

    1. Initial program 22.3

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

      \[\leadsto \frac{\log \color{blue}{\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)}}{\log 10}\]
    4. Using strategy rm
    5. Applied frac-2neg22.3

      \[\leadsto \color{blue}{\frac{-\log \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)}{-\log 10}}\]
    6. Simplified22.3

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

    if 2.3223338671593632e-278 < re < 9.786140971348553e-239

    1. Initial program 33.2

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

      \[\leadsto \frac{\log \color{blue}{\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)}}{\log 10}\]
    4. Using strategy rm
    5. Applied pow333.2

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

      \[\leadsto \frac{\color{blue}{3 \cdot \log \left(\sqrt[3]{\sqrt{re \cdot re + im \cdot im}}\right)}}{\log 10}\]
    7. Applied associate-/l*33.2

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

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

      \[\leadsto \frac{3}{\frac{\log 10}{\color{blue}{1 \cdot \log \left(\sqrt[3]{\sqrt{re \cdot re + im \cdot im}}\right)}}}\]
    11. Applied add-sqr-sqrt33.2

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

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

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

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

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

      \[\leadsto \frac{1}{\sqrt{\log 10}} \cdot \frac{3}{\color{blue}{\frac{1}{\log \left({\left(\frac{1}{re}\right)}^{\frac{-1}{3}}\right)} \cdot \sqrt{\log 10}}}\]
    17. Simplified52.8

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

    if 3.1269387827755257e+72 < re

    1. Initial program 47.9

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

      \[\leadsto \frac{\log \color{blue}{\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)}}{\log 10}\]
    4. Using strategy rm
    5. Applied pow347.9

      \[\leadsto \frac{\log \color{blue}{\left({\left(\sqrt[3]{\sqrt{re \cdot re + im \cdot im}}\right)}^{3}\right)}}{\log 10}\]
    6. Applied log-pow47.9

      \[\leadsto \frac{\color{blue}{3 \cdot \log \left(\sqrt[3]{\sqrt{re \cdot re + im \cdot im}}\right)}}{\log 10}\]
    7. Applied associate-/l*47.9

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

      \[\leadsto \color{blue}{3 \cdot \frac{\log \left({\left(\frac{1}{re}\right)}^{\frac{-1}{3}}\right)}{\log 10}}\]
    9. Simplified11.0

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;re \le -5.9648958467837301 \cdot 10^{102}:\\ \;\;\;\;\frac{-1 \cdot \log \left(\frac{-1}{re}\right)}{\log 10}\\ \mathbf{elif}\;re \le 2.3223338671593632 \cdot 10^{-278}:\\ \;\;\;\;\frac{\left(3 \cdot \log \left(\sqrt[3]{\sqrt{re \cdot re + im \cdot im}}\right)\right) \cdot \left(-1\right)}{-\log 10}\\ \mathbf{elif}\;re \le 9.7861409713485531 \cdot 10^{-239}:\\ \;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \frac{3}{-3 \cdot \frac{\sqrt{\log 10}}{\log \left(\frac{1}{re}\right)}}\\ \mathbf{elif}\;re \le 3.1269387827755257 \cdot 10^{72}:\\ \;\;\;\;\frac{\left(3 \cdot \log \left(\sqrt[3]{\sqrt{re \cdot re + im \cdot im}}\right)\right) \cdot \left(-1\right)}{-\log 10}\\ \mathbf{else}:\\ \;\;\;\;\frac{-1 \cdot \log \left(\frac{1}{re}\right)}{\log 10}\\ \end{array}\]

Reproduce

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