Average Error: 31.8 → 0.3
Time: 19.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 r30542 = im;
        double r30543 = re;
        double r30544 = atan2(r30542, r30543);
        double r30545 = base;
        double r30546 = log(r30545);
        double r30547 = r30544 * r30546;
        double r30548 = r30543 * r30543;
        double r30549 = r30542 * r30542;
        double r30550 = r30548 + r30549;
        double r30551 = sqrt(r30550);
        double r30552 = log(r30551);
        double r30553 = 0.0;
        double r30554 = r30552 * r30553;
        double r30555 = r30547 - r30554;
        double r30556 = r30546 * r30546;
        double r30557 = r30553 * r30553;
        double r30558 = r30556 + r30557;
        double r30559 = r30555 / r30558;
        return r30559;
}

double f(double re, double im, double base) {
        double r30560 = im;
        double r30561 = re;
        double r30562 = atan2(r30560, r30561);
        double r30563 = base;
        double r30564 = log(r30563);
        double r30565 = r30562 / r30564;
        return r30565;
}

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