Average Error: 31.8 → 0.3
Time: 16.7s
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 r39698 = im;
        double r39699 = re;
        double r39700 = atan2(r39698, r39699);
        double r39701 = base;
        double r39702 = log(r39701);
        double r39703 = r39700 * r39702;
        double r39704 = r39699 * r39699;
        double r39705 = r39698 * r39698;
        double r39706 = r39704 + r39705;
        double r39707 = sqrt(r39706);
        double r39708 = log(r39707);
        double r39709 = 0.0;
        double r39710 = r39708 * r39709;
        double r39711 = r39703 - r39710;
        double r39712 = r39702 * r39702;
        double r39713 = r39709 * r39709;
        double r39714 = r39712 + r39713;
        double r39715 = r39711 / r39714;
        return r39715;
}

double f(double re, double im, double base) {
        double r39716 = im;
        double r39717 = re;
        double r39718 = atan2(r39716, r39717);
        double r39719 = base;
        double r39720 = log(r39719);
        double r39721 = -r39720;
        double r39722 = r39718 / r39721;
        double r39723 = -r39722;
        return r39723;
}

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 inf 0.3

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

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

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

Reproduce

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