Average Error: 31.7 → 0.3
Time: 21.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 r28070 = im;
        double r28071 = re;
        double r28072 = atan2(r28070, r28071);
        double r28073 = base;
        double r28074 = log(r28073);
        double r28075 = r28072 * r28074;
        double r28076 = r28071 * r28071;
        double r28077 = r28070 * r28070;
        double r28078 = r28076 + r28077;
        double r28079 = sqrt(r28078);
        double r28080 = log(r28079);
        double r28081 = 0.0;
        double r28082 = r28080 * r28081;
        double r28083 = r28075 - r28082;
        double r28084 = r28074 * r28074;
        double r28085 = r28081 * r28081;
        double r28086 = r28084 + r28085;
        double r28087 = r28083 / r28086;
        return r28087;
}

double f(double re, double im, double base) {
        double r28088 = im;
        double r28089 = re;
        double r28090 = atan2(r28088, r28089);
        double r28091 = base;
        double r28092 = log(r28091);
        double r28093 = r28090 / r28092;
        return r28093;
}

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

    \[\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 clear-num0.5

    \[\leadsto \color{blue}{\frac{1}{\frac{\log base}{\tan^{-1}_* \frac{im}{re}}}}\]
  5. Taylor expanded around 0 0.3

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

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

Reproduce

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