Average Error: 31.4 → 17.6
Time: 7.9s
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 -2.296946323958964096679477790246928648788 \cdot 10^{83}:\\ \;\;\;\;\frac{\frac{\left(-1 \cdot \log \left(\frac{-1}{re}\right)\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}\\ \mathbf{elif}\;re \le 3.074698948448111476331693807825779933874 \cdot 10^{124}:\\ \;\;\;\;\frac{1}{\sqrt{\left(\log base \cdot \left(2 \cdot \log \left({base}^{\frac{1}{3}}\right)\right) + \log base \cdot \log \left(\sqrt[3]{base}\right)\right) + 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}}\\ \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 -2.296946323958964096679477790246928648788 \cdot 10^{83}:\\
\;\;\;\;\frac{\frac{\left(-1 \cdot \log \left(\frac{-1}{re}\right)\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}\\

\mathbf{elif}\;re \le 3.074698948448111476331693807825779933874 \cdot 10^{124}:\\
\;\;\;\;\frac{1}{\sqrt{\left(\log base \cdot \left(2 \cdot \log \left({base}^{\frac{1}{3}}\right)\right) + \log base \cdot \log \left(\sqrt[3]{base}\right)\right) + 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}}\\

\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 r46998 = re;
        double r46999 = r46998 * r46998;
        double r47000 = im;
        double r47001 = r47000 * r47000;
        double r47002 = r46999 + r47001;
        double r47003 = sqrt(r47002);
        double r47004 = log(r47003);
        double r47005 = base;
        double r47006 = log(r47005);
        double r47007 = r47004 * r47006;
        double r47008 = atan2(r47000, r46998);
        double r47009 = 0.0;
        double r47010 = r47008 * r47009;
        double r47011 = r47007 + r47010;
        double r47012 = r47006 * r47006;
        double r47013 = r47009 * r47009;
        double r47014 = r47012 + r47013;
        double r47015 = r47011 / r47014;
        return r47015;
}

double f(double re, double im, double base) {
        double r47016 = re;
        double r47017 = -2.296946323958964e+83;
        bool r47018 = r47016 <= r47017;
        double r47019 = -1.0;
        double r47020 = r47019 / r47016;
        double r47021 = log(r47020);
        double r47022 = r47019 * r47021;
        double r47023 = base;
        double r47024 = log(r47023);
        double r47025 = r47022 * r47024;
        double r47026 = im;
        double r47027 = atan2(r47026, r47016);
        double r47028 = 0.0;
        double r47029 = r47027 * r47028;
        double r47030 = r47025 + r47029;
        double r47031 = r47024 * r47024;
        double r47032 = r47028 * r47028;
        double r47033 = r47031 + r47032;
        double r47034 = sqrt(r47033);
        double r47035 = r47030 / r47034;
        double r47036 = r47035 / r47034;
        double r47037 = 3.0746989484481115e+124;
        bool r47038 = r47016 <= r47037;
        double r47039 = 1.0;
        double r47040 = 2.0;
        double r47041 = 0.3333333333333333;
        double r47042 = pow(r47023, r47041);
        double r47043 = log(r47042);
        double r47044 = r47040 * r47043;
        double r47045 = r47024 * r47044;
        double r47046 = cbrt(r47023);
        double r47047 = log(r47046);
        double r47048 = r47024 * r47047;
        double r47049 = r47045 + r47048;
        double r47050 = r47049 + r47032;
        double r47051 = sqrt(r47050);
        double r47052 = r47039 / r47051;
        double r47053 = r47016 * r47016;
        double r47054 = r47026 * r47026;
        double r47055 = r47053 + r47054;
        double r47056 = sqrt(r47055);
        double r47057 = log(r47056);
        double r47058 = r47057 * r47024;
        double r47059 = r47058 + r47029;
        double r47060 = r47059 / r47034;
        double r47061 = r47052 * r47060;
        double r47062 = r47039 / r47016;
        double r47063 = log(r47062);
        double r47064 = r47039 / r47023;
        double r47065 = log(r47064);
        double r47066 = r47063 / r47065;
        double r47067 = r47038 ? r47061 : r47066;
        double r47068 = r47018 ? r47036 : r47067;
        return r47068;
}

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 3 regimes
  2. if re < -2.296946323958964e+83

    1. Initial program 48.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. Using strategy rm
    3. Applied add-sqr-sqrt48.3

      \[\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 associate-/r*48.3

      \[\leadsto \color{blue}{\frac{\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}}}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}}\]
    5. Taylor expanded around -inf 64.0

      \[\leadsto \frac{\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}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}\]
    6. Simplified9.0

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

    if -2.296946323958964e+83 < re < 3.0746989484481115e+124

    1. Initial program 21.7

      \[\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-sqrt21.7

      \[\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-identity21.7

      \[\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-frac21.7

      \[\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. Using strategy rm
    7. Applied add-cube-cbrt21.7

      \[\leadsto \frac{1}{\sqrt{\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}} \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}}\]
    8. Applied log-prod21.7

      \[\leadsto \frac{1}{\sqrt{\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}} \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}}\]
    9. Applied distribute-lft-in21.7

      \[\leadsto \frac{1}{\sqrt{\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}} \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}}\]
    10. Simplified21.7

      \[\leadsto \frac{1}{\sqrt{\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}} \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}}\]
    11. Using strategy rm
    12. Applied pow1/321.7

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

    if 3.0746989484481115e+124 < re

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;re \le -2.296946323958964096679477790246928648788 \cdot 10^{83}:\\ \;\;\;\;\frac{\frac{\left(-1 \cdot \log \left(\frac{-1}{re}\right)\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}\\ \mathbf{elif}\;re \le 3.074698948448111476331693807825779933874 \cdot 10^{124}:\\ \;\;\;\;\frac{1}{\sqrt{\left(\log base \cdot \left(2 \cdot \log \left({base}^{\frac{1}{3}}\right)\right) + \log base \cdot \log \left(\sqrt[3]{base}\right)\right) + 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}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\log \left(\frac{1}{re}\right)}{\log \left(\frac{1}{base}\right)}\\ \end{array}\]

Reproduce

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