Average Error: 31.2 → 0.3
Time: 12.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 r691668 = im;
        double r691669 = re;
        double r691670 = atan2(r691668, r691669);
        double r691671 = base;
        double r691672 = log(r691671);
        double r691673 = r691670 * r691672;
        double r691674 = r691669 * r691669;
        double r691675 = r691668 * r691668;
        double r691676 = r691674 + r691675;
        double r691677 = sqrt(r691676);
        double r691678 = log(r691677);
        double r691679 = 0.0;
        double r691680 = r691678 * r691679;
        double r691681 = r691673 - r691680;
        double r691682 = r691672 * r691672;
        double r691683 = r691679 * r691679;
        double r691684 = r691682 + r691683;
        double r691685 = r691681 / r691684;
        return r691685;
}

double f(double re, double im, double base) {
        double r691686 = im;
        double r691687 = re;
        double r691688 = atan2(r691686, r691687);
        double r691689 = base;
        double r691690 = log(r691689);
        double r691691 = r691688 / r691690;
        return r691691;
}

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

    \[\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 2019156 +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))))