Average Error: 32.0 → 17.6
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 -1.5784955224792795 \cdot 10^{101}:\\ \;\;\;\;\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}} \cdot \frac{\sqrt[3]{1}}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}\\ \mathbf{elif}\;re \le -8.530611376341098 \cdot 10^{-225}:\\ \;\;\;\;\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}} \cdot \frac{\sqrt[3]{1}}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}\\ \mathbf{elif}\;re \le 8.52811240134291878 \cdot 10^{-191}:\\ \;\;\;\;\frac{\log im}{\log base}\\ \mathbf{elif}\;re \le 4.29856860282582336 \cdot 10^{106}:\\ \;\;\;\;\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}} \cdot \frac{\sqrt[3]{1}}{\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 -1.5784955224792795 \cdot 10^{101}:\\
\;\;\;\;\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}} \cdot \frac{\sqrt[3]{1}}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}\\

\mathbf{elif}\;re \le -8.530611376341098 \cdot 10^{-225}:\\
\;\;\;\;\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}} \cdot \frac{\sqrt[3]{1}}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}\\

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

\mathbf{elif}\;re \le 4.29856860282582336 \cdot 10^{106}:\\
\;\;\;\;\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}} \cdot \frac{\sqrt[3]{1}}{\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 r43058 = re;
        double r43059 = r43058 * r43058;
        double r43060 = im;
        double r43061 = r43060 * r43060;
        double r43062 = r43059 + r43061;
        double r43063 = sqrt(r43062);
        double r43064 = log(r43063);
        double r43065 = base;
        double r43066 = log(r43065);
        double r43067 = r43064 * r43066;
        double r43068 = atan2(r43060, r43058);
        double r43069 = 0.0;
        double r43070 = r43068 * r43069;
        double r43071 = r43067 + r43070;
        double r43072 = r43066 * r43066;
        double r43073 = r43069 * r43069;
        double r43074 = r43072 + r43073;
        double r43075 = r43071 / r43074;
        return r43075;
}

double f(double re, double im, double base) {
        double r43076 = re;
        double r43077 = -1.5784955224792795e+101;
        bool r43078 = r43076 <= r43077;
        double r43079 = -1.0;
        double r43080 = r43079 / r43076;
        double r43081 = log(r43080);
        double r43082 = r43079 * r43081;
        double r43083 = base;
        double r43084 = log(r43083);
        double r43085 = r43082 * r43084;
        double r43086 = im;
        double r43087 = atan2(r43086, r43076);
        double r43088 = 0.0;
        double r43089 = r43087 * r43088;
        double r43090 = r43085 + r43089;
        double r43091 = r43084 * r43084;
        double r43092 = r43088 * r43088;
        double r43093 = r43091 + r43092;
        double r43094 = sqrt(r43093);
        double r43095 = r43090 / r43094;
        double r43096 = 1.0;
        double r43097 = cbrt(r43096);
        double r43098 = r43097 / r43094;
        double r43099 = r43095 * r43098;
        double r43100 = -8.530611376341098e-225;
        bool r43101 = r43076 <= r43100;
        double r43102 = r43076 * r43076;
        double r43103 = r43086 * r43086;
        double r43104 = r43102 + r43103;
        double r43105 = sqrt(r43104);
        double r43106 = log(r43105);
        double r43107 = r43106 * r43084;
        double r43108 = r43107 + r43089;
        double r43109 = r43108 / r43094;
        double r43110 = r43109 * r43098;
        double r43111 = 8.528112401342919e-191;
        bool r43112 = r43076 <= r43111;
        double r43113 = log(r43086);
        double r43114 = r43113 / r43084;
        double r43115 = 4.298568602825823e+106;
        bool r43116 = r43076 <= r43115;
        double r43117 = r43096 / r43076;
        double r43118 = log(r43117);
        double r43119 = r43096 / r43083;
        double r43120 = log(r43119);
        double r43121 = r43118 / r43120;
        double r43122 = r43116 ? r43110 : r43121;
        double r43123 = r43112 ? r43114 : r43122;
        double r43124 = r43101 ? r43110 : r43123;
        double r43125 = r43078 ? r43099 : r43124;
        return r43125;
}

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.5784955224792795e+101

    1. Initial program 52.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 div-inv52.1

      \[\leadsto \color{blue}{\left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0\right) \cdot \frac{1}{\log base \cdot \log base + 0.0 \cdot 0.0}}\]
    4. Using strategy rm
    5. Applied add-sqr-sqrt52.1

      \[\leadsto \left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0\right) \cdot \frac{1}{\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}}}\]
    6. Applied add-cube-cbrt52.1

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

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

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

      \[\leadsto \color{blue}{\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}}} \cdot \frac{\sqrt[3]{1}}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}\]
    10. 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}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}} \cdot \frac{\sqrt[3]{1}}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}\]
    11. Simplified8.0

      \[\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}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}} \cdot \frac{\sqrt[3]{1}}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}\]

    if -1.5784955224792795e+101 < re < -8.530611376341098e-225 or 8.528112401342919e-191 < re < 4.298568602825823e+106

    1. Initial program 18.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 div-inv18.5

      \[\leadsto \color{blue}{\left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0\right) \cdot \frac{1}{\log base \cdot \log base + 0.0 \cdot 0.0}}\]
    4. Using strategy rm
    5. Applied add-sqr-sqrt18.5

      \[\leadsto \left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0\right) \cdot \frac{1}{\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}}}\]
    6. Applied add-cube-cbrt18.5

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

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

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

      \[\leadsto \color{blue}{\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}}} \cdot \frac{\sqrt[3]{1}}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}\]

    if -8.530611376341098e-225 < re < 8.528112401342919e-191

    1. Initial program 32.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 0 34.5

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

    if 4.298568602825823e+106 < re

    1. Initial program 53.2

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;re \le -1.5784955224792795 \cdot 10^{101}:\\ \;\;\;\;\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}} \cdot \frac{\sqrt[3]{1}}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}\\ \mathbf{elif}\;re \le -8.530611376341098 \cdot 10^{-225}:\\ \;\;\;\;\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}} \cdot \frac{\sqrt[3]{1}}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}\\ \mathbf{elif}\;re \le 8.52811240134291878 \cdot 10^{-191}:\\ \;\;\;\;\frac{\log im}{\log base}\\ \mathbf{elif}\;re \le 4.29856860282582336 \cdot 10^{106}:\\ \;\;\;\;\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}} \cdot \frac{\sqrt[3]{1}}{\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 2020047 
(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))))