Average Error: 31.6 → 0.3
Time: 4.0s
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 r37229 = im;
        double r37230 = re;
        double r37231 = atan2(r37229, r37230);
        double r37232 = base;
        double r37233 = log(r37232);
        double r37234 = r37231 * r37233;
        double r37235 = r37230 * r37230;
        double r37236 = r37229 * r37229;
        double r37237 = r37235 + r37236;
        double r37238 = sqrt(r37237);
        double r37239 = log(r37238);
        double r37240 = 0.0;
        double r37241 = r37239 * r37240;
        double r37242 = r37234 - r37241;
        double r37243 = r37233 * r37233;
        double r37244 = r37240 * r37240;
        double r37245 = r37243 + r37244;
        double r37246 = r37242 / r37245;
        return r37246;
}

double f(double re, double im, double base) {
        double r37247 = im;
        double r37248 = re;
        double r37249 = atan2(r37247, r37248);
        double r37250 = base;
        double r37251 = log(r37250);
        double r37252 = r37249 / r37251;
        return r37252;
}

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. Final simplification0.3

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

Reproduce

herbie shell --seed 2019356 
(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))))