Average Error: 30.5 → 17.3
Time: 21.3s
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 -3.912111704121843 \cdot 10^{+74}:\\ \;\;\;\;\frac{\log \left(-re\right)}{\log base}\\ \mathbf{elif}\;re \le -1.610831336314797 \cdot 10^{-195}:\\ \;\;\;\;\frac{\log \left(\left(\sqrt[3]{\sqrt{im \cdot im + re \cdot re}} \cdot \sqrt[3]{\sqrt{im \cdot im + re \cdot re}}\right) \cdot \left(\sqrt[3]{\sqrt{\sqrt{im \cdot im + re \cdot re}}} \cdot \sqrt[3]{\sqrt{\sqrt{im \cdot im + re \cdot re}}}\right)\right)}{\log base}\\ \mathbf{elif}\;re \le -4.64950550008063 \cdot 10^{-304}:\\ \;\;\;\;\frac{\log im}{\log base}\\ \mathbf{elif}\;re \le 2.1214141144086502 \cdot 10^{+101}:\\ \;\;\;\;\frac{\log base \cdot \log \left(\sqrt{im \cdot im + re \cdot re}\right) + \tan^{-1}_* \frac{im}{re} \cdot 0}{\log base \cdot \log base}\\ \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}{\log base \cdot \log base + 0 \cdot 0}
\begin{array}{l}
\mathbf{if}\;re \le -3.912111704121843 \cdot 10^{+74}:\\
\;\;\;\;\frac{\log \left(-re\right)}{\log base}\\

\mathbf{elif}\;re \le -1.610831336314797 \cdot 10^{-195}:\\
\;\;\;\;\frac{\log \left(\left(\sqrt[3]{\sqrt{im \cdot im + re \cdot re}} \cdot \sqrt[3]{\sqrt{im \cdot im + re \cdot re}}\right) \cdot \left(\sqrt[3]{\sqrt{\sqrt{im \cdot im + re \cdot re}}} \cdot \sqrt[3]{\sqrt{\sqrt{im \cdot im + re \cdot re}}}\right)\right)}{\log base}\\

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

\mathbf{elif}\;re \le 2.1214141144086502 \cdot 10^{+101}:\\
\;\;\;\;\frac{\log base \cdot \log \left(\sqrt{im \cdot im + re \cdot re}\right) + \tan^{-1}_* \frac{im}{re} \cdot 0}{\log base \cdot \log base}\\

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

\end{array}
double f(double re, double im, double base) {
        double r1946945 = re;
        double r1946946 = r1946945 * r1946945;
        double r1946947 = im;
        double r1946948 = r1946947 * r1946947;
        double r1946949 = r1946946 + r1946948;
        double r1946950 = sqrt(r1946949);
        double r1946951 = log(r1946950);
        double r1946952 = base;
        double r1946953 = log(r1946952);
        double r1946954 = r1946951 * r1946953;
        double r1946955 = atan2(r1946947, r1946945);
        double r1946956 = 0.0;
        double r1946957 = r1946955 * r1946956;
        double r1946958 = r1946954 + r1946957;
        double r1946959 = r1946953 * r1946953;
        double r1946960 = r1946956 * r1946956;
        double r1946961 = r1946959 + r1946960;
        double r1946962 = r1946958 / r1946961;
        return r1946962;
}

double f(double re, double im, double base) {
        double r1946963 = re;
        double r1946964 = -3.912111704121843e+74;
        bool r1946965 = r1946963 <= r1946964;
        double r1946966 = -r1946963;
        double r1946967 = log(r1946966);
        double r1946968 = base;
        double r1946969 = log(r1946968);
        double r1946970 = r1946967 / r1946969;
        double r1946971 = -1.610831336314797e-195;
        bool r1946972 = r1946963 <= r1946971;
        double r1946973 = im;
        double r1946974 = r1946973 * r1946973;
        double r1946975 = r1946963 * r1946963;
        double r1946976 = r1946974 + r1946975;
        double r1946977 = sqrt(r1946976);
        double r1946978 = cbrt(r1946977);
        double r1946979 = r1946978 * r1946978;
        double r1946980 = sqrt(r1946977);
        double r1946981 = cbrt(r1946980);
        double r1946982 = r1946981 * r1946981;
        double r1946983 = r1946979 * r1946982;
        double r1946984 = log(r1946983);
        double r1946985 = r1946984 / r1946969;
        double r1946986 = -4.64950550008063e-304;
        bool r1946987 = r1946963 <= r1946986;
        double r1946988 = log(r1946973);
        double r1946989 = r1946988 / r1946969;
        double r1946990 = 2.1214141144086502e+101;
        bool r1946991 = r1946963 <= r1946990;
        double r1946992 = log(r1946977);
        double r1946993 = r1946969 * r1946992;
        double r1946994 = atan2(r1946973, r1946963);
        double r1946995 = 0.0;
        double r1946996 = r1946994 * r1946995;
        double r1946997 = r1946993 + r1946996;
        double r1946998 = r1946969 * r1946969;
        double r1946999 = r1946997 / r1946998;
        double r1947000 = log(r1946963);
        double r1947001 = r1947000 / r1946969;
        double r1947002 = r1946991 ? r1946999 : r1947001;
        double r1947003 = r1946987 ? r1946989 : r1947002;
        double r1947004 = r1946972 ? r1946985 : r1947003;
        double r1947005 = r1946965 ? r1946970 : r1947004;
        return r1947005;
}

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 < -3.912111704121843e+74

    1. Initial program 45.6

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

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

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

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

    if -3.912111704121843e+74 < re < -1.610831336314797e-195

    1. Initial program 17.5

      \[\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. Simplified17.4

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

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

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

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

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

    if -1.610831336314797e-195 < re < -4.64950550008063e-304

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

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

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

    if -4.64950550008063e-304 < re < 2.1214141144086502e+101

    1. Initial program 21.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}\]

    if 2.1214141144086502e+101 < re

    1. Initial program 50.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. Simplified50.1

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;re \le -3.912111704121843 \cdot 10^{+74}:\\ \;\;\;\;\frac{\log \left(-re\right)}{\log base}\\ \mathbf{elif}\;re \le -1.610831336314797 \cdot 10^{-195}:\\ \;\;\;\;\frac{\log \left(\left(\sqrt[3]{\sqrt{im \cdot im + re \cdot re}} \cdot \sqrt[3]{\sqrt{im \cdot im + re \cdot re}}\right) \cdot \left(\sqrt[3]{\sqrt{\sqrt{im \cdot im + re \cdot re}}} \cdot \sqrt[3]{\sqrt{\sqrt{im \cdot im + re \cdot re}}}\right)\right)}{\log base}\\ \mathbf{elif}\;re \le -4.64950550008063 \cdot 10^{-304}:\\ \;\;\;\;\frac{\log im}{\log base}\\ \mathbf{elif}\;re \le 2.1214141144086502 \cdot 10^{+101}:\\ \;\;\;\;\frac{\log base \cdot \log \left(\sqrt{im \cdot im + re \cdot re}\right) + \tan^{-1}_* \frac{im}{re} \cdot 0}{\log base \cdot \log base}\\ \mathbf{else}:\\ \;\;\;\;\frac{\log re}{\log base}\\ \end{array}\]

Reproduce

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