Average Error: 32.0 → 17.6
Time: 12.8s
Precision: 64
\[\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\log base \cdot \log base + 0.0 \cdot 0.0}\]
\[\begin{array}{l} \mathbf{if}\;re \le -8.2529321969344202 \cdot 10^{97}:\\ \;\;\;\;\frac{1}{\sqrt{0.0 \cdot 0.0 + {\left(\log base\right)}^{2}}} \cdot \frac{\tan^{-1}_* \frac{im}{re} \cdot 0.0 + \log base \cdot \log \left(-re\right)}{\sqrt{0.0 \cdot 0.0 + {\left(\log base\right)}^{2}}}\\ \mathbf{elif}\;re \le -7.7296027907141122 \cdot 10^{-226}:\\ \;\;\;\;\left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0\right) \cdot \frac{1}{0.0 \cdot 0.0 + {\left(\log base\right)}^{2}}\\ \mathbf{elif}\;re \le 6.31099625192104387 \cdot 10^{-197}:\\ \;\;\;\;\frac{\log im}{\log base}\\ \mathbf{elif}\;re \le 3.1293650531822621 \cdot 10^{107}:\\ \;\;\;\;\frac{\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 {\left(\log base\right)}^{2} - \left(\tan^{-1}_* \frac{im}{re} \cdot 0.0\right) \cdot \left(\tan^{-1}_* \frac{im}{re} \cdot 0.0\right)}{0.0 \cdot 0.0 + {\left(\log base\right)}^{2}}}{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base - \tan^{-1}_* \frac{im}{re} \cdot 0.0}\\ \mathbf{else}:\\ \;\;\;\;\frac{-\log re}{-\log base}\\ \end{array}\]
\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\log base \cdot \log base + 0.0 \cdot 0.0}
\begin{array}{l}
\mathbf{if}\;re \le -8.2529321969344202 \cdot 10^{97}:\\
\;\;\;\;\frac{1}{\sqrt{0.0 \cdot 0.0 + {\left(\log base\right)}^{2}}} \cdot \frac{\tan^{-1}_* \frac{im}{re} \cdot 0.0 + \log base \cdot \log \left(-re\right)}{\sqrt{0.0 \cdot 0.0 + {\left(\log base\right)}^{2}}}\\

\mathbf{elif}\;re \le -7.7296027907141122 \cdot 10^{-226}:\\
\;\;\;\;\left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0\right) \cdot \frac{1}{0.0 \cdot 0.0 + {\left(\log base\right)}^{2}}\\

\mathbf{elif}\;re \le 6.31099625192104387 \cdot 10^{-197}:\\
\;\;\;\;\frac{\log im}{\log base}\\

\mathbf{elif}\;re \le 3.1293650531822621 \cdot 10^{107}:\\
\;\;\;\;\frac{\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 {\left(\log base\right)}^{2} - \left(\tan^{-1}_* \frac{im}{re} \cdot 0.0\right) \cdot \left(\tan^{-1}_* \frac{im}{re} \cdot 0.0\right)}{0.0 \cdot 0.0 + {\left(\log base\right)}^{2}}}{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base - \tan^{-1}_* \frac{im}{re} \cdot 0.0}\\

\mathbf{else}:\\
\;\;\;\;\frac{-\log re}{-\log base}\\

\end{array}
double f(double re, double im, double base) {
        double r42476 = re;
        double r42477 = r42476 * r42476;
        double r42478 = im;
        double r42479 = r42478 * r42478;
        double r42480 = r42477 + r42479;
        double r42481 = sqrt(r42480);
        double r42482 = log(r42481);
        double r42483 = base;
        double r42484 = log(r42483);
        double r42485 = r42482 * r42484;
        double r42486 = atan2(r42478, r42476);
        double r42487 = 0.0;
        double r42488 = r42486 * r42487;
        double r42489 = r42485 + r42488;
        double r42490 = r42484 * r42484;
        double r42491 = r42487 * r42487;
        double r42492 = r42490 + r42491;
        double r42493 = r42489 / r42492;
        return r42493;
}

