Average Error: 31.8 → 0.3
Time: 9.9s
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 r93924 = im;
        double r93925 = re;
        double r93926 = atan2(r93924, r93925);
        double r93927 = base;
        double r93928 = log(r93927);
        double r93929 = r93926 * r93928;
        double r93930 = r93925 * r93925;
        double r93931 = r93924 * r93924;
        double r93932 = r93930 + r93931;
        double r93933 = sqrt(r93932);
        double r93934 = log(r93933);
        double r93935 = 0.0;
        double r93936 = r93934 * r93935;
        double r93937 = r93929 - r93936;
        double r93938 = r93928 * r93928;
        double r93939 = r93935 * r93935;
        double r93940 = r93938 + r93939;
        double r93941 = r93937 / r93940;
        return r93941;
}

double f(double re, double im, double base) {
        double r93942 = im;
        double r93943 = re;
        double r93944 = atan2(r93942, r93943);
        double r93945 = base;
        double r93946 = log(r93945);
        double r93947 = r93944 / r93946;
        return r93947;
}

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

    \[\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. Using strategy rm
  4. Applied clear-num0.5

    \[\leadsto \color{blue}{\frac{1}{\frac{\log base}{\tan^{-1}_* \frac{im}{re}}}}\]
  5. Using strategy rm
  6. Applied div-inv0.6

    \[\leadsto \frac{1}{\color{blue}{\log base \cdot \frac{1}{\tan^{-1}_* \frac{im}{re}}}}\]
  7. Applied associate-/r*0.5

    \[\leadsto \color{blue}{\frac{\frac{1}{\log base}}{\frac{1}{\tan^{-1}_* \frac{im}{re}}}}\]
  8. Taylor expanded around -inf 64.0

    \[\leadsto \color{blue}{\frac{\tan^{-1}_* \frac{im}{re}}{\log -1 - \log \left(\frac{-1}{base}\right)}}\]
  9. Simplified0.3

    \[\leadsto \color{blue}{\frac{\tan^{-1}_* \frac{im}{re}}{\log base + 0}}\]
  10. Final simplification0.3

    \[\leadsto \frac{\tan^{-1}_* \frac{im}{re}}{\log base}\]

Reproduce

herbie shell --seed 2020046 
(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))))