Average Error: 31.6 → 0.3
Time: 5.3s
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 r43253 = im;
        double r43254 = re;
        double r43255 = atan2(r43253, r43254);
        double r43256 = base;
        double r43257 = log(r43256);
        double r43258 = r43255 * r43257;
        double r43259 = r43254 * r43254;
        double r43260 = r43253 * r43253;
        double r43261 = r43259 + r43260;
        double r43262 = sqrt(r43261);
        double r43263 = log(r43262);
        double r43264 = 0.0;
        double r43265 = r43263 * r43264;
        double r43266 = r43258 - r43265;
        double r43267 = r43257 * r43257;
        double r43268 = r43264 * r43264;
        double r43269 = r43267 + r43268;
        double r43270 = r43266 / r43269;
        return r43270;
}

double f(double re, double im, double base) {
        double r43271 = im;
        double r43272 = re;
        double r43273 = atan2(r43271, r43272);
        double r43274 = base;
        double r43275 = log(r43274);
        double r43276 = r43273 / r43275;
        return r43276;
}

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