Average Error: 31.6 → 0.3
Time: 19.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 r2059336 = im;
        double r2059337 = re;
        double r2059338 = atan2(r2059336, r2059337);
        double r2059339 = base;
        double r2059340 = log(r2059339);
        double r2059341 = r2059338 * r2059340;
        double r2059342 = r2059337 * r2059337;
        double r2059343 = r2059336 * r2059336;
        double r2059344 = r2059342 + r2059343;
        double r2059345 = sqrt(r2059344);
        double r2059346 = log(r2059345);
        double r2059347 = 0.0;
        double r2059348 = r2059346 * r2059347;
        double r2059349 = r2059341 - r2059348;
        double r2059350 = r2059340 * r2059340;
        double r2059351 = r2059347 * r2059347;
        double r2059352 = r2059350 + r2059351;
        double r2059353 = r2059349 / r2059352;
        return r2059353;
}

double f(double re, double im, double base) {
        double r2059354 = im;
        double r2059355 = re;
        double r2059356 = atan2(r2059354, r2059355);
        double r2059357 = base;
        double r2059358 = log(r2059357);
        double r2059359 = r2059356 / r2059358;
        return r2059359;
}

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

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

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

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

Reproduce

herbie shell --seed 2019172 +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))))