Average Error: 31.9 → 18.1
Time: 13.2s
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 -3.678553877806604 \cdot 10^{41}:\\ \;\;\;\;\frac{1}{\frac{-\log base}{\log \left(\frac{-1}{re}\right)}}\\ \mathbf{elif}\;re \le 4.69081280904729871 \cdot 10^{-246}:\\ \;\;\;\;\frac{1}{\frac{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{elif}\;re \le 4.4235180232042555 \cdot 10^{-227} \lor \neg \left(re \le 6.589229227697289 \cdot 10^{74}\right):\\ \;\;\;\;\frac{\log re \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\left(\log base \cdot \left(2 \cdot \log \left(\sqrt[3]{base}\right)\right) + \log base \cdot \log \left(\sqrt[3]{base}\right)\right) + 0.0 \cdot 0.0}\\ \mathbf{else}:\\ \;\;\;\;\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\left(\log base \cdot \left(2 \cdot \log \left(\sqrt[3]{base}\right)\right) + \log base \cdot \log \left(\sqrt[3]{base}\right)\right) + 0.0 \cdot 0.0}\\ \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 -3.678553877806604 \cdot 10^{41}:\\
\;\;\;\;\frac{1}{\frac{-\log base}{\log \left(\frac{-1}{re}\right)}}\\

\mathbf{elif}\;re \le 4.69081280904729871 \cdot 10^{-246}:\\
\;\;\;\;\frac{1}{\frac{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{elif}\;re \le 4.4235180232042555 \cdot 10^{-227} \lor \neg \left(re \le 6.589229227697289 \cdot 10^{74}\right):\\
\;\;\;\;\frac{\log re \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\left(\log base \cdot \left(2 \cdot \log \left(\sqrt[3]{base}\right)\right) + \log base \cdot \log \left(\sqrt[3]{base}\right)\right) + 0.0 \cdot 0.0}\\

\mathbf{else}:\\
\;\;\;\;\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\left(\log base \cdot \left(2 \cdot \log \left(\sqrt[3]{base}\right)\right) + \log base \cdot \log \left(\sqrt[3]{base}\right)\right) + 0.0 \cdot 0.0}\\

\end{array}
double f(double re, double im, double base) {
        double r53448 = re;
        double r53449 = r53448 * r53448;
        double r53450 = im;
        double r53451 = r53450 * r53450;
        double r53452 = r53449 + r53451;
        double r53453 = sqrt(r53452);
        double r53454 = log(r53453);
        double r53455 = base;
        double r53456 = log(r53455);
        double r53457 = r53454 * r53456;
        double r53458 = atan2(r53450, r53448);
        double r53459 = 0.0;
        double r53460 = r53458 * r53459;
        double r53461 = r53457 + r53460;
        double r53462 = r53456 * r53456;
        double r53463 = r53459 * r53459;
        double r53464 = r53462 + r53463;
        double r53465 = r53461 / r53464;
        return r53465;
}

double f(double re, double im, double base) {
        double r53466 = re;
        double r53467 = -3.6785538778066045e+41;
        bool r53468 = r53466 <= r53467;
        double r53469 = 1.0;
        double r53470 = base;
        double r53471 = log(r53470);
        double r53472 = -r53471;
        double r53473 = -1.0;
        double r53474 = r53473 / r53466;
        double r53475 = log(r53474);
        double r53476 = r53472 / r53475;
        double r53477 = r53469 / r53476;
        double r53478 = 4.690812809047299e-246;
        bool r53479 = r53466 <= r53478;
        double r53480 = 0.0;
        double r53481 = r53480 * r53480;
        double r53482 = 2.0;
        double r53483 = pow(r53471, r53482);
        double r53484 = r53481 + r53483;
        double r53485 = r53466 * r53466;
        double r53486 = im;
        double r53487 = r53486 * r53486;
        double r53488 = r53485 + r53487;
        double r53489 = sqrt(r53488);
        double r53490 = log(r53489);
        double r53491 = r53490 * r53471;
        double r53492 = atan2(r53486, r53466);
        double r53493 = r53492 * r53480;
        double r53494 = r53491 + r53493;
        double r53495 = r53484 / r53494;
        double r53496 = r53469 / r53495;
        double r53497 = 4.423518023204255e-227;
        bool r53498 = r53466 <= r53497;
        double r53499 = 6.589229227697289e+74;
        bool r53500 = r53466 <= r53499;
        double r53501 = !r53500;
        bool r53502 = r53498 || r53501;
        double r53503 = log(r53466);
        double r53504 = r53503 * r53471;
        double r53505 = r53504 + r53493;
        double r53506 = cbrt(r53470);
        double r53507 = log(r53506);
        double r53508 = r53482 * r53507;
        double r53509 = r53471 * r53508;
        double r53510 = r53471 * r53507;
        double r53511 = r53509 + r53510;
        double r53512 = r53511 + r53481;
        double r53513 = r53505 / r53512;
        double r53514 = r53494 / r53512;
        double r53515 = r53502 ? r53513 : r53514;
        double r53516 = r53479 ? r53496 : r53515;
        double r53517 = r53468 ? r53477 : r53516;
        return r53517;
}

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 4 regimes
  2. if re < -3.6785538778066045e+41

    1. Initial program 43.6

      \[\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 clear-num43.6

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

      \[\leadsto \frac{1}{\color{blue}{\frac{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}}}\]
    5. Taylor expanded around -inf 64.0

      \[\leadsto \frac{1}{\color{blue}{-1 \cdot \frac{\log -1 - \log \left(\frac{-1}{base}\right)}{\log \left(\frac{-1}{re}\right)}}}\]
    6. Simplified11.4

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

    if -3.6785538778066045e+41 < re < 4.690812809047299e-246

    1. Initial program 23.8

      \[\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 clear-num23.8

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

      \[\leadsto \frac{1}{\color{blue}{\frac{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 4.690812809047299e-246 < re < 4.423518023204255e-227 or 6.589229227697289e+74 < re

    1. Initial program 46.5

      \[\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-cube-cbrt46.6

      \[\leadsto \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 \color{blue}{\left(\left(\sqrt[3]{base} \cdot \sqrt[3]{base}\right) \cdot \sqrt[3]{base}\right)} + 0.0 \cdot 0.0}\]
    4. Applied log-prod46.6

      \[\leadsto \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 \color{blue}{\left(\log \left(\sqrt[3]{base} \cdot \sqrt[3]{base}\right) + \log \left(\sqrt[3]{base}\right)\right)} + 0.0 \cdot 0.0}\]
    5. Applied distribute-lft-in46.6

      \[\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}{\left(\log base \cdot \log \left(\sqrt[3]{base} \cdot \sqrt[3]{base}\right) + \log base \cdot \log \left(\sqrt[3]{base}\right)\right)} + 0.0 \cdot 0.0}\]
    6. Simplified46.6

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

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

    if 4.423518023204255e-227 < re < 6.589229227697289e+74

    1. Initial program 20.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-cube-cbrt20.4

      \[\leadsto \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 \color{blue}{\left(\left(\sqrt[3]{base} \cdot \sqrt[3]{base}\right) \cdot \sqrt[3]{base}\right)} + 0.0 \cdot 0.0}\]
    4. Applied log-prod20.4

      \[\leadsto \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 \color{blue}{\left(\log \left(\sqrt[3]{base} \cdot \sqrt[3]{base}\right) + \log \left(\sqrt[3]{base}\right)\right)} + 0.0 \cdot 0.0}\]
    5. Applied distribute-lft-in20.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}{\left(\log base \cdot \log \left(\sqrt[3]{base} \cdot \sqrt[3]{base}\right) + \log base \cdot \log \left(\sqrt[3]{base}\right)\right)} + 0.0 \cdot 0.0}\]
    6. Simplified20.4

      \[\leadsto \frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\left(\color{blue}{\log base \cdot \left(2 \cdot \log \left(\sqrt[3]{base}\right)\right)} + \log base \cdot \log \left(\sqrt[3]{base}\right)\right) + 0.0 \cdot 0.0}\]
  3. Recombined 4 regimes into one program.
  4. Final simplification18.1

    \[\leadsto \begin{array}{l} \mathbf{if}\;re \le -3.678553877806604 \cdot 10^{41}:\\ \;\;\;\;\frac{1}{\frac{-\log base}{\log \left(\frac{-1}{re}\right)}}\\ \mathbf{elif}\;re \le 4.69081280904729871 \cdot 10^{-246}:\\ \;\;\;\;\frac{1}{\frac{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{elif}\;re \le 4.4235180232042555 \cdot 10^{-227} \lor \neg \left(re \le 6.589229227697289 \cdot 10^{74}\right):\\ \;\;\;\;\frac{\log re \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\left(\log base \cdot \left(2 \cdot \log \left(\sqrt[3]{base}\right)\right) + \log base \cdot \log \left(\sqrt[3]{base}\right)\right) + 0.0 \cdot 0.0}\\ \mathbf{else}:\\ \;\;\;\;\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\left(\log base \cdot \left(2 \cdot \log \left(\sqrt[3]{base}\right)\right) + \log base \cdot \log \left(\sqrt[3]{base}\right)\right) + 0.0 \cdot 0.0}\\ \end{array}\]

Reproduce

herbie shell --seed 2020046 
(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))))