Average Error: 31.3 → 0.4
Time: 22.3s
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}\]
\[\tan^{-1}_* \frac{im}{re} \cdot \frac{-1}{-\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}
\tan^{-1}_* \frac{im}{re} \cdot \frac{-1}{-\log base}
double f(double re, double im, double base) {
        double r36982 = im;
        double r36983 = re;
        double r36984 = atan2(r36982, r36983);
        double r36985 = base;
        double r36986 = log(r36985);
        double r36987 = r36984 * r36986;
        double r36988 = r36983 * r36983;
        double r36989 = r36982 * r36982;
        double r36990 = r36988 + r36989;
        double r36991 = sqrt(r36990);
        double r36992 = log(r36991);
        double r36993 = 0.0;
        double r36994 = r36992 * r36993;
        double r36995 = r36987 - r36994;
        double r36996 = r36986 * r36986;
        double r36997 = r36993 * r36993;
        double r36998 = r36996 + r36997;
        double r36999 = r36995 / r36998;
        return r36999;
}

double f(double re, double im, double base) {
        double r37000 = im;
        double r37001 = re;
        double r37002 = atan2(r37000, r37001);
        double r37003 = -1.0;
        double r37004 = base;
        double r37005 = log(r37004);
        double r37006 = -r37005;
        double r37007 = r37003 / r37006;
        double r37008 = r37002 * r37007;
        return r37008;
}

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

    \[\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. Using strategy rm
  5. Applied div-inv0.4

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

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

Reproduce

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