Average Error: 31.4 → 0.3
Time: 17.5s
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 r791627 = im;
        double r791628 = re;
        double r791629 = atan2(r791627, r791628);
        double r791630 = base;
        double r791631 = log(r791630);
        double r791632 = r791629 * r791631;
        double r791633 = r791628 * r791628;
        double r791634 = r791627 * r791627;
        double r791635 = r791633 + r791634;
        double r791636 = sqrt(r791635);
        double r791637 = log(r791636);
        double r791638 = 0.0;
        double r791639 = r791637 * r791638;
        double r791640 = r791632 - r791639;
        double r791641 = r791631 * r791631;
        double r791642 = r791638 * r791638;
        double r791643 = r791641 + r791642;
        double r791644 = r791640 / r791643;
        return r791644;
}

double f(double re, double im, double base) {
        double r791645 = im;
        double r791646 = re;
        double r791647 = atan2(r791645, r791646);
        double r791648 = base;
        double r791649 = log(r791648);
        double r791650 = r791647 / r791649;
        return r791650;
}

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}{\log base \cdot \log base + 0 \cdot 0}\]
  2. Simplified0.3

    \[\leadsto \color{blue}{\frac{\tan^{-1}_* \frac{im}{re}}{\log base}}\]
  3. Using strategy rm
  4. Applied clear-num0.6

    \[\leadsto \color{blue}{\frac{1}{\frac{\log base}{\tan^{-1}_* \frac{im}{re}}}}\]
  5. Using strategy rm
  6. Applied div-inv0.6

    \[\leadsto \frac{1}{\color{blue}{\log base \cdot \frac{1}{\tan^{-1}_* \frac{im}{re}}}}\]
  7. Taylor expanded around 0 0.3

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

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

Reproduce

herbie shell --seed 2019151 
(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))))