Average Error: 31.5 → 0.3
Time: 20.4s
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 r85771 = im;
        double r85772 = re;
        double r85773 = atan2(r85771, r85772);
        double r85774 = base;
        double r85775 = log(r85774);
        double r85776 = r85773 * r85775;
        double r85777 = r85772 * r85772;
        double r85778 = r85771 * r85771;
        double r85779 = r85777 + r85778;
        double r85780 = sqrt(r85779);
        double r85781 = log(r85780);
        double r85782 = 0.0;
        double r85783 = r85781 * r85782;
        double r85784 = r85776 - r85783;
        double r85785 = r85775 * r85775;
        double r85786 = r85782 * r85782;
        double r85787 = r85785 + r85786;
        double r85788 = r85784 / r85787;
        return r85788;
}

double f(double re, double im, double base) {
        double r85789 = im;
        double r85790 = re;
        double r85791 = atan2(r85789, r85790);
        double r85792 = base;
        double r85793 = log(r85792);
        double r85794 = r85791 / r85793;
        return r85794;
}

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

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