Average Error: 31.8 → 0.3
Time: 19.7s
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 r30432 = im;
        double r30433 = re;
        double r30434 = atan2(r30432, r30433);
        double r30435 = base;
        double r30436 = log(r30435);
        double r30437 = r30434 * r30436;
        double r30438 = r30433 * r30433;
        double r30439 = r30432 * r30432;
        double r30440 = r30438 + r30439;
        double r30441 = sqrt(r30440);
        double r30442 = log(r30441);
        double r30443 = 0.0;
        double r30444 = r30442 * r30443;
        double r30445 = r30437 - r30444;
        double r30446 = r30436 * r30436;
        double r30447 = r30443 * r30443;
        double r30448 = r30446 + r30447;
        double r30449 = r30445 / r30448;
        return r30449;
}

double f(double re, double im, double base) {
        double r30450 = im;
        double r30451 = re;
        double r30452 = atan2(r30450, r30451);
        double r30453 = base;
        double r30454 = log(r30453);
        double r30455 = r30452 / r30454;
        return r30455;
}

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 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 2019323 
(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))))