Average Error: 32.0 → 18.6
Time: 27.5s
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 -732279.798828648519702255725860595703125:\\ \;\;\;\;\frac{\frac{\tan^{-1}_* \frac{im}{re} \cdot 0.0 + \log \left(-re\right) \cdot \log base}{\sqrt{{\left(\log base\right)}^{2} + 0.0 \cdot 0.0}}}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}\\ \mathbf{elif}\;re \le 2.521155375520642127611045408258516477621 \cdot 10^{-231}:\\ \;\;\;\;\frac{\frac{\log base \cdot \log \left(\sqrt{re \cdot re + im \cdot im}\right) + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\sqrt{{\left(\log base\right)}^{2} + 0.0 \cdot 0.0}}}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}\\ \mathbf{elif}\;re \le 6.77316547352422363096540025987530146079 \cdot 10^{-176}:\\ \;\;\;\;\frac{\tan^{-1}_* \frac{im}{re} \cdot 0.0 + \log im \cdot \log base}{{\left(\log base\right)}^{4} - {0.0}^{4}} \cdot \left(\log base \cdot \log base - 0.0 \cdot 0.0\right)\\ \mathbf{elif}\;re \le 645957920562454986752:\\ \;\;\;\;\frac{\frac{\log base \cdot \log \left(\sqrt{re \cdot re + im \cdot im}\right) + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\sqrt{{\left(\log base\right)}^{2} + 0.0 \cdot 0.0}}}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}\\ \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.0}{\log base \cdot \log base + 0.0 \cdot 0.0}
\begin{array}{l}
\mathbf{if}\;re \le -732279.798828648519702255725860595703125:\\
\;\;\;\;\frac{\frac{\tan^{-1}_* \frac{im}{re} \cdot 0.0 + \log \left(-re\right) \cdot \log base}{\sqrt{{\left(\log base\right)}^{2} + 0.0 \cdot 0.0}}}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}\\

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

\mathbf{elif}\;re \le 6.77316547352422363096540025987530146079 \cdot 10^{-176}:\\
\;\;\;\;\frac{\tan^{-1}_* \frac{im}{re} \cdot 0.0 + \log im \cdot \log base}{{\left(\log base\right)}^{4} - {0.0}^{4}} \cdot \left(\log base \cdot \log base - 0.0 \cdot 0.0\right)\\

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

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

\end{array}
double f(double re, double im, double base) {
        double r44535 = re;
        double r44536 = r44535 * r44535;
        double r44537 = im;
        double r44538 = r44537 * r44537;
        double r44539 = r44536 + r44538;
        double r44540 = sqrt(r44539);
        double r44541 = log(r44540);
        double r44542 = base;
        double r44543 = log(r44542);
        double r44544 = r44541 * r44543;
        double r44545 = atan2(r44537, r44535);
        double r44546 = 0.0;
        double r44547 = r44545 * r44546;
        double r44548 = r44544 + r44547;
        double r44549 = r44543 * r44543;
        double r44550 = r44546 * r44546;
        double r44551 = r44549 + r44550;
        double r44552 = r44548 / r44551;
        return r44552;
}

