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 r1680820 = im;
        double r1680821 = re;
        double r1680822 = atan2(r1680820, r1680821);
        double r1680823 = base;
        double r1680824 = log(r1680823);
        double r1680825 = r1680822 * r1680824;
        double r1680826 = r1680821 * r1680821;
        double r1680827 = r1680820 * r1680820;
        double r1680828 = r1680826 + r1680827;
        double r1680829 = sqrt(r1680828);
        double r1680830 = log(r1680829);
        double r1680831 = 0.0;
        double r1680832 = r1680830 * r1680831;
        double r1680833 = r1680825 - r1680832;
        double r1680834 = r1680824 * r1680824;
        double r1680835 = r1680831 * r1680831;
        double r1680836 = r1680834 + r1680835;
        double r1680837 = r1680833 / r1680836;
        return r1680837;
}

double f(double re, double im, double base) {
        double r1680838 = im;
        double r1680839 = re;
        double r1680840 = atan2(r1680838, r1680839);
        double r1680841 = base;
        double r1680842 = log(r1680841);
        double r1680843 = r1680840 / r1680842;
        return r1680843;
}

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. Taylor expanded around 0 0.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 2019172 
(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))))