Average Error: 31.6 → 0.3
Time: 13.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 r98589 = im;
        double r98590 = re;
        double r98591 = atan2(r98589, r98590);
        double r98592 = base;
        double r98593 = log(r98592);
        double r98594 = r98591 * r98593;
        double r98595 = r98590 * r98590;
        double r98596 = r98589 * r98589;
        double r98597 = r98595 + r98596;
        double r98598 = sqrt(r98597);
        double r98599 = log(r98598);
        double r98600 = 0.0;
        double r98601 = r98599 * r98600;
        double r98602 = r98594 - r98601;
        double r98603 = r98593 * r98593;
        double r98604 = r98600 * r98600;
        double r98605 = r98603 + r98604;
        double r98606 = r98602 / r98605;
        return r98606;
}

double f(double re, double im, double base) {
        double r98607 = im;
        double r98608 = re;
        double r98609 = atan2(r98607, r98608);
        double r98610 = base;
        double r98611 = log(r98610);
        double r98612 = r98609 / r98611;
        return r98612;
}

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

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