Average Error: 30.6 → 16.6
Time: 23.0s
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 -1.6633647338752457 \cdot 10^{+69}:\\ \;\;\;\;\frac{0 \cdot \tan^{-1}_* \frac{im}{re} + \log base \cdot \log \left(-re\right)}{\log base \cdot \log base}\\ \mathbf{elif}\;re \le 3.581675146123889 \cdot 10^{-235}:\\ \;\;\;\;\frac{\frac{\log base \cdot \log \left(\sqrt{im \cdot im + re \cdot re}\right)}{\left|\log base\right|}}{\sqrt{\log base \cdot \log base}}\\ \mathbf{elif}\;re \le 6.649021261519885 \cdot 10^{-193}:\\ \;\;\;\;\frac{\log im}{\log base}\\ \mathbf{elif}\;re \le 7.455578618187527 \cdot 10^{+81}:\\ \;\;\;\;\left(\frac{\log base}{\log base \cdot \log base} \cdot \frac{\log \left(\sqrt{im \cdot im + re \cdot re}\right)}{\left(\log base \cdot \log base\right) \cdot \left(\log base \cdot \log base\right)}\right) \cdot \left(\left(\log base \cdot \log base\right) \cdot 0 + \left(\log base \cdot \log base\right) \cdot \left(\log base \cdot \log base\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{-\frac{\log base}{\frac{\left|\log base\right|}{-\log re}}}{\sqrt{\log base \cdot \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}{\log base \cdot \log base + 0 \cdot 0}
\begin{array}{l}
\mathbf{if}\;re \le -1.6633647338752457 \cdot 10^{+69}:\\
\;\;\;\;\frac{0 \cdot \tan^{-1}_* \frac{im}{re} + \log base \cdot \log \left(-re\right)}{\log base \cdot \log base}\\

\mathbf{elif}\;re \le 3.581675146123889 \cdot 10^{-235}:\\
\;\;\;\;\frac{\frac{\log base \cdot \log \left(\sqrt{im \cdot im + re \cdot re}\right)}{\left|\log base\right|}}{\sqrt{\log base \cdot \log base}}\\

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

\mathbf{elif}\;re \le 7.455578618187527 \cdot 10^{+81}:\\
\;\;\;\;\left(\frac{\log base}{\log base \cdot \log base} \cdot \frac{\log \left(\sqrt{im \cdot im + re \cdot re}\right)}{\left(\log base \cdot \log base\right) \cdot \left(\log base \cdot \log base\right)}\right) \cdot \left(\left(\log base \cdot \log base\right) \cdot 0 + \left(\log base \cdot \log base\right) \cdot \left(\log base \cdot \log base\right)\right)\\

\mathbf{else}:\\
\;\;\;\;\frac{-\frac{\log base}{\frac{\left|\log base\right|}{-\log re}}}{\sqrt{\log base \cdot \log base}}\\

\end{array}
double f(double re, double im, double base) {
        double r862172 = re;
        double r862173 = r862172 * r862172;
        double r862174 = im;
        double r862175 = r862174 * r862174;
        double r862176 = r862173 + r862175;
        double r862177 = sqrt(r862176);
        double r862178 = log(r862177);
        double r862179 = base;
        double r862180 = log(r862179);
        double r862181 = r862178 * r862180;
        double r862182 = atan2(r862174, r862172);
        double r862183 = 0.0;
        double r862184 = r862182 * r862183;
        double r862185 = r862181 + r862184;
        double r862186 = r862180 * r862180;
        double r862187 = r862183 * r862183;
        double r862188 = r862186 + r862187;
        double r862189 = r862185 / r862188;
        return r862189;
}

double f(double re, double im, double base) {
        double r862190 = re;
        double r862191 = -1.6633647338752457e+69;
        bool r862192 = r862190 <= r862191;
        double r862193 = 0.0;
        double r862194 = im;
        double r862195 = atan2(r862194, r862190);
        double r862196 = r862193 * r862195;
        double r862197 = base;
        double r862198 = log(r862197);
        double r862199 = -r862190;
        double r862200 = log(r862199);
        double r862201 = r862198 * r862200;
        double r862202 = r862196 + r862201;
        double r862203 = r862198 * r862198;
        double r862204 = r862202 / r862203;
        double r862205 = 3.581675146123889e-235;
        bool r862206 = r862190 <= r862205;
        double r862207 = r862194 * r862194;
        double r862208 = r862190 * r862190;
        double r862209 = r862207 + r862208;
        double r862210 = sqrt(r862209);
        double r862211 = log(r862210);
        double r862212 = r862198 * r862211;
        double r862213 = fabs(r862198);
        double r862214 = r862212 / r862213;
        double r862215 = sqrt(r862203);
        double r862216 = r862214 / r862215;
        double r862217 = 6.649021261519885e-193;
        bool r862218 = r862190 <= r862217;
        double r862219 = log(r862194);
        double r862220 = r862219 / r862198;
        double r862221 = 7.455578618187527e+81;
        bool r862222 = r862190 <= r862221;
        double r862223 = r862198 / r862203;
        double r862224 = r862203 * r862203;
        double r862225 = r862211 / r862224;
        double r862226 = r862223 * r862225;
        double r862227 = r862203 * r862193;
        double r862228 = r862227 + r862224;
        double r862229 = r862226 * r862228;
        double r862230 = log(r862190);
        double r862231 = -r862230;
        double r862232 = r862213 / r862231;
        double r862233 = r862198 / r862232;
        double r862234 = -r862233;
        double r862235 = r862234 / r862215;
        double r862236 = r862222 ? r862229 : r862235;
        double r862237 = r862218 ? r862220 : r862236;
        double r862238 = r862206 ? r862216 : r862237;
        double r862239 = r862192 ? r862204 : r862238;
        return r862239;
}

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.6633647338752457e+69

    1. Initial program 45.9

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

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

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

    if -1.6633647338752457e+69 < re < 3.581675146123889e-235

    1. Initial program 22.0

      \[\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. Using strategy rm
    3. Applied add-sqr-sqrt22.0

      \[\leadsto \frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0}{\color{blue}{\sqrt{\log base \cdot \log base + 0 \cdot 0} \cdot \sqrt{\log base \cdot \log base + 0 \cdot 0}}}\]
    4. Applied associate-/r*21.9

      \[\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}{\sqrt{\log base \cdot \log base + 0 \cdot 0}}}{\sqrt{\log base \cdot \log base + 0 \cdot 0}}}\]
    5. Simplified21.9

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

    if 3.581675146123889e-235 < re < 6.649021261519885e-193

    1. Initial program 32.8

      \[\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. Simplified32.8

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

      \[\leadsto \color{blue}{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \frac{1}{\log base}}\]
    5. Taylor expanded around 0 30.1

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

    if 6.649021261519885e-193 < re < 7.455578618187527e+81

    1. Initial program 17.7

      \[\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. Using strategy rm
    3. Applied flip3-+17.8

      \[\leadsto \frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0}{\color{blue}{\frac{{\left(\log base \cdot \log base\right)}^{3} + {\left(0 \cdot 0\right)}^{3}}{\left(\log base \cdot \log base\right) \cdot \left(\log base \cdot \log base\right) + \left(\left(0 \cdot 0\right) \cdot \left(0 \cdot 0\right) - \left(\log base \cdot \log base\right) \cdot \left(0 \cdot 0\right)\right)}}}\]
    4. Applied associate-/r/17.8

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

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

    if 7.455578618187527e+81 < re

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

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

      \[\leadsto \frac{\color{blue}{\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base}{\left|\log base\right|}}}{\sqrt{\log base \cdot \log base + 0 \cdot 0}}\]
    6. Taylor expanded around inf 9.2

      \[\leadsto \frac{\color{blue}{\frac{\log \left(\frac{1}{base}\right) \cdot \log \left(\frac{1}{re}\right)}{\left|\log base\right|}}}{\sqrt{\log base \cdot \log base + 0 \cdot 0}}\]
    7. Simplified9.2

      \[\leadsto \frac{\color{blue}{\frac{-\log base}{\frac{\left|\log base\right|}{-\log re}}}}{\sqrt{\log base \cdot \log base + 0 \cdot 0}}\]
  3. Recombined 5 regimes into one program.
  4. Final simplification16.6

    \[\leadsto \begin{array}{l} \mathbf{if}\;re \le -1.6633647338752457 \cdot 10^{+69}:\\ \;\;\;\;\frac{0 \cdot \tan^{-1}_* \frac{im}{re} + \log base \cdot \log \left(-re\right)}{\log base \cdot \log base}\\ \mathbf{elif}\;re \le 3.581675146123889 \cdot 10^{-235}:\\ \;\;\;\;\frac{\frac{\log base \cdot \log \left(\sqrt{im \cdot im + re \cdot re}\right)}{\left|\log base\right|}}{\sqrt{\log base \cdot \log base}}\\ \mathbf{elif}\;re \le 6.649021261519885 \cdot 10^{-193}:\\ \;\;\;\;\frac{\log im}{\log base}\\ \mathbf{elif}\;re \le 7.455578618187527 \cdot 10^{+81}:\\ \;\;\;\;\left(\frac{\log base}{\log base \cdot \log base} \cdot \frac{\log \left(\sqrt{im \cdot im + re \cdot re}\right)}{\left(\log base \cdot \log base\right) \cdot \left(\log base \cdot \log base\right)}\right) \cdot \left(\left(\log base \cdot \log base\right) \cdot 0 + \left(\log base \cdot \log base\right) \cdot \left(\log base \cdot \log base\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{-\frac{\log base}{\frac{\left|\log base\right|}{-\log re}}}{\sqrt{\log base \cdot \log base}}\\ \end{array}\]

Reproduce

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