Average Error: 31.1 → 16.9
Time: 44.4s
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 -1.144600521445903 \cdot 10^{+98}:\\ \;\;\;\;\frac{1}{\frac{\log base}{\log \left(-re\right)}}\\ \mathbf{elif}\;re \le -2.7249016889670465 \cdot 10^{-212}:\\ \;\;\;\;\frac{1}{\frac{\log base}{\log \left(\sqrt{im \cdot im + re \cdot re}\right)}}\\ \mathbf{elif}\;re \le -9.044826970858667 \cdot 10^{-305}:\\ \;\;\;\;\frac{\log im}{\log base}\\ \mathbf{elif}\;re \le 6.270425502185955 \cdot 10^{+140}:\\ \;\;\;\;\frac{1}{\frac{\log base}{\log \left(\sqrt{im \cdot im + re \cdot re}\right)}}\\ \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 -1.144600521445903 \cdot 10^{+98}:\\
\;\;\;\;\frac{1}{\frac{\log base}{\log \left(-re\right)}}\\

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

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

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

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

\end{array}
double f(double re, double im, double base) {
        double r1313110 = re;
        double r1313111 = r1313110 * r1313110;
        double r1313112 = im;
        double r1313113 = r1313112 * r1313112;
        double r1313114 = r1313111 + r1313113;
        double r1313115 = sqrt(r1313114);
        double r1313116 = log(r1313115);
        double r1313117 = base;
        double r1313118 = log(r1313117);
        double r1313119 = r1313116 * r1313118;
        double r1313120 = atan2(r1313112, r1313110);
        double r1313121 = 0.0;
        double r1313122 = r1313120 * r1313121;
        double r1313123 = r1313119 + r1313122;
        double r1313124 = r1313118 * r1313118;
        double r1313125 = r1313121 * r1313121;
        double r1313126 = r1313124 + r1313125;
        double r1313127 = r1313123 / r1313126;
        return r1313127;
}

double f(double re, double im, double base) {
        double r1313128 = re;
        double r1313129 = -1.144600521445903e+98;
        bool r1313130 = r1313128 <= r1313129;
        double r1313131 = 1.0;
        double r1313132 = base;
        double r1313133 = log(r1313132);
        double r1313134 = -r1313128;
        double r1313135 = log(r1313134);
        double r1313136 = r1313133 / r1313135;
        double r1313137 = r1313131 / r1313136;
        double r1313138 = -2.7249016889670465e-212;
        bool r1313139 = r1313128 <= r1313138;
        double r1313140 = im;
        double r1313141 = r1313140 * r1313140;
        double r1313142 = r1313128 * r1313128;
        double r1313143 = r1313141 + r1313142;
        double r1313144 = sqrt(r1313143);
        double r1313145 = log(r1313144);
        double r1313146 = r1313133 / r1313145;
        double r1313147 = r1313131 / r1313146;
        double r1313148 = -9.044826970858667e-305;
        bool r1313149 = r1313128 <= r1313148;
        double r1313150 = log(r1313140);
        double r1313151 = r1313150 / r1313133;
        double r1313152 = 6.270425502185955e+140;
        bool r1313153 = r1313128 <= r1313152;
        double r1313154 = log(r1313128);
        double r1313155 = -r1313154;
        double r1313156 = -r1313133;
        double r1313157 = r1313155 / r1313156;
        double r1313158 = r1313153 ? r1313147 : r1313157;
        double r1313159 = r1313149 ? r1313151 : r1313158;
        double r1313160 = r1313139 ? r1313147 : r1313159;
        double r1313161 = r1313130 ? r1313137 : r1313160;
        return r1313161;
}

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.144600521445903e+98

    1. Initial program 49.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. Simplified49.3

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

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

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

      \[\leadsto \frac{1}{\frac{\log base}{\log \color{blue}{\left(-1 \cdot re\right)}}}\]
    7. Simplified8.6

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

    if -1.144600521445903e+98 < re < -2.7249016889670465e-212 or -9.044826970858667e-305 < re < 6.270425502185955e+140

    1. Initial program 19.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. Simplified19.6

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

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

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

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

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

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

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

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

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

    if -2.7249016889670465e-212 < re < -9.044826970858667e-305

    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.1

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

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

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

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

    if 6.270425502185955e+140 < re

    1. Initial program 58.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. Simplified58.6

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

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

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

      \[\leadsto \frac{1}{\color{blue}{\log base \cdot \frac{1}{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}}}\]
    8. Applied associate-/r*58.6

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

      \[\leadsto \color{blue}{\frac{\log \left(\frac{1}{re}\right)}{\log \left(\frac{1}{base}\right)}}\]
    10. Simplified6.5

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;re \le -1.144600521445903 \cdot 10^{+98}:\\ \;\;\;\;\frac{1}{\frac{\log base}{\log \left(-re\right)}}\\ \mathbf{elif}\;re \le -2.7249016889670465 \cdot 10^{-212}:\\ \;\;\;\;\frac{1}{\frac{\log base}{\log \left(\sqrt{im \cdot im + re \cdot re}\right)}}\\ \mathbf{elif}\;re \le -9.044826970858667 \cdot 10^{-305}:\\ \;\;\;\;\frac{\log im}{\log base}\\ \mathbf{elif}\;re \le 6.270425502185955 \cdot 10^{+140}:\\ \;\;\;\;\frac{1}{\frac{\log base}{\log \left(\sqrt{im \cdot im + re \cdot re}\right)}}\\ \mathbf{else}:\\ \;\;\;\;\frac{-\log re}{-\log base}\\ \end{array}\]

Reproduce

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