double f(double re, double im, double base) {
        double r42494 = re;
        double r42495 = -8.25293219693442e+97;
        bool r42496 = r42494 <= r42495;
        double r42497 = 1.0;
        double r42498 = 0.0;
        double r42499 = r42498 * r42498;
        double r42500 = base;
        double r42501 = log(r42500);
        double r42502 = 2.0;
        double r42503 = pow(r42501, r42502);
        double r42504 = r42499 + r42503;
        double r42505 = sqrt(r42504);
        double r42506 = r42497 / r42505;
        double r42507 = im;
        double r42508 = atan2(r42507, r42494);
        double r42509 = r42508 * r42498;
        double r42510 = -r42494;
        double r42511 = log(r42510);
        double r42512 = r42501 * r42511;
        double r42513 = r42509 + r42512;
        double r42514 = r42513 / r42505;
        double r42515 = r42506 * r42514;
        double r42516 = -7.729602790714112e-226;
        bool r42517 = r42494 <= r42516;
        double r42518 = r42494 * r42494;
        double r42519 = r42507 * r42507;
        double r42520 = r42518 + r42519;
        double r42521 = sqrt(r42520);
        double r42522 = log(r42521);
        double r42523 = r42522 * r42501;
        double r42524 = r42523 + r42509;
        double r42525 = r42497 / r42504;
        double r42526 = r42524 * r42525;
        double r42527 = 6.310996251921044e-197;
        bool r42528 = r42494 <= r42527;
        double r42529 = log(r42507);
        double r42530 = r42529 / r42501;
        double r42531 = 3.129365053182262e+107;
        bool r42532 = r42494 <= r42531;
        double r42533 = r42522 * r42522;
        double r42534 = r42533 * r42503;
        double r42535 = r42509 * r42509;
        double r42536 = r42534 - r42535;
        double r42537 = r42536 / r42504;
        double r42538 = r42523 - r42509;
        double r42539 = r42537 / r42538;
        double r42540 = log(r42494);
        double r42541 = -r42540;
        double r42542 = -r42501;
        double r42543 = r42541 / r42542;
        double r42544 = r42532 ? r42539 : r42543;
        double r42545 = r42528 ? r42530 : r42544;
        double r42546 = r42517 ? r42526 : r42545;
        double r42547 = r42496 ? r42515 : r42546;
        return r42547;
}

Error

Bits error versus re

Bits error versus im

