Average Error: 31.2 → 0.3
Time: 4.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 r92108 = im;
        double r92109 = re;
        double r92110 = atan2(r92108, r92109);
        double r92111 = base;
        double r92112 = log(r92111);
        double r92113 = r92110 * r92112;
        double r92114 = r92109 * r92109;
        double r92115 = r92108 * r92108;
        double r92116 = r92114 + r92115;
        double r92117 = sqrt(r92116);
        double r92118 = log(r92117);
        double r92119 = 0.0;
        double r92120 = r92118 * r92119;
        double r92121 = r92113 - r92120;
        double r92122 = r92112 * r92112;
        double r92123 = r92119 * r92119;
        double r92124 = r92122 + r92123;
        double r92125 = r92121 / r92124;
        return r92125;
}

double f(double re, double im, double base) {
        double r92126 = im;
        double r92127 = re;
        double r92128 = atan2(r92126, r92127);
        double r92129 = base;
        double r92130 = log(r92129);
        double r92131 = r92128 / r92130;
        return r92131;
}

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

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