Average Error: 31.5 → 0.3
Time: 19.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 r23143 = im;
        double r23144 = re;
        double r23145 = atan2(r23143, r23144);
        double r23146 = base;
        double r23147 = log(r23146);
        double r23148 = r23145 * r23147;
        double r23149 = r23144 * r23144;
        double r23150 = r23143 * r23143;
        double r23151 = r23149 + r23150;
        double r23152 = sqrt(r23151);
        double r23153 = log(r23152);
        double r23154 = 0.0;
        double r23155 = r23153 * r23154;
        double r23156 = r23148 - r23155;
        double r23157 = r23147 * r23147;
        double r23158 = r23154 * r23154;
        double r23159 = r23157 + r23158;
        double r23160 = r23156 / r23159;
        return r23160;
}

double f(double re, double im, double base) {
        double r23161 = im;
        double r23162 = re;
        double r23163 = atan2(r23161, r23162);
        double r23164 = base;
        double r23165 = log(r23164);
        double r23166 = r23163 / r23165;
        return r23166;
}

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))))