double f(double re, double im, double base) {
        double r44553 = re;
        double r44554 = -732279.7988286485;
        bool r44555 = r44553 <= r44554;
        double r44556 = im;
        double r44557 = atan2(r44556, r44553);
        double r44558 = 0.0;
        double r44559 = r44557 * r44558;
        double r44560 = -r44553;
        double r44561 = log(r44560);
        double r44562 = base;
        double r44563 = log(r44562);
        double r44564 = r44561 * r44563;
        double r44565 = r44559 + r44564;
        double r44566 = 2.0;
        double r44567 = pow(r44563, r44566);
        double r44568 = r44558 * r44558;
        double r44569 = r44567 + r44568;
        double r44570 = sqrt(r44569);
        double r44571 = r44565 / r44570;
        double r44572 = r44563 * r44563;
        double r44573 = r44572 + r44568;
        double r44574 = sqrt(r44573);
        double r44575 = r44571 / r44574;
        double r44576 = 2.521155375520642e-231;
        bool r44577 = r44553 <= r44576;
        double r44578 = r44553 * r44553;
        double r44579 = r44556 * r44556;
        double r44580 = r44578 + r44579;
        double r44581 = sqrt(r44580);
        double r44582 = log(r44581);
        double r44583 = r44563 * r44582;
        double r44584 = r44583 + r44559;
        double r44585 = r44584 / r44570;
        double r44586 = r44585 / r44574;
        double r44587 = 6.773165473524224e-176;
        bool r44588 = r44553 <= r44587;
        double r44589 = log(r44556);
        double r44590 = r44589 * r44563;
        double r44591 = r44559 + r44590;
        double r44592 = 4.0;
        double r44593 = pow(r44563, r44592);
        double r44594 = pow(r44558, r44592);
        double r44595 = r44593 - r44594;
        double r44596 = r44591 / r44595;
        double r44597 = r44572 - r44568;
        double r44598 = r44596 * r44597;
        double r44599 = 6.45957920562455e+20;
        bool r44600 = r44553 <= r44599;
        double r44601 = log(r44553);
        double r44602 = -r44601;
        double r44603 = -r44563;
        double r44604 = r44602 / r44603;
        double r44605 = r44600 ? r44586 : r44604;
        double r44606 = r44588 ? r44598 : r44605;
        double r44607 = r44577 ? r44586 : r44606;
        double r44608 = r44555 ? r44575 : r44607;
        return r44608;
}

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 < -732279.7988286485

    1. Initial program 42.1

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

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

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

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

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

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

    if -732279.7988286485 < re < 2.521155375520642e-231 or 6.773165473524224e-176 < re < 6.45957920562455e+20

    1. Initial program 22.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. Using strategy rm
    3. Applied add-sqr-sqrt22.3

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

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

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

    if 2.521155375520642e-231 < re < 6.773165473524224e-176

    1. Initial program 31.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 flip-+31.9

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

      \[\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) \cdot \left(\log base \cdot \log base\right) - \left(0.0 \cdot 0.0\right) \cdot \left(0.0 \cdot 0.0\right)} \cdot \left(\log base \cdot \log base - 0.0 \cdot 0.0\right)}\]
    5. Simplified31.9

      \[\leadsto \color{blue}{\frac{\tan^{-1}_* \frac{im}{re} \cdot 0.0 + \log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base}{{\left(\log base\right)}^{4} - {0.0}^{\left(3 + 1\right)}}} \cdot \left(\log base \cdot \log base - 0.0 \cdot 0.0\right)\]
    6. Taylor expanded around 0 34.0

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

    if 6.45957920562455e+20 < re

    1. Initial program 41.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 inf 12.7

      \[\leadsto \color{blue}{\frac{\log \left(\frac{1}{re}\right)}{\log \left(\frac{1}{base}\right)}}\]
    3. Simplified12.7

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;re \le -732279.798828648519702255725860595703125:\\ \;\;\;\;\frac{\frac{\tan^{-1}_* \frac{im}{re} \cdot 0.0 + \log \left(-re\right) \cdot \log base}{\sqrt{{\left(\log base\right)}^{2} + 0.0 \cdot 0.0}}}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}\\ \mathbf{elif}\;re \le 2.521155375520642127611045408258516477621 \cdot 10^{-231}:\\ \;\;\;\;\frac{\frac{\log base \cdot \log \left(\sqrt{re \cdot re + im \cdot im}\right) + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\sqrt{{\left(\log base\right)}^{2} + 0.0 \cdot 0.0}}}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}\\ \mathbf{elif}\;re \le 6.77316547352422363096540025987530146079 \cdot 10^{-176}:\\ \;\;\;\;\frac{\tan^{-1}_* \frac{im}{re} \cdot 0.0 + \log im \cdot \log base}{{\left(\log base\right)}^{4} - {0.0}^{4}} \cdot \left(\log base \cdot \log base - 0.0 \cdot 0.0\right)\\ \mathbf{elif}\;re \le 645957920562454986752:\\ \;\;\;\;\frac{\frac{\log base \cdot \log \left(\sqrt{re \cdot re + im \cdot im}\right) + \tan^{-1}_* \frac{im}{re} \cdot 0.0}{\sqrt{{\left(\log base\right)}^{2} + 0.0 \cdot 0.0}}}{\sqrt{\log base \cdot \log base + 0.0 \cdot 0.0}}\\ \mathbf{else}:\\ \;\;\;\;\frac{-\log re}{-\log base}\\ \end{array}\]

Reproduce

herbie shell --seed 2019194 
(FPCore (re im base)
  :name "math.log/2 on complex, real part"
  (/ (+ (* (log (sqrt (+ (* re re) (* im im)))) (log base)) (* (atan2 im re) 0.0)) (+ (* (log base) (log base)) (* 0.0 0.0))))