Average Error: 31.9 → 0.3
Time: 9.5s
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 r21978 = im;
        double r21979 = re;
        double r21980 = atan2(r21978, r21979);
        double r21981 = base;
        double r21982 = log(r21981);
        double r21983 = r21980 * r21982;
        double r21984 = r21979 * r21979;
        double r21985 = r21978 * r21978;
        double r21986 = r21984 + r21985;
        double r21987 = sqrt(r21986);
        double r21988 = log(r21987);
        double r21989 = 0.0;
        double r21990 = r21988 * r21989;
        double r21991 = r21983 - r21990;
        double r21992 = r21982 * r21982;
        double r21993 = r21989 * r21989;
        double r21994 = r21992 + r21993;
        double r21995 = r21991 / r21994;
        return r21995;
}

double f(double re, double im, double base) {
        double r21996 = im;
        double r21997 = re;
        double r21998 = atan2(r21996, r21997);
        double r21999 = base;
        double r22000 = log(r21999);
        double r22001 = r21998 / r22000;
        return r22001;
}

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

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