Average Error: 31.1 → 17.2
Time: 54.9s
Precision: 64
\[\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\]
\[\begin{array}{l} \mathbf{if}\;re \le -6.795235363351034 \cdot 10^{+137}:\\ \;\;\;\;\frac{\log \left(-re\right)}{\log 10}\\ \mathbf{elif}\;re \le 4.0586580656124443 \cdot 10^{+124}:\\ \;\;\;\;\left(\frac{1}{\sqrt{\log 10}} \cdot \log \left(\left|\sqrt[3]{im \cdot im + re \cdot re}\right| \cdot \sqrt{e^{\log \left(\sqrt[3]{im \cdot im + re \cdot re}\right)}}\right)\right) \cdot \frac{1}{\sqrt{\log 10}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\log re}{\log 10}\\ \end{array}\]
\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}
\begin{array}{l}
\mathbf{if}\;re \le -6.795235363351034 \cdot 10^{+137}:\\
\;\;\;\;\frac{\log \left(-re\right)}{\log 10}\\

\mathbf{elif}\;re \le 4.0586580656124443 \cdot 10^{+124}:\\
\;\;\;\;\left(\frac{1}{\sqrt{\log 10}} \cdot \log \left(\left|\sqrt[3]{im \cdot im + re \cdot re}\right| \cdot \sqrt{e^{\log \left(\sqrt[3]{im \cdot im + re \cdot re}\right)}}\right)\right) \cdot \frac{1}{\sqrt{\log 10}}\\

\mathbf{else}:\\
\;\;\;\;\frac{\log re}{\log 10}\\

\end{array}
double f(double re, double im) {
        double r2736632 = re;
        double r2736633 = r2736632 * r2736632;
        double r2736634 = im;
        double r2736635 = r2736634 * r2736634;
        double r2736636 = r2736633 + r2736635;
        double r2736637 = sqrt(r2736636);
        double r2736638 = log(r2736637);
        double r2736639 = 10.0;
        double r2736640 = log(r2736639);
        double r2736641 = r2736638 / r2736640;
        return r2736641;
}

double f(double re, double im) {
        double r2736642 = re;
        double r2736643 = -6.795235363351034e+137;
        bool r2736644 = r2736642 <= r2736643;
        double r2736645 = -r2736642;
        double r2736646 = log(r2736645);
        double r2736647 = 10.0;
        double r2736648 = log(r2736647);
        double r2736649 = r2736646 / r2736648;
        double r2736650 = 4.0586580656124443e+124;
        bool r2736651 = r2736642 <= r2736650;
        double r2736652 = 1.0;
        double r2736653 = sqrt(r2736648);
        double r2736654 = r2736652 / r2736653;
        double r2736655 = im;
        double r2736656 = r2736655 * r2736655;
        double r2736657 = r2736642 * r2736642;
        double r2736658 = r2736656 + r2736657;
        double r2736659 = cbrt(r2736658);
        double r2736660 = fabs(r2736659);
        double r2736661 = log(r2736659);
        double r2736662 = exp(r2736661);
        double r2736663 = sqrt(r2736662);
        double r2736664 = r2736660 * r2736663;
        double r2736665 = log(r2736664);
        double r2736666 = r2736654 * r2736665;
        double r2736667 = r2736666 * r2736654;
        double r2736668 = log(r2736642);
        double r2736669 = r2736668 / r2736648;
        double r2736670 = r2736651 ? r2736667 : r2736669;
        double r2736671 = r2736644 ? r2736649 : r2736670;
        return r2736671;
}

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 3 regimes
  2. if re < -6.795235363351034e+137

    1. Initial program 57.4

      \[\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\]
    2. Taylor expanded around -inf 7.7

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

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

    if -6.795235363351034e+137 < re < 4.0586580656124443e+124

    1. Initial program 21.1

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

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

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

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

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

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

      \[\leadsto \color{blue}{\frac{1}{\sqrt{\log 10}} \cdot \frac{\log \left(\left|\sqrt[3]{re \cdot re + im \cdot im}\right| \cdot \sqrt{\sqrt[3]{re \cdot re + im \cdot im}}\right)}{\sqrt{\log 10}}}\]
    10. Using strategy rm
    11. Applied div-inv21.0

      \[\leadsto \frac{1}{\sqrt{\log 10}} \cdot \color{blue}{\left(\log \left(\left|\sqrt[3]{re \cdot re + im \cdot im}\right| \cdot \sqrt{\sqrt[3]{re \cdot re + im \cdot im}}\right) \cdot \frac{1}{\sqrt{\log 10}}\right)}\]
    12. Using strategy rm
    13. Applied add-exp-log21.0

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

    if 4.0586580656124443e+124 < re

    1. Initial program 55.2

      \[\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\]
    2. Taylor expanded around inf 7.5

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

      \[\leadsto \color{blue}{\frac{\log re}{\log 10}}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification17.2

    \[\leadsto \begin{array}{l} \mathbf{if}\;re \le -6.795235363351034 \cdot 10^{+137}:\\ \;\;\;\;\frac{\log \left(-re\right)}{\log 10}\\ \mathbf{elif}\;re \le 4.0586580656124443 \cdot 10^{+124}:\\ \;\;\;\;\left(\frac{1}{\sqrt{\log 10}} \cdot \log \left(\left|\sqrt[3]{im \cdot im + re \cdot re}\right| \cdot \sqrt{e^{\log \left(\sqrt[3]{im \cdot im + re \cdot re}\right)}}\right)\right) \cdot \frac{1}{\sqrt{\log 10}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\log re}{\log 10}\\ \end{array}\]

Reproduce

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