Average Error: 30.8 → 0.3
Time: 15.2s
Precision: 64
\[\frac{\tan^{-1}_* \frac{im}{re} \cdot \log base - \log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot 0}{\log base \cdot \log base + 0 \cdot 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}{\log base \cdot \log base + 0 \cdot 0}
\frac{-\tan^{-1}_* \frac{im}{re}}{-\log base}
double f(double re, double im, double base) {
        double r987868 = im;
        double r987869 = re;
        double r987870 = atan2(r987868, r987869);
        double r987871 = base;
        double r987872 = log(r987871);
        double r987873 = r987870 * r987872;
        double r987874 = r987869 * r987869;
        double r987875 = r987868 * r987868;
        double r987876 = r987874 + r987875;
        double r987877 = sqrt(r987876);
        double r987878 = log(r987877);
        double r987879 = 0.0;
        double r987880 = r987878 * r987879;
        double r987881 = r987873 - r987880;
        double r987882 = r987872 * r987872;
        double r987883 = r987879 * r987879;
        double r987884 = r987882 + r987883;
        double r987885 = r987881 / r987884;
        return r987885;
}

double f(double re, double im, double base) {
        double r987886 = im;
        double r987887 = re;
        double r987888 = atan2(r987886, r987887);
        double r987889 = -r987888;
        double r987890 = base;
        double r987891 = log(r987890);
        double r987892 = -r987891;
        double r987893 = r987889 / r987892;
        return r987893;
}

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 30.8

    \[\frac{\tan^{-1}_* \frac{im}{re} \cdot \log base - \log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot 0}{\log base \cdot \log base + 0 \cdot 0}\]
  2. Simplified0.3

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

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

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

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

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

Reproduce

herbie shell --seed 2019153 +o rules:numerics
(FPCore (re im base)
  :name "math.log/2 on complex, imaginary part"
  (/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0)) (+ (* (log base) (log base)) (* 0 0))))