Average Error: 31.5 → 0.3
Time: 20.9s
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 r77210 = im;
        double r77211 = re;
        double r77212 = atan2(r77210, r77211);
        double r77213 = base;
        double r77214 = log(r77213);
        double r77215 = r77212 * r77214;
        double r77216 = r77211 * r77211;
        double r77217 = r77210 * r77210;
        double r77218 = r77216 + r77217;
        double r77219 = sqrt(r77218);
        double r77220 = log(r77219);
        double r77221 = 0.0;
        double r77222 = r77220 * r77221;
        double r77223 = r77215 - r77222;
        double r77224 = r77214 * r77214;
        double r77225 = r77221 * r77221;
        double r77226 = r77224 + r77225;
        double r77227 = r77223 / r77226;
        return r77227;
}

double f(double re, double im, double base) {
        double r77228 = im;
        double r77229 = re;
        double r77230 = atan2(r77228, r77229);
        double r77231 = base;
        double r77232 = log(r77231);
        double r77233 = r77230 / r77232;
        return r77233;
}

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