Average Error: 31.4 → 0.3
Time: 17.1s
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 r100310 = im;
        double r100311 = re;
        double r100312 = atan2(r100310, r100311);
        double r100313 = base;
        double r100314 = log(r100313);
        double r100315 = r100312 * r100314;
        double r100316 = r100311 * r100311;
        double r100317 = r100310 * r100310;
        double r100318 = r100316 + r100317;
        double r100319 = sqrt(r100318);
        double r100320 = log(r100319);
        double r100321 = 0.0;
        double r100322 = r100320 * r100321;
        double r100323 = r100315 - r100322;
        double r100324 = r100314 * r100314;
        double r100325 = r100321 * r100321;
        double r100326 = r100324 + r100325;
        double r100327 = r100323 / r100326;
        return r100327;
}

double f(double re, double im, double base) {
        double r100328 = im;
        double r100329 = re;
        double r100330 = atan2(r100328, r100329);
        double r100331 = base;
        double r100332 = log(r100331);
        double r100333 = r100330 / r100332;
        return r100333;
}

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

    \[\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. Simplified0.4

    \[\leadsto \color{blue}{\frac{\mathsf{fma}\left(-0.0, \log \left(\mathsf{hypot}\left(im, re\right)\right), \log base \cdot \tan^{-1}_* \frac{im}{re}\right)}{\mathsf{fma}\left(\log base, \log base, 0.0 \cdot 0.0\right)}}\]
  3. Taylor expanded around -inf 64.0

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

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

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

Reproduce

herbie shell --seed 2019179 +o rules:numerics
(FPCore (re im base)
  :name "math.log/2 on complex, imaginary part"
  (/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0.0)) (+ (* (log base) (log base)) (* 0.0 0.0))))