Average Error: 32.3 → 18.2
Time: 7.8s
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.306028001854704 \cdot 10^{91}:\\ \;\;\;\;\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 -5.86817855579856565 \cdot 10^{-226}:\\ \;\;\;\;\frac{1}{\frac{0.0 \cdot 0.0 + {\left(\log base\right)}^{2}}{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}}\\ \mathbf{elif}\;re \le 1.0322374213733688 \cdot 10^{-184}:\\ \;\;\;\;\frac{\log im \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 9.218569920511639 \cdot 10^{129}:\\ \;\;\;\;\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{{\left(\log base \cdot \log base\right)}^{3} + {\left(0.0 \cdot 0.0\right)}^{3}} \cdot \left(\left(\log base \cdot \log base\right) \cdot \left(\log base \cdot \log base\right) + \left(\left(0.0 \cdot 0.0\right) \cdot \left(0.0 \cdot 0.0\right) - \left(\log base \cdot \log base\right) \cdot \left(0.0 \cdot 0.0\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}} \cdot \frac{\log re \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}\\ \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.306028001854704 \cdot 10^{91}:\\
\;\;\;\;\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 -5.86817855579856565 \cdot 10^{-226}:\\
\;\;\;\;\frac{1}{\frac{0.0 \cdot 0.0 + {\left(\log base\right)}^{2}}{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}}\\

\mathbf{elif}\;re \le 1.0322374213733688 \cdot 10^{-184}:\\
\;\;\;\;\frac{\log im \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 9.218569920511639 \cdot 10^{129}:\\
\;\;\;\;\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{{\left(\log base \cdot \log base\right)}^{3} + {\left(0.0 \cdot 0.0\right)}^{3}} \cdot \left(\left(\log base \cdot \log base\right) \cdot \left(\log base \cdot \log base\right) + \left(\left(0.0 \cdot 0.0\right) \cdot \left(0.0 \cdot 0.0\right) - \left(\log base \cdot \log base\right) \cdot \left(0.0 \cdot 0.0\right)\right)\right)\\

\mathbf{else}:\\
\;\;\;\;\frac{1}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}} \cdot \frac{\log re \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}\\

\end{array}
double f(double re, double im, double base) {
        double r45325 = re;
        double r45326 = r45325 * r45325;
        double r45327 = im;
        double r45328 = r45327 * r45327;
        double r45329 = r45326 + r45328;
        double r45330 = sqrt(r45329);
        double r45331 = log(r45330);
        double r45332 = base;
        double r45333 = log(r45332);
        double r45334 = r45331 * r45333;
        double r45335 = atan2(r45327, r45325);
        double r45336 = 0.0;
        double r45337 = r45335 * r45336;
        double r45338 = r45334 + r45337;
        double r45339 = r45333 * r45333;
        double r45340 = r45336 * r45336;
        double r45341 = r45339 + r45340;
        double r45342 = r45338 / r45341;
        return r45342;
}

double f(double re, double im, double base) {
        double r45343 = re;
        double r45344 = -5.306028001854704e+91;
        bool r45345 = r45343 <= r45344;
        double r45346 = -1.0;
        double r45347 = r45346 * r45343;
        double r45348 = log(r45347);
        double r45349 = base;
        double r45350 = log(r45349);
        double r45351 = r45348 * r45350;
        double r45352 = im;
        double r45353 = atan2(r45352, r45343);
        double r45354 = 0.0;
        double r45355 = r45353 * r45354;
        double r45356 = r45351 + r45355;
        double r45357 = r45350 * r45350;
        double r45358 = r45354 * r45354;
        double r45359 = r45357 + r45358;
        double r45360 = r45356 / r45359;
        double r45361 = -5.868178555798566e-226;
        bool r45362 = r45343 <= r45361;
        double r45363 = 1.0;
        double r45364 = 2.0;
        double r45365 = pow(r45350, r45364);
        double r45366 = r45358 + r45365;
        double r45367 = r45343 * r45343;
        double r45368 = r45352 * r45352;
        double r45369 = r45367 + r45368;
        double r45370 = sqrt(r45369);
        double r45371 = log(r45370);
        double r45372 = r45371 * r45350;
        double r45373 = r45372 + r45355;
        double r45374 = r45366 / r45373;
        double r45375 = r45363 / r45374;
        double r45376 = 1.0322374213733688e-184;
        bool r45377 = r45343 <= r45376;
        double r45378 = log(r45352);
        double r45379 = r45378 * r45350;
        double r45380 = r45379 + r45355;
        double r45381 = r45380 / r45359;
        double r45382 = 9.218569920511639e+129;
        bool r45383 = r45343 <= r45382;
        double r45384 = 3.0;
        double r45385 = pow(r45357, r45384);
        double r45386 = pow(r45358, r45384);
        double r45387 = r45385 + r45386;
        double r45388 = r45373 / r45387;
        double r45389 = r45357 * r45357;
        double r45390 = r45358 * r45358;
        double r45391 = r45357 * r45358;
        double r45392 = r45390 - r45391;
        double r45393 = r45389 + r45392;
        double r45394 = r45388 * r45393;
        double r45395 = sqrt(r45359);
        double r45396 = r45363 / r45395;
        double r45397 = log(r45343);
        double r45398 = r45397 * r45350;
        double r45399 = r45398 + r45355;
        double r45400 = r45399 / r45395;
        double r45401 = r45396 * r45400;
        double r45402 = r45383 ? r45394 : r45401;
        double r45403 = r45377 ? r45381 : r45402;
        double r45404 = r45362 ? r45375 : r45403;
        double r45405 = r45345 ? r45360 : r45404;
        return r45405;
}

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 < -5.306028001854704e+91

    1. Initial program 50.0

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

      \[\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.306028001854704e+91 < re < -5.868178555798566e-226

    1. Initial program 20.0

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

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

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

    if -5.868178555798566e-226 < re < 1.0322374213733688e-184

    1. Initial program 31.7

      \[\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 34.9

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

    if 1.0322374213733688e-184 < re < 9.218569920511639e+129

    1. Initial program 17.9

      \[\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 flip3-+18.0

      \[\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}{\frac{{\left(\log base \cdot \log base\right)}^{3} + {\left(0.0 \cdot 0.0\right)}^{3}}{\left(\log base \cdot \log base\right) \cdot \left(\log base \cdot \log base\right) + \left(\left(0.0 \cdot 0.0\right) \cdot \left(0.0 \cdot 0.0\right) - \left(\log base \cdot \log base\right) \cdot \left(0.0 \cdot 0.0\right)\right)}}}\]
    4. Applied associate-/r/18.0

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

    if 9.218569920511639e+129 < re

    1. Initial program 57.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. Using strategy rm
    3. Applied add-sqr-sqrt57.5

      \[\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 *-un-lft-identity57.5

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

      \[\leadsto \color{blue}{\frac{1}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}} \cdot \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}}}\]
    6. Taylor expanded around inf 7.0

      \[\leadsto \frac{1}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}} \cdot \frac{\log \color{blue}{re} \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}\]
  3. Recombined 5 regimes into one program.
  4. Final simplification18.2

    \[\leadsto \begin{array}{l} \mathbf{if}\;re \le -5.306028001854704 \cdot 10^{91}:\\ \;\;\;\;\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 -5.86817855579856565 \cdot 10^{-226}:\\ \;\;\;\;\frac{1}{\frac{0.0 \cdot 0.0 + {\left(\log base\right)}^{2}}{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}}\\ \mathbf{elif}\;re \le 1.0322374213733688 \cdot 10^{-184}:\\ \;\;\;\;\frac{\log im \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 9.218569920511639 \cdot 10^{129}:\\ \;\;\;\;\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{{\left(\log base \cdot \log base\right)}^{3} + {\left(0.0 \cdot 0.0\right)}^{3}} \cdot \left(\left(\log base \cdot \log base\right) \cdot \left(\log base \cdot \log base\right) + \left(\left(0.0 \cdot 0.0\right) \cdot \left(0.0 \cdot 0.0\right) - \left(\log base \cdot \log base\right) \cdot \left(0.0 \cdot 0.0\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}} \cdot \frac{\log re \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}\\ \end{array}\]

Reproduce

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