Average Error: 32.2 → 0.3
Time: 5.3s
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 r35895 = im;
        double r35896 = re;
        double r35897 = atan2(r35895, r35896);
        double r35898 = base;
        double r35899 = log(r35898);
        double r35900 = r35897 * r35899;
        double r35901 = r35896 * r35896;
        double r35902 = r35895 * r35895;
        double r35903 = r35901 + r35902;
        double r35904 = sqrt(r35903);
        double r35905 = log(r35904);
        double r35906 = 0.0;
        double r35907 = r35905 * r35906;
        double r35908 = r35900 - r35907;
        double r35909 = r35899 * r35899;
        double r35910 = r35906 * r35906;
        double r35911 = r35909 + r35910;
        double r35912 = r35908 / r35911;
        return r35912;
}

double f(double re, double im, double base) {
        double r35913 = im;
        double r35914 = re;
        double r35915 = atan2(r35913, r35914);
        double r35916 = base;
        double r35917 = log(r35916);
        double r35918 = r35915 / r35917;
        return r35918;
}

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

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