Average Error: 31.4 → 18.7
Time: 1.1m
Precision: 64
\[\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0}{\log base \cdot \log base + 0 \cdot 0}\]
\[\begin{array}{l} \mathbf{if}\;im \le -1.3460069031813118 \cdot 10^{+154}:\\ \;\;\;\;\frac{\left(\sqrt{\log \left(-re\right)} \cdot \log base\right) \cdot \sqrt{\log \left(-re\right)}}{\log base \cdot \log base}\\ \mathbf{elif}\;im \le -5.570962160288898 \cdot 10^{-157}:\\ \;\;\;\;\frac{\log base \cdot \log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log base \cdot \log \left(\sqrt[3]{base}\right) + \log base \cdot \left(\log \left(\sqrt[3]{base}\right) + \log \left(\sqrt[3]{base}\right)\right)}\\ \mathbf{elif}\;im \le 4.1911202162953755 \cdot 10^{-45}:\\ \;\;\;\;\frac{1}{\frac{\log base}{\log \left(-re\right)}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\log base \cdot \log im}{\log base \cdot \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}{\log base \cdot \log base + 0 \cdot 0}
\begin{array}{l}
\mathbf{if}\;im \le -1.3460069031813118 \cdot 10^{+154}:\\
\;\;\;\;\frac{\left(\sqrt{\log \left(-re\right)} \cdot \log base\right) \cdot \sqrt{\log \left(-re\right)}}{\log base \cdot \log base}\\

\mathbf{elif}\;im \le -5.570962160288898 \cdot 10^{-157}:\\
\;\;\;\;\frac{\log base \cdot \log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log base \cdot \log \left(\sqrt[3]{base}\right) + \log base \cdot \left(\log \left(\sqrt[3]{base}\right) + \log \left(\sqrt[3]{base}\right)\right)}\\

\mathbf{elif}\;im \le 4.1911202162953755 \cdot 10^{-45}:\\
\;\;\;\;\frac{1}{\frac{\log base}{\log \left(-re\right)}}\\

\mathbf{else}:\\
\;\;\;\;\frac{\log base \cdot \log im}{\log base \cdot \log base}\\

\end{array}
double f(double re, double im, double base) {
        double r2101410 = re;
        double r2101411 = r2101410 * r2101410;
        double r2101412 = im;
        double r2101413 = r2101412 * r2101412;
        double r2101414 = r2101411 + r2101413;
        double r2101415 = sqrt(r2101414);
        double r2101416 = log(r2101415);
        double r2101417 = base;
        double r2101418 = log(r2101417);
        double r2101419 = r2101416 * r2101418;
        double r2101420 = atan2(r2101412, r2101410);
        double r2101421 = 0.0;
        double r2101422 = r2101420 * r2101421;
        double r2101423 = r2101419 + r2101422;
        double r2101424 = r2101418 * r2101418;
        double r2101425 = r2101421 * r2101421;
        double r2101426 = r2101424 + r2101425;
        double r2101427 = r2101423 / r2101426;
        return r2101427;
}

double f(double re, double im, double base) {
        double r2101428 = im;
        double r2101429 = -1.3460069031813118e+154;
        bool r2101430 = r2101428 <= r2101429;
        double r2101431 = re;
        double r2101432 = -r2101431;
        double r2101433 = log(r2101432);
        double r2101434 = sqrt(r2101433);
        double r2101435 = base;
        double r2101436 = log(r2101435);
        double r2101437 = r2101434 * r2101436;
        double r2101438 = r2101437 * r2101434;
        double r2101439 = r2101436 * r2101436;
        double r2101440 = r2101438 / r2101439;
        double r2101441 = -5.570962160288898e-157;
        bool r2101442 = r2101428 <= r2101441;
        double r2101443 = r2101431 * r2101431;
        double r2101444 = r2101428 * r2101428;
        double r2101445 = r2101443 + r2101444;
        double r2101446 = sqrt(r2101445);
        double r2101447 = log(r2101446);
        double r2101448 = r2101436 * r2101447;
        double r2101449 = cbrt(r2101435);
        double r2101450 = log(r2101449);
        double r2101451 = r2101436 * r2101450;
        double r2101452 = r2101450 + r2101450;
        double r2101453 = r2101436 * r2101452;
        double r2101454 = r2101451 + r2101453;
        double r2101455 = r2101448 / r2101454;
        double r2101456 = 4.1911202162953755e-45;
        bool r2101457 = r2101428 <= r2101456;
        double r2101458 = 1.0;
        double r2101459 = r2101436 / r2101433;
        double r2101460 = r2101458 / r2101459;
        double r2101461 = log(r2101428);
        double r2101462 = r2101436 * r2101461;
        double r2101463 = r2101462 / r2101439;
        double r2101464 = r2101457 ? r2101460 : r2101463;
        double r2101465 = r2101442 ? r2101455 : r2101464;
        double r2101466 = r2101430 ? r2101440 : r2101465;
        return r2101466;
}

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 im < -1.3460069031813118e+154

    1. Initial program 62.0

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

      \[\leadsto \color{blue}{\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base}{\log base \cdot \log base}}\]
    3. Taylor expanded around -inf 51.3

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

      \[\leadsto \frac{\log \color{blue}{\left(-re\right)} \cdot \log base}{\log base \cdot \log base}\]
    5. Using strategy rm
    6. Applied add-sqr-sqrt51.2

      \[\leadsto \frac{\color{blue}{\left(\sqrt{\log \left(-re\right)} \cdot \sqrt{\log \left(-re\right)}\right)} \cdot \log base}{\log base \cdot \log base}\]
    7. Applied associate-*l*51.2

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

    if -1.3460069031813118e+154 < im < -5.570962160288898e-157

    1. Initial program 15.5

      \[\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0}{\log base \cdot \log base + 0 \cdot 0}\]
    2. Simplified15.5

      \[\leadsto \color{blue}{\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base}{\log base \cdot \log base}}\]
    3. Using strategy rm
    4. Applied add-cube-cbrt15.5

      \[\leadsto \frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base}{\log base \cdot \log \color{blue}{\left(\left(\sqrt[3]{base} \cdot \sqrt[3]{base}\right) \cdot \sqrt[3]{base}\right)}}\]
    5. Applied log-prod15.5

      \[\leadsto \frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base}{\log base \cdot \color{blue}{\left(\log \left(\sqrt[3]{base} \cdot \sqrt[3]{base}\right) + \log \left(\sqrt[3]{base}\right)\right)}}\]
    6. Applied distribute-lft-in15.5

      \[\leadsto \frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base}{\color{blue}{\log base \cdot \log \left(\sqrt[3]{base} \cdot \sqrt[3]{base}\right) + \log base \cdot \log \left(\sqrt[3]{base}\right)}}\]
    7. Simplified15.5

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

    if -5.570962160288898e-157 < im < 4.1911202162953755e-45

    1. Initial program 26.9

      \[\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0}{\log base \cdot \log base + 0 \cdot 0}\]
    2. Simplified26.9

      \[\leadsto \color{blue}{\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base}{\log base \cdot \log base}}\]
    3. Taylor expanded around -inf 9.7

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

      \[\leadsto \frac{\log \color{blue}{\left(-re\right)} \cdot \log base}{\log base \cdot \log base}\]
    5. Using strategy rm
    6. Applied clear-num9.8

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

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

    if 4.1911202162953755e-45 < im

    1. Initial program 36.3

      \[\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0}{\log base \cdot \log base + 0 \cdot 0}\]
    2. Simplified36.3

      \[\leadsto \color{blue}{\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base}{\log base \cdot \log base}}\]
    3. Taylor expanded around 0 16.8

      \[\leadsto \frac{\color{blue}{\log base \cdot \log im}}{\log base \cdot \log base}\]
  3. Recombined 4 regimes into one program.
  4. Final simplification18.7

    \[\leadsto \begin{array}{l} \mathbf{if}\;im \le -1.3460069031813118 \cdot 10^{+154}:\\ \;\;\;\;\frac{\left(\sqrt{\log \left(-re\right)} \cdot \log base\right) \cdot \sqrt{\log \left(-re\right)}}{\log base \cdot \log base}\\ \mathbf{elif}\;im \le -5.570962160288898 \cdot 10^{-157}:\\ \;\;\;\;\frac{\log base \cdot \log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log base \cdot \log \left(\sqrt[3]{base}\right) + \log base \cdot \left(\log \left(\sqrt[3]{base}\right) + \log \left(\sqrt[3]{base}\right)\right)}\\ \mathbf{elif}\;im \le 4.1911202162953755 \cdot 10^{-45}:\\ \;\;\;\;\frac{1}{\frac{\log base}{\log \left(-re\right)}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\log base \cdot \log im}{\log base \cdot \log base}\\ \end{array}\]

Reproduce

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