Average Error: 31.7 → 0.3
Time: 9.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 \left(\frac{1}{base}\right)}\]
\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 \left(\frac{1}{base}\right)}
double f(double re, double im, double base) {
        double r40281 = im;
        double r40282 = re;
        double r40283 = atan2(r40281, r40282);
        double r40284 = base;
        double r40285 = log(r40284);
        double r40286 = r40283 * r40285;
        double r40287 = r40282 * r40282;
        double r40288 = r40281 * r40281;
        double r40289 = r40287 + r40288;
        double r40290 = sqrt(r40289);
        double r40291 = log(r40290);
        double r40292 = 0.0;
        double r40293 = r40291 * r40292;
        double r40294 = r40286 - r40293;
        double r40295 = r40285 * r40285;
        double r40296 = r40292 * r40292;
        double r40297 = r40295 + r40296;
        double r40298 = r40294 / r40297;
        return r40298;
}

double f(double re, double im, double base) {
        double r40299 = im;
        double r40300 = re;
        double r40301 = atan2(r40299, r40300);
        double r40302 = -r40301;
        double r40303 = 1.0;
        double r40304 = base;
        double r40305 = r40303 / r40304;
        double r40306 = log(r40305);
        double r40307 = r40302 / r40306;
        return r40307;
}

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 inf 0.3

    \[\leadsto \color{blue}{-1 \cdot \frac{\tan^{-1}_* \frac{im}{re}}{\log \left(\frac{1}{base}\right)}}\]
  3. Using strategy rm
  4. Applied div-inv0.4

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

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

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