Average Error: 31.9 → 0.3
Time: 4.2s
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 r31505 = im;
        double r31506 = re;
        double r31507 = atan2(r31505, r31506);
        double r31508 = base;
        double r31509 = log(r31508);
        double r31510 = r31507 * r31509;
        double r31511 = r31506 * r31506;
        double r31512 = r31505 * r31505;
        double r31513 = r31511 + r31512;
        double r31514 = sqrt(r31513);
        double r31515 = log(r31514);
        double r31516 = 0.0;
        double r31517 = r31515 * r31516;
        double r31518 = r31510 - r31517;
        double r31519 = r31509 * r31509;
        double r31520 = r31516 * r31516;
        double r31521 = r31519 + r31520;
        double r31522 = r31518 / r31521;
        return r31522;
}

double f(double re, double im, double base) {
        double r31523 = im;
        double r31524 = re;
        double r31525 = atan2(r31523, r31524);
        double r31526 = base;
        double r31527 = log(r31526);
        double r31528 = r31525 / r31527;
        return r31528;
}

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

    \[\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. Final simplification0.3

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

Reproduce

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