Average Error: 32.1 → 18.2
Time: 6.6s
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 -5.95406134530710368 \cdot 10^{129}:\\ \;\;\;\;\frac{\log \left(-1 \cdot re\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\log base \cdot \log base + 0.0 \cdot 0.0}\\ \mathbf{elif}\;re \le -3.33174441901366952 \cdot 10^{-227}:\\ \;\;\;\;\frac{\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{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}}}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}\\ \mathbf{elif}\;re \le 4.64866265485152755 \cdot 10^{-207}:\\ \;\;\;\;\frac{\log im}{\log base}\\ \mathbf{elif}\;re \le 6.5581120662639028 \cdot 10^{120}:\\ \;\;\;\;\frac{\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{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}}}{\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 -5.95406134530710368 \cdot 10^{129}:\\
\;\;\;\;\frac{\log \left(-1 \cdot re\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\log base \cdot \log base + 0.0 \cdot 0.0}\\

\mathbf{elif}\;re \le -3.33174441901366952 \cdot 10^{-227}:\\
\;\;\;\;\frac{\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{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}}}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}\\

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

\mathbf{elif}\;re \le 6.5581120662639028 \cdot 10^{120}:\\
\;\;\;\;\frac{\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{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}}}{\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 r92279 = re;
        double r92280 = r92279 * r92279;
        double r92281 = im;
        double r92282 = r92281 * r92281;
        double r92283 = r92280 + r92282;
        double r92284 = sqrt(r92283);
        double r92285 = log(r92284);
        double r92286 = base;
        double r92287 = log(r92286);
        double r92288 = r92285 * r92287;
        double r92289 = atan2(r92281, r92279);
        double r92290 = 0.0;
        double r92291 = r92289 * r92290;
        double r92292 = r92288 + r92291;
        double r92293 = r92287 * r92287;
        double r92294 = r92290 * r92290;
        double r92295 = r92293 + r92294;
        double r92296 = r92292 / r92295;
        return r92296;
}

double f(double re, double im, double base) {
        double r92297 = re;
        double r92298 = -5.954061345307104e+129;
        bool r92299 = r92297 <= r92298;
        double r92300 = -1.0;
        double r92301 = r92300 * r92297;
        double r92302 = log(r92301);
        double r92303 = base;
        double r92304 = log(r92303);
        double r92305 = r92302 * r92304;
        double r92306 = im;
        double r92307 = atan2(r92306, r92297);
        double r92308 = 0.0;
        double r92309 = r92307 * r92308;
        double r92310 = r92305 + r92309;
        double r92311 = r92304 * r92304;
        double r92312 = r92308 * r92308;
        double r92313 = r92311 + r92312;
        double r92314 = r92310 / r92313;
        double r92315 = -3.3317444190136695e-227;
        bool r92316 = r92297 <= r92315;
        double r92317 = r92297 * r92297;
        double r92318 = r92306 * r92306;
        double r92319 = r92317 + r92318;
        double r92320 = sqrt(r92319);
        double r92321 = cbrt(r92320);
        double r92322 = r92321 * r92321;
        double r92323 = r92322 * r92321;
        double r92324 = log(r92323);
        double r92325 = r92324 * r92304;
        double r92326 = r92325 + r92309;
        double r92327 = sqrt(r92313);
        double r92328 = r92326 / r92327;
        double r92329 = r92328 / r92327;
        double r92330 = 4.6486626548515276e-207;
        bool r92331 = r92297 <= r92330;
        double r92332 = log(r92306);
        double r92333 = r92332 / r92304;
        double r92334 = 6.558112066263903e+120;
        bool r92335 = r92297 <= r92334;
        double r92336 = 1.0;
        double r92337 = r92336 / r92297;
        double r92338 = log(r92337);
        double r92339 = r92336 / r92303;
        double r92340 = log(r92339);
        double r92341 = r92338 / r92340;
        double r92342 = r92335 ? r92329 : r92341;
        double r92343 = r92331 ? r92333 : r92342;
        double r92344 = r92316 ? r92329 : r92343;
        double r92345 = r92299 ? r92314 : r92344;
        return r92345;
}

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 < -5.954061345307104e+129

    1. Initial program 57.3

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

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

    if -5.954061345307104e+129 < re < -3.3317444190136695e-227 or 4.6486626548515276e-207 < re < 6.558112066263903e+120

    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.0}{\log base \cdot \log base + 0.0 \cdot 0.0}\]
    2. Using strategy rm
    3. Applied add-sqr-sqrt19.2

      \[\leadsto \frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\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}}}\]
    4. Applied associate-/r*19.2

      \[\leadsto \color{blue}{\frac{\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}}}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}}\]
    5. Using strategy rm
    6. Applied add-cube-cbrt19.2

      \[\leadsto \frac{\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)} \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}\]

    if -3.3317444190136695e-227 < re < 4.6486626548515276e-207

    1. Initial program 31.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. Taylor expanded around 0 33.6

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

    if 6.558112066263903e+120 < re

    1. Initial program 55.8

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

      \[\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 simplification18.2

    \[\leadsto \begin{array}{l} \mathbf{if}\;re \le -5.95406134530710368 \cdot 10^{129}:\\ \;\;\;\;\frac{\log \left(-1 \cdot re\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\log base \cdot \log base + 0.0 \cdot 0.0}\\ \mathbf{elif}\;re \le -3.33174441901366952 \cdot 10^{-227}:\\ \;\;\;\;\frac{\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{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}}}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}\\ \mathbf{elif}\;re \le 4.64866265485152755 \cdot 10^{-207}:\\ \;\;\;\;\frac{\log im}{\log base}\\ \mathbf{elif}\;re \le 6.5581120662639028 \cdot 10^{120}:\\ \;\;\;\;\frac{\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{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}}}{\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 2020024 
(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))))