Average Error: 31.9 → 0.3
Time: 11.2s
Precision: 64
\[\frac{\tan^{-1}_* \frac{im}{re} \cdot \log base - \log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot 0.0}{\log base \cdot \log base + 0.0 \cdot 0.0}\]
\[-\frac{\tan^{-1}_* \frac{im}{re}}{-\log base}\]
\frac{\tan^{-1}_* \frac{im}{re} \cdot \log base - \log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot 0.0}{\log base \cdot \log base + 0.0 \cdot 0.0}
-\frac{\tan^{-1}_* \frac{im}{re}}{-\log base}
double f(double re, double im, double base) {
        double r84527 = im;
        double r84528 = re;
        double r84529 = atan2(r84527, r84528);
        double r84530 = base;
        double r84531 = log(r84530);
        double r84532 = r84529 * r84531;
        double r84533 = r84528 * r84528;
        double r84534 = r84527 * r84527;
        double r84535 = r84533 + r84534;
        double r84536 = sqrt(r84535);
        double r84537 = log(r84536);
        double r84538 = 0.0;
        double r84539 = r84537 * r84538;
        double r84540 = r84532 - r84539;
        double r84541 = r84531 * r84531;
        double r84542 = r84538 * r84538;
        double r84543 = r84541 + r84542;
        double r84544 = r84540 / r84543;
        return r84544;
}

double f(double re, double im, double base) {
        double r84545 = im;
        double r84546 = re;
        double r84547 = atan2(r84545, r84546);
        double r84548 = base;
        double r84549 = log(r84548);
        double r84550 = -r84549;
        double r84551 = r84547 / r84550;
        double r84552 = -r84551;
        return r84552;
}

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. Initial program 31.9

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

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

    \[\leadsto \color{blue}{-\frac{\tan^{-1}_* \frac{im}{re}}{-\log base}}\]
  4. Final simplification0.3

    \[\leadsto -\frac{\tan^{-1}_* \frac{im}{re}}{-\log base}\]

Reproduce

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