Average Error: 31.6 → 18.1
Time: 9.1s
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 -1.97688285622801022 \cdot 10^{55}:\\ \;\;\;\;\frac{\frac{\log \left(-1 \cdot re\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 -6.632251258880961 \cdot 10^{-245}:\\ \;\;\;\;\frac{\frac{{\left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base\right)}^{3} + {\left(\tan^{-1}_* \frac{im}{re} \cdot 0.0\right)}^{3}}{\log base \cdot \log base + 0.0 \cdot 0.0}}{\left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base\right) \cdot \left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base\right) + \left(\left(\tan^{-1}_* \frac{im}{re} \cdot 0.0\right) \cdot \left(\tan^{-1}_* \frac{im}{re} \cdot 0.0\right) - \left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base\right) \cdot \left(\tan^{-1}_* \frac{im}{re} \cdot 0.0\right)\right)}\\ \mathbf{elif}\;re \le -5.9140865977584641 \cdot 10^{-298}:\\ \;\;\;\;\frac{\log im}{\log base}\\ \mathbf{elif}\;re \le 9.527329133926756 \cdot 10^{137}:\\ \;\;\;\;\left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0\right) \cdot \frac{1}{\left(\log base \cdot \left(2 \cdot \log \left(\sqrt[3]{base}\right)\right) + \log base \cdot \log \left(\sqrt[3]{base}\right)\right) + 0.0 \cdot 0.0}\\ \mathbf{else}:\\ \;\;\;\;\frac{\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}}}{\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 -1.97688285622801022 \cdot 10^{55}:\\
\;\;\;\;\frac{\frac{\log \left(-1 \cdot re\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 -6.632251258880961 \cdot 10^{-245}:\\
\;\;\;\;\frac{\frac{{\left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base\right)}^{3} + {\left(\tan^{-1}_* \frac{im}{re} \cdot 0.0\right)}^{3}}{\log base \cdot \log base + 0.0 \cdot 0.0}}{\left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base\right) \cdot \left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base\right) + \left(\left(\tan^{-1}_* \frac{im}{re} \cdot 0.0\right) \cdot \left(\tan^{-1}_* \frac{im}{re} \cdot 0.0\right) - \left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base\right) \cdot \left(\tan^{-1}_* \frac{im}{re} \cdot 0.0\right)\right)}\\

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

\mathbf{elif}\;re \le 9.527329133926756 \cdot 10^{137}:\\
\;\;\;\;\left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0\right) \cdot \frac{1}{\left(\log base \cdot \left(2 \cdot \log \left(\sqrt[3]{base}\right)\right) + \log base \cdot \log \left(\sqrt[3]{base}\right)\right) + 0.0 \cdot 0.0}\\

\mathbf{else}:\\
\;\;\;\;\frac{\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}}}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}\\

\end{array}
double f(double re, double im, double base) {
        double r42258 = re;
        double r42259 = r42258 * r42258;
        double r42260 = im;
        double r42261 = r42260 * r42260;
        double r42262 = r42259 + r42261;
        double r42263 = sqrt(r42262);
        double r42264 = log(r42263);
        double r42265 = base;
        double r42266 = log(r42265);
        double r42267 = r42264 * r42266;
        double r42268 = atan2(r42260, r42258);
        double r42269 = 0.0;
        double r42270 = r42268 * r42269;
        double r42271 = r42267 + r42270;
        double r42272 = r42266 * r42266;
        double r42273 = r42269 * r42269;
        double r42274 = r42272 + r42273;
        double r42275 = r42271 / r42274;
        return r42275;
}

