Average Error: 31.6 → 0.4
Time: 18.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{1}{\log base} \cdot \tan^{-1}_* \frac{im}{re}\]
\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{1}{\log base} \cdot \tan^{-1}_* \frac{im}{re}
double f(double re, double im, double base) {
        double r1518759 = im;
        double r1518760 = re;
        double r1518761 = atan2(r1518759, r1518760);
        double r1518762 = base;
        double r1518763 = log(r1518762);
        double r1518764 = r1518761 * r1518763;
        double r1518765 = r1518760 * r1518760;
        double r1518766 = r1518759 * r1518759;
        double r1518767 = r1518765 + r1518766;
        double r1518768 = sqrt(r1518767);
        double r1518769 = log(r1518768);
        double r1518770 = 0.0;
        double r1518771 = r1518769 * r1518770;
        double r1518772 = r1518764 - r1518771;
        double r1518773 = r1518763 * r1518763;
        double r1518774 = r1518770 * r1518770;
        double r1518775 = r1518773 + r1518774;
        double r1518776 = r1518772 / r1518775;
        return r1518776;
}

double f(double re, double im, double base) {
        double r1518777 = 1.0;
        double r1518778 = base;
        double r1518779 = log(r1518778);
        double r1518780 = r1518777 / r1518779;
        double r1518781 = im;
        double r1518782 = re;
        double r1518783 = atan2(r1518781, r1518782);
        double r1518784 = r1518780 * r1518783;
        return r1518784;
}

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 0 0.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. Final simplification0.4

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

Reproduce

herbie shell --seed 2019172 
(FPCore (re im base)
  :name "math.log/2 on complex, imaginary part"
  (/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0.0)) (+ (* (log base) (log base)) (* 0.0 0.0))))