Average Error: 30.5 → 16.5
Time: 19.5s
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 -4.0303141568877995 \cdot 10^{+114}:\\ \;\;\;\;\frac{\log \left(-re\right)}{\log base}\\ \mathbf{elif}\;re \le 1.945423092678915 \cdot 10^{+111}:\\ \;\;\;\;\frac{\log \left(\sqrt{\sqrt[3]{im \cdot im + re \cdot re} \cdot \left(\sqrt[3]{im \cdot im + re \cdot re} \cdot {\left(im \cdot im + re \cdot re\right)}^{\frac{1}{3}}\right)}\right)}{\log base}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{1}{2}}{\frac{\log base}{\log re \cdot 2}}\\ \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 -4.0303141568877995 \cdot 10^{+114}:\\
\;\;\;\;\frac{\log \left(-re\right)}{\log base}\\

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

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

\end{array}
double f(double re, double im, double base) {
        double r757259 = re;
        double r757260 = r757259 * r757259;
        double r757261 = im;
        double r757262 = r757261 * r757261;
        double r757263 = r757260 + r757262;
        double r757264 = sqrt(r757263);
        double r757265 = log(r757264);
        double r757266 = base;
        double r757267 = log(r757266);
        double r757268 = r757265 * r757267;
        double r757269 = atan2(r757261, r757259);
        double r757270 = 0.0;
        double r757271 = r757269 * r757270;
        double r757272 = r757268 + r757271;
        double r757273 = r757267 * r757267;
        double r757274 = r757270 * r757270;
        double r757275 = r757273 + r757274;
        double r757276 = r757272 / r757275;
        return r757276;
}

double f(double re, double im, double base) {
        double r757277 = re;
        double r757278 = -4.0303141568877995e+114;
        bool r757279 = r757277 <= r757278;
        double r757280 = -r757277;
        double r757281 = log(r757280);
        double r757282 = base;
        double r757283 = log(r757282);
        double r757284 = r757281 / r757283;
        double r757285 = 1.945423092678915e+111;
        bool r757286 = r757277 <= r757285;
        double r757287 = im;
        double r757288 = r757287 * r757287;
        double r757289 = r757277 * r757277;
        double r757290 = r757288 + r757289;
        double r757291 = cbrt(r757290);
        double r757292 = 0.3333333333333333;
        double r757293 = pow(r757290, r757292);
        double r757294 = r757291 * r757293;
        double r757295 = r757291 * r757294;
        double r757296 = sqrt(r757295);
        double r757297 = log(r757296);
        double r757298 = r757297 / r757283;
        double r757299 = 0.5;
        double r757300 = log(r757277);
        double r757301 = 2.0;
        double r757302 = r757300 * r757301;
        double r757303 = r757283 / r757302;
        double r757304 = r757299 / r757303;
        double r757305 = r757286 ? r757298 : r757304;
        double r757306 = r757279 ? r757284 : r757305;
        return r757306;
}

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 < -4.0303141568877995e+114

    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. Simplified52.3

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

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

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

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

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

    if -4.0303141568877995e+114 < re < 1.945423092678915e+111

    1. Initial program 20.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. Simplified20.3

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

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

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

    if 1.945423092678915e+111 < re

    1. Initial program 52.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. Simplified52.3

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

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

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

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

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;re \le -4.0303141568877995 \cdot 10^{+114}:\\ \;\;\;\;\frac{\log \left(-re\right)}{\log base}\\ \mathbf{elif}\;re \le 1.945423092678915 \cdot 10^{+111}:\\ \;\;\;\;\frac{\log \left(\sqrt{\sqrt[3]{im \cdot im + re \cdot re} \cdot \left(\sqrt[3]{im \cdot im + re \cdot re} \cdot {\left(im \cdot im + re \cdot re\right)}^{\frac{1}{3}}\right)}\right)}{\log base}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{1}{2}}{\frac{\log base}{\log re \cdot 2}}\\ \end{array}\]

Reproduce

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