Average Error: 30.8 → 0.3
Time: 15.9s
Precision: 64
\[\frac{\tan^{-1}_* \frac{im}{re} \cdot \log base - \log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot 0}{\log base \cdot \log base + 0 \cdot 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}{\log base \cdot \log base + 0 \cdot 0}
\frac{\tan^{-1}_* \frac{im}{re}}{\log base}
double f(double re, double im, double base) {
        double r733348 = im;
        double r733349 = re;
        double r733350 = atan2(r733348, r733349);
        double r733351 = base;
        double r733352 = log(r733351);
        double r733353 = r733350 * r733352;
        double r733354 = r733349 * r733349;
        double r733355 = r733348 * r733348;
        double r733356 = r733354 + r733355;
        double r733357 = sqrt(r733356);
        double r733358 = log(r733357);
        double r733359 = 0.0;
        double r733360 = r733358 * r733359;
        double r733361 = r733353 - r733360;
        double r733362 = r733352 * r733352;
        double r733363 = r733359 * r733359;
        double r733364 = r733362 + r733363;
        double r733365 = r733361 / r733364;
        return r733365;
}

double f(double re, double im, double base) {
        double r733366 = im;
        double r733367 = re;
        double r733368 = atan2(r733366, r733367);
        double r733369 = base;
        double r733370 = log(r733369);
        double r733371 = r733368 / r733370;
        return r733371;
}

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 30.8

    \[\frac{\tan^{-1}_* \frac{im}{re} \cdot \log base - \log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot 0}{\log base \cdot \log base + 0 \cdot 0}\]
  2. Simplified0.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 2019152 +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)) (+ (* (log base) (log base)) (* 0 0))))