Bits error versus base

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 5 regimes
  2. if re < -8.25293219693442e+97

    1. Initial program 51.4

      \[\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\log base \cdot \log base + 0.0 \cdot 0.0}\]
    2. Using strategy rm
    3. Applied add-sqr-sqrt51.4

      \[\leadsto \frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\color{blue}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0} \cdot \sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}}\]
    4. Applied *-un-lft-identity51.4

      \[\leadsto \frac{\color{blue}{1 \cdot \left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0\right)}}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0} \cdot \sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}\]
    5. Applied times-frac51.4

      \[\leadsto \color{blue}{\frac{1}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}} \cdot \frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}}\]
    6. Simplified51.4

      \[\leadsto \color{blue}{\frac{1}{\sqrt{0.0 \cdot 0.0 + {\left(\log base\right)}^{2}}}} \cdot \frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}\]
    7. Simplified51.4

      \[\leadsto \frac{1}{\sqrt{0.0 \cdot 0.0 + {\left(\log base\right)}^{2}}} \cdot \color{blue}{\frac{\tan^{-1}_* \frac{im}{re} \cdot 0.0 + \log base \cdot \log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\sqrt{0.0 \cdot 0.0 + {\left(\log base\right)}^{2}}}}\]
    8. Taylor expanded around -inf 8.1

      \[\leadsto \frac{1}{\sqrt{0.0 \cdot 0.0 + {\left(\log base\right)}^{2}}} \cdot \frac{\tan^{-1}_* \frac{im}{re} \cdot 0.0 + \log base \cdot \log \color{blue}{\left(-1 \cdot re\right)}}{\sqrt{0.0 \cdot 0.0 + {\left(\log base\right)}^{2}}}\]
    9. Simplified8.1

      \[\leadsto \frac{1}{\sqrt{0.0 \cdot 0.0 + {\left(\log base\right)}^{2}}} \cdot \frac{\tan^{-1}_* \frac{im}{re} \cdot 0.0 + \log base \cdot \log \color{blue}{\left(-re\right)}}{\sqrt{0.0 \cdot 0.0 + {\left(\log base\right)}^{2}}}\]

    if -8.25293219693442e+97 < re < -7.729602790714112e-226

    1. Initial program 20.2

      \[\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\log base \cdot \log base + 0.0 \cdot 0.0}\]
    2. Using strategy rm
    3. Applied div-inv20.3

      \[\leadsto \color{blue}{\left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0\right) \cdot \frac{1}{\log base \cdot \log base + 0.0 \cdot 0.0}}\]
    4. Simplified20.3

      \[\leadsto \left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0\right) \cdot \color{blue}{\frac{1}{0.0 \cdot 0.0 + {\left(\log base\right)}^{2}}}\]

    if -7.729602790714112e-226 < re < 6.310996251921044e-197

    1. Initial program 32.3

      \[\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\log base \cdot \log base + 0.0 \cdot 0.0}\]
    2. Taylor expanded around 0 34.5

      \[\leadsto \color{blue}{\frac{\log im}{\log base}}\]

    if 6.310996251921044e-197 < re < 3.129365053182262e+107

    1. Initial program 17.0

      \[\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\log base \cdot \log base + 0.0 \cdot 0.0}\]
    2. Using strategy rm
    3. Applied div-inv17.1

      \[\leadsto \color{blue}{\left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0\right) \cdot \frac{1}{\log base \cdot \log base + 0.0 \cdot 0.0}}\]
    4. Simplified17.1

      \[\leadsto \left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0\right) \cdot \color{blue}{\frac{1}{0.0 \cdot 0.0 + {\left(\log base\right)}^{2}}}\]
    5. Using strategy rm
    6. Applied flip-+17.1

      \[\leadsto \color{blue}{\frac{\left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base\right) \cdot \left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base\right) - \left(\tan^{-1}_* \frac{im}{re} \cdot 0.0\right) \cdot \left(\tan^{-1}_* \frac{im}{re} \cdot 0.0\right)}{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base - \tan^{-1}_* \frac{im}{re} \cdot 0.0}} \cdot \frac{1}{0.0 \cdot 0.0 + {\left(\log base\right)}^{2}}\]
    7. Applied associate-*l/17.1

      \[\leadsto \color{blue}{\frac{\left(\left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base\right) \cdot \left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base\right) - \left(\tan^{-1}_* \frac{im}{re} \cdot 0.0\right) \cdot \left(\tan^{-1}_* \frac{im}{re} \cdot 0.0\right)\right) \cdot \frac{1}{0.0 \cdot 0.0 + {\left(\log base\right)}^{2}}}{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base - \tan^{-1}_* \frac{im}{re} \cdot 0.0}}\]
    8. Simplified17.1

      \[\leadsto \frac{\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 {\left(\log base\right)}^{2} - \left(\tan^{-1}_* \frac{im}{re} \cdot 0.0\right) \cdot \left(\tan^{-1}_* \frac{im}{re} \cdot 0.0\right)}{0.0 \cdot 0.0 + {\left(\log base\right)}^{2}}}}{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base - \tan^{-1}_* \frac{im}{re} \cdot 0.0}\]

    if 3.129365053182262e+107 < re

    1. Initial program 53.3

      \[\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\log base \cdot \log base + 0.0 \cdot 0.0}\]
    2. Taylor expanded around inf 8.4

      \[\leadsto \color{blue}{\frac{\log \left(\frac{1}{re}\right)}{\log \left(\frac{1}{base}\right)}}\]
    3. Simplified8.4

      \[\leadsto \color{blue}{\frac{-\log re}{-\log base}}\]
  3. Recombined 5 regimes into one program.
  4. Final simplification17.6

    \[\leadsto \begin{array}{l} \mathbf{if}\;re \le -8.2529321969344202 \cdot 10^{97}:\\ \;\;\;\;\frac{1}{\sqrt{0.0 \cdot 0.0 + {\left(\log base\right)}^{2}}} \cdot \frac{\tan^{-1}_* \frac{im}{re} \cdot 0.0 + \log base \cdot \log \left(-re\right)}{\sqrt{0.0 \cdot 0.0 + {\left(\log base\right)}^{2}}}\\ \mathbf{elif}\;re \le -7.7296027907141122 \cdot 10^{-226}:\\ \;\;\;\;\left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0\right) \cdot \frac{1}{0.0 \cdot 0.0 + {\left(\log base\right)}^{2}}\\ \mathbf{elif}\;re \le 6.31099625192104387 \cdot 10^{-197}:\\ \;\;\;\;\frac{\log im}{\log base}\\ \mathbf{elif}\;re \le 3.1293650531822621 \cdot 10^{107}:\\ \;\;\;\;\frac{\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 {\left(\log base\right)}^{2} - \left(\tan^{-1}_* \frac{im}{re} \cdot 0.0\right) \cdot \left(\tan^{-1}_* \frac{im}{re} \cdot 0.0\right)}{0.0 \cdot 0.0 + {\left(\log base\right)}^{2}}}{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base - \tan^{-1}_* \frac{im}{re} \cdot 0.0}\\ \mathbf{else}:\\ \;\;\;\;\frac{-\log re}{-\log base}\\ \end{array}\]

Reproduce

herbie shell --seed 2020047 
(FPCore (re im base)
  :name "math.log/2 on complex, real part"
  :precision binary64
  (/ (+ (* (log (sqrt (+ (* re re) (* im im)))) (log base)) (* (atan2 im re) 0.0)) (+ (* (log base) (log base)) (* 0.0 0.0))))