Average Error: 31.2 → 18.2
Time: 23.5s
Precision: 64
\[\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\]
\[\begin{array}{l} \mathbf{if}\;re \le -3.1849016560059546 \cdot 10^{+58}:\\ \;\;\;\;\frac{\frac{1}{2}}{\sqrt{\log 10}} \cdot \left(\left(\sqrt{\frac{1}{\log 10}} \cdot \log \left(\frac{-1}{re}\right)\right) \cdot -2\right)\\ \mathbf{elif}\;re \le -1.55388712844443 \cdot 10^{-164}:\\ \;\;\;\;\frac{\log \left(re \cdot re + im \cdot im\right)}{\sqrt{\log 10}} \cdot \frac{\frac{1}{2}}{\sqrt{\log 10}}\\ \mathbf{elif}\;re \le 2.2710614939339266 \cdot 10^{-237}:\\ \;\;\;\;\left(2 \cdot \left(\log im \cdot \sqrt{\frac{1}{\log 10}}\right)\right) \cdot \frac{\frac{1}{2}}{\sqrt{\log 10}}\\ \mathbf{elif}\;re \le 3.0514418349359322 \cdot 10^{+122}:\\ \;\;\;\;\frac{\log \left(re \cdot re + im \cdot im\right)}{\sqrt{\log 10}} \cdot \frac{\frac{1}{2}}{\sqrt{\log 10}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\sqrt[3]{\frac{1}{2}} \cdot \sqrt[3]{\frac{1}{2}}}{\sqrt{\sqrt{\log 10}}} \cdot \left(\frac{2 \cdot \log re}{\sqrt{\log 10}} \cdot \frac{\sqrt[3]{\frac{1}{2}}}{\sqrt{\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 -3.1849016560059546 \cdot 10^{+58}:\\
\;\;\;\;\frac{\frac{1}{2}}{\sqrt{\log 10}} \cdot \left(\left(\sqrt{\frac{1}{\log 10}} \cdot \log \left(\frac{-1}{re}\right)\right) \cdot -2\right)\\

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

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

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

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

\end{array}
double f(double re, double im) {
        double r1066750 = re;
        double r1066751 = r1066750 * r1066750;
        double r1066752 = im;
        double r1066753 = r1066752 * r1066752;
        double r1066754 = r1066751 + r1066753;
        double r1066755 = sqrt(r1066754);
        double r1066756 = log(r1066755);
        double r1066757 = 10.0;
        double r1066758 = log(r1066757);
        double r1066759 = r1066756 / r1066758;
        return r1066759;
}

double f(double re, double im) {
        double r1066760 = re;
        double r1066761 = -3.1849016560059546e+58;
        bool r1066762 = r1066760 <= r1066761;
        double r1066763 = 0.5;
        double r1066764 = 10.0;
        double r1066765 = log(r1066764);
        double r1066766 = sqrt(r1066765);
        double r1066767 = r1066763 / r1066766;
        double r1066768 = 1.0;
        double r1066769 = r1066768 / r1066765;
        double r1066770 = sqrt(r1066769);
        double r1066771 = -1.0;
        double r1066772 = r1066771 / r1066760;
        double r1066773 = log(r1066772);
        double r1066774 = r1066770 * r1066773;
        double r1066775 = -2.0;
        double r1066776 = r1066774 * r1066775;
        double r1066777 = r1066767 * r1066776;
        double r1066778 = -1.55388712844443e-164;
        bool r1066779 = r1066760 <= r1066778;
        double r1066780 = r1066760 * r1066760;
        double r1066781 = im;
        double r1066782 = r1066781 * r1066781;
        double r1066783 = r1066780 + r1066782;
        double r1066784 = log(r1066783);
        double r1066785 = r1066784 / r1066766;
        double r1066786 = r1066785 * r1066767;
        double r1066787 = 2.2710614939339266e-237;
        bool r1066788 = r1066760 <= r1066787;
        double r1066789 = 2.0;
        double r1066790 = log(r1066781);
        double r1066791 = r1066790 * r1066770;
        double r1066792 = r1066789 * r1066791;
        double r1066793 = r1066792 * r1066767;
        double r1066794 = 3.0514418349359322e+122;
        bool r1066795 = r1066760 <= r1066794;
        double r1066796 = cbrt(r1066763);
        double r1066797 = r1066796 * r1066796;
        double r1066798 = sqrt(r1066766);
        double r1066799 = r1066797 / r1066798;
        double r1066800 = log(r1066760);
        double r1066801 = r1066789 * r1066800;
        double r1066802 = r1066801 / r1066766;
        double r1066803 = r1066796 / r1066798;
        double r1066804 = r1066802 * r1066803;
        double r1066805 = r1066799 * r1066804;
        double r1066806 = r1066795 ? r1066786 : r1066805;
        double r1066807 = r1066788 ? r1066793 : r1066806;
        double r1066808 = r1066779 ? r1066786 : r1066807;
        double r1066809 = r1066762 ? r1066777 : r1066808;
        return r1066809;
}

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 < -3.1849016560059546e+58

    1. Initial program 44.4

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

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

      \[\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-pow44.4

      \[\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-frac44.4

      \[\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 11.3

      \[\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 -3.1849016560059546e+58 < re < -1.55388712844443e-164 or 2.2710614939339266e-237 < re < 3.0514418349359322e+122

    1. Initial program 18.7

      \[\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\]
    2. Using strategy rm
    3. Applied add-sqr-sqrt18.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/218.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-pow18.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-frac18.6

      \[\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 *-commutative18.6

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

    if -1.55388712844443e-164 < re < 2.2710614939339266e-237

    1. Initial program 30.0

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

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

      \[\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-pow30.0

      \[\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-frac29.9

      \[\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 33.3

      \[\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 3.0514418349359322e+122 < re

    1. Initial program 53.2

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

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

      \[\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-pow53.2

      \[\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-frac53.2

      \[\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 add-sqr-sqrt53.2

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

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

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

      \[\leadsto \color{blue}{\left(\frac{\sqrt[3]{\frac{1}{2}} \cdot \sqrt[3]{\frac{1}{2}}}{\sqrt{\sqrt{\log 10}}} \cdot \frac{\sqrt[3]{\frac{1}{2}}}{\sqrt{\sqrt{\log 10}}}\right)} \cdot \frac{\log \left(re \cdot re + im \cdot im\right)}{\sqrt{\log 10}}\]
    12. Applied associate-*l*53.2

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

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;re \le -3.1849016560059546 \cdot 10^{+58}:\\ \;\;\;\;\frac{\frac{1}{2}}{\sqrt{\log 10}} \cdot \left(\left(\sqrt{\frac{1}{\log 10}} \cdot \log \left(\frac{-1}{re}\right)\right) \cdot -2\right)\\ \mathbf{elif}\;re \le -1.55388712844443 \cdot 10^{-164}:\\ \;\;\;\;\frac{\log \left(re \cdot re + im \cdot im\right)}{\sqrt{\log 10}} \cdot \frac{\frac{1}{2}}{\sqrt{\log 10}}\\ \mathbf{elif}\;re \le 2.2710614939339266 \cdot 10^{-237}:\\ \;\;\;\;\left(2 \cdot \left(\log im \cdot \sqrt{\frac{1}{\log 10}}\right)\right) \cdot \frac{\frac{1}{2}}{\sqrt{\log 10}}\\ \mathbf{elif}\;re \le 3.0514418349359322 \cdot 10^{+122}:\\ \;\;\;\;\frac{\log \left(re \cdot re + im \cdot im\right)}{\sqrt{\log 10}} \cdot \frac{\frac{1}{2}}{\sqrt{\log 10}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\sqrt[3]{\frac{1}{2}} \cdot \sqrt[3]{\frac{1}{2}}}{\sqrt{\sqrt{\log 10}}} \cdot \left(\frac{2 \cdot \log re}{\sqrt{\log 10}} \cdot \frac{\sqrt[3]{\frac{1}{2}}}{\sqrt{\sqrt{\log 10}}}\right)\\ \end{array}\]

Reproduce

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