Average Error: 32.0 → 19.4
Time: 8.1s
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 -4.621917751541981977598334530028228218202 \cdot 10^{85}:\\ \;\;\;\;\frac{\left(-1 \cdot \log \left(\frac{-1}{re}\right)\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({\left(\frac{1}{base}\right)}^{\frac{-1}{3}}\right)\right) + 0.0 \cdot 0.0}\\ \mathbf{elif}\;re \le -1.812646524830859456509520767717219521043 \cdot 10^{-110}:\\ \;\;\;\;\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}\\ \mathbf{elif}\;re \le 6.262720552833293504914230556530364862813 \cdot 10^{-252}:\\ \;\;\;\;\frac{\log im}{\log base}\\ \mathbf{elif}\;re \le 5.939275393622702106086644744957742041239 \cdot 10^{55}:\\ \;\;\;\;\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}\\ \mathbf{else}:\\ \;\;\;\;\frac{\log \left(\frac{1}{re}\right)}{\log \left(\frac{1}{base}\right)}\\ \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 -4.621917751541981977598334530028228218202 \cdot 10^{85}:\\
\;\;\;\;\frac{\left(-1 \cdot \log \left(\frac{-1}{re}\right)\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({\left(\frac{1}{base}\right)}^{\frac{-1}{3}}\right)\right) + 0.0 \cdot 0.0}\\

\mathbf{elif}\;re \le -1.812646524830859456509520767717219521043 \cdot 10^{-110}:\\
\;\;\;\;\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}\\

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

\mathbf{elif}\;re \le 5.939275393622702106086644744957742041239 \cdot 10^{55}:\\
\;\;\;\;\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}\\

\mathbf{else}:\\
\;\;\;\;\frac{\log \left(\frac{1}{re}\right)}{\log \left(\frac{1}{base}\right)}\\

\end{array}
double f(double re, double im, double base) {
        double r42677 = re;
        double r42678 = r42677 * r42677;
        double r42679 = im;
        double r42680 = r42679 * r42679;
        double r42681 = r42678 + r42680;
        double r42682 = sqrt(r42681);
        double r42683 = log(r42682);
        double r42684 = base;
        double r42685 = log(r42684);
        double r42686 = r42683 * r42685;
        double r42687 = atan2(r42679, r42677);
        double r42688 = 0.0;
        double r42689 = r42687 * r42688;
        double r42690 = r42686 + r42689;
        double r42691 = r42685 * r42685;
        double r42692 = r42688 * r42688;
        double r42693 = r42691 + r42692;
        double r42694 = r42690 / r42693;
        return r42694;
}

double f(double re, double im, double base) {
        double r42695 = re;
        double r42696 = -4.621917751541982e+85;
        bool r42697 = r42695 <= r42696;
        double r42698 = -1.0;
        double r42699 = r42698 / r42695;
        double r42700 = log(r42699);
        double r42701 = r42698 * r42700;
        double r42702 = base;
        double r42703 = log(r42702);
        double r42704 = r42701 * r42703;
        double r42705 = im;
        double r42706 = atan2(r42705, r42695);
        double r42707 = 0.0;
        double r42708 = r42706 * r42707;
        double r42709 = r42704 + r42708;
        double r42710 = 2.0;
        double r42711 = cbrt(r42702);
        double r42712 = log(r42711);
        double r42713 = r42710 * r42712;
        double r42714 = r42703 * r42713;
        double r42715 = 1.0;
        double r42716 = r42715 / r42702;
        double r42717 = -0.3333333333333333;
        double r42718 = pow(r42716, r42717);
        double r42719 = log(r42718);
        double r42720 = r42703 * r42719;
        double r42721 = r42714 + r42720;
        double r42722 = r42707 * r42707;
        double r42723 = r42721 + r42722;
        double r42724 = r42709 / r42723;
        double r42725 = -1.8126465248308595e-110;
        bool r42726 = r42695 <= r42725;
        double r42727 = r42695 * r42695;
        double r42728 = r42705 * r42705;
        double r42729 = r42727 + r42728;
        double r42730 = sqrt(r42729);
        double r42731 = log(r42730);
        double r42732 = r42731 * r42703;
        double r42733 = r42732 + r42708;
        double r42734 = r42703 * r42712;
        double r42735 = r42714 + r42734;
        double r42736 = r42735 + r42722;
        double r42737 = r42733 / r42736;
        double r42738 = 6.2627205528332935e-252;
        bool r42739 = r42695 <= r42738;
        double r42740 = log(r42705);
        double r42741 = r42740 / r42703;
        double r42742 = 5.939275393622702e+55;
        bool r42743 = r42695 <= r42742;
        double r42744 = r42715 / r42695;
        double r42745 = log(r42744);
        double r42746 = log(r42716);
        double r42747 = r42745 / r42746;
        double r42748 = r42743 ? r42737 : r42747;
        double r42749 = r42739 ? r42741 : r42748;
        double r42750 = r42726 ? r42737 : r42749;
        double r42751 = r42697 ? r42724 : r42750;
        return r42751;
}

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 < -4.621917751541982e+85

    1. Initial program 49.1

      \[\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-cbrt49.1

      \[\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-prod49.1

      \[\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-in49.1

      \[\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. Simplified49.1

      \[\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 49.1

      \[\leadsto \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 \color{blue}{\left({\left(\frac{1}{base}\right)}^{\frac{-1}{3}}\right)}\right) + 0.0 \cdot 0.0}\]
    8. Taylor expanded around -inf 64.0

      \[\leadsto \frac{\color{blue}{-1 \cdot \left(\left(\log -1 - \log \left(\frac{-1}{base}\right)\right) \cdot \log \left(\frac{-1}{re}\right)\right)} + \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({\left(\frac{1}{base}\right)}^{\frac{-1}{3}}\right)\right) + 0.0 \cdot 0.0}\]
    9. Simplified9.2

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

    if -4.621917751541982e+85 < re < -1.8126465248308595e-110 or 6.2627205528332935e-252 < re < 5.939275393622702e+55

    1. Initial program 19.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-cbrt19.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-prod19.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-in19.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. Simplified19.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}\]

    if -1.8126465248308595e-110 < re < 6.2627205528332935e-252

    1. Initial program 28.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 0 36.8

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

    if 5.939275393622702e+55 < re

    1. Initial program 46.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 10.9

      \[\leadsto \color{blue}{\frac{\log \left(\frac{1}{re}\right)}{\log \left(\frac{1}{base}\right)}}\]
  3. Recombined 4 regimes into one program.
  4. Final simplification19.4

    \[\leadsto \begin{array}{l} \mathbf{if}\;re \le -4.621917751541981977598334530028228218202 \cdot 10^{85}:\\ \;\;\;\;\frac{\left(-1 \cdot \log \left(\frac{-1}{re}\right)\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({\left(\frac{1}{base}\right)}^{\frac{-1}{3}}\right)\right) + 0.0 \cdot 0.0}\\ \mathbf{elif}\;re \le -1.812646524830859456509520767717219521043 \cdot 10^{-110}:\\ \;\;\;\;\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}\\ \mathbf{elif}\;re \le 6.262720552833293504914230556530364862813 \cdot 10^{-252}:\\ \;\;\;\;\frac{\log im}{\log base}\\ \mathbf{elif}\;re \le 5.939275393622702106086644744957742041239 \cdot 10^{55}:\\ \;\;\;\;\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}\\ \mathbf{else}:\\ \;\;\;\;\frac{\log \left(\frac{1}{re}\right)}{\log \left(\frac{1}{base}\right)}\\ \end{array}\]

Reproduce

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