Average Error: 31.6 → 0.4
Time: 18.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}\]
\[\tan^{-1}_* \frac{im}{re} \cdot \frac{1}{\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}
\tan^{-1}_* \frac{im}{re} \cdot \frac{1}{\log base}
double f(double re, double im, double base) {
        double r28408 = im;
        double r28409 = re;
        double r28410 = atan2(r28408, r28409);
        double r28411 = base;
        double r28412 = log(r28411);
        double r28413 = r28410 * r28412;
        double r28414 = r28409 * r28409;
        double r28415 = r28408 * r28408;
        double r28416 = r28414 + r28415;
        double r28417 = sqrt(r28416);
        double r28418 = log(r28417);
        double r28419 = 0.0;
        double r28420 = r28418 * r28419;
        double r28421 = r28413 - r28420;
        double r28422 = r28412 * r28412;
        double r28423 = r28419 * r28419;
        double r28424 = r28422 + r28423;
        double r28425 = r28421 / r28424;
        return r28425;
}

double f(double re, double im, double base) {
        double r28426 = im;
        double r28427 = re;
        double r28428 = atan2(r28426, r28427);
        double r28429 = 1.0;
        double r28430 = base;
        double r28431 = log(r28430);
        double r28432 = r28429 / r28431;
        double r28433 = r28428 * r28432;
        return r28433;
}

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. Using strategy rm
  4. Applied div-inv0.4

    \[\leadsto \color{blue}{\tan^{-1}_* \frac{im}{re} \cdot \frac{1}{\log base}}\]
  5. Final simplification0.4

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

Reproduce

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