Average Error: 31.8 → 0.3
Time: 42.0s
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 r28651 = im;
        double r28652 = re;
        double r28653 = atan2(r28651, r28652);
        double r28654 = base;
        double r28655 = log(r28654);
        double r28656 = r28653 * r28655;
        double r28657 = r28652 * r28652;
        double r28658 = r28651 * r28651;
        double r28659 = r28657 + r28658;
        double r28660 = sqrt(r28659);
        double r28661 = log(r28660);
        double r28662 = 0.0;
        double r28663 = r28661 * r28662;
        double r28664 = r28656 - r28663;
        double r28665 = r28655 * r28655;
        double r28666 = r28662 * r28662;
        double r28667 = r28665 + r28666;
        double r28668 = r28664 / r28667;
        return r28668;
}

double f(double re, double im, double base) {
        double r28669 = im;
        double r28670 = re;
        double r28671 = atan2(r28669, r28670);
        double r28672 = base;
        double r28673 = log(r28672);
        double r28674 = -r28673;
        double r28675 = r28671 / r28674;
        double r28676 = -r28675;
        return r28676;
}

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 2019323 
(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))))