Average Error: 31.5 → 0.3
Time: 21.5s
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 r23154 = im;
        double r23155 = re;
        double r23156 = atan2(r23154, r23155);
        double r23157 = base;
        double r23158 = log(r23157);
        double r23159 = r23156 * r23158;
        double r23160 = r23155 * r23155;
        double r23161 = r23154 * r23154;
        double r23162 = r23160 + r23161;
        double r23163 = sqrt(r23162);
        double r23164 = log(r23163);
        double r23165 = 0.0;
        double r23166 = r23164 * r23165;
        double r23167 = r23159 - r23166;
        double r23168 = r23158 * r23158;
        double r23169 = r23165 * r23165;
        double r23170 = r23168 + r23169;
        double r23171 = r23167 / r23170;
        return r23171;
}

double f(double re, double im, double base) {
        double r23172 = im;
        double r23173 = re;
        double r23174 = atan2(r23172, r23173);
        double r23175 = base;
        double r23176 = log(r23175);
        double r23177 = r23174 / r23176;
        return r23177;
}

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

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