Average Error: 30.4 → 16.8
Time: 28.0s
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}\;re \le -2.929915037932605 \cdot 10^{+116}:\\ \;\;\;\;\frac{\tan^{-1}_* \frac{im}{re} \cdot 0 + \log base \cdot \log \left(-re\right)}{\log base \cdot \log base}\\ \mathbf{elif}\;re \le 3.688680909166565 \cdot 10^{-273}:\\ \;\;\;\;\frac{1}{\log base} \cdot \log \left(\sqrt{\sqrt{im \cdot im + re \cdot re}} \cdot \sqrt{\sqrt{im \cdot im + re \cdot re}}\right)\\ \mathbf{elif}\;re \le 1.483347789429306 \cdot 10^{-239}:\\ \;\;\;\;\frac{\log im}{\log base}\\ \mathbf{elif}\;re \le 1.687660857647486 \cdot 10^{+127}:\\ \;\;\;\;\frac{\frac{1}{2}}{\frac{\log base}{\log \left(im \cdot im + re \cdot re\right)}}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{\log base} \cdot \log re\\ \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}\;re \le -2.929915037932605 \cdot 10^{+116}:\\
\;\;\;\;\frac{\tan^{-1}_* \frac{im}{re} \cdot 0 + \log base \cdot \log \left(-re\right)}{\log base \cdot \log base}\\

\mathbf{elif}\;re \le 3.688680909166565 \cdot 10^{-273}:\\
\;\;\;\;\frac{1}{\log base} \cdot \log \left(\sqrt{\sqrt{im \cdot im + re \cdot re}} \cdot \sqrt{\sqrt{im \cdot im + re \cdot re}}\right)\\

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

\mathbf{elif}\;re \le 1.687660857647486 \cdot 10^{+127}:\\
\;\;\;\;\frac{\frac{1}{2}}{\frac{\log base}{\log \left(im \cdot im + re \cdot re\right)}}\\

\mathbf{else}:\\
\;\;\;\;\frac{1}{\log base} \cdot \log re\\

\end{array}
double f(double re, double im, double base) {
        double r2346977 = re;
        double r2346978 = r2346977 * r2346977;
        double r2346979 = im;
        double r2346980 = r2346979 * r2346979;
        double r2346981 = r2346978 + r2346980;
        double r2346982 = sqrt(r2346981);
        double r2346983 = log(r2346982);
        double r2346984 = base;
        double r2346985 = log(r2346984);
        double r2346986 = r2346983 * r2346985;
        double r2346987 = atan2(r2346979, r2346977);
        double r2346988 = 0.0;
        double r2346989 = r2346987 * r2346988;
        double r2346990 = r2346986 + r2346989;
        double r2346991 = r2346985 * r2346985;
        double r2346992 = r2346988 * r2346988;
        double r2346993 = r2346991 + r2346992;
        double r2346994 = r2346990 / r2346993;
        return r2346994;
}

