Average Error: 31.6 → 0.3
Time: 19.4s
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 r41442 = im;
        double r41443 = re;
        double r41444 = atan2(r41442, r41443);
        double r41445 = base;
        double r41446 = log(r41445);
        double r41447 = r41444 * r41446;
        double r41448 = r41443 * r41443;
        double r41449 = r41442 * r41442;
        double r41450 = r41448 + r41449;
        double r41451 = sqrt(r41450);
        double r41452 = log(r41451);
        double r41453 = 0.0;
        double r41454 = r41452 * r41453;
        double r41455 = r41447 - r41454;
        double r41456 = r41446 * r41446;
        double r41457 = r41453 * r41453;
        double r41458 = r41456 + r41457;
        double r41459 = r41455 / r41458;
        return r41459;
}

double f(double re, double im, double base) {
        double r41460 = im;
        double r41461 = re;
        double r41462 = atan2(r41460, r41461);
        double r41463 = base;
        double r41464 = log(r41463);
        double r41465 = -r41464;
        double r41466 = r41462 / r41465;
        double r41467 = -r41466;
        return r41467;
}

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

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