Average Error: 31.8 → 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 r91561 = im;
        double r91562 = re;
        double r91563 = atan2(r91561, r91562);
        double r91564 = base;
        double r91565 = log(r91564);
        double r91566 = r91563 * r91565;
        double r91567 = r91562 * r91562;
        double r91568 = r91561 * r91561;
        double r91569 = r91567 + r91568;
        double r91570 = sqrt(r91569);
        double r91571 = log(r91570);
        double r91572 = 0.0;
        double r91573 = r91571 * r91572;
        double r91574 = r91566 - r91573;
        double r91575 = r91565 * r91565;
        double r91576 = r91572 * r91572;
        double r91577 = r91575 + r91576;
        double r91578 = r91574 / r91577;
        return r91578;
}

double f(double re, double im, double base) {
        double r91579 = im;
        double r91580 = re;
        double r91581 = atan2(r91579, r91580);
        double r91582 = base;
        double r91583 = log(r91582);
        double r91584 = -r91583;
        double r91585 = r91581 / r91584;
        double r91586 = -r91585;
        return r91586;
}

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.8

    \[\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 2020046 
(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))))