double f(double re, double im, double base) {
        double r42276 = re;
        double r42277 = -1.9768828562280102e+55;
        bool r42278 = r42276 <= r42277;
        double r42279 = -1.0;
        double r42280 = r42279 * r42276;
        double r42281 = log(r42280);
        double r42282 = base;
        double r42283 = log(r42282);
        double r42284 = r42281 * r42283;
        double r42285 = im;
        double r42286 = atan2(r42285, r42276);
        double r42287 = 0.0;
        double r42288 = r42286 * r42287;
        double r42289 = r42284 + r42288;
        double r42290 = r42283 * r42283;
        double r42291 = r42287 * r42287;
        double r42292 = r42290 + r42291;
        double r42293 = sqrt(r42292);
        double r42294 = r42289 / r42293;
        double r42295 = r42294 / r42293;
        double r42296 = -6.632251258880961e-245;
        bool r42297 = r42276 <= r42296;
        double r42298 = r42276 * r42276;
        double r42299 = r42285 * r42285;
        double r42300 = r42298 + r42299;
        double r42301 = sqrt(r42300);
        double r42302 = log(r42301);
        double r42303 = r42302 * r42283;
        double r42304 = 3.0;
        double r42305 = pow(r42303, r42304);
        double r42306 = pow(r42288, r42304);
        double r42307 = r42305 + r42306;
        double r42308 = r42307 / r42292;
        double r42309 = r42303 * r42303;
        double r42310 = r42288 * r42288;
        double r42311 = r42303 * r42288;
        double r42312 = r42310 - r42311;
        double r42313 = r42309 + r42312;
        double r42314 = r42308 / r42313;
        double r42315 = -5.914086597758464e-298;
        bool r42316 = r42276 <= r42315;
        double r42317 = log(r42285);
        double r42318 = r42317 / r42283;
        double r42319 = 9.527329133926756e+137;
        bool r42320 = r42276 <= r42319;
        double r42321 = r42303 + r42288;
        double r42322 = 1.0;
        double r42323 = 2.0;
        double r42324 = cbrt(r42282);
        double r42325 = log(r42324);
        double r42326 = r42323 * r42325;
        double r42327 = r42283 * r42326;
        double r42328 = r42283 * r42325;
        double r42329 = r42327 + r42328;
        double r42330 = r42329 + r42291;
        double r42331 = r42322 / r42330;
        double r42332 = r42321 * r42331;
        double r42333 = log(r42276);
        double r42334 = r42333 * r42283;
        double r42335 = r42334 + r42288;
        double r42336 = r42335 / r42293;
        double r42337 = r42336 / r42293;
        double r42338 = r42320 ? r42332 : r42337;
        double r42339 = r42316 ? r42318 : r42338;
        double r42340 = r42297 ? r42314 : r42339;
        double r42341 = r42278 ? r42295 : r42340;
        return r42341;
}

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 < -1.9768828562280102e+55

    1. Initial program 44.6

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

      \[\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*44.6

      \[\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. Taylor expanded around -inf 11.5

      \[\leadsto \frac{\frac{\log \color{blue}{\left(-1 \cdot re\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 -1.9768828562280102e+55 < re < -6.632251258880961e-245

    1. Initial program 20.6

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

      \[\leadsto \color{blue}{\left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0\right) \cdot \frac{1}{\log base \cdot \log base + 0.0 \cdot 0.0}}\]
    4. Using strategy rm
    5. Applied flip3-+20.7

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

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

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

    if -6.632251258880961e-245 < re < -5.914086597758464e-298

    1. Initial program 30.4

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

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

    if -5.914086597758464e-298 < re < 9.527329133926756e+137

    1. Initial program 21.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. Using strategy rm
    3. Applied div-inv21.7

      \[\leadsto \color{blue}{\left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0\right) \cdot \frac{1}{\log base \cdot \log base + 0.0 \cdot 0.0}}\]
    4. Using strategy rm
    5. Applied add-cube-cbrt21.7

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

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

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

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

    if 9.527329133926756e+137 < re

    1. Initial program 59.4

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

      \[\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*59.4

      \[\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. Taylor expanded around inf 7.8

      \[\leadsto \frac{\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}}}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}\]
  3. Recombined 5 regimes into one program.
  4. Final simplification18.1

    \[\leadsto \begin{array}{l} \mathbf{if}\;re \le -1.97688285622801022 \cdot 10^{55}:\\ \;\;\;\;\frac{\frac{\log \left(-1 \cdot re\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 -6.632251258880961 \cdot 10^{-245}:\\ \;\;\;\;\frac{\frac{{\left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base\right)}^{3} + {\left(\tan^{-1}_* \frac{im}{re} \cdot 0.0\right)}^{3}}{\log base \cdot \log base + 0.0 \cdot 0.0}}{\left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base\right) \cdot \left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base\right) + \left(\left(\tan^{-1}_* \frac{im}{re} \cdot 0.0\right) \cdot \left(\tan^{-1}_* \frac{im}{re} \cdot 0.0\right) - \left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base\right) \cdot \left(\tan^{-1}_* \frac{im}{re} \cdot 0.0\right)\right)}\\ \mathbf{elif}\;re \le -5.9140865977584641 \cdot 10^{-298}:\\ \;\;\;\;\frac{\log im}{\log base}\\ \mathbf{elif}\;re \le 9.527329133926756 \cdot 10^{137}:\\ \;\;\;\;\left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0.0\right) \cdot \frac{1}{\left(\log base \cdot \left(2 \cdot \log \left(\sqrt[3]{base}\right)\right) + \log base \cdot \log \left(\sqrt[3]{base}\right)\right) + 0.0 \cdot 0.0}\\ \mathbf{else}:\\ \;\;\;\;\frac{\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}}}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}\\ \end{array}\]

Reproduce

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