Average Error: 31.8 → 18.2
Time: 20.3s
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 -1.26668856387439741 \cdot 10^{75}:\\ \;\;\;\;\frac{-\log \left(\frac{-1}{re}\right)}{\log base}\\ \mathbf{elif}\;re \le -2.4769300503399314 \cdot 10^{-193}:\\ \;\;\;\;\frac{1}{\frac{{\left(\log base\right)}^{2} + 0.0 \cdot 0.0}{\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)} \cdot \left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base - \tan^{-1}_* \frac{im}{re} \cdot 0.0\right)}\\ \mathbf{elif}\;re \le -8.12878475243222549 \cdot 10^{-249}:\\ \;\;\;\;\frac{\log im}{\log base}\\ \mathbf{elif}\;re \le 268683.768358791072:\\ \;\;\;\;\frac{1}{\frac{{\left(\log base\right)}^{2} + 0.0 \cdot 0.0}{\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)} \cdot \left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base - \tan^{-1}_* \frac{im}{re} \cdot 0.0\right)}\\ \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 -1.26668856387439741 \cdot 10^{75}:\\
\;\;\;\;\frac{-\log \left(\frac{-1}{re}\right)}{\log base}\\

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

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

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

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

\end{array}
double f(double re, double im, double base) {
        double r33547 = re;
        double r33548 = r33547 * r33547;
        double r33549 = im;
        double r33550 = r33549 * r33549;
        double r33551 = r33548 + r33550;
        double r33552 = sqrt(r33551);
        double r33553 = log(r33552);
        double r33554 = base;
        double r33555 = log(r33554);
        double r33556 = r33553 * r33555;
        double r33557 = atan2(r33549, r33547);
        double r33558 = 0.0;
        double r33559 = r33557 * r33558;
        double r33560 = r33556 + r33559;
        double r33561 = r33555 * r33555;
        double r33562 = r33558 * r33558;
        double r33563 = r33561 + r33562;
        double r33564 = r33560 / r33563;
        return r33564;
}

double f(double re, double im, double base) {
        double r33565 = re;
        double r33566 = -1.2666885638743974e+75;
        bool r33567 = r33565 <= r33566;
        double r33568 = -1.0;
        double r33569 = r33568 / r33565;
        double r33570 = log(r33569);
        double r33571 = -r33570;
        double r33572 = base;
        double r33573 = log(r33572);
        double r33574 = r33571 / r33573;
        double r33575 = -2.4769300503399314e-193;
        bool r33576 = r33565 <= r33575;
        double r33577 = 1.0;
        double r33578 = 2.0;
        double r33579 = pow(r33573, r33578);
        double r33580 = 0.0;
        double r33581 = r33580 * r33580;
        double r33582 = r33579 + r33581;
        double r33583 = r33565 * r33565;
        double r33584 = im;
        double r33585 = r33584 * r33584;
        double r33586 = r33583 + r33585;
        double r33587 = sqrt(r33586);
        double r33588 = log(r33587);
        double r33589 = r33588 * r33588;
        double r33590 = r33589 * r33579;
        double r33591 = atan2(r33584, r33565);
        double r33592 = r33591 * r33580;
        double r33593 = r33592 * r33592;
        double r33594 = r33590 - r33593;
        double r33595 = r33582 / r33594;
        double r33596 = r33588 * r33573;
        double r33597 = r33596 - r33592;
        double r33598 = r33595 * r33597;
        double r33599 = r33577 / r33598;
        double r33600 = -8.128784752432225e-249;
        bool r33601 = r33565 <= r33600;
        double r33602 = log(r33584);
        double r33603 = r33602 / r33573;
        double r33604 = 268683.7683587911;
        bool r33605 = r33565 <= r33604;
        double r33606 = log(r33565);
        double r33607 = -r33606;
        double r33608 = -r33573;
        double r33609 = r33607 / r33608;
        double r33610 = r33605 ? r33599 : r33609;
        double r33611 = r33601 ? r33603 : r33610;
        double r33612 = r33576 ? r33599 : r33611;
        double r33613 = r33567 ? r33574 : r33612;
        return r33613;
}

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 < -1.2666885638743974e+75

    1. Initial program 46.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. Taylor expanded around -inf 64.0

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

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

    if -1.2666885638743974e+75 < re < -2.4769300503399314e-193 or -8.128784752432225e-249 < re < 268683.7683587911

    1. Initial program 22.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 clear-num22.0

      \[\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. Simplified22.0

      \[\leadsto \frac{1}{\color{blue}{\frac{{\left(\log base\right)}^{2} + 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}}}\]
    5. Using strategy rm
    6. Applied flip-+22.1

      \[\leadsto \frac{1}{\frac{{\left(\log base\right)}^{2} + 0.0 \cdot 0.0}{\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}}}}\]
    7. Applied associate-/r/22.1

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

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

    if -2.4769300503399314e-193 < re < -8.128784752432225e-249

    1. Initial program 32.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. Taylor expanded around 0 36.5

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

    if 268683.7683587911 < re

    1. Initial program 41.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. Taylor expanded around inf 12.5

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;re \le -1.26668856387439741 \cdot 10^{75}:\\ \;\;\;\;\frac{-\log \left(\frac{-1}{re}\right)}{\log base}\\ \mathbf{elif}\;re \le -2.4769300503399314 \cdot 10^{-193}:\\ \;\;\;\;\frac{1}{\frac{{\left(\log base\right)}^{2} + 0.0 \cdot 0.0}{\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)} \cdot \left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base - \tan^{-1}_* \frac{im}{re} \cdot 0.0\right)}\\ \mathbf{elif}\;re \le -8.12878475243222549 \cdot 10^{-249}:\\ \;\;\;\;\frac{\log im}{\log base}\\ \mathbf{elif}\;re \le 268683.768358791072:\\ \;\;\;\;\frac{1}{\frac{{\left(\log base\right)}^{2} + 0.0 \cdot 0.0}{\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)} \cdot \left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base - \tan^{-1}_* \frac{im}{re} \cdot 0.0\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{-\log re}{-\log base}\\ \end{array}\]

Reproduce

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