Average Error: 32.1 → 0.3
Time: 4.9s
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 r35294 = im;
        double r35295 = re;
        double r35296 = atan2(r35294, r35295);
        double r35297 = base;
        double r35298 = log(r35297);
        double r35299 = r35296 * r35298;
        double r35300 = r35295 * r35295;
        double r35301 = r35294 * r35294;
        double r35302 = r35300 + r35301;
        double r35303 = sqrt(r35302);
        double r35304 = log(r35303);
        double r35305 = 0.0;
        double r35306 = r35304 * r35305;
        double r35307 = r35299 - r35306;
        double r35308 = r35298 * r35298;
        double r35309 = r35305 * r35305;
        double r35310 = r35308 + r35309;
        double r35311 = r35307 / r35310;
        return r35311;
}

double f(double re, double im, double base) {
        double r35312 = im;
        double r35313 = re;
        double r35314 = atan2(r35312, r35313);
        double r35315 = base;
        double r35316 = log(r35315);
        double r35317 = r35314 / r35316;
        return r35317;
}

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 32.1

    \[\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 0 0.3

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

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

Reproduce

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