Average Error: 32.4 → 0.3
Time: 4.6s
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 r90774 = im;
        double r90775 = re;
        double r90776 = atan2(r90774, r90775);
        double r90777 = base;
        double r90778 = log(r90777);
        double r90779 = r90776 * r90778;
        double r90780 = r90775 * r90775;
        double r90781 = r90774 * r90774;
        double r90782 = r90780 + r90781;
        double r90783 = sqrt(r90782);
        double r90784 = log(r90783);
        double r90785 = 0.0;
        double r90786 = r90784 * r90785;
        double r90787 = r90779 - r90786;
        double r90788 = r90778 * r90778;
        double r90789 = r90785 * r90785;
        double r90790 = r90788 + r90789;
        double r90791 = r90787 / r90790;
        return r90791;
}

double f(double re, double im, double base) {
        double r90792 = im;
        double r90793 = re;
        double r90794 = atan2(r90792, r90793);
        double r90795 = base;
        double r90796 = log(r90795);
        double r90797 = r90794 / r90796;
        return r90797;
}

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

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