Average Error: 31.0 → 17.7
Time: 45.9s
Precision: 64
\[\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\]
\[\begin{array}{l} \mathbf{if}\;re \le -1.6928459539323875 \cdot 10^{+124}:\\ \;\;\;\;\left(\sqrt{\frac{1}{\log 10}} \cdot \log \left(\frac{-1}{re}\right)\right) \cdot \frac{-1}{\sqrt{\log 10}}\\ \mathbf{elif}\;re \le 1.1103751941918137 \cdot 10^{+63}:\\ \;\;\;\;\sqrt[3]{\frac{\left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log \left(\sqrt{re \cdot re + im \cdot im}\right)\right) \cdot \log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10 \cdot \sqrt{\log 10}}} \cdot \frac{1}{\sqrt{\log 10}}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \left(\log re \cdot \sqrt{\frac{1}{\log 10}}\right)\\ \end{array}\]
double f(double re, double im) {
        double r1379426 = re;
        double r1379427 = r1379426 * r1379426;
        double r1379428 = im;
        double r1379429 = r1379428 * r1379428;
        double r1379430 = r1379427 + r1379429;
        double r1379431 = sqrt(r1379430);
        double r1379432 = log(r1379431);
        double r1379433 = 10.0;
        double r1379434 = log(r1379433);
        double r1379435 = r1379432 / r1379434;
        return r1379435;
}

double f(double re, double im) {
        double r1379436 = re;
        double r1379437 = -1.6928459539323875e+124;
        bool r1379438 = r1379436 <= r1379437;
        double r1379439 = 1.0;
        double r1379440 = 10.0;
        double r1379441 = log(r1379440);
        double r1379442 = r1379439 / r1379441;
        double r1379443 = sqrt(r1379442);
        double r1379444 = -1.0;
        double r1379445 = r1379444 / r1379436;
        double r1379446 = log(r1379445);
        double r1379447 = r1379443 * r1379446;
        double r1379448 = sqrt(r1379441);
        double r1379449 = r1379444 / r1379448;
        double r1379450 = r1379447 * r1379449;
        double r1379451 = 1.1103751941918137e+63;
        bool r1379452 = r1379436 <= r1379451;
        double r1379453 = r1379436 * r1379436;
        double r1379454 = im;
        double r1379455 = r1379454 * r1379454;
        double r1379456 = r1379453 + r1379455;
        double r1379457 = sqrt(r1379456);
        double r1379458 = log(r1379457);
        double r1379459 = r1379458 * r1379458;
        double r1379460 = r1379459 * r1379458;
        double r1379461 = r1379441 * r1379448;
        double r1379462 = r1379460 / r1379461;
        double r1379463 = cbrt(r1379462);
        double r1379464 = r1379439 / r1379448;
        double r1379465 = r1379463 * r1379464;
        double r1379466 = log(r1379436);
        double r1379467 = r1379466 * r1379443;
        double r1379468 = r1379464 * r1379467;
        double r1379469 = r1379452 ? r1379465 : r1379468;
        double r1379470 = r1379438 ? r1379450 : r1379469;
        return r1379470;
}

\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}
\begin{array}{l}
\mathbf{if}\;re \le -1.6928459539323875 \cdot 10^{+124}:\\
\;\;\;\;\left(\sqrt{\frac{1}{\log 10}} \cdot \log \left(\frac{-1}{re}\right)\right) \cdot \frac{-1}{\sqrt{\log 10}}\\

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

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

\end{array}

Error

Bits error versus re

Bits error versus im

Derivation

  1. Split input into 3 regimes
  2. if re < -1.6928459539323875e+124

    1. Initial program 54.5

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

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

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

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

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

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

    if -1.6928459539323875e+124 < re < 1.1103751941918137e+63

    1. Initial program 21.6

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

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

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

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

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

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

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

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

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

    if 1.1103751941918137e+63 < re

    1. Initial program 45.2

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

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

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

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

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

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

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

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

Reproduce

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