double f(double re, double im, double base) {
        double r2346995 = re;
        double r2346996 = -2.929915037932605e+116;
        bool r2346997 = r2346995 <= r2346996;
        double r2346998 = im;
        double r2346999 = atan2(r2346998, r2346995);
        double r2347000 = 0.0;
        double r2347001 = r2346999 * r2347000;
        double r2347002 = base;
        double r2347003 = log(r2347002);
        double r2347004 = -r2346995;
        double r2347005 = log(r2347004);
        double r2347006 = r2347003 * r2347005;
        double r2347007 = r2347001 + r2347006;
        double r2347008 = r2347003 * r2347003;
        double r2347009 = r2347007 / r2347008;
        double r2347010 = 3.688680909166565e-273;
        bool r2347011 = r2346995 <= r2347010;
        double r2347012 = 1.0;
        double r2347013 = r2347012 / r2347003;
        double r2347014 = r2346998 * r2346998;
        double r2347015 = r2346995 * r2346995;
        double r2347016 = r2347014 + r2347015;
        double r2347017 = sqrt(r2347016);
        double r2347018 = sqrt(r2347017);
        double r2347019 = r2347018 * r2347018;
        double r2347020 = log(r2347019);
        double r2347021 = r2347013 * r2347020;
        double r2347022 = 1.483347789429306e-239;
        bool r2347023 = r2346995 <= r2347022;
        double r2347024 = log(r2346998);
        double r2347025 = r2347024 / r2347003;
        double r2347026 = 1.687660857647486e+127;
        bool r2347027 = r2346995 <= r2347026;
        double r2347028 = 0.5;
        double r2347029 = log(r2347016);
        double r2347030 = r2347003 / r2347029;
        double r2347031 = r2347028 / r2347030;
        double r2347032 = log(r2346995);
        double r2347033 = r2347013 * r2347032;
        double r2347034 = r2347027 ? r2347031 : r2347033;
        double r2347035 = r2347023 ? r2347025 : r2347034;
        double r2347036 = r2347011 ? r2347021 : r2347035;
        double r2347037 = r2346997 ? r2347009 : r2347036;
        return r2347037;
}

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 5 regimes
  2. if re < -2.929915037932605e+116

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

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

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

    if -2.929915037932605e+116 < re < 3.688680909166565e-273

    1. Initial program 20.7

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

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

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

      \[\leadsto \frac{\log \color{blue}{\left(\sqrt{\sqrt{re \cdot re + im \cdot im}} \cdot \sqrt{\sqrt{re \cdot re + im \cdot im}}\right)}}{\log base}\]
    6. Using strategy rm
    7. Applied div-inv20.6

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

    if 3.688680909166565e-273 < re < 1.483347789429306e-239

    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}{\log base \cdot \log base + 0 \cdot 0}\]
    2. Simplified32.0

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

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

    if 1.483347789429306e-239 < re < 1.687660857647486e+127

    1. Initial program 19.2

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

      \[\leadsto \color{blue}{\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log base}}\]
    3. Using strategy rm
    4. Applied pow1/219.1

      \[\leadsto \frac{\log \color{blue}{\left({\left(re \cdot re + im \cdot im\right)}^{\frac{1}{2}}\right)}}{\log base}\]
    5. Applied log-pow19.1

      \[\leadsto \frac{\color{blue}{\frac{1}{2} \cdot \log \left(re \cdot re + im \cdot im\right)}}{\log base}\]
    6. Applied associate-/l*19.1

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

    if 1.687660857647486e+127 < re

    1. Initial program 55.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. Simplified55.3

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

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

      \[\leadsto \frac{\log \color{blue}{\left(\sqrt{\sqrt{re \cdot re + im \cdot im}} \cdot \sqrt{\sqrt{re \cdot re + im \cdot im}}\right)}}{\log base}\]
    6. Using strategy rm
    7. Applied div-inv55.3

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

      \[\leadsto \log \color{blue}{re} \cdot \frac{1}{\log base}\]
  3. Recombined 5 regimes into one program.
  4. Final simplification16.8

    \[\leadsto \begin{array}{l} \mathbf{if}\;re \le -2.929915037932605 \cdot 10^{+116}:\\ \;\;\;\;\frac{\tan^{-1}_* \frac{im}{re} \cdot 0 + \log base \cdot \log \left(-re\right)}{\log base \cdot \log base}\\ \mathbf{elif}\;re \le 3.688680909166565 \cdot 10^{-273}:\\ \;\;\;\;\frac{1}{\log base} \cdot \log \left(\sqrt{\sqrt{im \cdot im + re \cdot re}} \cdot \sqrt{\sqrt{im \cdot im + re \cdot re}}\right)\\ \mathbf{elif}\;re \le 1.483347789429306 \cdot 10^{-239}:\\ \;\;\;\;\frac{\log im}{\log base}\\ \mathbf{elif}\;re \le 1.687660857647486 \cdot 10^{+127}:\\ \;\;\;\;\frac{\frac{1}{2}}{\frac{\log base}{\log \left(im \cdot im + re \cdot re\right)}}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{\log base} \cdot \log re\\ \end{array}\]

Reproduce

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